<?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-M5.1</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>base</module>
                <module>builder</module>
                <module>bpel</module>
                <module>callback-api</module>
                <module>callback-basic</module>
                <module>callback-basic-ws</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>
<!-- why commented out?              
                <module>definitions-multiple</module>
-->
                <module>databindings</module>
                <module>distribution</module>
                <module>exceptions</module>
                <module>implementation-spring</module>
                <module>import-export</module>
                <module>interfaces</module>
                <module>jms</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>wires</module>              
                <module>ws</module>
                <module>ws-jaxws</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>
