<?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/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>17</version>
        <relativePath></relativePath> <!-- prevent loading of ../pom.xml as the "parent" -->
    </parent>

    <groupId>org.apache.brooklyn</groupId>
    <artifactId>brooklyn-server</artifactId>
    <version>0.10.0-SNAPSHOT</version>  <!-- BROOKLYN_VERSION -->
    <packaging>pom</packaging>

    <name>Brooklyn Server Root</name>
    <description>
        Brooklyn Server project root, serving as the ancestor POM for all projects --
        declaring versions, profiles, and the modules to build
    </description>
    <url>https://brooklyn.apache.org/</url>
    <inceptionYear>2012</inceptionYear>

    <developers>
        <!-- TODO update with PMC members and committers -->
    </developers>

    <scm>
        <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-brooklyn.git</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-brooklyn.git</developerConnection>
        <url>https://git-wip-us.apache.org/repos/asf?p=incubator-brooklyn.git</url>
        <tag>HEAD</tag>
    </scm>

    <issueManagement>
        <system>JIRA</system>
        <url>https://issues.apache.org/jira/browse/BROOKLYN</url>
    </issueManagement>
    <ciManagement>
        <system>Jenkins</system>
        <url>https://builds.apache.org/job/incubator-brooklyn-master-build/</url>
    </ciManagement>
    <mailingLists>
        <mailingList>
            <name>Brooklyn Developer List</name>
            <subscribe>dev-subscribe@brooklyn.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@brooklyn.apache.org</unsubscribe>
            <post>dev@brooklyn.apache.org</post>
            <archive>
                http://mail-archives.apache.org/mod_mbox/brooklyn-dev/
            </archive>
        </mailingList>
    </mailingLists>

    <properties>
        <brooklyn.version>0.10.0-SNAPSHOT</brooklyn.version>  <!-- BROOKLYN_VERSION -->

        <org.osgi.core.version>6.0.0</org.osgi.core.version>

        <!-- Compilation -->
        <java.version>1.7</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <!-- Dependency Configuration -->
        <jclouds.groupId>org.apache.jclouds</jclouds.groupId> <!-- JCLOUDS_GROUPID_VERSION -->

        <!-- Testing Configuration -->
        <includedTestGroups />
        <excludedTestGroups>Integration,Acceptance,Live,Live-sanity,WIP,Broken</excludedTestGroups>
        <surefire.failIfNoSpecifiedTests>false</surefire.failIfNoSpecifiedTests>

        <!-- Dependency Versions -->
        <jclouds.version>1.9.2</jclouds.version> <!-- JCLOUDS_VERSION -->
        <logback.version>1.0.7</logback.version>
        <slf4j.version>1.6.6</slf4j.version>  <!-- used for java.util.logging jul-to-slf4j interception -->
        <!-- Must match jclouds' version. From jclouds 1.9.3+ can be any version in the range [16-20) -->
        <guava.version>16.0.1</guava.version>
        <!-- This can be different, OSGi will pick it up -->
        <guava-swagger.version>18.0</guava-swagger.version>
        <xstream.version>1.4.8</xstream.version>
        <xpp3.servicemix.version>1.1.4c_7</xpp3.servicemix.version>
        <kxml2.servicemix.version>2.3.0_3</kxml2.servicemix.version>
        <!-- double-check downstream projects before changing jackson and resteasy versions -->
        <fasterxml.jackson.version>2.4.5</fasterxml.jackson.version>
        <resteasy.version>3.0.8.Final</resteasy.version>
        <cxf.version>3.1.4</cxf.version>
        <httpclient.version>4.4.1</httpclient.version>
        <commons-lang3.version>3.3.2</commons-lang3.version>
        <groovy.version>2.3.7</groovy.version> <!-- Version supported by https://github.com/groovy/groovy-eclipse/wiki/Groovy-Eclipse-2.9.1-Release-Notes -->
        <jsr305.version>2.0.1</jsr305.version>
        <snakeyaml.version>1.11</snakeyaml.version>
        <!-- Next version of swagger requires changes to how path mapping and scanner injection are done. -->
        <swagger.version>1.5.6</swagger.version>
        <jansi.version>1.2.1</jansi.version>
        <gson.version>2.3</gson.version>
        <ivy.version>2.2.0</ivy.version>
        <mx4j.version>3.0.1</mx4j.version>
        <bouncycastle.version>1.49</bouncycastle.version>
        <sshj.version>0.8.1</sshj.version>
        <felix.framework.version>5.4.0</felix.framework.version>
        <reflections.version>0.9.9-RC1</reflections.version>
        <jetty.version>9.2.13.v20150730</jetty.version>
        <jetty-schemas.version>3.1.M0</jetty-schemas.version>
        <airline.version>0.6</airline.version>
        <mockwebserver.version>20121111</mockwebserver.version>
        <freemarker.version>2.3.22</freemarker.version>
        <commons-io.version>2.4</commons-io.version>
        <jsonPath.version>2.0.0</jsonPath.version>
        <commons-compress.version>1.4</commons-compress.version>
        <validation-api.version>1.1.0.Final</validation-api.version>
        <geronimo-jms_1.1_spec.version>1.1.1</geronimo-jms_1.1_spec.version>
        <geronimo-jta_1.1_spec.version>1.1.1</geronimo-jta_1.1_spec.version>
        <sleepycat-je.version>5.0.34</sleepycat-je.version>
        <commons-cli.version>1.2</commons-cli.version>
        <astyanax.version>3.8.0</astyanax.version>
        <jcouchdb.version>0.11.0-1</jcouchdb.version>
        <solr.version>4.7.0</solr.version>
        <jtidy.version>r8-20060801</jtidy.version>
        <opendmk_jmxremote_optional_jar.version>1.0-b01-ea</opendmk_jmxremote_optional_jar.version>
        <jopt.version>4.3</jopt.version>
        <concurrentlinkedhashmap.version>1.0_jdk5</concurrentlinkedhashmap.version>
        <javax-servlet.version>3.1.0</javax-servlet.version>
        <javax-servlet-jsp.version>2.0</javax-servlet-jsp.version>
        <jcommander.version>1.27</jcommander.version>
        <xml-apis.version>1.0.b2</xml-apis.version>
        <jsr250-api.version>1.0</jsr250-api.version>
        <guice.version>3.0</guice.version>
        <javax-inject.version>1</javax-inject.version>
        <aopalliance.version>1.0</aopalliance.version>
        <commons-configuration.version>1.7</commons-configuration.version>
        <commons-lang.version>2.4</commons-lang.version>
        <hamcrest.version>1.1</hamcrest.version>
        <jax-rs-api.version>2.0.1</jax-rs-api.version>
        <maxmind.version>0.8.1</maxmind.version>
        <maxmind-db.version>0.3.4</maxmind-db.version>
        <jna.version>4.0.0</jna.version>
        <winrm4j.version>0.3.5</winrm4j.version>
        <karaf.version>4.0.4</karaf.version>
        <felix-osgi-compendium.version>1.4.0</felix-osgi-compendium.version>
        <!-- Transitive dependencies, declared explicitly to avoid version mismatch -->
        <clojure.version>1.4.0</clojure.version>
        <zookeeper.version>3.3.4</zookeeper.version>
        <ring-core.version>1.1.5</ring-core.version>
        <clj-time.version>0.4.1</clj-time.version>
        <commons-codec.version>1.9</commons-codec.version>
        <log4j.version>1.2.17</log4j.version>
        <commons-logging.version>1.2</commons-logging.version>
        <jline.version>2.12</jline.version>
        <jsonSmart.version>2.1.1</jsonSmart.version>
        <minidev.asm.version>1.0.2</minidev.asm.version>
        <commons-beanutils.version>1.9.1</commons-beanutils.version>
        <commons-collections.version>3.2.1</commons-collections.version>

        <!-- Testing Dependency Versions -->
        <testng.version>6.8.8</testng.version>
        <mockito.version>1.10.8</mockito.version>
        <assertj.version>2.2.0</assertj.version> <!-- v 2.2.0 is being used as v 3.20 introduces Java8 dependencies-->
        <cobertura.plugin.version>2.7</cobertura.plugin.version>
        <surefire.version>2.18.1</surefire.version>
        <plantuml.version>6121</plantuml.version>
        <ant.version>1.8.4</ant.version>

        <!-- Build Tool Versions -->
        <maven-war-plugin.version>2.4</maven-war-plugin.version>
        <maven-dependency-plugin.version>2.8</maven-dependency-plugin.version>
        <maven-replacer-plugin.version>1.5.2</maven-replacer-plugin.version>
        <nodejs-maven-plugin.version>1.0.3</nodejs-maven-plugin.version>
        <nodejs-maven-binaries.version>0.10.25</nodejs-maven-binaries.version>
        <jasmine-maven-plugin.version>1.3.1.5</jasmine-maven-plugin.version>
        <requirejs-maven-plugin.version>2.0.0</requirejs-maven-plugin.version>
        <maven-antrun-plugin.version>1.7</maven-antrun-plugin.version>

    </properties>

    <modules>
        <module>parent</module>

        <module>api</module>
        <module>camp</module>
        <module>core</module>
        <module>policy</module>

        <module>locations/jclouds</module>

        <module>software/base</module>
        <module>software/winrm</module>

        <module>storage/hazelcast</module>

        <module>server-cli</module>
        <module>launcher-common</module>
        <module>launcher</module>
        <module>logging/logback-includes</module>
        <module>logging/logback-xml</module>
        <module>rest/rest-api</module>
        <module>rest/rest-client</module>
        <module>rest/rest-resources</module>
        <module>rest/rest-server</module>
        <module>test-framework</module>
        <module>test-support</module>


        <module>utils/common</module>
        <module>utils/groovy</module>
        <module>utils/jmx/jmxmp-ssl-agent</module>
        <module>utils/jmx/jmxrmi-agent</module>
        <module>utils/test-support</module>
        <module>utils/rest-swagger</module>

        <module>karaf</module>

        <module>utils/rt-felix</module>

    </modules>

</project>
