<?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-tutorials</artifactId>
        <version>1.7-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <artifactId>tuscany-tutorial-store</artifactId>
    <packaging>pom</packaging>
    <name>Apache Tuscany SCA Store Tutorial</name>

    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>domain</module>
                <module>assets</module>
                <module>store</module>
                <module>store-merger</module>
                <module>store-client</module>
                <module>store-db</module>
                <module>store-supplier</module>
                <module>store-market</module>
                <module>store-eu</module>
                <module>store-mashup</module>
                <module>store-enterprise</module>
                <module>warehouse-spring</module>
                <module>web-services</module>
                <module>catalog-webapp</module>
                <module>catalog-ejb</module>
                <module>catalog-mediation</module>
                <module>store-test</module>
            </modules>
        </profile>

    </profiles>

</project>
