<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ /*
  ~ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
  ~ *
  ~ * Licensed under the Apache License, Version 2.0 (the "License");
  ~ * you may not use this file except in compliance with the License.
  ~ * You may obtain a copy of the License at
  ~ *
  ~ * http://www.apache.org/licenses/LICENSE-2.0
  ~ *
  ~ * Unless required by applicable law or agreed to in writing, software
  ~ * distributed under the License is distributed on an "AS IS" BASIS,
  ~ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ * See the License for the specific language governing permissions and
  ~ * limitations under the License.
  ~ */
  -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.wso2.am</groupId>
        <artifactId>am-parent</artifactId>
        <version>3.0.0</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <artifactId>wso2apim-gateway</artifactId>
    <packaging>pom</packaging>
    <name>WSO2 API Management Gateway - Distribution</name>
    <description>WSO2 API Management Gateway - Distribution</description>
    <url>http://wso2.org</url>

    <dependencies>
        <dependency>
            <groupId>org.ballerinalang</groupId>
            <artifactId>ballerina-core</artifactId>
            <version>${ballerina.runtime.version}</version>
        </dependency>
        <dependency>
            <groupId>org.ballerinalang</groupId>
            <artifactId>ballerina-native</artifactId>
            <version>${ballerina.runtime.version}</version>
        </dependency>
        <dependency>
            <groupId>org.ballerinalang</groupId>
            <artifactId>ballerina-launcher</artifactId>
            <version>${ballerina.runtime.version}</version>
        </dependency>
        <dependency>
            <groupId>org.ballerinalang</groupId>
            <artifactId>ballerina-logging</artifactId>
            <version>${ballerina.runtime.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon</groupId>
            <artifactId>org.wso2.carbon.core</artifactId>
            <version>${carbon.kernel.version}</version>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>${testng.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.transport</groupId>
            <artifactId>org.wso2.carbon.transport.file</artifactId>
            <version>${carbon.transport.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.transport</groupId>
            <artifactId>org.wso2.carbon.transport.http.netty</artifactId>
            <version>${carbon.transport.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.transport</groupId>
            <artifactId>org.wso2.carbon.transport.http.netty.feature</artifactId>
            <version>${carbon.transport.version}</version>
            <type>zip</type>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.transport</groupId>
            <artifactId>org.wso2.carbon.connector.framework</artifactId>
            <version>${carbon.transport.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.transport</groupId>
            <artifactId>org.wso2.carbon.transport.jms</artifactId>
            <version>${carbon.transport.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.config</groupId>
            <artifactId>org.wso2.carbon.config</artifactId>
            <version>${carbon.config.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.secvault</groupId>
            <artifactId>org.wso2.carbon.secvault</artifactId>
            <version>${carbon.securevault.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.secvault</groupId>
            <artifactId>org.wso2.carbon.secvault.ciphertool</artifactId>
            <version>${carbon.securevault.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.utils</groupId>
            <artifactId>carbon-utils</artifactId>
            <version>${carbon.utils.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons.wso2</groupId>
            <artifactId>commons-vfs2</artifactId>
            <version>${commons-vfs2.wso2.version}</version>
        </dependency>
        <dependency>
            <groupId>javax.jms</groupId>
            <artifactId>javax.jms-api</artifactId>
            <version>${javax.jms.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-nop</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-jdk14</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.atomikos.wso2</groupId>
            <artifactId>atomikos</artifactId>
            <version>${atomikos-version}</version>
        </dependency>
        <dependency>
            <groupId>javax.transaction</groupId>
            <artifactId>javax.transaction-api</artifactId>
            <version>${javax-transaction-version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ws.commons.axiom</groupId>
            <artifactId>axiom-dom</artifactId>
            <version>${orbit.version.axiom}</version>
        </dependency>
	<!-- APIM Features -->
        <dependency>
            <groupId>org.wso2.carbon.apimgt</groupId>
            <artifactId>apim-ballerina-configs</artifactId>
            <version>${carbon.apimgt.version}</version>
            <type>zip</type>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.apimgt</groupId>
            <artifactId>org.wso2.carbon.apimgt.ballerina.native</artifactId>
            <version>${carbon.apimgt.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.caching</groupId>
            <artifactId>org.wso2.carbon.caching</artifactId>
            <version>${carbon.caching.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.apimgt</groupId>
            <artifactId>org.wso2.carbon.apimgt.ballerina.publisher</artifactId>
            <version>${carbon.apimgt.version}</version>
        </dependency>
        <dependency>
            <groupId>libthrift.wso2</groupId>
            <artifactId>libthrift</artifactId>
            <version>${libthrift.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.orbit.com.lmax</groupId>
            <artifactId>disruptor</artifactId>
            <version>3.3.2.wso2v2</version>
        </dependency>

        <!--thrift/binary data publisher-->
        <dependency>
            <groupId>org.wso2.carbon.analytics</groupId>
            <artifactId>org.wso2.carbon.databridge.agent</artifactId>
            <version>${carbon.analytics.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.analytics</groupId>
            <artifactId>org.wso2.carbon.databridge.commons.binary</artifactId>
            <version>${carbon.analytics.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.analytics</groupId>
            <artifactId>org.wso2.carbon.databridge.commons.thrift</artifactId>
            <version>${carbon.analytics.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon.analytics</groupId>
            <artifactId>org.wso2.carbon.databridge.commons</artifactId>
            <version>${carbon.analytics.version}</version>
        </dependency>

        <dependency>
            <groupId>org.json.wso2</groupId>
            <artifactId>json</artifactId>
            <version>${org.json.wso2.version}</version>
        </dependency>
        
        <dependency>
            <groupId>com.fasterxml.woodstox</groupId>
            <artifactId>woodstox-core</artifactId>
            <version>5.0.3</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <id>unpack-dependencies-runtime</id>
                        <phase>package</phase>
                        <goals>
                            <goal>unpack-dependencies</goal>
                        </goals>
                        <configuration>
                            <includeArtifactIds>
                                ballerina-native,ballerina-samples,apim-ballerina-configs
                            </includeArtifactIds>
                            <outputDirectory>${project.build.directory}/extracted-distributions
                            </outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>true</overWriteSnapshots>
                            <useSubDirectoryPerArtifact>true</useSubDirectoryPerArtifact>
                            <stripVersion>true</stripVersion>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <id>distribution1</id>
                        <phase>package</phase>
                        <goals>
                            <goal>attached</goal>
                        </goals>
                        <configuration>
                            <filters>
                                <filter>${basedir}/src/assembly/filter.properties</filter>
                            </filters>
                            <descriptors>
                                <descriptor>${basedir}/src/assembly/bin.xml</descriptor>
                            </descriptors>
                            <finalName>${artifactId}-${project.version}</finalName>
                            <appendAssemblyId>false</appendAssemblyId>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <phase>verify</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target>
                                <delete dir="${project.build.directory}/extracted-distributions" includeemptydirs="true" />
                            </target>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>

        <resources>
            <resource>
                <directory>bin/</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/version.txt</include>
                </includes>
            </resource>
        </resources>
    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon</groupId>
                <artifactId>org.wso2.carbon.core</artifactId>
                <version>${carbon.kernel.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon.transport</groupId>
                <artifactId>org.wso2.carbon.connector.framework</artifactId>
                <version>${carbon.transport.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon.messaging</groupId>
                <artifactId>org.wso2.carbon.messaging</artifactId>
                <version>${carbon.messaging.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <properties>
        <ballerina.runtime.version>0.89</ballerina.runtime.version>
        <carbon.kernel.version>5.1.0</carbon.kernel.version>
        <carbon.transport.version>4.4.11</carbon.transport.version>
        <testng.version>6.9.4</testng.version>
        <log4j.version>2.8</log4j.version>
        <commons-vfs2.wso2.version>2.0-wso2v15</commons-vfs2.wso2.version>
        <javax.jms.version>2.0.1</javax.jms.version>
        <javax-transaction-version>1.2</javax-transaction-version>
        <atomikos-version>3.8.0.wso2v1</atomikos-version>
        <orbit.version.axiom>1.2.20</orbit.version.axiom>
        <carbon.securevault.version>5.0.4</carbon.securevault.version>
        <carbon.config.version>2.0.0</carbon.config.version>
        <carbon.utils.version>1.2.1</carbon.utils.version>
        <carbon.messaging.version>2.3.4</carbon.messaging.version>
        <carbon.caching.version>1.1.3</carbon.caching.version>
        <carbon.analytics.version>2.0.37</carbon.analytics.version>
        <libthrift.version>0.9.2.wso2v1</libthrift.version>
        <org.json.wso2.version>3.0.0.wso2v1</org.json.wso2.version>

    </properties>
</project>
