You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by ha...@apache.org on 2015/10/27 00:58:25 UTC

[07/12] incubator-brooklyn git commit: [BROOKLYN-183] More on karaf integration

[BROOKLYN-183] More on karaf integration

* convert karaf feature project to use karaf-maven-plugin
* add feature descriptions
* add license files as directed by rat plugin
* add version properties to transitive dependencies within features
* move version properties from brooklyn-parent to brooklyn root pom, so
  they are accessible within karaf's tree


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/c8161a64
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/c8161a64
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/c8161a64

Branch: refs/heads/master
Commit: c8161a64c76890560cfec91e016792f6910cb3ee
Parents: 99c8218
Author: Ciprian Ciubotariu <ch...@gmx.net>
Authored: Thu Oct 1 14:46:06 2015 +0300
Committer: Ciprian Ciubotariu <ch...@gmx.net>
Committed: Sun Oct 25 01:04:51 2015 +0300

----------------------------------------------------------------------
 .../apache/brooklyn/karaf/commands/Catalog.java |  19 ++-
 karaf/feature.xml                               |  51 +++++++
 karaf/features/pom.xml                          | 102 +++++++-------
 karaf/features/src/main/feature/feature.xml     |  54 ++++++++
 .../features/src/main/history/dependencies.xml  |  23 ++++
 karaf/features/src/main/resources/features.xml  |  16 ---
 karaf/pom.xml                                   |  11 +-
 parent/pom.xml                                  | 133 +++----------------
 pom.xml                                         | 113 +++++++++++++++-
 9 files changed, 340 insertions(+), 182 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c8161a64/karaf/commands/src/main/java/org/apache/brooklyn/karaf/commands/Catalog.java
----------------------------------------------------------------------
diff --git a/karaf/commands/src/main/java/org/apache/brooklyn/karaf/commands/Catalog.java b/karaf/commands/src/main/java/org/apache/brooklyn/karaf/commands/Catalog.java
index 3df948a..406df8f 100644
--- a/karaf/commands/src/main/java/org/apache/brooklyn/karaf/commands/Catalog.java
+++ b/karaf/commands/src/main/java/org/apache/brooklyn/karaf/commands/Catalog.java
@@ -1,4 +1,21 @@
-
+/*
+ * 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.
+ */
 package org.apache.brooklyn.karaf.commands;
 
 import org.apache.karaf.shell.api.action.Action;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c8161a64/karaf/feature.xml
