<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <parent>
        <groupId>org.apache.aries</groupId>
        <artifactId>java5-parent</artifactId>
        <version>0.1-incubating</version>
    </parent>
    
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>org.apache.aries.samples</groupId>
    <version>0.2-incubating-SNAPSHOT</version>
    <artifactId>samples</artifactId>
    <name>Apache Aries Samples</name>
    <packaging>pom</packaging>
  
    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/incubator/aries/branches/0.1-incubating-RCx/samples</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/aries/branches/0.1-incubating-RCx/samples</developerConnection>
        <url>http://svn.apache.org/viewvc/incubator/aries/branches/0.1-incubating-RCx/samples</url>
    </scm>

    <properties>
        <ariesApplicationVersion>0.1-incubating</ariesApplicationVersion>
        <ariesBlueprintVersion>0.1-incubating</ariesBlueprintVersion>
        <ariesJmxVersion>0.1-incubating</ariesJmxVersion>
        <ariesJndiVersion>0.1-incubating</ariesJndiVersion>
        <ariesJpaVersion>0.1-incubating</ariesJpaVersion>
        <ariesTransactionVersion>0.1-incubating</ariesTransactionVersion>
        <ariesUtilVersion>0.1-incubating</ariesUtilVersion>
        <ariesWebVersion>0.1-incubating</ariesWebVersion>
        <openjpaVersion>2.0.0-beta3</openjpaVersion>
    </properties>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.main</artifactId>
                <version>2.0.4</version>
            </dependency>

            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.shell</artifactId>
                <version>1.4.2</version>
            </dependency>

            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.shell.tui</artifactId>
                <version>1.4.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.eventadmin</artifactId>
                <version>1.2.2</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.web</groupId>
                <artifactId>pax-web-extender-war</artifactId>
                <version>0.7.2</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.web</groupId>
                <artifactId>pax-web-jetty-bundle</artifactId>
                <version>0.7.2</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.web</groupId>
                <artifactId>pax-web-jsp</artifactId>
                <version>0.7.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
                <version>2.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-servlet_2.5_spec</artifactId>
                <version>1.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jsp_2.1_spec</artifactId>
                <version>1.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jta_1.1_spec</artifactId>
                <version>1.1.1</version>
            </dependency>
<!--
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jpa_1.0_spec</artifactId>
                <version>1.1.2</version>
            </dependency>
-->
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jpa_2.0_spec</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derby</artifactId>
                <version>10.5.3.0_1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.openjpa</groupId>
                <artifactId>openjpa</artifactId>
                <version>${openjpaVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.openjpa</groupId>
                <artifactId>openjpa-persistence-jdbc</artifactId>
                <version>2.0.0-beta3</version>
            </dependency>
            <dependency>
                <groupId>net.sourceforge.serp</groupId>
                <artifactId>serp</artifactId>
                <version>1.13.1</version>
            </dependency>
            <!-- bundle version of serp necessary for equinox assembly using openjpa -->
            <dependency>
                <groupId>org.apache.servicemix.bundles</groupId>
                <artifactId>org.apache.servicemix.bundles.serp</artifactId>
                <version>1.13.1_2</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.5</version>
            </dependency>
            <dependency>
                <groupId>commons-pool</groupId>
                <artifactId>commons-pool</artifactId>
                <version>1.5.4</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>3.2.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.servicemix.bundles</groupId>
                <artifactId>org.apache.servicemix.bundles.cglib</artifactId>
                <version>2.1_3_4</version>
            </dependency>
            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.fileinstall</artifactId>
                <version>2.0.8</version>
            </dependency>

            <!-- other aries subproject dependency management -->
            <dependency>
                <groupId>org.apache.aries</groupId>
                <artifactId>org.apache.aries.util</artifactId>
                <version>${ariesUtilVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>application</artifactId>
                <version>${ariesApplicationVersion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.blueprint</groupId>
                <artifactId>blueprint</artifactId>
                <version>${ariesBlueprintVersion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jmx</groupId>
                <artifactId>jmx</artifactId>
                <version>${ariesJmxVersion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jndi</groupId>
                <artifactId>jndi</artifactId>
                <version>${ariesJndiVersion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jpa</groupId>
                <artifactId>jpa</artifactId>
                <version>${ariesJpaVersion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.transaction</groupId>
                <artifactId>transaction</artifactId>
                <version>${ariesTransactionVersion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.web</groupId>
                <artifactId>web</artifactId>
                <version>${ariesWebVersion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- internal dependencies -->
            <dependency>
                <groupId>org.apache.aries.samples.ariestrader</groupId>
                <artifactId>ariestrader</artifactId>
                <version>${version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.samples.blog</groupId>
                <artifactId>blog</artifactId>
                <version>${version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.samples.blueprint</groupId>
                <artifactId>blueprint</artifactId>
                <version>${version}</version>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <modules>
        <module>ariestrader</module>
        <module>blog</module>
        <module>blueprint</module>
    </modules>

</project>
