<?xml version="1.0" encoding="UTF-8"?>

<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you 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.apache.axis2</groupId>
        <artifactId>axis2</artifactId>
        <version>1.8.1-SNAPSHOT</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <artifactId>axis2-integration</artifactId>

    <name>Apache Axis2 - Integration</name>
    <description>Axis2 Integration</description>
    <url>http://axis.apache.org/axis2/java/core/</url>

    <scm>
        <connection>scm:git:https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git</connection>
        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git</developerConnection>
        <url>https://gitbox.apache.org/repos/asf?p=axis-axis2-java-core.git;a=summary</url>
        <tag>HEAD</tag>
    </scm>

    <dependencies>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-transport-http</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-transport-local</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-adb-codegen</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-adb</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-codegen</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-java2wsdl</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-kernel</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-mtompolicy</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-saaj</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-spring</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>addressing</artifactId>
            <version>${project.version}</version>
            <type>mar</type>
        </dependency>
        <dependency>
            <groupId>org.apache.woden</groupId>
            <artifactId>woden-core</artifactId>
            <version>${woden.version}</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.xmlunit</groupId>
            <artifactId>xmlunit-legacy</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-testutils</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
        </dependency>
        <dependency>
            <groupId>com.sun.activation</groupId>
            <artifactId>jakarta.activation</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>SOAP12TestModuleB</artifactId>
            <version>${project.version}</version>
            <type>mar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>SOAP12TestModuleC</artifactId>
            <version>${project.version}</version>
            <type>mar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>SOAP12TestServiceB</artifactId>
            <version>${project.version}</version>
            <type>aar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>SOAP12TestServiceC</artifactId>
            <version>${project.version}</version>
            <type>aar</type>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <sourceDirectory>src</sourceDirectory>
        <testSourceDirectory>test</testSourceDirectory>
        <resources>
            <resource>
                <directory>conf</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </resource>
            <resource>
                <directory>src</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>test</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.wsdl</include>
                    <include>**/*.properties</include>
                </includes>
            </testResource>
            <testResource>
                <directory>${project.build.directory}/xmlbeans/resources</directory>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <inherited>true</inherited>
                <configuration>
                    <!-- There is a lot of generated code to compile; use fork mode
                         to avoid out of memory issues: -->
                    <fork>true</fork>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-repo-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-classes</outputDirectory>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>samples</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/samples</outputDirectory>
                            <generatedAxis2xml>
                                <modules>
                                    <module>addressing</module>
                                </modules>
                                <handlers>
                                    <handler>
                                        <flow>InFlow</flow>
                                        <phase>Transport</phase>
                                        <name>RequestURIOperationDispatcher</name>
                                        <className>org.apache.axis2.dispatchers.RequestURIOperationDispatcher</className>
                                    </handler>
                                </handlers>
                            </generatedAxis2xml>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>repository-client</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/repository-client</outputDirectory>
                            <generatedAxis2xml>
                                <modules>
                                    <module>addressing</module>
                                </modules>
                            </generatedAxis2xml>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>local</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/local</outputDirectory>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>chunking-enabled</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/chunking-enabledRepository</outputDirectory>
                            <axis2xml>test/org/apache/axis2/engine/chunking-enabled-axis2.xml</axis2xml>
                            <includeModules>false</includeModules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>chunking-disabled</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/chunking-disabledRepository</outputDirectory>
                            <axis2xml>test/org/apache/axis2/engine/chunking-disabled-axis2.xml</axis2xml>
                            <includeModules>false</includeModules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>integration</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/integrationRepo</outputDirectory>
                            <generatedAxis2xml>
                                <modules>
                                    <module>addressing</module>
                                </modules>
                            </generatedAxis2xml>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>httpcomponents-enabled</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/httpcomponents-enabledRepository</outputDirectory>
                            <axis2xml>test/org/apache/axis2/engine/httpcomponents-enabled-axis2.xml</axis2xml>
                            <includeModules>false</includeModules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>MTOM-enabled</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/MTOM-enabledRepository</outputDirectory>
                            <axis2xml>test-resources/mtom/MTOM-enabled-axis2.xml</axis2xml>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>MTOM-fileCache-enabled</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/MTOM-fileCache-enabledRepository</outputDirectory>
                            <axis2xml>test-resources/mtom/MTOM-fileCache-enabled-axis2.xml</axis2xml>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>SwA-enabled</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/SwA-enabledRepository</outputDirectory>
                            <axis2xml>test-resources/swa/SwA-enabled-axis2.xml</axis2xml>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>SwA-fileCache-enabled</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/SwA-fileCache-enabledRepository</outputDirectory>
                            <axis2xml>test-resources/swa/SwA-fileCache-enabled-axis2.xml</axis2xml>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>deployment_repo</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/deployment_repo</outputDirectory>
                            <axis2xml>test-resources/deployment/deployment.both.axis2.xml</axis2xml>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>Standard</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/Repository</outputDirectory>
                            <generatedAxis2xml>
                                <modules>
                                    <module>addressing</module>
                                </modules>
                            </generatedAxis2xml>
                            <modules>addressing,SOAP12TestModuleB,SOAP12TestModuleC</modules>
                            <includeServices>true</includeServices>
                            <services>SOAP12TestServiceB,SOAP12TestServiceC</services>
                        </configuration>
                    </execution>
                    <execution>
                        <id>perf2</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/perf2/build/repo</outputDirectory>
                            <generatedAxis2xml>
                                <modules>
                                    <module>addressing</module>
                                </modules>
                            </generatedAxis2xml>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>perf</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/perf/build/repo/conf</outputDirectory>
                            <generatedAxis2xml>
                                <modules>
                                    <module>addressing</module>
                                </modules>
                            </generatedAxis2xml>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>jaxrs</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>create-test-repository</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/test-resources/jaxrs-repository</outputDirectory>
                            <axis2xml>test-resources/jaxrs/pojo-enabled-axis2.xml</axis2xml>
                            <modules>addressing</modules>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <configurationDirectory>conf</configurationDirectory>
                    <includeServices>false</includeServices>
                    <generatedAxis2xml>
                        <transportReceivers>
                            <transportReceiver>
                                <name>http</name>
                                <parameters>
                                    <parameter>
                                        <name>port</name>
                                        <value>0</value>
                                    </parameter>
                                </parameters>
                            </transportReceiver>
                        </transportReceivers>
                    </generatedAxis2xml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>gen-ts</id>
                        <phase>generate-test-sources</phase>
                        <configuration>
                            <target unless="maven.test.skip">
                                <condition property="test.skip">
                                    <equals arg1="true" arg2="${maven.test.skip}" />
                                </condition>
                                <echo>${test.skip}</echo>
                                <property name="addressing_version" value="${project.version}" />
                                <property name="maven.class.path" refid="maven.runtime.classpath" />
                                <property name="maven.test.path" refid="maven.compile.classpath" />
                                <ant antfile="itest-build.xml" inheritall="true" inheritrefs="true" dir="." target="generate-test-sources" />
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>build-repo</id>
                        <phase>test-compile</phase>
                        <configuration>
                            <target unless="maven.test.skip">
                                <condition property="test.skip">
                                    <equals arg1="true" arg2="${maven.test.skip}" />
                                </condition>
                                <echo>${test.skip}</echo>
                                <property name="addressing_version" value="${project.version}" />
                                <property name="groovy.all.version" value="${groovy.all.version}" />
                                <property name="maven.repo.local" value="${settings.localRepository}" />
                                <property name="maven.class.path" refid="maven.runtime.classpath" />

                                <path id="maven.dependency.classpath">
                                    <path refid="maven.compile.classpath" />
                                    <path refid="maven.runtime.classpath" />
                                </path>
                                <ant antfile="itest-build.xml" inheritall="true" inheritrefs="true" dir="." target="build-repos" />
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>add-test-source</id>
                        <phase>process-test-resources</phase>
                        <goals>
                            <goal>add-test-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>${project.build.directory}/wsdl/complexdatatype/src</source>
                                <source>${project.build.directory}/wsdl/complexdatatypebare/src</source>
                                <source>${project.build.directory}/xmlbeans/java</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <inherited>true</inherited>
                <configuration>
                    <argLine>${argLine} -Xms256m -Xmx512m</argLine>
                    <!-- Enable the next 2 lines if you want to attach a debugger
                 <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006</argLine>-->
                    <includes>
                        <include>**/*Test.java</include>
                    </includes>
                    <excludes>
                        <exclude>**/*Abstract*.java</exclude>
                        <exclude>**/*Util*.java</exclude>
                        <exclude>**/*InteropStubTest.java</exclude>
                        <exclude>**/*ServiceGroupContextTest.java</exclude>
                        <exclude>**/*EchoRawSwAFileInputTest.java</exclude>
                        <exclude>**org/apache/axis2/soap12testing/soap12testsuite/*.java</exclude>
                        <exclude>**/ScenarioST1Test.java</exclude>
                        <exclude>**/samples/wsdl/perf2/*.java</exclude>
                        <exclude>**/ComplexDataTypesDocLitBareTest.java</exclude>
                        <exclude>**/ComplexDataTypesTest.java</exclude>
                    </excludes>
                    <systemProperties>
                        <property>
                            <name>build.repository</name>
                            <value>./target/test-classes</value>
                        </property>
                        <!-- Prevent Mac OS X from showing an icon in the dock during the test run -->
                        <property>
                            <name>java.awt.headless</name>
                            <value>true</value>
                        </property>
                        <property>
                            <name>org.apache.axis2.transport.http.server.fastShutdown</name>
                            <value>true</value>
                        </property>
                    </systemProperties>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
