<?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-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <artifactId>tuscany-samples</artifactId>
    <packaging>pom</packaging>
    <name>Apache Tuscany SCA Samples</name>

    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>calculator-osgi</module>
                <module>dosgi-calculator</module>
                <module>dosgi-calculator-operations</module>
                <module>dosgi-dynamic-calculator</module>
                <module>dosgi-dynamic-calculator-operations</module>
                <module>calculator-scaclient</module>
                <module>helloworld</module>
                <module>helloworld-scaclient</module>
<!-- *********
    IF YOU ADD ANY SAMPLES THEN ALSO ADD THEM TO 
        distribution\all\src\main\components\bin-samples.xml
    OR THEY WONT GET IN RELEASES
     ********* -->
<!-- *********
    ALSO SAMPLES SHOULD HAVE A TEST IN itest/distribution TO 
    ENSURE THAT THEY WORK PROPERLY OUT OF A DISTRIBUTION
     ********* -->
     
                <module>helloworld-bpel</module>
                <module>helloworld-spring</module>
                <module>store</module>
                <module>store-webapp</module>                
                <module>webapps/helloworld</module>
                <module>webapps/helloworld-bpel</module>
                <module>webapps/helloworld-jaxrs</module>
                <module>webapps/helloworld-jms</module>
                <module>webapps/helloworld-js-client</module>
                <module>webapps/helloworld-jsp</module>
                <module>webapps/helloworld-stripes</module>
                <module>webapps/helloworld-servlet</module>

                <!-- contributions - SCA samples -->

                <module>binding-rmi</module>
                <module>binding-sca</module>
                <module>contribution-binding-ws-calculator</module>
                <module>contribution-implementation-java-calculator</module>

                <!-- contributions - Tuscany samples -->

                <!-- TODO -->

                <!-- contribution launchers -->

                <!-- don't need to process these as they just contain README files
                <module>launcher-command-line</module>
                <module>launcher-maven</module>
                -->
                <module>launcher-embedded-jse</module>
                <module>launcher-embedded-osgi</module>

                <!-- Application samples -->

                <!-- TODO -->

            </modules>
        </profile>
    </profiles>    

</project>
