<?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>
    <pomVersion>3</pomVersion>
    <extend>../project.xml</extend>
    <!-- ============== -->
    <!-- Identification -->
    <!-- ============== -->
    <name>JDO2 API</name>
    <groupId>javax.jdo</groupId>
    <artifactId>jdo2-api</artifactId>
    <currentVersion>2.1.1</currentVersion>
    <package>javax.jdo</package>
    <shortDescription>Java Data Objects 2 (JDO) API</shortDescription>
    <description>The Java Data Objects 2 (JDO) API is a standard interface-based 
Java model abstraction of persistence, developed as Java Specification 
Request 243 under the auspices of the Java Community Process.</description>
    <!-- ============ -->
    <!-- Dependencies -->
    <!-- ============ -->
    <dependencies>
        <dependency>
            <groupId>javax.transaction</groupId>
            <artifactId>transaction-api</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.7.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jpa_3.0_spec</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>
    <!-- =================== -->
    <!-- Build Specification -->
    <!-- =================== -->
    <build>
        <sourceDirectory>src/java</sourceDirectory>
        <unitTestSourceDirectory>test/java</unitTestSourceDirectory>
        <!-- Unit test cases -->
        <unitTest>
            <includes>
                <include>**/*Test.java</include>
            </includes>
            <excludes>
                <exclude>javax/jdo/util/AbstractTest.java</exclude>
                <exclude>javax/jdo/pc/*.java</exclude>
            </excludes>
            <resources>
                <resource>
                <directory>${basedir}/test/schema</directory>
                <includes>
                    <include>**/*.jdo</include>
                    <include>**/*.jdoquery</include>
                    <include>**/*.orm</include>
                    <include>**/jdoconfig.xml</include>
                </includes>
                </resource>
            </resources>
        </unitTest>
        <defaultGoal>jar:install</defaultGoal>

        <!-- J A R  R E S O U R C E S -->
        <!-- Resources that are packaged up inside the JAR file -->
        <resources>
            <resource>
                <directory>${basedir}/..</directory>
                <targetPath>META-INF</targetPath>
                <includes>
                    <include>NOTICE.txt</include>
                </includes>
            </resource>
            <resource>
                <directory>${basedir}/src/java</directory>
                <includes>
                    <include>javax/jdo/*.properties</include>
                </includes>
            </resource>
            <resource>
                <directory>${basedir}/src/schema</directory>
                <includes>
                    <include>javax/jdo/*.dtd</include>
                    <include>javax/jdo/*.xsd</include>
                </includes>
            </resource>
        </resources>
    </build>
</project>