----------------------------------------------------------------------
diff --git a/karaf/feature.xml b/karaf/feature.xml
new file mode 100644
index 0000000..fdb959d
--- /dev/null
+++ b/karaf/feature.xml
@@ -0,0 +1,51 @@
+<?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.
+-->
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="org.apache.brooklyn-${project.version}">
+
+    <repository>mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features</repository>
+    <repository>mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features</repository>
+    <repository>mvn:org.apache.karaf.features/spring/${karaf.version}/xml/features</repository>
+  
+    <!-- TODO: complete the features set -->
+    <feature name="brooklyn-core" version="${project.version}" description="Brooklyn Core">
+        <bundle>mvn:org.apache.brooklyn/brooklyn-core/${project.version}</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-api/${project.version}</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-utils-common/${project.version}</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-utils-groovy/${project.version}</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-logback-includes/${project.version}</bundle>
+    
+        <!-- TODO: via geoip -->
+        <bundle dependency="true">wrap:mvn:com.google.http-client/google-http-client/1.18.0-rc</bundle>
+        <!-- TODO: why it does not come automagically? -->
+        <bundle dependency="true">mvn:com.google.guava/guava/${guava.version}</bundle>
+        <bundle dependency="true">mvn:com.google.code.gson/gson/${gson.version}</bundle>
+        <bundle dependency="true">mvn:com.jayway.jsonpath/json-path/${jsonPath.version}</bundle>
+        <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-core/${fasterxml.jackson.version}</bundle>
+        <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-databind/${fasterxml.jackson.version}</bundle>
+        <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-annotations/${fasterxml.jackson.version}</bundle>
+        <bundle dependency="true">mvn:net.minidev/json-smart/${jsonSmart.version}</bundle>
+        <bundle dependency="true">mvn:net.minidev/asm/${minidev.asm.version}</bundle>
+    </feature>
+  
+    <feature name="brooklyn-commands"  version="${project.version}"  description="Brooklyn Shell Commands">
+        <bundle>mvn:org.apache.brooklyn/brooklyn-commands/${project.version}</bundle>
+        <!--<feature version="${project.version}">brooklyn-core</feature>-->
+    </feature>
+  
+</features>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c8161a64/karaf/features/pom.xml
----------------------------------------------------------------------
diff --git a/karaf/features/pom.xml b/karaf/features/pom.xml
index 50dd5a7..03cd932 100755
--- a/karaf/features/pom.xml
+++ b/karaf/features/pom.xml
@@ -1,54 +1,64 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<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">
+<!--
+    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
 
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.brooklyn</groupId>
-    <artifactId>brooklyn-karaf</artifactId>
-    <version>0.9.0-SNAPSHOT</version>  <!-- BROOKLYN_VERSION -->
-  </parent>
+    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.brooklyn</groupId>
+        <artifactId>brooklyn-karaf</artifactId>
+        <version>0.9.0-SNAPSHOT</version>  <!-- BROOKLYN_VERSION -->
+    </parent>
 
-  <artifactId>brooklyn-features</artifactId>
-  <name>Brooklyn Karaf Features</name>
+    <artifactId>brooklyn-features</artifactId>
+    <name>Brooklyn Karaf Features</name>
+    <packaging>feature</packaging>
 
