<?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>1.0.0-SNAPSHOT</version>
        <relativePath />
    </parent>
    
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>org.apache.aries.samples</groupId>
    <version>1.0.0-SNAPSHOT</version>
    <artifactId>samples</artifactId>
    <name>Apache Aries Samples</name>
    <packaging>pom</packaging>
  
    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/aries/trunk/samples</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/aries/trunk/samples</developerConnection>
        <url>http://svn.apache.org/viewvc/aries/trunk/samples</url>
    </scm>

    <!-- VERSIONS - PLEASE NOTE 
         All version information for the samples is maintained in this pom. The versions are used by submodules automatically 
         AND are referred to in 'filtered-resources' for each project when building (eg) assemblies. 
         At release time the Aries *-SNAPSHOT versions must be replaced with released versions of Aries components.
     -->

    <properties>
        <!-- Aries eba-maven-plugin Version -->
        <ariesEbaMavenPluginVersion>1.0.0-SNAPSHOT</ariesEbaMavenPluginVersion>

        <!-- Aries Application Versions -->
        <ariesApplicationApiVersion>1.0.0-SNAPSHOT</ariesApplicationApiVersion>
        <ariesApplicationVersion>1.0.0-SNAPSHOT</ariesApplicationVersion>
        <ariesApplicationConvertersVersion>1.0.0-SNAPSHOT</ariesApplicationConvertersVersion>
        <ariesApplicationDefaultLocalPlatformVersion>1.0.0-SNAPSHOT</ariesApplicationDefaultLocalPlatformVersion>
        <ariesApplicationDeploymentManagementVersion>1.0.0-SNAPSHOT</ariesApplicationDeploymentManagementVersion>
        <ariesApplicationInstallVersion>1.0.0-SNAPSHOT</ariesApplicationInstallVersion>
        <ariesApplicationItestInterfaceVersion>1.0.0-SNAPSHOT</ariesApplicationItestInterfaceVersion>
        <ariesApplicationManagementVersion>1.0.0-SNAPSHOT</ariesApplicationManagementVersion>
        <ariesApplicationModellerVersion>1.0.0-SNAPSHOT</ariesApplicationModellerVersion>
        <ariesApplicationNoopResolverVersion>1.0.0-SNAPSHOT</ariesApplicationNoopResolverVersion>
        <ariesApplicationObrResolverVersion>1.0.0-SNAPSHOT</ariesApplicationObrResolverVersion>
        <ariesApplicationRuntimeVersion>1.0.0-SNAPSHOT</ariesApplicationRuntimeVersion>
        <ariesApplicationRuntimeFrameworkVersion>1.0.0-SNAPSHOT</ariesApplicationRuntimeFrameworkVersion>
        <ariesApplicationRuntimeFrameworkManagementVersion>1.0.0-SNAPSHOT</ariesApplicationRuntimeFrameworkManagementVersion>
        <ariesApplicationRuntimeIsolatedVersion>1.0.0-SNAPSHOT</ariesApplicationRuntimeIsolatedVersion>
        <ariesApplicationRuntimeRepositoryVersion>1.0.0-SNAPSHOT</ariesApplicationRuntimeRepositoryVersion>
        <ariesApplicationUtilsVersion>1.0.0-SNAPSHOT</ariesApplicationUtilsVersion>

        <!-- Aries Blueprint Versions -->
        <ariesBlueprintAnnotationApiVersion>1.0.0-SNAPSHOT</ariesBlueprintAnnotationApiVersion>
        <ariesBlueprintAnnotationImplVersion>1.0.0-SNAPSHOT</ariesBlueprintAnnotationImplVersion>
        <ariesBlueprintApiVersion>1.0.0-SNAPSHOT</ariesBlueprintApiVersion>
        <ariesBlueprintVersion>1.0.0-SNAPSHOT</ariesBlueprintVersion>
        <ariesBlueprintCmVersion>1.0.0-SNAPSHOT</ariesBlueprintCmVersion>
        <ariesBlueprintCoreVersion>1.0.0-SNAPSHOT</ariesBlueprintCoreVersion>

        <!-- Aries Jmx Versions -->
        <ariesJmxiApiVersion>0.3.1-SNAPSHOT</ariesJmxiApiVersion>
        <ariesJmxBlueprintApiVersion>1.0.0-SNAPSHOT</ariesJmxBlueprintApiVersion>
        <ariesJmxBlueprintVersion>1.0.0-SNAPSHOT</ariesJmxBlueprintVersion>
        <ariesJmxBlueprintCoreVersion>1.0.0-SNAPSHOT</ariesJmxBlueprintCoreVersion>
        <ariesJmxVersion>1.0.0-SNAPSHOT</ariesJmxVersion>
        <ariesJmxCoreVersion>1.0.0-SNAPSHOT</ariesJmxCoreVersion>
        <ariesJmxWhiteboardVersion>1.0.0-SNAPSHOT</ariesJmxWhiteboardVersion>

        <!-- Aries Jndi Versions -->
        <ariesJndiApiVersion>1.0.0-SNAPSHOT</ariesJndiApiVersion>
        <ariesJndiVersion>1.0.0-SNAPSHOT</ariesJndiVersion>
        <ariesJndiCoreVersion>1.0.0-SNAPSHOT</ariesJndiCoreVersion>
        <ariesJndiLegacySupportVersion>1.0.0-SNAPSHOT</ariesJndiLegacySupportVersion>
        <ariesJndiRmiVersion>1.0.0-SNAPSHOT</ariesJndiRmiVersion>
        <ariesJndiUrlVersion>1.0.0-SNAPSHOT</ariesJndiUrlVersion>

        <!-- Aries Jpa Versions -->
        <ariesJpaApiVersion>1.0.0-SNAPSHOT</ariesJpaApiVersion>
        <ariesJpaBlueprintAriesVersion>1.0.0-SNAPSHOT</ariesJpaBlueprintAriesVersion>
        <ariesJpaContainerVersion>1.0.0-SNAPSHOT</ariesJpaContainerVersion>
        <ariesJpaContainerContextVersion>1.0.0-SNAPSHOT</ariesJpaContainerContextVersion>
        
        <!-- Aries Proxy Versions -->
        <ariesProxyApiVersion>1.0.0-SNAPSHOT</ariesProxyApiVersion>
        <ariesProxyVersion>1.0.0-SNAPSHOT</ariesProxyVersion>
        <ariesProxyImplVersion>1.0.0-SNAPSHOT</ariesProxyImplVersion>

        <!-- Aries Quiesce Versions -->
        <ariesQuiesceApiVersion>1.0.0-SNAPSHOT</ariesQuiesceApiVersion>
        <ariesQuiesceManagerVersion>1.0.0-SNAPSHOT</ariesQuiesceManagerVersion>
        

        <!-- Aries Testsupport Versions -->
        <ariesTestsupportUnitVersion>1.0.0-SNAPSHOT</ariesTestsupportUnitVersion>

        <!-- Aries Transaction Versions -->
        <ariesTransactionBlueprintVersion>1.0.0-SNAPSHOT</ariesTransactionBlueprintVersion>
        <ariesTransactionManagerVersion>1.0.0-SNAPSHOT</ariesTransactionManagerVersion>
        <ariesTransactionTestdsVersion>1.0.0-SNAPSHOT</ariesTransactionTestdsVersion>
        <ariesTransactionWrappersVersion>1.0.0-SNAPSHOT</ariesTransactionWrappersVersion>

        <!-- Aries Util Versions -->
        <ariesUtilVersion>1.0.0-SNAPSHOT</ariesUtilVersion>

        <!-- Aries Web Versions -->
        <ariesWebVersion>1.0.0-SNAPSHOT</ariesWebVersion>



        <!-- External Dependencies -->
        <cmVersion>3.2.0-v20070116</cmVersion>
        <servicesVersion>3.1.200-v20070605</servicesVersion>
        <asmVersion>3.2</asmVersion>
        <paxLoggingApiVersion>1.5.0</paxLoggingApiVersion>
        <paxLoggingServiceVersion>1.5.0</paxLoggingServiceVersion>
        <derbyVersion>10.5.3.0_1</derbyVersion>
        <commonsCollectionsVersion>3.2.1</commonsCollectionsVersion>
        <commonsLangVersion>2.5</commonsLangVersion>
        <commonsPoolVersion>1.5.4</commonsPoolVersion>
        <servicemixBundlesSerpVersion>1.13.1_2</servicemixBundlesSerpVersion>
        <servicemixBundlesCglibVersion>2.1_3_4</servicemixBundlesCglibVersion>

        <openjpaVersion>2.0.0</openjpaVersion>
        <geronimoJpaSpecVersion>1.1</geronimoJpaSpecVersion>
        <geronimoJtaSpecVersion>1.1.1</geronimoJtaSpecVersion>
        <geronimoTransactionVersion>2.1.3</geronimoTransactionVersion>
        <geronimoServletVersion>1.2</geronimoServletVersion>
        <geronimoJ2eeConnector15SpecVersion>2.0.0</geronimoJ2eeConnector15SpecVersion>
        <geronimoJsp21SpecVersion>1.0.1</geronimoJsp21SpecVersion>

        <paxWebJettyBundleVersion>0.8.1</paxWebJettyBundleVersion>
        <paxWebExtenderWarVersion>0.8.1</paxWebExtenderWarVersion>
        <paxWebJspVersion>0.8.1</paxWebJspVersion>

        <felixFileinstallVersion>3.1.4</felixFileinstallVersion>
        <felixBundleRepositoryVersion>1.6.4</felixBundleRepositoryVersion>
        <felixMainVersion>2.0.4</felixMainVersion>
        <felixShellVersion>1.4.2</felixShellVersion>
        <felixShellTuiVersion>1.4.1</felixShellTuiVersion>
        <felixEventadminVersion>1.2.2</felixEventadminVersion>
        <felixBundlerepositoryVersion>1.6.4</felixBundlerepositoryVersion>
        <felixConfigadminVersion>1.2.4</felixConfigadminVersion>
        <serpVersion>1.13.1</serpVersion>
        <javaxServletVersion>1.2</javaxServletVersion>

        <twitter4jVersion>2.0.8</twitter4jVersion>

        <aries.javadoc.exclude.packages>*</aries.javadoc.exclude.packages>
    </properties>
    
    <dependencyManagement>
        <dependencies>
            <!-- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -->
            <!-- External project dependencies -->
            <dependency>
                <groupId>asm</groupId>
                <artifactId>asm-all</artifactId>
                <version>${asmVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.main</artifactId>
                <version>${felixMainVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.configadmin</artifactId>
                <version>${felixConfigadminVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.shell</artifactId>
                <version>${felixShellVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.shell.tui</artifactId>
                <version>${felixShellTuiVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.eventadmin</artifactId>
                <version>${felixEventadminVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.web</groupId>
                <artifactId>pax-web-extender-war</artifactId>
                <version>${paxWebExtenderWarVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.web</groupId>
                <artifactId>pax-web-jetty-bundle</artifactId>
                <version>${paxWebJettyBundleVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.web</groupId>
                <artifactId>pax-web-jsp</artifactId>
                <version>${paxWebJspVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
                <version>${geronimoJ2eeConnector15SpecVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-servlet_2.5_spec</artifactId>
                <version>${geronimoServletVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jsp_2.1_spec</artifactId>
                <version>${geronimoJsp21SpecVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.components</groupId>
                <artifactId>geronimo-transaction</artifactId>
                <version>${geronimoTransactionVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jta_1.1_spec</artifactId>
                <version>${geronimoJtaSpecVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jpa_2.0_spec</artifactId>
                <version>${geronimoJpaSpecVersion}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>${javaxServletVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derby</artifactId>
                <version>${derbyVersion}</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>${openjpaVersion}</version>
            </dependency>
            <dependency>
                <groupId>net.sourceforge.serp</groupId>
                <artifactId>serp</artifactId>
                <version>${serpVersion}</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>${servicemixBundlesSerpVersion}</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>${commonsLangVersion}</version>
            </dependency>
            <dependency>
                <groupId>commons-pool</groupId>
                <artifactId>commons-pool</artifactId>
                <version>${commonsPoolVersion}</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${commonsCollectionsVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.servicemix.bundles</groupId>
                <artifactId>org.apache.servicemix.bundles.cglib</artifactId>
                <version>${servicemixBundlesCglibVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.fileinstall</artifactId>
                <version>${felixFileinstallVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.bundlerepository</artifactId>
                <version>${felixBundlerepositoryVersion}</version>
            </dependency>
             
            <dependency>
                <groupId>net.homeip.yusuke</groupId>
                <artifactId>twitter4j</artifactId>
                <version>${twitter4jVersion}</version>
            </dependency>


            <!-- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -->
            <!-- other aries subproject dependency management -->
            <!--application-->
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.api</artifactId>
                <version>${ariesApplicationApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application</artifactId>
                <version>${ariesApplicationVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.converters</artifactId>
                <version>${ariesApplicationConvertersVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.default.local.platform</artifactId>
                <version>${ariesApplicationDefaultLocalPlatformVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.deployment.management</artifactId>
                <version>${ariesApplicationDeploymentManagementVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.install</artifactId>
                <version>${ariesApplicationInstallVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.management</artifactId>
                <version>${ariesApplicationManagementVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.modeller</artifactId>
                <version>${ariesApplicationModellerVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.resolver.noop</artifactId>
                <version>${ariesApplicationNoopResolverVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.resolver.obr</artifactId>
                <version>${ariesApplicationObrResolverVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.runtime</artifactId>
                <version>${ariesApplicationRuntimeVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.runtime.framework</artifactId>
                <version>${ariesApplicationRuntimeFrameworkVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.runtime.framework.management</artifactId>
                <version>${ariesApplicationRuntimeFrameworkManagementVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.runtime.isolated</artifactId>
                <version>${ariesApplicationRuntimeIsolatedVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.runtime.itest.interfaces</artifactId>
                <version>${ariesApplicationItestInterfaceVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.runtime.repository</artifactId>
                <version>${ariesApplicationRuntimeRepositoryVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.application</groupId>
                <artifactId>org.apache.aries.application.utils</artifactId>
                <version>${ariesApplicationUtilsVersion}</version>
            </dependency>
            <!-- blueprint -->
            <dependency>
                <groupId>org.apache.aries.blueprint</groupId>
                <artifactId>org.apache.aries.blueprint.annotation.api</artifactId>
                <version>${ariesBlueprintAnnotationApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.blueprint</groupId>
                <artifactId>org.apache.aries.blueprint.annotation.impl</artifactId>
                <version>${ariesBlueprintAnnotationImplVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.blueprint</groupId>
                <artifactId>org.apache.aries.blueprint.api</artifactId>
                <version>${ariesBlueprintApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.blueprint</groupId>
                <artifactId>org.apache.aries.blueprint</artifactId>
                <version>${ariesBlueprintVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.blueprint</groupId>
                <artifactId>org.apache.aries.blueprint.cm</artifactId>
                <version>${ariesBlueprintCmVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.blueprint</groupId>
                <artifactId>org.apache.aries.blueprint.core</artifactId>
                <version>${ariesBlueprintCoreVersion}</version>
            </dependency>
            <!-- jmx -->
            <dependency>
                <groupId>org.apache.aries.jmx</groupId>
                <artifactId>org.apache.aries.jmx.api</artifactId>
                <version>1.0.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jmx</groupId>
                <artifactId>org.apache.aries.jmx.blueprint.api</artifactId>
                <version>${ariesJmxBlueprintApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jmx</groupId>
                <artifactId>org.apache.aries.jmx.blueprint</artifactId>
                <version>${ariesJmxBlueprintVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jmx</groupId>
                <artifactId>org.apache.aries.jmx.blueprint.core</artifactId>
                <version>${ariesJmxBlueprintCoreVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jmx</groupId>
                <artifactId>org.apache.aries.jmx</artifactId>
                <version>${ariesJmxVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jmx</groupId>
                <artifactId>org.apache.aries.jmx.core</artifactId>
                <version>${ariesJmxCoreVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jmx</groupId>
                <artifactId>org.apache.aries.jmx.whiteboard</artifactId>
                <version>${ariesJmxWhiteboardVersion}</version>
            </dependency>
            <!-- jndi -->
            <dependency>
                <groupId>org.apache.aries.jndi</groupId>
                <artifactId>org.apache.aries.jndi.api</artifactId>
                <version>${ariesJndiApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jndi</groupId>
                <artifactId>org.apache.aries.jndi</artifactId>
                <version>${ariesJndiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jndi</groupId>
                <artifactId>org.apache.aries.jndi.core</artifactId>
                <version>${ariesJndiCoreVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jndi</groupId>
                <artifactId>org.apache.aries.jndi.legacy.support</artifactId>
                <version>${ariesJndiLegacySupportVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jndi</groupId>
                <artifactId>org.apache.aries.jndi.rmi</artifactId>
                <version>${ariesJndiRmiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jndi</groupId>
                <artifactId>org.apache.aries.jndi.url</artifactId>
                <version>${ariesJndiUrlVersion}</version>
            </dependency>
            <!-- jpa -->
            <dependency>
                <groupId>org.apache.aries.jpa</groupId>
                <artifactId>org.apache.aries.jpa.api</artifactId>
                <version>${ariesJpaApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jpa</groupId>
                <artifactId>org.apache.aries.jpa.blueprint.aries</artifactId>
                <version>${ariesJpaBlueprintAriesVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jpa</groupId>
                <artifactId>org.apache.aries.jpa.container</artifactId>
                <version>${ariesJpaContainerVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.jpa</groupId>
                <artifactId>org.apache.aries.jpa.container.context</artifactId>
                <version>${ariesJpaContainerContextVersion}</version>
            </dependency>
            <!-- proxy -->
            <dependency>
                <groupId>org.apache.aries.proxy</groupId>
                <artifactId>org.apache.aries.proxy.api</artifactId>
                <version>${ariesProxyApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.proxy</groupId>
                <artifactId>org.apache.aries.proxy</artifactId>
                <version>${ariesProxyVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.proxy</groupId>
                <artifactId>org.apache.aries.proxy.impl</artifactId>
                <version>${ariesProxyImplVersion}</version>
            </dependency>
            <!-- quiesce -->      
            <dependency>
                <groupId>org.apache.aries.quiesce</groupId>
                <artifactId>org.apache.aries.quiesce.api</artifactId>
                <version>${ariesQuiesceApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.quiesce</groupId>
                <artifactId>org.apache.aries.quiesce.manager</artifactId>
                <version>${ariesQuiesceManagerVersion}</version>
            </dependency>
            <!-- Testsupport -->
            <dependency>
                <groupId>org.apache.aries.testsupport</groupId>
                <artifactId>org.apache.aries.testsupport.unit</artifactId>
                <version>${ariesTestsupportUnitVersion}</version>
            </dependency>
            <!-- transaction -->      
            <dependency>
                <groupId>org.apache.aries.transaction</groupId>
                <artifactId>org.apache.aries.transaction.blueprint</artifactId>
                <version>${ariesTransactionBlueprintVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.transaction</groupId>
                <artifactId>org.apache.aries.transaction.manager</artifactId>
                <version>${ariesTransactionManagerVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.transaction</groupId>
                <artifactId>org.apache.aries.transaction.testds</artifactId>
                <version>${ariesTransactionTestdsVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.transaction</groupId>
                <artifactId>org.apache.aries.transaction.wrappers</artifactId>
                <version>${ariesTransactionWrappersVersion}</version>
            </dependency>
            <!--util-->
            <dependency>
                <groupId>org.apache.aries</groupId>
                <artifactId>org.apache.aries.util</artifactId>
                <version>${ariesUtilVersion}</version>
            </dependency>
            <!-- web-->
            <dependency>
                <groupId>org.apache.aries.web</groupId>
                <artifactId>org.apache.aries.web.urlhandler</artifactId>
                <version>${ariesWebVersion}</version>
            </dependency>
            <!-- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -->
            <!-- internal samples dependencies -->
            <dependency>
                <groupId>org.apache.aries.samples.ariestrader</groupId>
                <artifactId>ariestrader</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.samples.blog</groupId>
                <artifactId>blog</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.aries.samples.blueprint</groupId>
                <artifactId>blueprint</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <modules>
        <module>blog</module>
        <module>ariestrader</module>
        <module>blueprint</module>
        <module>twitter</module>
    </modules>

</project>
