<?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.    
-->

<!-- $Rev$ $Date$ -->

<project>
    <parent>
        <groupId>org.apache.tuscany.sca</groupId>
        <artifactId>itest-databindings</artifactId>
        <version>2.0-Beta1</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>itest-databindings-jaxb-top-down</artifactId>
    <version>2.0-Beta1</version>
    <name>Apache Tuscany SCA iTest Databinding - JAXB Top Down</name>

    <repositories>
        <repository>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <id>java.net</id>
            <name>java.net Maven 1.x Repository</name>
            <url>http://download.java.net/maven/1</url>
            <layout>legacy</layout>
        </repository>
        <repository>
            <id>java.net2</id>
            <name>java.net Maven 2.x Repository</name>
            <url>http://download.java.net/maven/2</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>java.net2</id>
            <name>java.net Maven 2.x Repository</name>
            <url>http://download.java.net/maven/2</url>
        </pluginRepository>
    </pluginRepositories>

    <dependencies>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-node-api</artifactId>
            <version>${pom.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-node-impl</artifactId>
            <version>${pom.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
            <version>2.0-Beta1</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-databinding-jaxb</artifactId>
            <version>2.0-Beta1</version>
            <scope>runtime</scope>
        </dependency>
        <!--dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-databinding-sdo</artifactId>
            <version>2.0-Beta1</version>
            <scope>compile</scope>
        </dependency-->
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-databinding-axiom</artifactId>
            <version>2.0-Beta1</version>
            <scope>compile</scope>
        </dependency>
        <!-- dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>itest-databindings-common</artifactId>
            <version>2.0-Beta1</version>
            <scope>compile</scope>
        </dependency -->
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-implementation-java-runtime</artifactId>
            <version>2.0-Beta1</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-interface-java</artifactId>
            <version>2.0-Beta1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-host-jetty</artifactId>
            <version>2.0-Beta1</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.1</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>jaxws-rt</artifactId>
            <version>2.1.3</version>
        </dependency>
        <!-- Added by Simon Nash    -->
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.1</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
            <scope>provided</scope>
        </dependency>
        <!-- End of addition   -->        
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <argLine>-Djava.endorsed.dirs=target/endorsed</argLine>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax.xml.ws</groupId>
                                    <artifactId>jaxws-api</artifactId>
                                    <version>2.1</version>
                                    <type>jar</type>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>javax.xml.bind</groupId>
                                    <artifactId>jaxb-api</artifactId>
                                    <version>2.1</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                            <outputDirectory>${project.build.directory}/endorsed</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>true</overWriteSnapshots>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
