<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright 2005 The Apache Software Foundation

    Licensed 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 Implementation (Runtime)</name>
    <artifactId>jdo2-runtime</artifactId>
    <currentVersion>2.0-SNAPSHOT</currentVersion>
    <package>org.apache.jdo</package>
    <shortDescription>Java Data Object 2.0 (JDO) Runtime</shortDescription>
    <description>The Java Data Objects 2.0 (JDO) API is a standard interface-based 
Java model abstraction of persistence, developed as Java Specification 
Request JSR 243 under the auspices of the Java Community Process.</description>
    <repository />
    <!-- ============ -->
    <!-- Dependencies -->
    <!-- ============ -->
    <dependencies>
        <dependency>
            <groupId>apache-jdo</groupId>
            <artifactId>jdo2-api</artifactId>
            <version>SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>apache-jdo</groupId>
            <artifactId>jdo2-core</artifactId>
            <version>SNAPSHOT</version>
        </dependency>
        <dependency>
            <id>commons-logging</id>
            <version>1.0.4</version>
        </dependency>
        <dependency>
            <groupId>geronimo-spec</groupId>
            <artifactId>geronimo-spec-jta</artifactId>
            <version>1.0.1B-rc2</version>
        </dependency>
    </dependencies>
    <!-- =================== -->
    <!-- Build Specification -->
    <!-- =================== -->
    <build>
        <sourceDirectory>src/java</sourceDirectory>
        <!-- Exclude JDK5 specific classes in a non JDK5 environment. -->
        <sourceModifications>
            <sourceModification>
                <className>java.lang.reflect.ParameterizedType</className>
                <excludes>
                    <exclude>**/jdk5/*.java</exclude>
                </excludes>
            </sourceModification>
        </sourceModifications>
        <!-- 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}/src/java</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>
    </build>
</project>

