<?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>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.tuscany.sca</groupId>
        <artifactId>tuscany-sca</artifactId>
        <version>1.7-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <artifactId>tuscany-itest</artifactId>
    <packaging>pom</packaging>
    <name>Apache Tuscany SCA Integration Tests</name>
    
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.5</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>2.4</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <properties>
        <was.ant.script>${basedir}/build-was-integration.xml</was.ant.script>
        <was.python.script>${basedir}/wasAdmin.py</was.python.script>
    </properties>


    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>atom</module>
                <module>bpel</module>
                <module>builder</module>
                <module>callablereferences</module>
                <module>callablereferences-ws</module>
                <module>callback-api</module>
                <module>callback-basic</module>
                <module>callback-complex-type</module>
                <module>callback-composite-scope</module>
                <module>callback-id</module>
                <module>callback-multiple-wires</module>
                <module>callback-separatethread</module>
                <module>callback-set-callback</module>
                <module>callback-set-conversation</module>
                <module>component-type</module>
                <module>concurrency</module>
                <module>contribution</module>
                <module>contribution-multiple</module>
                <module>contribution-import-export</module>
                <!-- 
                <module>contribution-classloader</module> 
                -->
                <!-- TUSCANY-3165 - waiting for OpenEJB 3.0.2 release
                <module>contribution-jee</module>
                -->
                <module>contribution-jee-samples</module>
                <module>conversations</module>
                <module>corba</module>
                <module>conversations-ws</module>
                <module>databindings</module>
                <!--module>domain</module-->
                <module>domainmgr</module>
                <module>exceptions</module>
                <module>exceptions-cross-binding</module>
                <module>exceptions-cross-binding-ws</module>
                <module>exceptions-simple-ws</module>
                <module>extended-api</module>
                <module>http-jsonrpc</module>
                <module>interfaces</module>
                <!--
                <module>interop-soap-client</module>
                <module>interop-soap-round2-client</module>
                <module>interop-soap-service</module>
                -->
                <module>java-init-exceptions</module>
                <module>jaxws</module>
                <module>jms</module>
                <module>jms-args</module>
                <module>jms-callbacks</module>
                <module>jms-definitions</module>
                <module>jms-format</module>
                <module>jms-oneway-nocf</module>
                <module>jms-noreplyto</module>
                <module>jms-nonscaclient-exceptions</module>
                <module>jms-nulls</module>
                <module>jms-selectors</module>
                <module>jms-ttl</module>
                <module>late-reference-resolution</module>
                <module>oneway</module>
                <module>operation-overloading</module>
                <module>osgi-implementation</module>
                <module>osgi-contribution</module>
                <module>policy</module>
                <module>policy-security</module>
                <module>policy-security-basicauth</module>
                <module>policy-security-jsr250</module>
                <module>policy-security-token</module>
                <module>properties</module>
                <module>recursive</module>
                <module>recursive-multi-level</module>
                <module>recursive-ws</module>
                <module>references-collection</module>
                <module>references</module>
                <module>serialization</module>
                <module>services</module>
                <module>spring</module>
                <module>scopes</module>
                <module>transaction</module>
                <module>validation</module>
                <module>wires</module>
                <module>workspace-manager</module>
                <module>wsdl</module>
                <module>wsdlgen</module>
                <module>wsdlgen-runtime</module>
                <module>wsdlgen-verify</module>
                <module>wsdlless</module>
                <module>wsdl2java</module>
                <module>wsdl-multiple</module>
                <module>ws-void-args-return</module>
           </modules>
        </profile>
        
        <!-- 
        This profile handles generation of jar/war artifacts to be used in executing tests in a web-container
        -->
        <profile>
            <id>webapp</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <!--
                <file>
                    <exists>src</exists>
                </file>
                -->
            </activation>
            
            <dependencies>
                <dependency>
	    	    <groupId>org.apache.tuscany.sca</groupId>
	    	    <artifactId>tuscany-host-webapp</artifactId>
	    	    <version>1.7-SNAPSHOT</version>
                    <scope>runtime</scope>
	    	</dependency>
                <dependency>
	    	    <groupId>org.apache.tuscany.sca</groupId>
	    	    <artifactId>tuscany-host-webapp-junit</artifactId>
	    	    <version>1.7-SNAPSHOT</version>
                    <scope>runtime</scope>
	    	</dependency>
                <dependency>
	    	    <groupId>javax.servlet</groupId>
	    	    <artifactId>servlet-api</artifactId>
	    	    <version>2.3</version>
                    <scope>provided</scope>
	    	</dependency>
	    </dependencies>    

            <modules>
                <module>callback-api</module>
                <module>callback-basic</module>
                <!--
                <module>callback-complex-type</module>
                -->
                <module>callback-id</module>
                <module>callback-multiple-wires</module>
                <module>callback-set-callback</module>
                <module>callback-set-conversation</module>
                <!--
                <module>contribution</module>
                <module>contribution-multiple</module>
                <module>contribution-import-export</module>
                <module>contribution-classloader</module>
                -->
                <module>conversations</module>
                <module>exceptions</module>
                <module>exceptions-cross-binding</module>
                <module>extended-api</module>
                <module>oneway</module>
                <module>operation-overloading</module>
                <!--
                <module>properties</module>
                <module>recursive</module>
                -->
                <module>references</module>
                <module>services</module>
                <module>component-type</module>
                <module>interfaces</module>
                <module>wires</module>
                <module>scopes</module>
            </modules>


            <build>
                <pluginManagement>
                    <plugins>
                        <!-- Skip local junit test cases -->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-surefire-plugin</artifactId>
                            <version>2.3.1</version>
                            <configuration>
                                <skip>true</skip>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>

                <plugins>

                    <!-- Create jar containing the jUnit tests -->
                    <!--
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jar-plugin</artifactId>
                        <version>2.2</version>
                        <executions>
                            <execution>
                                <configuration>
                                    <finalName>junit</finalName>
                                </configuration>
                                <phase>test</phase>
                                <goals>
                                    <goal>test-jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    -->

                    <!-- Generate web-xml -->
                    <plugin>
                        <groupId>org.apache.tuscany.sca</groupId>
                        <artifactId>tuscany-maven-web-junit</artifactId>
                        <version>1.7-SNAPSHOT</version>
                        <executions>
                            <execution>
                                <id>generate-web-xml</id>
                                <phase>process-resources</phase>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                    <!-- Create war and include jUnit test classes -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>2.0.2</version>
                        <configuration>
                            <primaryArtifact>false</primaryArtifact>
                            <!-- Exclude a few jars to avoid conflicts -->
                            <warSourceExcludes>WEB-INF/lib/tuscany-host-tomcat-*.jar,WEB-INF/lib/tuscany-host-jetty-*.jar,servlet-api-*.jar, WEB-INF/lib/catalina*.jar,WEB-INF/classes/META-INF/sca-contribution*.xml</warSourceExcludes>
                            <webResources>
                                <!-- Add the tests jar into the WAR -->
                                <!--
                                <resource>
                                    <directory>${project.build.directory}</directory>
                                    <includes>
                                        <include>*-tests.jar</include>
                                    </includes>
                                    <targetPath>WEB-INF/lib</targetPath>
                                </resource>
                                -->

                                <resource>
                                    <directory>${project.build.directory}/test-classes</directory>
                                    <targetPath>WEB-INF/classes</targetPath>
                                </resource>

                                <resource>
                                    <directory>${project.build.directory}/classes/META-INF</directory>
                                    <includes>
                                        <include>sca-contribution*.xml</include>
                                    </includes>
                                    <targetPath>META-INF</targetPath>
                                </resource>

                                <!-- Add the junit -->
                                <resource>
                                    <directory>${settings.localRepository}/junit/junit/4.2</directory>
                                    <includes>
                                        <include>junit-4.2.jar</include>
                                    </includes>
                                    <targetPath>WEB-INF/lib</targetPath>
                                </resource>

                            </webResources>
                        </configuration>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>war</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>tomcat</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <!--
                <file>
                    <exists>src</exists>
                </file>
                -->
            </activation>
           <properties>
               <http.port>8085</http.port>
               <http.base>http://127.0.0.1:${http.port}</http.base>
               <tomcat.home>${env.CATALINA_HOME}</tomcat.home>
           </properties>

            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.tuscany.sca</groupId>
                        <artifactId>tuscany-maven-web-junit</artifactId>
                        <version>1.7-SNAPSHOT</version>
                        <executions>
                            <execution>
                                <id>generate-web-xml</id>
                                <phase>process-resources</phase>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>web-junit-test</id>
                                <configuration>
                                    <url>${http.base}/${project.build.finalName}/junit?op=runAll</url>
                                </configuration>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.cargo</groupId>
                        <artifactId>cargo-maven2-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>start-container</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>start</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>stop-container</id>
                                <phase>post-integration-test</phase>
                                <goals>
                                    <goal>stop</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <container>
                                <containerId>tomcat5x</containerId>
                                <type>installed</type>
                                <home>${tomcat.home}</home>
                                <systemProperties>
                                    <org.apache.commons.logging.Log>
                                        org.apache.commons.logging.impl.SimpleLog
                                    </org.apache.commons.logging.Log>
                                </systemProperties>
                            </container>
                            <wait>false</wait>
                            <configuration>
                                <properties>
                                    <cargo.servlet.port>${http.port}</cargo.servlet.port>
                                </properties>
                                <deployables>
                                    <deployable>
                                        <location>${project.build.directory}/${project.build.finalName}.war</location>
                                        <pingURL>${http.base}/${project.build.finalName}/junit?op=list</pingURL>
                                        <type>war</type>
                                    </deployable>
                                </deployables>
                                <home>${project.build.directory}/cargo-tomcat</home>
                            </configuration>
                        </configuration>

                    </plugin>
                </plugins>
            </build>
        </profile>


        <profile>
            <id>jetty</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <!--
                <file>
                    <exists>src</exists>
                </file>
                -->
            </activation>
           <properties>
               <http.port>8085</http.port>
               <http.base>http://127.0.0.1:${http.port}</http.base>
               <jetty.home>${env.JETTY_HOME}</jetty.home>
           </properties>

            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.tuscany.sca</groupId>
                        <artifactId>tuscany-maven-web-junit</artifactId>
                        <version>1.7-SNAPSHOT</version>
                        <executions>
                            <execution>
                                <id>generate-web-xml</id>
                                <phase>process-resources</phase>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>web-junit-test</id>
                                <configuration>
                                    <url>${http.base}/${project.build.finalName}/junit?op=runAll</url>
                                </configuration>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.cargo</groupId>
                        <artifactId>cargo-maven2-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>start-container</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>start</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>stop-container</id>
                                <phase>post-integration-test</phase>
                                <goals>
                                    <goal>stop</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <container>
                                <containerId>jetty6x</containerId>
                                <type>embedded</type>
                                <home>${jetty.home}</home>
                                <systemProperties>
                                    <org.apache.commons.logging.Log>
                                        org.apache.commons.logging.impl.SimpleLog
                                    </org.apache.commons.logging.Log>
                                </systemProperties>
                            </container>
                            <wait>false</wait>
                            <configuration>
                                <properties>
                                    <cargo.servlet.port>${http.port}</cargo.servlet.port>
                                </properties>
                                <deployables>
                                    <deployable>
                                        <location>${project.build.directory}/${project.build.finalName}.war</location>
                                        <pingURL>${http.base}/${project.build.finalName}/junit?op=list</pingURL>
                                        <type>war</type>
                                    </deployable>
                                </deployables>
                                <home>${project.build.directory}/cargo-jetty</home>
                            </configuration>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>geronimo</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <!--
                <file>
                    <exists>${geronimo.home}</exists>
                </file>
                -->
            </activation>
            <properties>
                <http.port>8080</http.port>
                <http.base>http://127.0.0.1:${http.port}</http.base>
                <geronimo.home>${env.GERONIMO_HOME}</geronimo.home>
            </properties>

            <build>
                <plugins>
                    <!-- Generate web-xml and geronimo deployment descriptor -->
                    <plugin>
                        <groupId>org.apache.tuscany.sca</groupId>
                        <artifactId>tuscany-maven-web-junit</artifactId>
                        <version>1.7-SNAPSHOT</version>
                        <executions>
                            <execution>
                                <id>generate-web-xml</id>
                                <configuration>
                                    <geronimo>true</geronimo>
                                </configuration>
                                <phase>process-resources</phase>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>web-junit-test</id>
                                <configuration>
                                    <url>${http.base}/${project.build.finalName}/junit?op=runAll</url>
                                </configuration>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.geronimo.plugins</groupId>
                        <artifactId>geronimo-maven-plugin</artifactId>
                        <version>2.1.1</version>
                        <configuration>
                            <geronimoHome>${geronimo.home}</geronimoHome>
                        </configuration>
                        <executions>
                            <execution>
                                <id>start-container</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>start</goal>
                                </goals>
                                <configuration>
                                    <background>true</background>
                                </configuration>
                            </execution>
                            <execution>
                                <id>deploy-war</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>deploy</goal>
                                </goals>
                                <configuration>
                                    <moduleArchive>${project.build.directory}/${project.build.finalName}.war</moduleArchive>
                                </configuration>
                            </execution>
                            <execution>
                                <id>undeploy-war</id>
                                <phase>post-integration-test</phase>
                                <goals>
                                    <goal>undeploy</goal>
                                </goals>
                                <configuration>
                                    <moduleId>${groupId}/${artifactId}/${version}/war</moduleId>
                                </configuration>
                            </execution>
                            <execution>
                                <id>stop-container</id>
                                <phase>post-integration-test</phase>
                                <goals>
                                    <goal>stop</goal>
                                </goals>
                                <configuration>
                                    <username>system</username>
                                    <password>manager</password>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>websphere</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <http.port>8080</http.port>
                <http.base>http://127.0.0.1:${http.port}</http.base>
                <websphere.home>${env.WAS_HOME}</websphere.home>
            </properties>

            <build>
                <plugins>
                    <!-- Generate web-xml and geronimo deployment descriptor -->
                    <plugin>
                        <groupId>org.apache.tuscany.sca</groupId>
                        <artifactId>tuscany-maven-web-junit</artifactId>
                        <version>1.7-SNAPSHOT</version>
                        <executions>
                            <execution>
                                <id>generate-web-xml</id>
                                <phase>process-resources</phase>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>web-junit-test</id>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                                <configuration>
                                    <url>${http.base}/${project.build.finalName}/junit?op=runAll</url>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

		    <!--WAS ant integration -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.1</version>
                        <executions>
                            <!-- start Websphere server -->
                            <execution>
                                <id>start-container</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
	                        <configuration>
	                            <tasks>
	                                <ant antfile="${was.ant.script}" target="startServer"/>
	                            </tasks>
	                        </configuration>
	                    </execution>
                            <!-- Deploy war application -->
                            <execution>
                                <id>deploy-war</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
	                        <configuration>
	                            <tasks>
	                                <ant antfile="${was.ant.script}" target="installApplication">
                                            <property name="was.python.script" value="${was.python.script}"/>
                                            <property name="application.war" value="${project.build.directory}/${project.build.finalName}.war"/>
                                            <property name="application.name" value="${project.build.finalName}.war"/>
                                            <property name="application.contextRoot" value="${project.build.finalName}"/>
                                            <property name="application.server" value="server1"/>
                                        </ant>
	                            </tasks>
	                        </configuration>
                            </execution>
                            <!-- unDeploy war application -->
                            <execution>
                                <id>undeploy-war</id>
                                <phase>post-integration-test</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
	                        <configuration>
	                            <tasks>
	                                <ant antfile="${was.ant.script}" target="uninstallApplication">
                                            <property name="was.python.script" value="${was.python.script}"/>
                                            <property name="application.name" value="${project.build.finalName}.war"/>
                                        </ant>
	                            </tasks>
	                        </configuration>
                            </execution>
                            <!-- Stop Websphere server -->
                            <execution>
                                <id>stop-container</id>
                                <phase>post-integration-test</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
	                        <configuration>
	                            <tasks>
	                                <ant antfile="${was.ant.script}" target="stopServer"/>
	                            </tasks>
	                        </configuration>
                            </execution>

                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>


    </profiles>

</project>
