<?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>2.0.1-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.8.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
           <groupId>org.codehaus.woodstox</groupId>
           <artifactId>wstx-asl</artifactId>
           <version>3.2.9</version>
           <scope>test</scope>
       </dependency>
    </dependencies>

  <modules>
                <!-- TUSCANY-4029 module>async-services</module  -->
                <module>base</module>
                <module>builder</module>
                <module>bpel</module>
                <module>callback-api</module>
                <module>callback-basic</module>
                <module>callback-complex-type</module>
                <module>callback-multiple-wires</module>
                <module>callback-separatethread</module>
                <module>callback-two-composites</module>
                <module>callback-two-nodes</module>
                <module>component-type</module>
<!-- new test waiting for context discussion to bottom out
                <module>context</module>
-->
                <module>contribution-doc-lit-disablewrapped</module>
                <module>contribution-folder</module>
                <module>contribution-zip</module>
                <module>data-copy</module>
                <module>databindings</module>
                <module>distribution</module>
                <module>domain-node-hazelcast</module>
                <module>exceptions</module>
                <module>implementation-composite</module>
                <module>implementation-spring</module>
                <module>import-export</module>
                <module>interfaces</module>
                <module>interface-matching</module>
                <module>java-lifecycle-exceptions</module>
                <module>jms</module>
                <module>lifecycle</module>
                <module>nodes</module>
                <module>node-launcher-equinox</module>
                <module>oneway</module>
<!-- why commented out?
                <module>operation-overloading</module>
-->
                <module>policy</module>
                <module>policies</module>
                <module>policy-transaction</module>  
                <module>properties</module>
                <module>recursive-multi-level</module>
                <module>references</module>
                <module>scaclient-api</module>
<!-- TUSCANY-3424 - SCAClient in JSE with OSGi runtime not yet supported
                <module>scaclient-api-jse-osgi</module>
-->
                <module>scaclient-api-osgi</module>
                <module>scaclient-api-remote</module>
                <module>scopes</module>
                <module>scdl</module>
                <module>services</module>
                <module>service-reference</module>
                <!-- module>spi</module -->
                <module>wires</module>              
                <module>ws</module>
                <module>ws-jaxws</module>
                <module>async-interactions</module>
                <module>scabindingmapper</module>
  </modules>

  <!-- We don't want to deploy any of the test modules -->
  <properties>
     <maven.deploy.skip>true</maven.deploy.skip>
  </properties>

  <build>
     <plugins>
        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-deploy-plugin</artifactId>
           <configuration>
              <skip>true</skip>
           </configuration>
        </plugin>
     </plugins>
  </build>

</project>