-  <build>
-    <resources>
-      <resource>
-	<directory>src/main/resources</directory>
-	<filtering>true</filtering>
-	<includes>
-	  <include>**/*</include>
-	</includes>
-      </resource>
-    </resources>
+    <build>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.apache.karaf.tooling</groupId>
+                    <artifactId>karaf-maven-plugin</artifactId>
+                    <version>4.0.1</version>
+                    <extensions>true</extensions>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.karaf.tooling</groupId>
+                <artifactId>karaf-maven-plugin</artifactId>
 
-    <plugins>
-      <plugin>
-	<groupId>org.codehaus.mojo</groupId>
-	<artifactId>build-helper-maven-plugin</artifactId>
-	<version>1.9.1</version>
-	<executions>
-	  <execution>
-	    <id>attach-artifacts</id>
-	    <phase>process-resources</phase>
-	    <goals>
-	      <goal>attach-artifact</goal>
-	    </goals>
-	    <configuration>
-	      <artifacts>
-		<artifact>
-		  <file>${project.build.outputDirectory}/features.xml</file>
-		  <type>xml</type>
-		  <classifier>features</classifier>
-		</artifact>
-	      </artifacts>
-	    </configuration>
-	  </execution>
-	</executions>
-      </plugin>
-    </plugins>
-  </build>
+                <configuration>
+                    <startLevel>50</startLevel>
+                    <aggregateFeatures>true</aggregateFeatures>
+                    <resolver>(obr)</resolver>
+                    <checkDependencyChange>true</checkDependencyChange>
+                    <failOnDependencyChange>false</failOnDependencyChange>
+                    <logDependencyChanges>true</logDependencyChanges>
+                    <overwriteChangedDependencies>true</overwriteChangedDependencies>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
 </project>
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c8161a64/karaf/features/src/main/feature/feature.xml
----------------------------------------------------------------------
diff --git a/karaf/features/src/main/feature/feature.xml b/karaf/features/src/main/feature/feature.xml
new file mode 100644
index 0000000..d308bce
--- /dev/null
+++ b/karaf/features/src/main/feature/feature.xml
@@ -0,0 +1,54 @@
+<?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.
+-->
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="org.apache.brooklyn-${project.version}">
+
+    <repository>mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features</repository>
+    <repository>mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features</repository>
+    <repository>mvn:org.apache.karaf.features/spring/${karaf.version}/xml/features</repository>
+  
+    <!-- TODO: complete the features set -->
+    <feature name="brooklyn-core" version="${project.version}" description="Brooklyn Core">
+        <bundle>mvn:org.apache.brooklyn/brooklyn-core/${project.version}</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-api/${project.version}</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-utils-common/${project.version}</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-utils-groovy/${project.version}</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-logback-includes/${project.version}</bundle>
+    
+        <bundle dependency="true">mvn:com.google.guava/guava/${guava.version}</bundle>
+        <bundle dependency="true">mvn:com.google.code.gson/gson/${gson.version}</bundle>
+        <bundle dependency="true">mvn:com.jayway.jsonpath/json-path/${jsonPath.version}</bundle>
+        <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-core/${fasterxml.jackson.version}</bundle>
+        <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-databind/${fasterxml.jackson.version}</bundle>
+        <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-annotations/${fasterxml.jackson.version}</bundle>
+        <bundle dependency="true">mvn:net.minidev/json-smart/${jsonSmart.version}</bundle>
+        <bundle dependency="true">mvn:net.minidev/asm/${minidev.asm.version}</bundle>
+        <bundle dependency="true">mvn:com.thoughtworks.xstream/xstream/${xstream.version}</bundle>
+
+        <!-- TODO: don't use wrap: -->
+        <bundle dependency="true">wrap:mvn:com.google.http-client/google-http-client/1.18.0-rc</bundle> <!-- from geoip -->
+        <bundle dependency="true">wrap:mvn:com.maxmind.geoip2/geoip2/${maxmind.version}</bundle> <!-- from geoip2 -->
+        <bundle dependency="true">wrap:mvn:xpp3/xpp3_min/1.1.4c</bundle> <!-- from com.thoughtworks.xstream/xstream -->
+    </feature>
+  
+    <feature name="brooklyn-commands"  version="${project.version}"  description="Brooklyn Shell Commands">
+        <bundle>mvn:org.apache.brooklyn/brooklyn-commands/${project.version}</bundle>
+        <!--<feature version="${project.version}">brooklyn-core</feature>-->
+    </feature>
+  
+</features>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c8161a64/karaf/features/src/main/history/dependencies.xml
----------------------------------------------------------------------
diff --git a/karaf/features/src/main/history/dependencies.xml b/karaf/features/src/main/history/dependencies.xml
new file mode 100644
index 0000000..d90b75f
--- /dev/null
+++ b/karaf/features/src/main/history/dependencies.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" name="org.apache.brooklyn-0.9.0-SNAPSHOT">
+    <feature version="0.0.0">
+        <bundle>mvn:com.fasterxml.jackson.core/jackson-annotations/2.4.2</bundle>
+        <bundle>mvn:com.fasterxml.jackson.core/jackson-core/2.4.2</bundle>
+        <bundle>mvn:com.fasterxml.jackson.core/jackson-databind/2.4.2</bundle>
+        <bundle>mvn:com.google.code.gson/gson/2.3</bundle>
+        <bundle>mvn:com.google.guava/guava/17.0</bundle>
+        <bundle>mvn:com.jayway.jsonpath/json-path/2.0.0</bundle>
+        <bundle>mvn:com.thoughtworks.xstream/xstream/1.4.7</bundle>
+        <bundle>mvn:net.minidev/asm/1.0.2</bundle>
+        <bundle>mvn:net.minidev/json-smart/2.1.1</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-api/0.9.0-SNAPSHOT</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-commands/0.9.0-SNAPSHOT</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-core/0.9.0-SNAPSHOT</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-logback-includes/0.9.0-SNAPSHOT</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-utils-common/0.9.0-SNAPSHOT</bundle>
+        <bundle>mvn:org.apache.brooklyn/brooklyn-utils-groovy/0.9.0-SNAPSHOT</bundle>
+        <bundle>wrap:mvn:com.google.http-client/google-http-client/1.18.0-rc</bundle>
+        <bundle>wrap:mvn:com.maxmind.geoip2/geoip2/0.8.1</bundle>
+        <bundle>wrap:mvn:xpp3/xpp3_min/1.1.4c</bundle>
+    </feature>
+</features>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c8161a64/karaf/features/src/main/resources/features.xml
----------------------------------------------------------------------
diff --git a/karaf/features/src/main/resources/features.xml b/karaf/features/src/main/resources/features.xml
deleted file mode 100755
index ccbd649..0000000
--- a/karaf/features/src/main/resources/features.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="org.apache.brooklyn-${project.version}">
-
-  <repository>mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features</repository>
-  <repository>mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features</repository>
-  <repository>mvn:org.apache.karaf.features/spring/${karaf.version}/xml/features</repository>
-
-  <!-- TODO: complete the features set -->
-  <feature name="brooklyn-core" version="${project.version}" resolver="(obr)">
-    <bundle>mvn:org.apache.brooklyn/brooklyn-core/${project.version}</bundle>
-  </feature>
-
-  <feature name="brooklyn-commands"  version="${project.version}">
-      <bundle>mvn:org.apache.brooklyn/brooklyn-commands/${project.version}</bundle>
-  </feature>
-</features>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c8161a64/karaf/pom.xml
----------------------------------------------------------------------
diff --git a/karaf/pom.xml b/karaf/pom.xml
index b5c70d8..e30adc3 100644
--- a/karaf/pom.xml
+++ b/karaf/pom.xml
@@ -16,8 +16,7 @@
     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">
+--><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>
@@ -68,7 +67,7 @@
                     </goals>
                   </pluginExecutionFilter>
                   <action>
-                    <ignore />
+                    <ignore/>
                   </action>
                 </pluginExecution>
                 <pluginExecution>
@@ -81,7 +80,7 @@
                     </goals>
                   </pluginExecutionFilter>
                   <action>
-                    <ignore />
+                    <ignore/>
                   </action>
                 </pluginExecution>
                 <pluginExecution>
@@ -95,7 +94,7 @@
                     </goals>
                   </pluginExecutionFilter>
                   <action>
-                    <ignore />
+                    <ignore/>
                   </action>
                 </pluginExecution>
                 
@@ -120,4 +119,4 @@
       </snapshots>
     </repository>
   </repositories>
-</project>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c8161a64/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index 1ca10ad..6f350c1 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -51,118 +51,6 @@
       http://stackoverflow.com/questions/5309379/how-to-keep-maven-profiles-which-are-activebydefault-active-even-if-another-prof )
     -->
 
-    <properties>
-        <!-- Compilation -->
-        <java.version>1.7</java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-
-        <!-- Testing -->
-        <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>
-        <includedTestGroups />
-        <excludedTestGroups>Integration,Acceptance,Live,WIP</excludedTestGroups>
-        <surefire.failIfNoSpecifiedTests>false</surefire.failIfNoSpecifiedTests>
-
-        <!-- Dependencies -->
-        <brooklyn.version>0.9.0-SNAPSHOT</brooklyn.version>  <!-- BROOKLYN_VERSION -->
-        <jclouds.groupId>org.apache.jclouds</jclouds.groupId> <!-- JCLOUDS_GROUPID_VERSION -->
-
-        <!-- These dependencies also appear in usage/downstream-parent/pom.xml -
-           - please synchronise versions between these two pom files -->
-        <jclouds.version>1.9.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 -->
-        <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.2</fasterxml.jackson.version>  <!-- more recent jackson, but not compatible with old annotations! -->
-        <jersey.version>1.18.1</jersey.version>
-        <httpclient.version>4.4.1</httpclient.version>
-        <commons-lang3.version>3.1</commons-lang3.version>
-        <groovy.version>2.3.4</groovy.version> <!-- Version supported by https://github.com/groovy/groovy-eclipse/wiki/Groovy-Eclipse-2.9.0-Release-Notes -->
-        <jsr305.version>2.0.1</jsr305.version>
-        <snakeyaml.version>1.11</snakeyaml.version>
-
-        <!-- Ordinary dependencies -->
-        <testng.version>6.8.8</testng.version>
-        <mockito.version>1.10.8</mockito.version>
-        <swagger.version>1.0.1</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>8.1.17.v20150415</jetty.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>
-        <hazelcast.version>3.0</hazelcast.version>
-        <jsonPath.version>2.0.0</jsonPath.version>
-        <commons-compress.version>1.4</commons-compress.version>
-        <qpid.version>0.20</qpid.version>
-        <mongodb.version>3.0.3</mongodb.version>
-        <riak.version>1.4.0</riak.version>
-        <maven-war-plugin.version>2.4</maven-war-plugin.version>
-        <validation-api.version>1.0.0.GA</validation-api.version>
-        <geronimo-jms_1.1_spec.version>1.1.1</geronimo-jms_1.1_spec.version>
-        <sleepycat-je.version>5.0.34</sleepycat-je.version>
-        <org.marre.smsj.version>1.0.0-20051126</org.marre.smsj.version>
-        <mysql-connector-java.version>5.1.18</mysql-connector-java.version>
-        <hadoop.version>1.0.2</hadoop.version>
-        <commons-cli.version>1.2</commons-cli.version>
-        <postgresql.version>9.1-901.jdbc4</postgresql.version>
-        <activemq.version>5.10.0</activemq.version>
-        <rabbitmq-version>2.8.7</rabbitmq-version>
-        <kafka.version>0.8.2.1</kafka.version>
-        <storm.version>0.8.2</storm.version>
-        <redis.version>1.5.2</redis.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>
-        <maven-dependency-plugin.version>2.8</maven-dependency-plugin.version>
-        <jopt.version>4.3</jopt.version>
-        <concurrentlinkedhashmap.version>1.0_jdk5</concurrentlinkedhashmap.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>
-        <jetty-orbit-javax-servlet.version>3.0.0.v201112011016</jetty-orbit-javax-servlet.version>
-        <jcommander.version>1.27</jcommander.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.1.0</winrm4j.version>
-        <coverage.target>${working.dir}</coverage.target>
-
-        <!-- 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>
-    </properties>
-
     <dependencyManagement>
         <dependencies>
             <dependency>
@@ -345,6 +233,11 @@
                 <version>${httpclient.version}</version>
             </dependency>
             <dependency>
+                <groupId>xml-apis</groupId>
+                <artifactId>xml-apis</artifactId>
+                <version>${xml-apis.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>javax.annotation</groupId>
                 <artifactId>jsr250-api</artifactId>
                 <version>${jsr250-api.version}</version>
@@ -575,6 +468,21 @@
                 <artifactId>jna-platform</artifactId>
                 <version>${jna.version}</version>
             </dependency>
+            <dependency>
+                <groupId>jline</groupId>
+                <artifactId>jline</artifactId>
+                <version>${jline.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>net.minidev</groupId>
+                <artifactId>json-smart</artifactId>
+                <version>${jsonSmart.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>net.minidev</groupId>
+                <artifactId>asm</artifactId>
+                <version>${minidev.asm.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -1148,6 +1056,7 @@
                   <exclude>**/src/test/resources/org/apache/brooklyn/entity/software/base/template_with_extra_substitutions.txt</exclude>
                   <exclude>**/src/main/resources/banner.txt</exclude>
                   <exclude>**/src/test/resources/ssl/certs/localhost/info.txt</exclude>
