<?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-itest</artifactId>
        <version>2.0-Beta3</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <packaging>pom</packaging>
    <artifactId>itest-ws</artifactId>
    <name>Apache Tuscany SCA iTest WS</name>
    
  <modules>
    <module>defaults</module>
    <module>authentication-basic</module>
    <module>http-ssl</module>
    <module>wsdl</module>
    <module>endpoints</module>
    <module>endpoint-references</module>
    <module>holder-ws-service-multiple-outputs</module>
    <module>wspolicy</module>
<!--
    <module>jms</module>
    <module>mtom</module>
    <module>authentication-wssecurity</module>
    <module>autherization-wssecurity</module>
    <module>confidentiality-wssecurity</module>
-->
    <!-- separate test contributions from launcher -->
    <module>contribution-java-first</module>
    <module>contribution-wsdl-first</module>
    <module>contribution-callback</module>
    <module>contribution-callback-forwardspec</module>
    <module>contribution-callback-fullspec</module>
    <module>contribution-callback-promotion</module>
    <module>contribution-doc-lit</module>
    <module>contribution-doc-lit-wrapped</module>
    <module>contribution-rpc-lit</module>
    <module>external-client</module>
    <module>external-service</module>
    <module>launcher-axis2</module>
  </modules>

</project>
