<?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.9.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.9.0-SNAPSHOT</brooklyn.version>  <!-- BROOKLYN_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,WIP,Broken</excludedTestGroups>
        <surefire.failIfNoSpecifiedTests>false</surefire.failIfNoSpecifiedTests>
        <coverage.target>${working.dir}</coverage.target>

		<!-- 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 -->
        <guava.version>17.0</guava.version>
        <xstream.version>1.4.7</xstream.version>
        <jackson.version>1.9.13</jackson.version>  <!-- codehaus jackson, used by brooklyn rest server -->
        <fasterxml.jackson.version>2.4.5</fasterxml.jackson.version>  <!-- more recent jackson, but not compatible with old annotations! -->
        <jersey.version>1.19</jersey.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>
        <swagger.version>1.5.3</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>4.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>1.56.24</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>
        <resteasy.version>3.0.8.Final</resteasy.version>
        <jopt.version>4.3</jopt.version>
        <concurrentlinkedhashmap.version>1.0_jdk5</concurrentlinkedhashmap.version>
        <javax-servlet.version>3.1.0</javax-servlet.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>
        <jsr311-api.version>1.1.1</jsr311-api.version>
        <maxmind.version>0.8.1</maxmind.version>
        <jna.version>4.0.0</jna.version>
        <winrm4j.version>0.2.0</winrm4j.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</module>
        <module>logging/logback-includes</module>
        <module>logging/logback-xml</module>
        <module>rest/rest-api</module>
        <module>rest/rest-client</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-osgi</module>
        <module>utils/rt-felix</module>

    </modules>

</project>
