<?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.11.0</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/brooklyn-server.git</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/brooklyn-server.git</developerConnection>
        <url>https://git-wip-us.apache.org/repos/asf?p=brooklyn-server.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/view/Brooklyn/job/brooklyn-server-master/</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>

    <repositories>
      <repository>
          <id>jclouds-snapshots</id>
        <url>https://repository.apache.org/content/repositories/snapshots</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
      </repository>
    </repositories>

    <properties>
        <brooklyn.version>0.11.0</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>2.0.1</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>18.0</guava.version>
        <!--
            This can be different from above and should be used only by Swagger related code.
            Note that some bundles used by Brooklyn will try to bind to the latest version available.
            For example jclouds and jackson-datatype-guava both depend on guava [16,20).
        -->
        <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 version -->
        <fasterxml.jackson.version>2.7.5</fasterxml.jackson.version>
        <cxf.version>3.1.10</cxf.version>
        <httpcomponents.httpclient.version>4.5.2</httpcomponents.httpclient.version>
        <httpcomponents.httpcore.version>4.4.4</httpcomponents.httpcore.version>
        <!-- @deprecated since 0.11 -->
        <httpclient.version>4.5.2</httpclient.version> <!-- kept for compatibility in 0.11.0-SNAPSHOT, remove after -->
        <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.17</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.51</bouncycastle.version>
        <sshj.version>0.12.0</sshj.version>
        <felix.framework.version>5.6.1</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.7</airline.version>
        <mockwebserver.version>20121111</mockwebserver.version>
        <freemarker.version>2.3.25-incubating</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>
        <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>2.8.0-rc1</maxmind.version>
        <maxmind-db.version>1.2.1</maxmind-db.version>
        <winrm4j.version>0.5.0</winrm4j.version>
        <karaf.version>4.0.8</karaf.version>
        <karaf.plugin.version>${karaf.version}</karaf.plugin.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>
        <javax.mail.version>1.4.4</javax.mail.version>
        <cxf.javax.annotation-api.version>1.2</cxf.javax.annotation-api.version>
        <testng.version>6.10</testng.version>
        <mockito.version>2.7.12</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.19.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-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>
