<?xml version="1.0"?>
<!--
  ~ 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>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.apache.ode</groupId>
    <artifactId>ode-axis2-war</artifactId>
    <name>ODE :: Axis2 Based Web Application</name>
    <packaging>pom</packaging>

    <parent>
        <groupId>org.apache.ode</groupId>
        <artifactId>ode</artifactId>
        <version>1.4-SNAPSHOT</version>
    </parent>

    <properties>
       <mex.version>1.41</mex.version>
       <jibx.version>1.1.5</jibx.version>
       <tranql.version>1.1</tranql.version>
       <opensaml.version>2.2.3</opensaml.version>
       <bouncycastle.version>140</bouncycastle.version>
       <geronimo-spec-jms.version>1.1-rc4</geronimo-spec-jms.version>
       <jetty.version>6.1.3</jetty.version>
       <testng.version>5.8</testng.version>
       <axis2.tcp.version>1.0.0</axis2.tcp.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-compiler</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-connector</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-dao</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-epr</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-runtime</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-scheduler-simple</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-store</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-schemas</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-utils</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-dao-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-ql</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-axis2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-fastinfoset</artifactId>
            <version>${axis2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-jaxbri</artifactId>
            <version>${axis2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-jaxws</artifactId>
            <version>${axis2.version}</version>
          </dependency>
          <!-- According to Axis2 team, axis2 get this dependency from JDK
               This jar was there in 1.4.1. release -->
        <!--dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-jaxws-api</artifactId>
            <version>${axis2.version}</version>
        </dependency-->
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-json</artifactId>
            <version>${axis2.version}</version>
        </dependency>
        <!-- deprecated jar. This jar was there in 1.4.1 release -->
        <!--dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-jws-api</artifactId>
            <version>${axis2.version}</version>
        </dependency-->
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-metadata</artifactId>
            <version>${axis2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-spring</artifactId>
            <version>${axis2.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-beans</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-context</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-web</artifactId>
                    </exclusion>
                </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-transport-tcp</artifactId>
            <version>${axis2.tcp.version}</version>
        </dependency>        
        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
        </dependency>
        <dependency>
            <groupId>woodstox</groupId>
            <artifactId>wstx-asl</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derbytools</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jibx</groupId>
            <artifactId>jibx-run</artifactId>
            <version>${jibx.version}</version>
        </dependency>
        <dependency>
            <groupId>tranql</groupId>
            <artifactId>tranql-connector</artifactId>
            <version>${tranql.version}</version>
        </dependency>
        <dependency>
            <groupId>org.opensaml</groupId>
            <artifactId>opensaml</artifactId>
            <version>${opensaml.version}</version>
        </dependency>
        <dependency>
            <groupId>bouncycastle</groupId>
            <artifactId>bcprov-jdk15</artifactId>
            <version>${bouncycastle.version}</version>
        </dependency>
        <dependency>
            <groupId>geronimo-spec</groupId>
            <artifactId>geronimo-spec-jms</artifactId>
            <version>${geronimo-spec-jms.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-ejb_2.1_spec</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.modules</groupId>
            <artifactId>geronimo-kernel</artifactId>
        </dependency>
        <dependency>
            <groupId>xml-apis</groupId>
            <artifactId>xml-apis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.rampart</groupId>
            <artifactId>rampart</artifactId>
            <type>mar</type>
            <version>${rampart.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.rampart</groupId>
            <artifactId>rahas</artifactId>
            <type>mar</type>
            <version>${rampart.version}</version>
        </dependency>
        <dependency>
        	<groupId>backport-util-concurrent</groupId>
        	<artifactId>backport-util-concurrent</artifactId>
        </dependency>        
        <!-- dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>mex</artifactId>
            <classifier>impl</classifier>
            <version>${mex.version}</version>
        </dependency-->
        <dependency>
          <groupId>org.testng</groupId>
          <artifactId>testng</artifactId>
          <version>${testng.version}</version>
          <classifier>jdk15</classifier>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>jetty</artifactId>
          <version>${jetty.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>jetty-util</artifactId>
          <version>${jetty.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>servlet-api-2.5</artifactId>
          <version>${jetty.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>com.h2database</groupId>
          <artifactId>h2</artifactId>
        </dependency>
	    <dependency>
	      <groupId>org.hibernate</groupId>
	      <artifactId>hibernate-core</artifactId>
	      <scope>test</scope>
	    </dependency>
	    <dependency>
	      <groupId>cglib</groupId>
	      <artifactId>cglib</artifactId>
	      <version>2.1_3</version>
	      <scope>test</scope>
	    </dependency>
	    <dependency>
	      <groupId>asm</groupId>
	      <artifactId>asm</artifactId>
	      <version>1.5.3</version>
	      <scope>test</scope>
	    </dependency>
	    <dependency>
	      <groupId>asm</groupId>
	      <artifactId>asm-attrs</artifactId>
	      <version>1.5.3</version>
	      <scope>test</scope>
	    </dependency>
	    
	    <!-- This is needed for rampart 1.5 -->	    
	    <dependency>
	    	<groupId>joda-time</groupId>
	    	<artifactId>joda-time</artifactId>
	    	<version>1.5.2</version>
	    </dependency>
	    <dependency>
	    	<groupId>org.opensaml</groupId>
	    	<artifactId>openws</artifactId>
	    	<version>1.2.2</version>
	    </dependency>
	    <dependency>
	    	<groupId>org.opensaml</groupId>
	    	<artifactId>xmltooling</artifactId>
	    	<version>1.2.0</version>
	    </dependency>
	    <dependency>
	    	<groupId>velocity</groupId>
	    	<artifactId>velocity</artifactId>
	    	<version>1.5</version>
	    </dependency>
	    
	    <dependency>
	      <groupId>org.springframework</groupId>
	      <artifactId>spring-test</artifactId>
	      <version>${spring.version}</version>
	      <scope>test</scope>
	    </dependency>
	    	    	    	    	    	    	            
    </dependencies>


   <build>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-dependency-plugin</artifactId>
         <executions>
           <execution>
             <id>unpack-axis2-webapp</id>
             <phase>package</phase>
             <goals>
               <goal>unpack</goal>
             </goals>
             <configuration>
               <artifactItems>
                 <artifactItem>
                   <groupId>org.apache.axis2</groupId>
                   <artifactId>axis2-webapp</artifactId>
                   <version>${axis2.version}</version>
                   <type>war</type>
                   <overWrite>false</overWrite>
                 </artifactItem>
               </artifactItems>
               <includes>axis2-web/**,WEB-INF/classes/org/**,WEB-INF/modules/*</includes>
               <outputDirectory>${project.build.directory}/axis2-webapp</outputDirectory>
               <overWriteReleases>false</overWriteReleases>
               <overWriteSnapshots>false</overWriteSnapshots>
             </configuration>
           </execution>
         </executions>
        </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>war-package</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <finalName>ode-axis2-war-${project.version}</finalName>
              <appendAssemblyId>false</appendAssemblyId>
              <descriptors>
                <descriptor>src/main/assembly/bin.xml</descriptor>
              </descriptors>
              <tarLongFileMode>gnu</tarLongFileMode>
            </configuration>
          </execution>
        </executions>
      </plugin>
	    <plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-compiler-plugin</artifactId>
		<executions>
		    <execution>
		        <id>compiler-it</id>
		        <phase>pre-integration-test</phase>
		        <goals>
		            <goal>testCompile</goal>
		        </goals>
		    </execution>
		</executions>
	    </plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>resources-it</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>testResources</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <!--doclet does not support not-found="ignore" -->
                <groupId>org.codehaus.groovy.maven</groupId>
                <artifactId>gmaven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>prepare-itests</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                        <configuration>
                            <source>${pom.basedir}/itest_setup.groovy</source>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
	                <systemPropertyVariables>
	                	<log4j.configuration>test-log4j.properties</log4j.configuration>
	                	<org.apache.ode.scheduler.deleteJobsOnStart>true</org.apache.ode.scheduler.deleteJobsOnStart>
	                	<org.apache.ode.autoRetireProcess>true</org.apache.ode.autoRetireProcess>
	                </systemPropertyVariables>
                </configuration>
                <executions>
                    <execution>
                        <id>test-axis2-web</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <argLine>-Xms512M -Xmx1024M -XX:MaxPermSize=512M</argLine>
                        	<forkMode>perTest</forkMode>
                            <additionalClasspathElements>
                                <additionalClasspathElement>${project.build.directory}</additionalClasspathElement>
                            </additionalClasspathElements>
                            <excludes>
                               <exclude>**/management/DeploymentTest.java</exclude>
                               <exclude>**/management/InstanceManagementTest.java</exclude>
							   <exclude>**/*EndpointConfigurationTest.java</exclude>
							   <exclude>**/*HttpBindingTest.java</exclude>
                               <exclude>**/rampart/basic/*Test.java</exclude>
                               <exclude>**/rampart/policy/*Test.java</exclude>
                            </excludes>
							<includes>
								<include>**/*Test.java</include>
							</includes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
     </plugins>
   </build>

</project>
