<?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>scatours</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <artifactId>scatours-contributions</artifactId>
    <packaging>pom</packaging>
    <name>Apache Tuscany SCA Tours Contributions</name>

    <modules>
        <module>blog-feed</module>
        <module>buildingblocks</module>
        <module>buildingblocks-client</module>
        <module>calendar</module>
        <module>car</module>
        <module>common</module>
        <module>creditcard-payment-jaxb</module>
        <module>creditcard-payment-jaxb-policy</module>
        <module>creditcard-payment-sdo</module>
        <module>creditcard-payment-webapp</module>
        <module>currency</module>
        <module>currency-corba</module>
        <module>currency-jms</module>
        <module>currency-jsp</module>
        <module>currency-rmi</module>
        <module>currency-servlet</module>
        <module>currency-ws</module>
        <module>databinding-client</module>
        <module>emailgateway</module>
        <module>feed-logger</module>
        <module>flight</module>
        <module>fullapp-ui</module>
        <module>fullapp-coordination</module>
        <module>fullapp-currency</module>
        <module>fullapp-packagedtrip</module>
        <module>fullapp-bespoketrip</module>
        <module>fullapp-shoppingcart</module>
        <module>help-pages</module>
        <module>hotel</module>
        <module>interaction-client</module>
        <module>interaction-service-remote</module>
        <module>introducing-client</module>
        <module>introducing-tours</module>
        <module>introducing-trips</module>
        <module>notification</module>
        <module>notification-ws</module>
        <module>notification-corba</module>
        <module>notification-ejb</module>
        <module>notification-jms</module>
        <module>notification-rmi</module>
        <module>shoppingcart</module>   
        <module>travelcatalog</module>         
        <module>tripbooking</module>
        <module>trip</module>
        <module>scatours</module>
        <module>payment-java</module>
        <module>payment-java-callback</module>
        <module>payment-java-policy</module>
        <module>payment-java-reference-pass</module>
        <module>payment-spring</module>
        <module>payment-spring-policy</module>
        <module>payment-spring-scatag</module>
        <module>payment-bpel-process</module>
        <module>payment-bpel</module>
        <module>payment-groovy</module>
        <module>payment-python</module>
        <module>policy-client</module>
        <module>trip-policy</module>
        <module>usingsca</module>
    </modules>

</project>
