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

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.aries</groupId>
        <artifactId>parent</artifactId>
        <version>2.0.0</version>
        <relativePath>../parent/pom.xml</relativePath>
    </parent>

    <groupId>org.apache.aries.samples</groupId>
    <version>1.0.1-SNAPSHOT</version>
    <artifactId>samples</artifactId>
    <name>Apache Aries Samples</name>
    <packaging>pom</packaging>

    <scm>
        <connection>scm:git:https://gitbox.apache.org/repos/asf/aries.git</connection>
        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/aries.git</developerConnection>
        <url>https://gitbox.apache.org/repos/asf?p=aries.git;a=summary</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. 
     -->

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

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

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

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

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

        <!-- Aries Jpa Versions -->
        <ariesJpaApiVersion>1.0.0</ariesJpaApiVersion>
        <ariesJpaBlueprintAriesVersion>1.0.0</ariesJpaBlueprintAriesVersion>
        <ariesJpaContainerVersion>1.0.0</ariesJpaContainerVersion>
        <ariesJpaContainerContextVersion>1.0.0</ariesJpaContainerContextVersion>

        <!-- Aries Proxy Versions -->
        <ariesProxyApiVersion>1.0.0</ariesProxyApiVersion>
        <ariesProxyVersion>1.0.0</ariesProxyVersion>
        <ariesProxyImplVersion>1.0.0</ariesProxyImplVersion>

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


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

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

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

        <!-- Aries Web Versions -->
        <ariesWebVersion>1.0.0</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.10</twitter4jVersion>

        <aries.javadoc.exclude.packages>*</aries.javadoc.exclude.packages>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- 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>

            <!-- 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</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>

            <!-- 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>
