<?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-tutorial-store</artifactId>
        <version>1.7-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <artifactId>tutorial-warehouse-spring</artifactId>
    <name>Apache Tuscany SCA Store Tutorial Warehouse Spring</name>

    <repositories>
       <repository>
          <id>apache.incubator</id>
          <url>http://people.apache.org/repo/m2-incubating-repository</url>
       </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-sca-api</artifactId>
            <version>1.7-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-implementation-java</artifactId>
            <version>1.7-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-binding-jms</artifactId>
            <version>1.7-SNAPSHOT</version>
        </dependency>
        
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tutorial-assets</artifactId>
            <version>1.7-SNAPSHOT</version>
        </dependency>
    </dependencies>
    
    <build>
       <finalName>${artifactId}</finalName>
       <sourceDirectory>${basedir}</sourceDirectory>
       <resources>
          <resource>
              <directory>${basedir}</directory>
              <excludes>
                  <exclude>**/*.java</exclude>
                  <exclude>**/.*/**</exclude>
                  <exclude>pom.xml</exclude>
                  <exclude>build*.xml</exclude>
                  <exclude>target/**</exclude>
              </excludes>
          </resource>
       </resources>
       <plugins>
            <plugin>
                <groupId>org.apache.tuscany.sca</groupId>
                <artifactId>tuscany-maven-ant-generator</artifactId>
                <version>1.7-SNAPSHOT</version>
                <executions>
                    <execution>
                        <configuration>
                            <pathToRootDir>../../..</pathToRootDir>
                            <buildDependencyFileOnly>true</buildDependencyFileOnly>
                        </configuration>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
       </plugins>
    </build>

</project>