+                  <exclude>**/src/main/history/dependencies.xml</exclude>
                   <exclude>**/sandbox/examples/src/main/scripts/amis.txt</exclude>
                   <!-- see notes in https://issues.apache.org/jira/browse/BROOKLYN-18 -->
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c8161a64/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 1b55f7b..0461e7a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -72,11 +72,122 @@
     </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>
-        <brooklyn.version>0.9.0-SNAPSHOT</brooklyn.version>  <!-- BROOKLYN_VERSION -->
+
+        <!-- Testing -->
+        <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>
+        <includedTestGroups />
+        <excludedTestGroups>Integration,Acceptance,Live,WIP</excludedTestGroups>
+        <surefire.failIfNoSpecifiedTests>false</surefire.failIfNoSpecifiedTests>
+
+        <!-- Dependencies -->
+        <jclouds.groupId>org.apache.jclouds</jclouds.groupId> <!-- JCLOUDS_GROUPID_VERSION -->
+
+        <!-- These dependencies also appear in usage/downstream-parent/pom.xml -
+           - please synchronise versions between these two pom files -->
+        <jclouds.version>1.9.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 -->
+        <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.2</fasterxml.jackson.version>  <!-- more recent jackson, but not compatible with old annotations! -->
+        <jersey.version>1.18.1</jersey.version>
+        <httpclient.version>4.4.1</httpclient.version>
+        <commons-lang3.version>3.1</commons-lang3.version>
+        <groovy.version>2.3.4</groovy.version> <!-- Version supported by https://github.com/groovy/groovy-eclipse/wiki/Groovy-Eclipse-2.9.0-Release-Notes -->
+        <jsr305.version>2.0.1</jsr305.version>
+        <snakeyaml.version>1.11</snakeyaml.version>
+
+        <!-- Ordinary dependencies -->
+        <testng.version>6.8.8</testng.version>
+        <mockito.version>1.10.8</mockito.version>
+        <swagger.version>1.0.1</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>8.1.17.v20150415</jetty.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>
+        <hazelcast.version>3.0</hazelcast.version>
+        <jsonPath.version>2.0.0</jsonPath.version>
+        <commons-compress.version>1.4</commons-compress.version>
+        <qpid.version>0.20</qpid.version>
+        <mongodb.version>3.0.3</mongodb.version>
+        <riak.version>1.4.0</riak.version>
+        <maven-war-plugin.version>2.4</maven-war-plugin.version>
+        <validation-api.version>1.0.0.GA</validation-api.version>
+        <geronimo-jms_1.1_spec.version>1.1.1</geronimo-jms_1.1_spec.version>
+        <sleepycat-je.version>5.0.34</sleepycat-je.version>
+        <org.marre.smsj.version>1.0.0-20051126</org.marre.smsj.version>
+        <mysql-connector-java.version>5.1.18</mysql-connector-java.version>
+        <hadoop.version>1.0.2</hadoop.version>
+        <commons-cli.version>1.2</commons-cli.version>
+        <postgresql.version>9.1-901.jdbc4</postgresql.version>
+        <activemq.version>5.10.0</activemq.version>
+        <rabbitmq-version>2.8.7</rabbitmq-version>
+        <kafka.version>0.8.2.1</kafka.version>
+        <storm.version>0.8.2</storm.version>
+        <redis.version>1.5.2</redis.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>
+        <maven-dependency-plugin.version>2.8</maven-dependency-plugin.version>
+        <jopt.version>4.3</jopt.version>
+        <concurrentlinkedhashmap.version>1.0_jdk5</concurrentlinkedhashmap.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>
+        <jetty-orbit-javax-servlet.version>3.0.0.v201112011016</jetty-orbit-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.1.0</winrm4j.version>
+        <coverage.target>${working.dir}</coverage.target>
+
+        <!-- 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>
+
+        <!-- Compilation -->
     </properties>
 
     <modules>