<?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">
    <parent>
        <groupId>org.wso2</groupId>
        <artifactId>wso2</artifactId>
        <version>3</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <groupId>org.wso2.appserver</groupId>
    <artifactId>wso2appserver</artifactId>
    <packaging>pom</packaging>
    <version>6.0.0-m2</version>
    <name>WSO2 Application Server - Parent</name>
    <description>WSO2 Application Server Parent Pom</description>
    <url>http://wso2.com</url>

    <modules>
        <module>modules</module>
        <module>samples</module>
        <module>distribution</module>
        <module>integration-tests</module>
    </modules>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <systemPropertyVariables>
                            <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
                        </systemPropertyVariables>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${jacoco.version}</version>
                    <executions>
                        <execution>
                            <id>default-instrument</id>
                            <goals>
                                <goal>instrument</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>default-restore-instrumented-classes</id>
                            <goals>
                                <goal>restore-instrumented-classes</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>default-report</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>default-check</id>
                            <goals>
                                <goal>check</goal>
                            </goals>
                            <configuration>
                                <rules>
                                </rules>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <version>${maven.findbugsplugin.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>${wso2.appserver.maven.compiler.source}</source>
                    <target>${wso2.appserver.maven.compiler.target}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>${maven.checkstyleplugin.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>analyze-dependencies</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>analyze-only</goal>
                        </goals>
                        <configuration>
                            <failOnWarning>false</failOnWarning>
                            <ignoreNonCompile>true</ignoreNonCompile>
                        </configuration>
                    </execution>
                    <execution>
                        <id>analyze-dependency-management</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>analyze-dep-mgt</goal>
                        </goals>
                        <configuration>
                            <failBuild>true</failBuild>
                            <ignoreDirect>false</ignoreDirect>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <preparationGoals>clean install</preparationGoals>
                    <autoVersionSubmodules>false</autoVersionSubmodules>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat</artifactId>
                <version>${tomcat.version}</version>
                <type>zip</type>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-catalina</artifactId>
                <version>${tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>${commons.httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons.io.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons.lang.version}</version>
            </dependency>
            <dependency>
                    <groupId>com.googlecode.json-simple</groupId>
                <artifactId>json-simple</artifactId>
                <version>${googlecode.json-simple.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>${servlet.api.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
                <version>${jsr.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jacoco</groupId>
                <artifactId>org.jacoco.agent</artifactId>
                <classifier>runtime</classifier>
                <version>${jacoco.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
                <version>${org.mockito.mockito-all.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wso2.appserver</groupId>
                <artifactId>wso2as</artifactId>
                <type>zip</type>
                <version>${appserver.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon.analytics-common</groupId>
                <artifactId>org.wso2.carbon.databridge.commons</artifactId>
                <version>${carbon.analyticscommon.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.eclipse.osgi</groupId>
                        <artifactId>org.eclipse.osgi</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon.analytics-common</groupId>
                <artifactId>org.wso2.carbon.databridge.commons.binary</artifactId>
                <version>${carbon.analyticscommon.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.wso2.carbon</groupId>
                        <artifactId>org.wso2.carbon.axis2</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.wso2.carbon</groupId>
                        <artifactId>org.wso2.carbon.core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.wso2.carbon</groupId>
                        <artifactId>org.wso2.carbon.utils</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon.analytics-common</groupId>
                <artifactId>org.wso2.carbon.databridge.commons.thrift</artifactId>
                <version>${carbon.analyticscommon.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.eclipse.osgi</groupId>
                        <artifactId>org.eclipse.osgi</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.wso2.carbon</groupId>
                        <artifactId>org.wso2.carbon.axis2</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.wso2.carbon</groupId>
                        <artifactId>org.wso2.carbon.core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.wso2.carbon</groupId>
                        <artifactId>org.wso2.carbon.utils</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
                <version>${xerces.xercesImpl.version}</version>
            </dependency>
            <dependency>
                <groupId>xerces</groupId>
                <artifactId>xerces</artifactId>
                <version>${xerces.xerces.version}</version>
            </dependency>

            <!-- WSO2 Application Server Sample Artifacts -->
            <dependency>
                <groupId>org.wso2.appserver</groupId>
                <artifactId>configuration-loader</artifactId>
                <version>${appserver.version}</version>
                <type>war</type>
            </dependency>
            <dependency>
                <groupId>org.wso2.appserver</groupId>
                <artifactId>configuration-loader-valve</artifactId>
                <version>${appserver.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wso2.appserver</groupId>
                <artifactId>jaxrs_basic</artifactId>
                <version>${appserver.version}</version>
                <type>war</type>
            </dependency>
            <dependency>
                <groupId>org.wso2.appserver</groupId>
                <artifactId>simple-jax-rs-service</artifactId>
                <version>${appserver.version}</version>
                <type>war</type>
            </dependency>

            <!-- Runtimes CXF -->
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-frontend-jaxrs</artifactId>
                <version>${runtime.cxf.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-frontend-jaxws</artifactId>
                <version>${runtime.cxf.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-transports-http</artifactId>
                <version>${runtime.cxf.version}</version>
            </dependency>

            <!-- Runtime Spring -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>${runtime.spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${runtime.spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${runtime.spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${runtime.spring.version}</version>
            </dependency>

            <!-- WSO2 Application Server Modules -->
            <dependency>
                <groupId>org.wso2.appserver</groupId>
                <artifactId>appserver-utils</artifactId>
                <version>${appserver.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wso2.appserver</groupId>
                <artifactId>appserver-http-statistics-monitoring</artifactId>
                <version>${appserver.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wso2.appserver</groupId>
                <artifactId>appserver-webapp-loader</artifactId>
                <version>${appserver.version}</version>
            </dependency>

            <!-- Shaded Dependency Modules -->
            <dependency>
                <groupId>org.wso2.appserver.shade.slf4j</groupId>
                <artifactId>slf4j-shaded</artifactId>
                <version>${slf4j.shade.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wso2.appserver.shade.org.apache.thrift</groupId>
                <artifactId>libthrift-shaded</artifactId>
                <version>${libthrift.shade.version}</version>
            </dependency>

            <!-- WSO2 Application Server Tests -->
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>${testng.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon</groupId>
                <artifactId>org.wso2.carbon.logging</artifactId>
                <version>${carbon.logging.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.eclipse.osgi</groupId>
                        <artifactId>org.eclipse.osgi</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon.analytics-common</groupId>
                <artifactId>org.wso2.carbon.databridge.agent</artifactId>
                <version>${carbon.analyticscommon.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.eclipse.osgi</groupId>
                        <artifactId>org.eclipse.osgi</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.osgi</groupId>
                        <artifactId>org.eclipse.osgi.services</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.wso2.carbon</groupId>
                        <artifactId>org.wso2.carbon.core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.thrift</groupId>
                <artifactId>libthrift</artifactId>
                <version>${libthrift.version}</version>
            </dependency>
            <dependency>
                <groupId>com.lmax</groupId>
                <artifactId>disruptor</artifactId>
                <version>${disruptor.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon.analytics-common</groupId>
                <artifactId>org.wso2.carbon.databridge.core</artifactId>
                <scope>test</scope>
                <version>${carbon.analyticscommon.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.wso2.carbon</groupId>
                        <artifactId>org.wso2.carbon.core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon.analytics-common</groupId>
                <artifactId>org.wso2.carbon.databridge.receiver.binary</artifactId>
                <scope>test</scope>
                <version>${carbon.analyticscommon.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon.analytics-common</groupId>
                <artifactId>org.wso2.carbon.databridge.receiver.thrift</artifactId>
                <scope>test</scope>
                <version>${carbon.analyticscommon.version}</version>
            </dependency>

            <!-- dependencies related to http statistics publishing integration test -->
            <dependency>
                <groupId>org.wso2.carbon</groupId>
                <artifactId>org.wso2.carbon.databridge.commons</artifactId>
                <version>${databridge.component.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon</groupId>
                <artifactId>org.wso2.carbon.databridge.agent.thrift</artifactId>
                <version>${databridge.component.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon</groupId>
                <artifactId>org.wso2.carbon.databridge.commons.thrift</artifactId>
                <version>${databridge.component.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon</groupId>
                <artifactId>org.wso2.carbon.databridge.core</artifactId>
                <version>${databridge.component.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.wso2.carbon</groupId>
                <artifactId>org.wso2.carbon.databridge.receiver.thrift</artifactId>
                <version>${databridge.component.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-juli</artifactId>
                <version>${tomcat.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-servlet-api</artifactId>
                <version>${tomcat.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-pool</groupId>
                <artifactId>commons-pool</artifactId>
                <version>${commons-pool.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <scm>
        <url>https://github.com/wso2/product-as.git</url>
        <developerConnection>scm:git:https://github.com/wso2/product-as.git</developerConnection>
        <connection>scm:git:https://github.com/wso2/product-as.git</connection>
        <tag>v6.0.0-m2</tag>
    </scm>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <!-- WSO2 Application Server version -->
        <appserver.version>6.0.0-m2</appserver.version>
        <!-- WSO2 Application Server distribution identifier -->
        <distribution.file.name>wso2as-${project.version}</distribution.file.name>

        <wso2.appserver.maven.compiler.source>1.8</wso2.appserver.maven.compiler.source>
        <wso2.appserver.maven.compiler.target>1.8</wso2.appserver.maven.compiler.target>

        <!-- plugin version properties -->
        <maven.checkstyleplugin.version>2.17</maven.checkstyleplugin.version>
        <maven.findbugsplugin.version>3.0.3</maven.findbugsplugin.version>

        <!-- dependency version properties -->
        <tomcat.version>8.0.28</tomcat.version>
        <carbon.analyticscommon.version>5.0.8</carbon.analyticscommon.version>
        <carbon.logging.version>4.4.3</carbon.logging.version>
        <commons.httpclient.version>3.1</commons.httpclient.version>
        <commons.io.version>2.4</commons.io.version>
        <commons.lang.version>3.4</commons.lang.version>
        <commons.pool.wso2.version>1.5.6.wso2v1</commons.pool.wso2.version>
        <disruptor.version>3.3.4</disruptor.version>
        <googlecode.json-simple.version>1.1.1</googlecode.json-simple.version>
        <jacoco.version>0.7.6.201602180812</jacoco.version>
        <junit.version>4.12</junit.version>
        <jsr.api.version>1.1.1</jsr.api.version>
        <org.jacoco.ant.version>0.7.5.201505241946</org.jacoco.ant.version>
        <org.mockito.mockito-all.version>1.10.19</org.mockito.mockito-all.version>
        <runtime.cxf.version>3.1.5</runtime.cxf.version>
        <runtime.spring.version>4.2.5.RELEASE</runtime.spring.version>
        <servlet.api.version>2.5</servlet.api.version>
        <slf4j.version>1.7.19</slf4j.version>
        <testng.version>6.9.10</testng.version>
        <uaparser.version>1.3.0.wso2v1</uaparser.version>
        <xerces.xerces.version>2.4.0</xerces.xerces.version>
        <xerces.xercesImpl.version>2.11.0</xerces.xercesImpl.version>
        <commons-pool.version>1.5.7</commons-pool.version>
        <libthrift.version>0.9.3</libthrift.version>
        <libthrift.shade.version>0.9.3.wso2v1-m2</libthrift.shade.version>
        <slf4j.version>1.7.21</slf4j.version>
        <slf4j.shade.version>1.7.21.wso2v1-m2</slf4j.shade.version>

        <!-- databridge component dependency for http statistics publishing integration test -->
        <databridge.component.version>4.2.0</databridge.component.version>
    </properties>
</project>
