<?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>1.1.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/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>1.1.0-SNAPSHOT</brooklyn.version>  <!-- BROOKLYN_VERSION -->

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

        <!-- Compilation -->
        <java.version>1.8</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.1.2</jclouds.version> <!-- JCLOUDS_VERSION -->
        <logback.version>1.2.3</logback.version>
        <slf4j.version>1.7.25</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>27.0.1-jre</guava-swagger.version>
        <failureaccess.version>1.0.1</failureaccess.version>

        <!-- xstream -->
        <xstream.version>1.4.15</xstream.version>

        <xpp3.servicemix.version>1.1.4c_7</xpp3.servicemix.version>
        <kxml2.servicemix.version>2.3.0_3</kxml2.servicemix.version>
        <jaxb-api-2.2.servicemix.version>2.9.0</jaxb-api-2.2.servicemix.version>
        <activator.servicemix.version>2.9.0</activator.servicemix.version>
        <jakarta.activation.version>1.2.2</jakarta.activation.version>
        <!-- double-check downstream projects before changing jackson version -->
        <fasterxml.jackson.version>2.11.3</fasterxml.jackson.version>
        <cxf.version>3.3.9</cxf.version>
        <httpcomponents.httpclient.version>4.5.13</httpcomponents.httpclient.version> <!-- To match cxf-http-async -->
        <httpcomponents.httpcore.version>4.4.14</httpcomponents.httpcore.version> <!-- To match cxf -->
        <!-- @deprecated since 0.11 -->
        <httpclient.version>4.5.13</httpclient.version> <!-- kept for compatibility in 0.11.0-SNAPSHOT, remove after -->
        <commons-lang3.version>3.3.2</commons-lang3.version>
        <groovy.version>2.4.15</groovy.version> <!-- Version 2.4.7 supported by https://github.com/groovy/groovy-eclipse/wiki/Groovy-Eclipse-2.9.1-Release-Notes; not sure what more recent will be -->
        <jsr305.version>2.0.1</jsr305.version>
        <!-- JClouds 2.2.0 imports snakeyaml 1.17 -->
        <snakeyaml.version>1.27</snakeyaml.version> <!-- 1.27 matches cxf-jackson 3.3.9 -->
        <!-- Next version of swagger requires changes to how path mapping and scanner injection are done. -->
        <swagger.version>1.6.2</swagger.version>
        <gson.version>2.5</gson.version>
        <mx4j.version>3.0.1</mx4j.version>
        <bouncycastle.version>1.67</bouncycastle.version>
        <!-- JClouds 2.2.0 imports eddsa 0.1.0 -->
        <eddsa.version>0.2.0</eddsa.version>
        <!-- JClouds 2.2.0 imports ssjj 0.20.0 -->
        <sshj.version>0.31.0</sshj.version>
        <!-- jzlib osgi version is 1.1.3.2, but bundle is 1.1.3_2 ; JClouds 2.2.0 pulls in 1.0.7_1 but is happy with 1.1.3.2 -->
        <jzlib.version>1.1.3_2</jzlib.version>
        <jzlib.osgi.version>1.1.3.2</jzlib.osgi.version>
        <reflections.version>0.9.10</reflections.version>
        <jetty-schemas.version>3.1.M0</jetty-schemas.version>
        <airline.version>0.7</airline.version>
        <freemarker.version>2.3.31</freemarker.version>
        <commons-io.version>2.4</commons-io.version>
        <jsonPath.version>2.4.0</jsonPath.version>
        <commons-compress.version>1.20</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>
        <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>
        <jcip-annotations.bundle.version>1.0_2</jcip-annotations.bundle.version>
        <jsr305.bundle.version>3.0.2_1</jsr305.bundle.version>
        <javax-servlet.version>3.1.0</javax-servlet.version>
        <javax-servlet-jsp.version>2.0</javax-servlet-jsp.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>
        <jax-rs-api.version>2.1.1</jax-rs-api.version> <!-- differs from jclouds 2.2.0, which depends on v2.0.1 -->
        <maxmind.version>2.8.0-rc1</maxmind.version>
        <maxmind-db.version>1.2.1</maxmind-db.version>
        <winrm4j.version>0.11.0</winrm4j.version>
        <felix-osgi-compendium.version>1.4.0</felix-osgi-compendium.version>
        <kubernetes-client.version>4.9.0</kubernetes-client.version>

        <!-- Dependencies shipped with vanilla karaf; update these when we update the karaf version -->
        <karaf.version>4.3.0</karaf.version>
        <karaf.plugin.version>${karaf.version}</karaf.plugin.version>
        <jetty.version>9.4.35.v20201120</jetty.version> <!-- 9.4.31.v20200723 from Karaf 4.3.0 -->
        <commons-collections.version>3.2.2</commons-collections.version>
        <pax-web.version>7.3.9</pax-web.version>
        <jaxb-api.version>2.3.3</jaxb-api.version>
        <spifly.version>1.3.2</spifly.version> <!-- v1.3.2 from jetty feature; v1.2.4 from pax-jetty -->
        <felix.framework.version>6.0.3</felix.framework.version>

        <!-- Transitive dependencies, declared explicitly to avoid version mismatch -->
        <jna.version>4.1.0</jna.version>
        <objenesis.version>2.5</objenesis.version>
        <clojure.version>1.4.0</clojure.version>
        <clj-time.version>0.4.1</clj-time.version>
        <commons-codec.version>1.15</commons-codec.version>
        <log4j.version>1.2.17</log4j.version>
        <commons-logging.version>1.2</commons-logging.version>
        <jsonSmart.version>2.3</jsonSmart.version>
        <minidev.accessors-smart.version>1.2</minidev.accessors-smart.version>

        <ow2.asm.version.jsonpath>5.2</ow2.asm.version.jsonpath>
          <!-- json-path needs objectweb.asm version 5.2 (<6.0.0), and won't accept a bundleReplacement for a higher one; 
               in addition currently pax-web-core brings in 8.0.1 and aries-proxy 9.0;
               the addition of 5.2 triggers a refresh of the wiring of proxy because asm is an optional dependency
               (even though it's a lower version and it shouldn't);
               and in some weird cases that can cause aries to fail to install blueprints possibly due to too-recent javac byte markers;
               but compiling with reasonable versions should make it all okay -->
        <commons-beanutils.version>1.9.4</commons-beanutils.version>
        <javax.mail.version>1.4.7</javax.mail.version> <!-- version should align with 'jetty' feature -->
        <jakarta.annotation-api.version>1.3.5</jakarta.annotation-api.version>
        <cxf.javax.annotation-api.version>${jakarta.annotation-api.version}</cxf.javax.annotation-api.version> <!-- cxf-specs feature v3.3.9 declares v1.3.5; jetty 9.4.35.v20201120 declares v1.3.2 -->
        <okio.version>1.15.0</okio.version>

        <!-- Test dependencies -->
        <testng.version>7.3.0</testng.version>
        <mockito.version>2.7.12</mockito.version>
        <assertj.version>3.11.1</assertj.version>
        <cobertura.plugin.version>2.7</cobertura.plugin.version>
        <surefire.version>2.19.1</surefire.version>
        <hamcrest.version>1.1</hamcrest.version>
        <mockwebserver.version>20121111</mockwebserver.version>

        <!-- Test dependencies: clients to connect to deployed entities -->
        <astyanax.version>3.8.0</astyanax.version>
        <jcouchdb.version>0.11.0-1</jcouchdb.version>
        <solr.version>4.7.0</solr.version>
        <zookeeper.version>3.3.4</zookeeper.version>
        <ring-core.version>1.1.5</ring-core.version>

        <!-- Seemingly unused dependencies! -->
        <ivy.version>2.2.0</ivy.version>
        <jline.version>2.12</jline.version>
        <jansi.version>1.2.1</jansi.version> <!-- Also shipped in vanilla karaf, v1.17.1 in karaf:4.1.6 -->
        <sleepycat-je.version>5.0.34</sleepycat-je.version>
        <jcommander.version>1.27</jcommander.version>
        <commons-cli.version>1.2</commons-cli.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>
        <ant.version>1.8.4</ant.version>
        <dockerfile-maven-plugin.version>1.4.3</dockerfile-maven-plugin.version>

        <geronimo-ws-metadata_2.0_spec.version>1.1.3</geronimo-ws-metadata_2.0_spec.version>
    </properties>

    <modules>
        <module>parent</module>

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

        <module>locations/jclouds</module>
        <module>locations/container</module>

        <module>software/base</module>
        <module>software/winrm</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>
