<?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-Beta3</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>
    </dependencies>

  <modules>
                <!-- module>async-services</module removed due to hang, see TUSCANY-3886 -->
                <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>
                <module>contribution-folder</module>
                <module>contribution-zip</module>
                <module>data-copy</module>
                <module>databindings</module>
                <module>distribution</module>
                <module>exceptions</module>
                <module>implementation-spring</module>
                <module>import-export</module>
                <module>interfaces</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>  
<!-- wait until databinding-sdo is in
                <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>
