You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2015/09/01 17:16:24 UTC

[01/28] incubator-brooklyn git commit: Fixed some language mistakes in 'About the code' doc page

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 27036aa18 -> c77e7618d


Fixed some language mistakes in 'About the code' doc page


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

Branch: refs/heads/master
Commit: 2893e34e2bb41b31ba39b0d633e3d8caa7571ada
Parents: 147f9ec
Author: Ivana Yovcheva <iv...@gmail.com>
Authored: Thu Aug 20 14:59:54 2015 +0300
Committer: Ivana Yovcheva <iv...@gmail.com>
Committed: Fri Aug 21 13:05:45 2015 +0300

----------------------------------------------------------------------
 docs/guide/dev/code/index.md | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2893e34e/docs/guide/dev/code/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/index.md b/docs/guide/dev/code/index.md
index 6436023..bf2e22a 100644
--- a/docs/guide/dev/code/index.md
+++ b/docs/guide/dev/code/index.md
@@ -31,7 +31,7 @@ Plenty of examples are in the **examples** sub-dir,
 described [here]({{site.path.guide}}/use/examples).
 {% endcomment %}
 
-Information on using Brooklyn -- configuring locations (in `brooklyn.properties`) 
+Information on using Brooklyn -- configuring locations (in `brooklyn.properties`)
 and adding new projects to a catalog -- can be found in the [User's Guide]({{site.path.guide}}).
 This document is intended to help people become familiar with the codebase.
 
@@ -39,11 +39,11 @@ This document is intended to help people become familiar with the codebase.
 
 Brooklyn is split into the following projects and sub-projects:
 
-* **``camp``**: the components for a server which speaks the CAMP REST API and which understands the CAMP YAML plan language
+* **``camp``**: the components for a server which speaks with the CAMP REST API and understands the CAMP YAML plan language
 * **``api``**: the pure-Java interfaces for interacting with the system
-* **``core``**: the base class implementations for entities and applications, entity traits, locations, policies, sensor and effector support, tasks, and more 
+* **``core``**: the base class implementations for entities and applications, entity traits, locations, policies, sensor and effector support, tasks, and more
 * **``locations``**: specific location integrations
-    * **``jclouds``**: integration with many cloud APIs and providers, via Apache jclouds
+    * **``jclouds``**: integration with many cloud APIs and providers via Apache jclouds
 * **``policies``**: collection of useful policies for automating entity activity  
 * **``software``**: entities which are mainly launched by launched software processes on machines, and collections thereof
     * **``base``**: software process lifecycle abstract classes and drivers (e.g. SSH) 
@@ -54,16 +54,16 @@ Brooklyn is split into the following projects and sub-projects:
     * **``monitoring``**: monitoring tools, including Monit
     * **``osgi``**: OSGi servers 
     * **...**
-* **``utils``**: projects which lower level utilities
-    * **common**: Utility classes and methods developed for Brooklyn but not dependendent on Brooklyn
-    * **groovy**: Groovy extensions and utility classes and methods developed for Brooklyn but not dependendent on Brooklyn
+* **``utils``**: projects with lower level utilities
+    * **common**: Utility classes and methods developed for Brooklyn but not dependent on Brooklyn
+    * **groovy**: Groovy extensions and utility classes and methods developed for Brooklyn but not dependent on Brooklyn
     * **jmx/jmxmp-ssl-agent**: An agent implementation that can be attached to a Java process, to give expose secure JMXMP
     * **jmx/jmxrmi-agent**: An agent implementation that can be attached to a Java process, to give expose JMX-RMI without requiring all high-number ports to be open
-    * **rest-swagger**: Swagger REST API utility classes and methods developed for Brooklyn but not dependendent on Brooklyn
-    * **test-support**: Test utility classes and methods developed for Brooklyn but not dependendent on Brooklyn
+    * **rest-swagger**: Swagger REST API utility classes and methods developed for Brooklyn but not dependent on Brooklyn
+    * **test-support**: Test utility classes and methods developed for Brooklyn but not dependent on Brooklyn
 * **``usage``**: projects which make Brooklyn easier to use, either for end-users or Brooklyn developers
     * **all**: maven project to supply a shaded JAR (containing all dependencies) for convenience
-    * **archetypes**: A maven archetype, for easily generating the structure of a new downstream projects 
+    * **archetypes**: A maven archetype for easily generating the structure of new downstream projects
     * **camp**: Brooklyn bindings for the CAMP REST API
     * **cli**: backing implementation for Brooklyn's command line interface
     * **dist**: builds brooklyn as a downloadable .zip and .tar.gz
@@ -79,7 +79,7 @@ Brooklyn is split into the following projects and sub-projects:
     * **test-support**: provides Brooklyn-specific support for tests, used by nearly all projects in scope ``test``
 * **``docs``**: the markdown source code for this documentation
 * **``examples``**: some canonical examples
-* **``sandbox``**: various projects, entities, and policies which the Brooklyn Project is incubating
+* **``sandbox``**: various projects, entities and policies which the Brooklyn Project is incubating
 
  
 ## Next Steps


[25/28] incubator-brooklyn git commit: This closes #873

Posted by he...@apache.org.
This closes #873


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

Branch: refs/heads/master
Commit: fd62419413ff89214650e313533ba342f1042b5e
Parents: 27036aa c4c0e34
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Sep 1 16:15:32 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Sep 1 16:15:32 2015 +0100

----------------------------------------------------------------------
 .../brooklyn/api/catalog/BrooklynCatalog.java   |    8 +-
 .../apache/brooklyn/api/location/Location.java  |    4 -
 .../apache/brooklyn/camp/spi/pdp/Service.java   |    3 +-
 .../brooklyn/core/catalog/CatalogLoadMode.java  |    3 +-
 .../catalog/internal/CatalogInitialization.java |    8 +-
 .../catalog/internal/CatalogXmlSerializer.java  |    3 +
 .../factory/BasicConfigurableEntityFactory.java |    3 +-
 .../core/entity/lifecycle/Lifecycle.java        |    8 +-
 .../brooklyn/core/location/geo/HostGeoInfo.java |   11 +
 .../JavaBrooklynClassLoadingContext.java        |    2 +
 .../OsgiBrooklynClassLoadingContext.java        |    1 -
 .../core/mgmt/entitlement/Entitlements.java     |    7 +-
 .../DeserializingClassRenamesProvider.java      |   81 +
 .../core/mgmt/persist/XmlMementoSerializer.java |   14 +-
 .../core/mgmt/rebind/RebindIteration.java       |   11 +-
 .../rebind/transformer/CompoundTransformer.java |    2 +-
 .../core/objs/proxy/InternalEntityFactory.java  |    2 +-
 .../brooklyn/core/plan/PlanToSpecFactory.java   |    3 +-
 .../core/sensor/DependentConfiguration.java     |    2 +-
 .../util/core/xstream/ClassRenamingMapper.java  |   53 +
 .../util/core/xstream/XmlSerializer.java        |   52 +-
 .../deserializingClassRenames.properties        | 1419 ++++++++++++++++++
 .../core/catalog/CatalogPredicatesTest.java     |   22 +-
 .../core/effector/EffectorBasicTest.java        |   14 +-
 .../core/entity/EntityPreManagementTest.java    |    6 +-
 .../core/entity/PolicyRegistrationTest.java     |    7 +-
 .../mgmt/osgi/OsgiVersionMoreEntityTest.java    |    3 +-
 .../mgmt/persist/XmlMementoSerializerTest.java  |  167 ++-
 ...stomAggregatingEnricherDeprecatedTest.groovy |   14 +-
 .../TransformingEnricherDeprecatedTest.groovy   |    4 +-
 .../entity/group/DynamicClusterTest.java        |    2 +-
 .../entity/group/DynamicFabricTest.java         |    4 +-
 docs/README.md                                  |    9 +-
 docs/_build/make-javadoc.sh                     |    2 +-
 .../_extra/big_examples/before-begin.include.md |    2 +-
 .../big_examples/global-web-fabric/index.md     |    8 +-
 docs/_includes/fields.md                        |   26 +-
 docs/_includes/java_link.html                   |    4 +-
 docs/_plugins/brooklyn_metadata.rb              |   14 +-
 docs/guide/dev/code/tests.md                    |    4 +-
 docs/guide/java/entitlements.md                 |    6 +-
 docs/guide/java/index.md                        |    2 +-
 docs/guide/java/policies.md                     |   64 +-
 docs/guide/java/policy.md                       |   37 +-
 docs/guide/misc/download.md                     |   79 +-
 docs/guide/misc/index.md                        |    2 +-
 docs/guide/misc/migrate-to-0.8.0-regexes.sed    | 1394 +++++++++++++++++
 docs/guide/misc/migrate-to-0.8.0.md             |   32 +
 docs/guide/misc/release-notes.md                |  108 +-
 docs/guide/ops/brooklyn_properties.md           |    4 +-
 docs/guide/ops/catalog/index.md                 |   10 +-
 docs/guide/ops/locations/index.md               |    8 +-
 docs/guide/ops/locations/more-locations.md      |    4 +-
 docs/guide/ops/persistence/index.md             |    2 +-
 docs/guide/ops/troubleshooting/deployment.md    |    2 +-
 .../going-deep-in-java-and-logs.md              |  175 ++-
 .../ops/troubleshooting/softwareprocess.md      |    3 +-
 docs/guide/start/_my-web-cluster.yaml           |    2 +-
 docs/guide/yaml/chef/creating-blueprints.md     |    2 +-
 docs/guide/yaml/custom-entities.md              |    4 +-
 .../example_yaml/appserver-clustered-w-db.yaml  |    4 +-
 .../appserver-configured-in-config.yaml         |    2 +-
 .../yaml/example_yaml/appserver-configured.yaml |    2 +-
 .../appserver-w-db-other-flavor.yaml            |    2 +-
 .../guide/yaml/example_yaml/appserver-w-db.yaml |    2 +-
 .../yaml/example_yaml/appserver-w-policy.yaml   |    4 +-
 docs/guide/yaml/example_yaml/cluster-vm.yaml    |    2 +-
 .../simple-appserver-with-location-byon.yaml    |    2 +-
 .../simple-appserver-with-location.yaml         |    2 +-
 .../yaml/example_yaml/simple-appserver.yaml     |    2 +-
 ...est-app-with-enrichers-slightly-simpler.yaml |   18 +-
 docs/guide/yaml/index.md                        |    1 +
 docs/guide/yaml/winrm/about-winrm.md            |    0
 docs/guide/yaml/winrm/index.md                  |    4 +-
 docs/guide/yaml/yaml-reference.md               |   12 +-
 docs/style/css/catalog_items.css                |    1 -
 docs/style/js/catalog/common.js                 |   11 +-
 .../release-process/verify-release-artifacts.md |    2 +-
 docs/website/documentation/index.md             |    6 +-
 docs/website/download/index.md                  |   31 +-
 docs/website/index.md                           |    3 +-
 docs/website/learnmore/blueprint-tour.md        |    4 +-
 .../website/learnmore/catalog/catalog-item.html |   18 +-
 docs/website/learnmore/catalog/index.html       |   11 +-
 ...brooklyn.entity.pool.ServerPoolLocation.html |   62 -
 .../brooklyn.location.AddressableLocation.html  |   62 -
 .../brooklyn.location.MachineLocation.html      |   62 -
 ...tMixins$RichMachineProvisioningLocation.html |   62 -
 ...yn.location.MachineProvisioningLocation.html |   62 -
 ...rooklyn.location.basic.AbstractLocation.html |   62 -
 ....AggregatingMachineProvisioningLocation.html |   62 -
 ...ic.FixedListMachineProvisioningLocation.html |   62 -
 ...neProvisioningLocation$LocalhostMachine.html |   62 -
 ...ic.LocalhostMachineProvisioningLocation.html |   62 -
 ...rooklyn.location.basic.LocationInternal.html |   62 -
 .../brooklyn.location.basic.MultiLocation.html  |   62 -
 ...ooklyn.location.basic.SimulatedLocation.html |   62 -
 ...basic.SingleMachineProvisioningLocation.html |   62 -
 ...oklyn.location.basic.SshMachineLocation.html |   62 -
 ...bstractCloudMachineProvisioningLocation.html |   62 -
 ...AbstractJcloudsSubnetSshMachineLocation.html |   62 -
 ...ooklyn.location.jclouds.JcloudsLocation.html |   62 -
 ...ation.jclouds.JcloudsSshMachineLocation.html |   62 -
 ...followthesun.DefaultFollowTheSunModel$1.html |   62 -
 docs/website/meta/versions.md                   |   24 +-
 .../brooklyn/location/jclouds/JcloudsUtil.java  |    6 +-
 .../JcloudsPortForwarderExtension.java          |    3 +-
 .../policy/enricher/HttpLatencyDetector.java    |    5 +-
 .../apache/brooklyn/feed/jmx/JmxFeedTest.java   |   15 +-
 .../apache/brooklyn/feed/jmx/JmxHelperTest.java |    3 +-
 .../entity/nosql/couchbase/pillowfight.yaml     |    2 +-
 .../entity/proxy/nginx/NginxSshDriver.java      |    3 +-
 .../entity/webapp/jboss/JBoss6SshDriver.java    |    3 +-
 .../entity/webapp/jboss/JBoss7SshDriver.java    |    3 +-
 .../entity/webapp/tomcat/TomcatSshDriver.java   |    3 +-
 .../webapp/WebAppLiveIntegrationTest.groovy     |    9 -
 .../brooklyn/spi/creation/CampCatalogUtils.java |    2 +-
 .../service/BrooklynServiceTypeResolver.java    |   24 +-
 .../main/resources/brooklyn/default.catalog.bom |   20 +-
 .../apache/brooklyn/cli/CliIntegrationTest.java |    4 +-
 .../javascript/specs/model/application-spec.js  |    2 +-
 .../test/javascript/specs/model/entity-spec.js  |    4 +-
 ...lynLauncherRebindToCloudObjectStoreTest.java |    6 +-
 .../src/test/resources/mongo-sharded.yaml       |    2 +-
 .../qa/load/SimulatedJBoss7ServerImpl.java      |    3 +-
 .../SoftlayerObtainPrivateLiveTest.java         |    3 +-
 .../rest/domain/ApplicationSpecTest.java        |    2 +-
 .../brooklyn/rest/domain/EntitySpecTest.java    |    2 +-
 .../resources/fixtures/application-list.json    |    2 +-
 .../resources/fixtures/application-spec.json    |    4 +-
 .../test/resources/fixtures/application.json    |    4 +-
 .../resources/fixtures/entity-only-type.json    |    4 +-
 .../src/test/resources/fixtures/entity.json     |    2 +-
 .../brooklyn/rest/domain/ApplicationTest.java   |    2 +-
 .../org/apache/brooklyn/test/TestUtils.groovy   |  538 -------
 .../org/apache/brooklyn/test/TestUtils.java     |   79 +
 .../java/org/apache/brooklyn/test/Asserts.java  |   17 +-
 .../brooklyn/util/exceptions/Exceptions.java    |   47 +-
 .../util/internal/BrooklynSystemProperties.java |    5 +-
 .../brooklyn/util/javalang/Reflections.java     |   41 +
 .../util/javalang/StackTraceSimplifier.java     |    6 +-
 141 files changed, 3872 insertions(+), 2370 deletions(-)
----------------------------------------------------------------------



[16/28] incubator-brooklyn git commit: rename non-java mentions of classes which have been moved -- in plans, comments, and docs

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md b/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md
index 065eef2..8a66ce0 100644
--- a/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md
+++ b/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md
@@ -15,35 +15,35 @@ a bash script.
 First let's take a look at the `customize()` method of the Tomcat server blueprint:
 
 {% highlight java %}
-  @Override
-  public void customize() {
-      newScript(CUSTOMIZING)
-          .body.append("mkdir -p conf logs webapps temp")
-          .failOnNonZeroResultCode()
-          .execute();
-
-      copyTemplate(entity.getConfig(TomcatServer.SERVER_XML_RESOURCE), Os.mergePaths(getRunDir(), "conf", "server.xml"));
-      copyTemplate(entity.getConfig(TomcatServer.WEB_XML_RESOURCE), Os.mergePaths(getRunDir(), "conf", "web.xml"));
-
-      if (isProtocolEnabled("HTTPS")) {
-          String keystoreUrl = Preconditions.checkNotNull(getSslKeystoreUrl(), "keystore URL must be specified if using HTTPS for " + entity);
-          String destinationSslKeystoreFile = getHttpsSslKeystoreFile();
-          InputStream keystoreStream = resource.getResourceFromUrl(keystoreUrl);
-          getMachine().copyTo(keystoreStream, destinationSslKeystoreFile);
-      }
-
-      getEntity().deployInitialWars();
-  }
+@Override
+public void customize() {
+    newScript(CUSTOMIZING)
+        .body.append("mkdir -p conf logs webapps temp")
+        .failOnNonZeroResultCode()
+        .execute();
+
+    copyTemplate(entity.getConfig(TomcatServer.SERVER_XML_RESOURCE), Os.mergePaths(getRunDir(), "conf", "server.xml"));
+    copyTemplate(entity.getConfig(TomcatServer.WEB_XML_RESOURCE), Os.mergePaths(getRunDir(), "conf", "web.xml"));
+
+    if (isProtocolEnabled("HTTPS")) {
+        String keystoreUrl = Preconditions.checkNotNull(getSslKeystoreUrl(), "keystore URL must be specified if using HTTPS for " + entity);
+        String destinationSslKeystoreFile = getHttpsSslKeystoreFile();
+        InputStream keystoreStream = resource.getResourceFromUrl(keystoreUrl);
+        getMachine().copyTo(keystoreStream, destinationSslKeystoreFile);
+    }
+
+    getEntity().deployInitialWars();
+}
 {% endhighlight %}
 
 Here we can see that it's running a script to create four directories before continuing with the customization. Let's
 introduce an error by changing `mkdir` to `mkrid`:
 
 {% highlight java %}
-      newScript(CUSTOMIZING)
-          .body.append("mkrid -p conf logs webapps temp") // `mkdir` changed to `mkrid`
-          .failOnNonZeroResultCode()
-          .execute();
+newScript(CUSTOMIZING)
+    .body.append("mkrid -p conf logs webapps temp") // `mkdir` changed to `mkrid`
+    .failOnNonZeroResultCode()
+    .execute();
 {% endhighlight %}
 
 Now let's try deploying this using the following YAML:
@@ -53,7 +53,7 @@ Now let's try deploying this using the following YAML:
 name: Tomcat failure test
 location: localhost
 services:
-- type: brooklyn.entity.webapp.tomcat.TomcatServer
+- type: org.apache.brooklyn.entity.webapp.tomcat.TomcatServer
 
 {% endhighlight %}
 
@@ -93,16 +93,16 @@ STDOUT
 Executed /tmp/brooklyn-20150721-132251052-l4b9-customizing_TomcatServerImpl_i.sh, result 127: Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x}
 
 java.lang.IllegalStateException: Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x}
-    at brooklyn.entity.basic.lifecycle.ScriptHelper.logWithDetailsAndThrow(ScriptHelper.java:390)
-    at brooklyn.entity.basic.lifecycle.ScriptHelper.executeInternal(ScriptHelper.java:379)
-    at brooklyn.entity.basic.lifecycle.ScriptHelper$8.call(ScriptHelper.java:289)
-    at brooklyn.entity.basic.lifecycle.ScriptHelper$8.call(ScriptHelper.java:287)
-    at brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343)
-    at brooklyn.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469)
+    at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.logWithDetailsAndThrow(ScriptHelper.java:390)
+    at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.executeInternal(ScriptHelper.java:379)
+    at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper$8.call(ScriptHelper.java:289)
+    at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper$8.call(ScriptHelper.java:287)
+    at org.apache.brooklyn.core.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343)
+    at org.apache.brooklyn.core.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469)
     at java.util.concurrent.FutureTask.run(FutureTask.java:262)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
-at java.lang.Thread.run(Thread.java:745)
+    at java.lang.Thread.run(Thread.java:745)
 {% endhighlight %}
 
 In order to find the exception, we'll need to look in Brooklyn's debug log file. By default, the debug log file
@@ -118,34 +118,32 @@ In this case, the `?Tomcat` search takes us directly to the full stack trace (On
 is shown here):
 
 {% highlight console %}
-
-at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[guava-17.0.jar:na]
-at brooklyn.util.task.BasicTask.get(BasicTask.java:343) ~[classes/:na]
-at brooklyn.util.task.BasicTask.getUnchecked(BasicTask.java:352) ~[classes/:na]
-... 9 common frames omitted
+... at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[guava-17.0.jar:na]
+    at org.apache.brooklyn.core.util.task.BasicTask.get(BasicTask.java:343) ~[classes/:na]
+    at org.apache.brooklyn.core.util.task.BasicTask.getUnchecked(BasicTask.java:352) ~[classes/:na]
+    ... 9 common frames omitted
 Caused by: brooklyn.util.exceptions.PropagatedRuntimeException: 
-at brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:97) ~[classes/:na]
-at brooklyn.util.task.BasicTask.getUnchecked(BasicTask.java:354) ~[classes/:na]
-at brooklyn.entity.basic.lifecycle.ScriptHelper.execute(ScriptHelper.java:339) ~[classes/:na]
-at brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:72) ~[classes/:na]
-at brooklyn.entity.basic.AbstractSoftwareProcessDriver$8.run(AbstractSoftwareProcessDriver.java:150) ~[classes/:na]
-at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_71]
-at brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343) ~[classes/:na]
-... 5 common frames omitted
+    at org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:97) ~[classes/:na]
+    at org.apache.brooklyn.core.util.task.BasicTask.getUnchecked(BasicTask.java:354) ~[classes/:na]
+    at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.execute(ScriptHelper.java:339) ~[classes/:na]
+    at org.apache.brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:72) ~[classes/:na]
+    at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver$8.run(AbstractSoftwareProcessDriver.java:150) ~[classes/:na]
+    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_71]
+    at org.apache.brooklyn.core.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343) ~[classes/:na]
+    ... 5 common frames omitted
 Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x}
-at java.util.concurrent.FutureTask.report(FutureTask.java:122) [na:1.7.0_71]
-at java.util.concurrent.FutureTask.get(FutureTask.java:188) [na:1.7.0_71]
-at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[guava-17.0.jar:na]
-at brooklyn.util.task.BasicTask.get(BasicTask.java:343) ~[classes/:na]
-at brooklyn.util.task.BasicTask.getUnchecked(BasicTask.java:352) ~[classes/:na]
-... 10 common frames omitted
+    at java.util.concurrent.FutureTask.report(FutureTask.java:122) [na:1.7.0_71]
+    at java.util.concurrent.FutureTask.get(FutureTask.java:188) [na:1.7.0_71]
+    at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[guava-17.0.jar:na]
+    at org.apache.brooklyn.core.util.task.BasicTask.get(BasicTask.java:343) ~[classes/:na]
+    at org.apache.brooklyn.core.util.task.BasicTask.getUnchecked(BasicTask.java:352) ~[classes/:na]
+    ... 10 common frames omitted
 Caused by: java.lang.IllegalStateException: Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x}
-at brooklyn.entity.basic.lifecycle.ScriptHelper.logWithDetailsAndThrow(ScriptHelper.java:390) ~[classes/:na]
-at brooklyn.entity.basic.lifecycle.ScriptHelper.executeInternal(ScriptHelper.java:379) ~[classes/:na]
-at brooklyn.entity.basic.lifecycle.ScriptHelper$8.call(ScriptHelper.java:289) ~[classes/:na]
-at brooklyn.entity.basic.lifecycle.ScriptHelper$8.call(ScriptHelper.java:287) ~[classes/:na]
-... 6 common frames omitted
-
+    at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.logWithDetailsAndThrow(ScriptHelper.java:390) ~[classes/:na]
+    at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.executeInternal(ScriptHelper.java:379) ~[classes/:na]
+    at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper$8.call(ScriptHelper.java:289) ~[classes/:na]
+    at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper$8.call(ScriptHelper.java:287) ~[classes/:na]
+    ... 6 common frames omitted
 {% endhighlight %}
 
 Brooklyn's use of tasks and helper classes can make the stack trace a little harder than usual to follow, but a good
@@ -153,7 +151,7 @@ place to start is to look through the stack trace for the node's implementation
 named `FooNodeImpl` or `FooSshDriver`). In this case we can see the following:
 
 {% highlight console %}
-at brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:72) ~[classes/:na]
+at org.apache.brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:72) ~[classes/:na]
 {% endhighlight %}
 
 Combining this with the error message of `mkrid: command not found` we can see that indeed `mkdir` has been
@@ -192,27 +190,27 @@ this case it's shown in the Detailed Status section, and we don't need to go to
 Failed after 221ms: Error getting resource 'classpath://nonexistent.xml' for TomcatServerImpl{id=PVZxDKU1}: java.io.IOException: Error accessing classpath://nonexistent.xml: java.io.IOException: nonexistent.xml not found on classpath
 
 java.lang.RuntimeException: Error getting resource 'classpath://nonexistent.xml' for TomcatServerImpl{id=PVZxDKU1}: java.io.IOException: Error accessing classpath://nonexistent.xml: java.io.IOException: nonexistent.xml not found on classpath
-    at brooklyn.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:297)
-    at brooklyn.util.ResourceUtils.getResourceAsString(ResourceUtils.java:475)
-    at brooklyn.entity.basic.AbstractSoftwareProcessDriver.getResourceAsString(AbstractSoftwareProcessDriver.java:447)
-    at brooklyn.entity.basic.AbstractSoftwareProcessDriver.processTemplate(AbstractSoftwareProcessDriver.java:469)
-    at brooklyn.entity.basic.AbstractSoftwareProcessDriver.copyTemplate(AbstractSoftwareProcessDriver.java:390)
-    at brooklyn.entity.basic.AbstractSoftwareProcessDriver.copyTemplate(AbstractSoftwareProcessDriver.java:379)
-    at brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:79)
-    at brooklyn.entity.basic.AbstractSoftwareProcessDriver$8.run(AbstractSoftwareProcessDriver.java:150)
+    at org.apache.brooklyn.core.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:297)
+    at org.apache.brooklyn.core.util.ResourceUtils.getResourceAsString(ResourceUtils.java:475)
+    at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver.getResourceAsString(AbstractSoftwareProcessDriver.java:447)
+    at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver.processTemplate(AbstractSoftwareProcessDriver.java:469)
+    at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver.copyTemplate(AbstractSoftwareProcessDriver.java:390)
+    at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver.copyTemplate(AbstractSoftwareProcessDriver.java:379)
+    at org.apache.brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:79)
+    at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver$8.run(AbstractSoftwareProcessDriver.java:150)
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
-    at brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343)
-    at brooklyn.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469)
+    at org.apache.brooklyn.core.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343)
+    at org.apache.brooklyn.core.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469)
     at java.util.concurrent.FutureTask.run(FutureTask.java:262)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
-at java.lang.Thread.run(Thread.java:745)
-    Caused by: java.io.IOException: Error accessing classpath://nonexistent.xml: java.io.IOException: nonexistent.xml not found on classpath
-at brooklyn.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:233)
+    at java.lang.Thread.run(Thread.java:745)
+Caused by: java.io.IOException: Error accessing classpath://nonexistent.xml: java.io.IOException: nonexistent.xml not found on classpath
+    at org.apache.brooklyn.core.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:233)
     ... 14 more
-    Caused by: java.io.IOException: nonexistent.xml not found on classpath
-    at brooklyn.util.ResourceUtils.getResourceViaClasspath(ResourceUtils.java:372)
-at brooklyn.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:230)
+Caused by: java.io.IOException: nonexistent.xml not found on classpath
+    at org.apache.brooklyn.core.util.ResourceUtils.getResourceViaClasspath(ResourceUtils.java:372)
+    at org.apache.brooklyn.core.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:230)
     ... 14 more
 
 {% endhighlight %}
@@ -230,7 +228,7 @@ the entity fails to start.
 We can simulate this type of failure by launching Tomcat with an invalid configuration file. As seen in the previous
 examples, Brooklyn copies two xml configuration files to the server: `server.xml` and `web.xml`
 
-The first few non-comment lines of `server.xml` are as follows (you can see the full file [here](https://github.com/apache/incubator-brooklyn/blob/master/software/webapp/src/main/resources/brooklyn/entity/webapp/tomcat/server.xml)):
+The first few non-comment lines of `server.xml` are as follows (you can see the full file [here]({{ site.brooklyn.url.git }}/software/webapp/src/main/resources/org/apache/brooklyn/entity/webapp/tomcat/server.xml)):
 
 {% highlight xml %}
 
@@ -275,14 +273,14 @@ The task that failed was the `post-start` task, and the stack trace from the Det
 Failed after 5m 1s: Timeout waiting for SERVICE_UP from TomcatServerImpl{id=BUHgQeOs}
 
 java.lang.IllegalStateException: Timeout waiting for SERVICE_UP from TomcatServerImpl{id=BUHgQeOs}
-    at brooklyn.entity.basic.Entities.waitForServiceUp(Entities.java:1073)
-    at brooklyn.entity.basic.SoftwareProcessImpl.waitForServiceUp(SoftwareProcessImpl.java:388)
-    at brooklyn.entity.basic.SoftwareProcessImpl.waitForServiceUp(SoftwareProcessImpl.java:385)
-    at brooklyn.entity.basic.SoftwareProcessDriverLifecycleEffectorTasks.postStartCustom(SoftwareProcessDriverLifecycleEffectorTasks.java:164)
-    at brooklyn.entity.software.MachineLifecycleEffectorTasks$7.run(MachineLifecycleEffectorTasks.java:433)
+    at org.apache.brooklyn.core.entity.Entities.waitForServiceUp(Entities.java:1073)
+    at org.apache.brooklyn.entity.software.base.SoftwareProcessImpl.waitForServiceUp(SoftwareProcessImpl.java:388)
+    at org.apache.brooklyn.entity.software.base.SoftwareProcessImpl.waitForServiceUp(SoftwareProcessImpl.java:385)
+    at org.apache.brooklyn.entity.software.base.SoftwareProcessDriverLifecycleEffectorTasks.postStartCustom(SoftwareProcessDriverLifecycleEffectorTasks.java:164)
+    at org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$7.run(MachineLifecycleEffectorTasks.java:433)
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
-    at brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343)
-    at brooklyn.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469)
+    at org.apache.brooklyn.core.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343)
+    at org.apache.brooklyn.core.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469)
     at java.util.concurrent.FutureTask.run(FutureTask.java:262)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
@@ -418,7 +416,7 @@ Let's go back to the Brooklyn debug console and look for the `webapp.tomcat.conn
 [![Sensors view in the Brooklyn debug console.](images/jmx-sensors.png)](images/jmx-sensors-large.png)
 
 As the sensor is not shown, it's likely that it's simply null or not set. We can check this by clicking
-the `Show/hide empty records` icon (highlighted in yellow above):
+the "Show/hide empty records" icon (highlighted in yellow above):
 
 [![All sensors view in the Brooklyn debug console.](images/jmx-sensors-all.png)](images/jmx-sensors-all-large.png)
 
@@ -448,7 +446,7 @@ Let's take a look in the log file:
 
 {% highlight console %}
 
-less /tmp/brooklyn-martin/apps/c3bmrlC3/entities/TomcatServer_C1TAjYia/logs/catalina.out
+$ less /tmp/brooklyn-martin/apps/c3bmrlC3/entities/TomcatServer_C1TAjYia/logs/catalina.out
 
 Jul 21, 2015 4:12:12 PM org.apache.tomcat.util.digester.Digester fatalError
 SEVERE: Parse Fatal Error at line 143 column 3: The element type "unmatched-element" must be terminated by the matching end-tag "</unmatched-element>".
@@ -475,12 +473,11 @@ SEVERE: Parse Fatal Error at line 143 column 3: The element type "unmatched-elem
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.lang.reflect.Method.invoke(Method.java:497)
     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
-at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
-
-    Jul 21, 2015 4:12:12 PM org.apache.catalina.startup.Catalina load
-    WARNING: Catalina.start using conf/server.xml: The element type "unmatched-element" must be terminated by the matching end-tag "</unmatched-element>".
-    Jul 21, 2015 4:12:12 PM org.apache.catalina.startup.Catalina start
-    SEVERE: Cannot start server. Server instance is not configured.
+    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
+Jul 21, 2015 4:12:12 PM org.apache.catalina.startup.Catalina load
+WARNING: Catalina.start using conf/server.xml: The element type "unmatched-element" must be terminated by the matching end-tag "</unmatched-element>".
+Jul 21, 2015 4:12:12 PM org.apache.catalina.startup.Catalina start
+SEVERE: Cannot start server. Server instance is not configured.
 
 {% endhighlight %}
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/ops/troubleshooting/softwareprocess.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/softwareprocess.md b/docs/guide/ops/troubleshooting/softwareprocess.md
index 5e7f883..85ab2c0 100644
--- a/docs/guide/ops/troubleshooting/softwareprocess.md
+++ b/docs/guide/ops/troubleshooting/softwareprocess.md
@@ -20,7 +20,8 @@ or `~/.ssh/id_dsa` on the Brooklyn host (uploading the associated `~/.ssh/id_rsa
 authorised_keys). However, this can be overridden (e.g. with specific passwords etc) in the 
 location's configuration.
 
-For Windows, there is a similar sensor with the name `host.winrmAddress`. (TODO sensor for password?) 
+For Windows, there is a similar sensor with the name `host.winrmAddress`. 
+<!-- TODO similar sensor for password? --> 
 
 
 ## Install and Run Directories

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/start/_my-web-cluster.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/start/_my-web-cluster.yaml b/docs/guide/start/_my-web-cluster.yaml
index d4c5ce6..ba22574 100644
--- a/docs/guide/start/_my-web-cluster.yaml
+++ b/docs/guide/start/_my-web-cluster.yaml
@@ -4,7 +4,7 @@ location: localhost
 
 services:
 
-- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster
+- type: org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster
   name: My Web
   brooklyn.config:
     wars.root: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/chef/creating-blueprints.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/chef/creating-blueprints.md b/docs/guide/yaml/chef/creating-blueprints.md
index 337c7f3..8d30131 100644
--- a/docs/guide/yaml/chef/creating-blueprints.md
+++ b/docs/guide/yaml/chef/creating-blueprints.md
@@ -27,7 +27,7 @@ The first thing to note is the type definition:
 
     - type: chef:mysql
 
-This indicates that the Chef entity should be used (`brooklyn.entity.chef.ChefEntity`) 
+This indicates that the Chef entity should be used (`org.apache.brooklyn.entity.chef.ChefEntity`) 
 to interpret and pass the configuration,
 and that it should be parameterised with a `brooklyn.chef.cookbook.primary.name` of `mysql`.
 This is the cookbook namespace used by default for determining what to install and run.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/custom-entities.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/custom-entities.md b/docs/guide/yaml/custom-entities.md
index 04f7763..a2887a9 100644
--- a/docs/guide/yaml/custom-entities.md
+++ b/docs/guide/yaml/custom-entities.md
@@ -76,7 +76,7 @@ using `env` variables to inject the `netcat-server` location and
       env:
         TARGET_HOSTNAME: $brooklyn:component("netcat-server").attributeWhenReady("host.name")
       brooklyn.initializers:
-      - type: brooklyn.entity.software.ssh.SshCommandEffector
+      - type: org.apache.brooklyn.core.effector.ssh.SshCommandEffector
         brooklyn.config:
           name: sayHiNetcat
           description: Echo a small hello string to the netcat entity
@@ -94,7 +94,7 @@ so that the `$message` we passed above gets logged and reported back:
         echo hello | nc -l 4321 >> server-input &
         echo $! > $PID_FILE
       brooklyn.initializers:
-      - type: brooklyn.entity.software.ssh.SshCommandSensor
+      - type: org.apache.brooklyn.core.sensor.ssh.SshCommandSensor
         brooklyn.config:
           name: output.last
           command: tail -1 server-input

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/example_yaml/appserver-clustered-w-db.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/example_yaml/appserver-clustered-w-db.yaml b/docs/guide/yaml/example_yaml/appserver-clustered-w-db.yaml
index 79bc187..8bbb14f 100644
--- a/docs/guide/yaml/example_yaml/appserver-clustered-w-db.yaml
+++ b/docs/guide/yaml/example_yaml/appserver-clustered-w-db.yaml
@@ -1,10 +1,10 @@
 name: appserver-clustered-w-db
 services:
-- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster
+- type: org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster
   initialSize: 2
   memberSpec:
     $brooklyn:entitySpec:
-      type: brooklyn.entity.webapp.jboss.JBoss7Server
+      type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server
       brooklyn.config:
         wars.root: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war
         http.port: 8080+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/example_yaml/appserver-configured-in-config.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/example_yaml/appserver-configured-in-config.yaml b/docs/guide/yaml/example_yaml/appserver-configured-in-config.yaml
index 50c1873..f817dd7 100644
--- a/docs/guide/yaml/example_yaml/appserver-configured-in-config.yaml
+++ b/docs/guide/yaml/example_yaml/appserver-configured-in-config.yaml
@@ -1,6 +1,6 @@
 name: appserver-configured-in-config
 services:
-- type: brooklyn.entity.webapp.jboss.JBoss7Server
+- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server
   brooklyn.config:
     wars.root: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war
     http.port: 8080

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/example_yaml/appserver-configured.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/example_yaml/appserver-configured.yaml b/docs/guide/yaml/example_yaml/appserver-configured.yaml
index 04ec858..58416ca 100644
--- a/docs/guide/yaml/example_yaml/appserver-configured.yaml
+++ b/docs/guide/yaml/example_yaml/appserver-configured.yaml
@@ -1,5 +1,5 @@
 name: appserver-configured
 services:
-- type: brooklyn.entity.webapp.jboss.JBoss7Server
+- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server
   war: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war
   httpPort: 8080

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/example_yaml/appserver-w-db-other-flavor.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/example_yaml/appserver-w-db-other-flavor.yaml b/docs/guide/yaml/example_yaml/appserver-w-db-other-flavor.yaml
index 8c0fa2a..ac1106e 100644
--- a/docs/guide/yaml/example_yaml/appserver-w-db-other-flavor.yaml
+++ b/docs/guide/yaml/example_yaml/appserver-w-db-other-flavor.yaml
@@ -1,6 +1,6 @@
 name: appserver-w-db-other-flavor
 services:
-- type: brooklyn.entity.webapp.tomcat.TomcatServer
+- type: org.apache.brooklyn.entity.webapp.tomcat.TomcatServer
   name: AppServer HelloWorld 
   brooklyn.config:
     wars.root: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/example_yaml/appserver-w-db.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/example_yaml/appserver-w-db.yaml b/docs/guide/yaml/example_yaml/appserver-w-db.yaml
index adc90f0..0e9d959 100644
--- a/docs/guide/yaml/example_yaml/appserver-w-db.yaml
+++ b/docs/guide/yaml/example_yaml/appserver-w-db.yaml
@@ -1,6 +1,6 @@
 name: appserver-w-db
 services:
-- type: brooklyn.entity.webapp.jboss.JBoss7Server
+- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server
   name: AppServer HelloWorld 
   brooklyn.config:
     wars.root: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/example_yaml/appserver-w-policy.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/example_yaml/appserver-w-policy.yaml b/docs/guide/yaml/example_yaml/appserver-w-policy.yaml
index b71357c..52bc3b8 100644
--- a/docs/guide/yaml/example_yaml/appserver-w-policy.yaml
+++ b/docs/guide/yaml/example_yaml/appserver-w-policy.yaml
@@ -1,10 +1,10 @@
 name: appserver-w-policy
 services:
-- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster
+- type: org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster
   initialSize: 1
   memberSpec:
     $brooklyn:entitySpec:
-      type: brooklyn.entity.webapp.jboss.JBoss7Server
+      type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server
       brooklyn.config:
         wars.root: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war
         http.port: 8080+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/example_yaml/cluster-vm.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/example_yaml/cluster-vm.yaml b/docs/guide/yaml/example_yaml/cluster-vm.yaml
index 50521fb..2b57f4e 100644
--- a/docs/guide/yaml/example_yaml/cluster-vm.yaml
+++ b/docs/guide/yaml/example_yaml/cluster-vm.yaml
@@ -1,6 +1,6 @@
 name: cluster-vm
 services:
-- type: brooklyn.entity.group.DynamicCluster
+- type: org.apache.brooklyn.entity.group.DynamicCluster
   initialSize: 5
   memberSpec:
     $brooklyn:entitySpec:

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/example_yaml/simple-appserver-with-location-byon.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/example_yaml/simple-appserver-with-location-byon.yaml b/docs/guide/yaml/example_yaml/simple-appserver-with-location-byon.yaml
index 7ba5b0c..633716f 100644
--- a/docs/guide/yaml/example_yaml/simple-appserver-with-location-byon.yaml
+++ b/docs/guide/yaml/example_yaml/simple-appserver-with-location-byon.yaml
@@ -7,6 +7,6 @@ location:
     - 192.168.0.18
     - 192.168.0.19
 services:
-- type: brooklyn.entity.webapp.jboss.JBoss7Server
+- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server
   location:
     byon: { hosts: [ 127.0.0.1 ] }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/example_yaml/simple-appserver-with-location.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/example_yaml/simple-appserver-with-location.yaml b/docs/guide/yaml/example_yaml/simple-appserver-with-location.yaml
index c241ab2..79344c8 100644
--- a/docs/guide/yaml/example_yaml/simple-appserver-with-location.yaml
+++ b/docs/guide/yaml/example_yaml/simple-appserver-with-location.yaml
@@ -5,4 +5,4 @@ location:
     identity: AKA_YOUR_ACCESS_KEY_ID
     credential: <access-key-hex-digits>
 services:
-- type: brooklyn.entity.webapp.jboss.JBoss7Server
+- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/example_yaml/simple-appserver.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/example_yaml/simple-appserver.yaml b/docs/guide/yaml/example_yaml/simple-appserver.yaml
index 3850b26..8e9d76a 100644
--- a/docs/guide/yaml/example_yaml/simple-appserver.yaml
+++ b/docs/guide/yaml/example_yaml/simple-appserver.yaml
@@ -1,4 +1,4 @@
 name: simple-appserver
 location: localhost
 services:
-- type: brooklyn.entity.webapp.jboss.JBoss7Server
+- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/example_yaml/test-app-with-enrichers-slightly-simpler.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/example_yaml/test-app-with-enrichers-slightly-simpler.yaml b/docs/guide/yaml/example_yaml/test-app-with-enrichers-slightly-simpler.yaml
index b35c2ff..55d5b87 100644
--- a/docs/guide/yaml/example_yaml/test-app-with-enrichers-slightly-simpler.yaml
+++ b/docs/guide/yaml/example_yaml/test-app-with-enrichers-slightly-simpler.yaml
@@ -1,25 +1,25 @@
 #
 # example showing how enrichers can be set 
-# 
+#
 name: test-app-with-enrichers
 description: Testing many enrichers
 services:
-- type: brooklyn.entity.group.DynamicCluster
+- type: org.apache.brooklyn.entity.group.DynamicCluster
   id: cluster
   initialSize: 3
   location: localhost
   memberSpec:
     $brooklyn:entitySpec:
-      type: brooklyn.test.entity.TestEntity
+      type: org.apache.brooklyn.core.test.entity.TestEntity
       brooklyn.enrichers:
-      - type: brooklyn.enricher.basic.Transformer
+      - type: org.apache.brooklyn.enricher.stock.Transformer
         # transform "ip" (which we expect a feed, not shown here, to set) to a URL;
         # you can curl an address string to the sensors/ip endpoint an entity to trigger these enrichers 
         brooklyn.config:
           enricher.sourceSensor: $brooklyn:sensor("ip")
           enricher.targetSensor: $brooklyn:sensor("url")
           enricher.targetValue: $brooklyn:formatString("http://%s/", $brooklyn:attributeWhenReady("ip"))
-      - type: brooklyn.enricher.basic.Propagator
+      - type: org.apache.brooklyn.enricher.stock.Propagator
         # use propagator to duplicate one sensor as another, giving the supplied sensor mapping;
         # the other use of Propagator is where you specify a producer (using $brooklyn:entity(...) as below)
         # from which to take sensors; in that mode you can specify `propagate` as a list of sensors whose names are unchanged,
@@ -28,13 +28,13 @@ services:
           sensorMapping:
             $brooklyn:sensor("url"): $brooklyn:sensor("org.apache.brooklyn.core.entity.Attributes", "main.uri")
   brooklyn.enrichers:
-  - type: brooklyn.enricher.basic.Aggregator
+  - type: org.apache.brooklyn.enricher.stock.Aggregator
     # aggregate `url` sensors from children into a list
     brooklyn.config:
       enricher.sourceSensor: $brooklyn:sensor("url")
       enricher.targetSensor: $brooklyn:sensor("urls.list")
       enricher.aggregating.fromMembers: true
-  - type: brooklyn.enricher.basic.Joiner
+  - type: org.apache.brooklyn.enricher.stock.Joiner
     # create a string from that list, for use e.g. in bash scripts
     brooklyn.config:
       enricher.sourceSensor: $brooklyn:sensor("urls.list")
@@ -42,7 +42,7 @@ services:
       maximum: 2
       # TODO infer uniqueTag, name etc
       uniqueTag: urls.list.comma_separated.max_2
-  - type: brooklyn.enricher.basic.Joiner
+  - type: org.apache.brooklyn.enricher.stock.Joiner
     # pick one uri as the main one to use
     brooklyn.config:
       enricher.sourceSensor: $brooklyn:sensor("urls.list")
@@ -50,7 +50,7 @@ services:
       quote: false
       maximum: 1
 brooklyn.enrichers:
-- type: brooklyn.enricher.basic.Propagator
+- type: org.apache.brooklyn.enricher.stock.Propagator
   # if nothing specified for `propagating` or `sensorMapping` then 
   # Propagator will do all but the usual lifecycle defaults, handy at the root!
   brooklyn.config:

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/index.md b/docs/guide/yaml/index.md
index c431d1a..55acfee 100644
--- a/docs/guide/yaml/index.md
+++ b/docs/guide/yaml/index.md
@@ -9,6 +9,7 @@ children:
 - multiple-services.md
 - clusters-and-policies.md
 - custom-entities.md
+- winrm/
 - chef/
 - { path: yaml-reference.md, title: YAML Blueprint Reference }
 - { link: 'https://github.com/brooklyncentral/blueprint-library', title: 'GitHub Blueprint Library' }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/winrm/about-winrm.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/winrm/about-winrm.md b/docs/guide/yaml/winrm/about-winrm.md
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/winrm/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/winrm/index.md b/docs/guide/yaml/winrm/index.md
index 7989a61..58b5524 100644
--- a/docs/guide/yaml/winrm/index.md
+++ b/docs/guide/yaml/winrm/index.md
@@ -1,5 +1,5 @@
 ---
-title: Windows blueprints
+title: Windows Blueprints
 layout: website-normal
 children:
 - re-authentication.md
@@ -112,7 +112,7 @@ The installation script - referred to as `/Users/richard/install7zip.ps1` in the
     Start-Process "msiexec" -ArgumentList '/qn','/i',$Dl -RedirectStandardOutput ( [System.IO.Path]::Combine($Path, "stdout.txt") ) -RedirectStandardError ( [System.IO.Path]::Combine($Path, "stderr.txt") ) -Wait
 
 This is only a very simple example. A core complex example can be found in the [Microsoft SQL Server blueprint in the
-Brooklyn source code](https://github.com/apache/incubator-brooklyn/tree/master/software/database/src/main/resources/brooklyn/entity/database/mssql).
+Brooklyn source code]({{ brooklyn.url.git }}/software/database/src/main/resources/org/apache/brooklyn/entity/database/mssql).
 
 
 Known Limitations and Special Cases

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/yaml/yaml-reference.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/yaml-reference.md b/docs/guide/yaml/yaml-reference.md
index 64c81a5..221e71e 100644
--- a/docs/guide/yaml/yaml-reference.md
+++ b/docs/guide/yaml/yaml-reference.md
@@ -18,9 +18,9 @@ service `type` (synonyms `serviceType` and `service_type`), indicating what type
 service is being specified there.  The following formats are supported for
 defining types:
 
-* `io.brooklyn.package.JavaEntityClass`
-* `java:io.brooklyn.package.JavaEntityClass`
-* *OSGi and YAML references are coming soon!* <!-- TODO -->
+* `com.acme.brooklyn.package.JavaEntityClass`
+* `java:com.acme.brooklyn.package.JavaEntityClass`
+* `java-entity-class` (where this has been added to the [catalog](../ops/catalog/))
 
 A reference of some of the common service `type` instances used is included in a section below.
 
@@ -49,12 +49,12 @@ the entity being defined, with these being the most common:
   a single `Map` where the `brooklyn.config` is passed in.
   Some common initializers are:
   
-  * `brooklyn.entity.software.ssh.SshCommandEffector`: takes a `name` and `command`,
+  * `org.apache.brooklyn.core.effector.ssh.SshCommandEffector`: takes a `name` and `command`,
     and optionally a map of named `parameters` to their `description` and `defaultValue`,
     to define an effector with the given name implemented by the given SSH command
     (on an entity which as an ssh-able machine)
 
-  * `brooklyn.entity.software.ssh.SshCommandSensor`: takes a `name` and `command`,
+  * `org.apache.brooklyn.core.sensor.ssh.SshCommandSensor`: takes a `name` and `command`,
     and optionally a `period`, to create a sensor feed which populates the sensor with
     the given name by running the given command (on an entity which as an ssh-able machine) 
 
@@ -151,7 +151,7 @@ concise DSL defined here:
 * `$brooklyn:config("key")` will insert the value set against the given key at this entity (or nearest ancestor);
   can be used to supply config at the root which is used in multiple places in the plan
 * `$brooklyn:sensor("sensor.name")` returns the given sensor on the current entity if found, or an untyped (Object) sensor;
-  `$brooklyn:sensor("io.brooklyn.ContainingEntityClass", "sensor.name")` returns the strongly typed sensor defined in the given class
+  `$brooklyn:sensor("com.acme.brooklyn.ContainingEntityClass", "sensor.name")` returns the strongly typed sensor defined in the given class
 * `$brooklyn:component("ID")` refers to a Brooklyn component with the given ID; you can then access the following subfields,
   using the same syntax as defined above but with a different reference entity,
   e.g. `$brooklyn:component("ID").attributeWhenReady("sensor")`:

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/website/developers/committers/release-process/verify-release-artifacts.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/verify-release-artifacts.md b/docs/website/developers/committers/release-process/verify-release-artifacts.md
index 048737b..086e56c 100644
--- a/docs/website/developers/committers/release-process/verify-release-artifacts.md
+++ b/docs/website/developers/committers/release-process/verify-release-artifacts.md
@@ -113,7 +113,7 @@ Try deploying a simple app, such as the YAML:
 {% highlight yaml %}
 location: localhost
 services:
-- type: brooklyn.entity.webapp.jboss.JBoss7Server
+- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server
 {% endhighlight %}
 
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/website/learnmore/blueprint-tour.md
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/blueprint-tour.md b/docs/website/learnmore/blueprint-tour.md
index c31ac89..0a7795b 100644
--- a/docs/website/learnmore/blueprint-tour.md
+++ b/docs/website/learnmore/blueprint-tour.md
@@ -116,7 +116,7 @@ services:</div></div>
             under the covers automatically with OSGi.
         </p></div>
       </div><div class="connector"><div>&nbsp;</div></div></div></div>
-<div>- type: <span class="ann_highlight">brooklyn.entity.webapp.ControlledDynamicWebAppCluster:1.1.0</span>
+<div>- type: <span class="ann_highlight">org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster:1.1.0</span>
   war: http://example.com/couchbase-chat/chatroom.war
   java.sysprops:
     chat.db.url: $brooklyn:entity("chat-couchbase").attributeWhenReady("couchbase.cluster.connection.url")</div></div>
@@ -135,7 +135,7 @@ services:</div></div>
 <div>  brooklyn.policies:
   - type: <span class="ann_highlight">autoscaler</span>
     brooklyn.config:
-      metric: $brooklyn:sensor(""webapp.reqs.perSec.windowed.perNode")
+      metric: $brooklyn:sensor("webapp.reqs.perSec.windowed.perNode")
       metricLowerBound: 400
       metricUpperBound: 600</div></div>
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/website/learnmore/catalog/catalog-item.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/catalog-item.html b/docs/website/learnmore/catalog/catalog-item.html
index b7acd5b..f52ec56 100644
--- a/docs/website/learnmore/catalog/catalog-item.html
+++ b/docs/website/learnmore/catalog/catalog-item.html
@@ -73,7 +73,7 @@ under the License.
         return;
       }
 
-      // entities/brooklyn.entity.brooklynnode.BrooklynNode
+      // e.g. entities/org.apache.brooklyn.entity.brooklynnode.BrooklynNode
       var item = brooklyn.findItemOfType(items[args[0]], args[1]);
 
       $("#summary").html(brooklyn.typeSummary(item));

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsUtil.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsUtil.java b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsUtil.java
index bfa3003..1101b34 100644
--- a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsUtil.java
+++ b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsUtil.java
@@ -170,7 +170,7 @@ public class JcloudsUtil implements JcloudsLocationConfig {
     }
 
     /**
-     * @deprecated since 0.7; {@see #installJavaAndCurl(OperatingSystem)}
+     * @deprecated since 0.7; see {@link #installJavaAndCurl(OperatingSystem)}
      */
     @Deprecated
     public static final Statement APT_RUN_SCRIPT = newStatementList(//
@@ -185,7 +185,7 @@ public class JcloudsUtil implements JcloudsLocationConfig {
                 .toString()));
 
     /**
-     * @deprecated since 0.7; {@see #installJavaAndCurl(OperatingSystem)}
+     * @deprecated since 0.7; see {@link #installJavaAndCurl(OperatingSystem)}
      */
     @Deprecated
     public static final Statement YUM_RUN_SCRIPT = newStatementList(
@@ -198,7 +198,7 @@ public class JcloudsUtil implements JcloudsLocationConfig {
                 .toString()));
 
     /**
-     * @deprecated since 0.7; {@see #installJavaAndCurl(OperatingSystem)}
+     * @deprecated since 0.7; {@link #installJavaAndCurl(OperatingSystem)}
      */
     @Deprecated
     public static final Statement ZYPPER_RUN_SCRIPT = exec(new StringBuilder()//

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/JcloudsPortForwarderExtension.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/JcloudsPortForwarderExtension.java b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/JcloudsPortForwarderExtension.java
index deacda4..d101a60 100644
--- a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/JcloudsPortForwarderExtension.java
+++ b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/JcloudsPortForwarderExtension.java
@@ -19,6 +19,7 @@
 package org.apache.brooklyn.location.jclouds.networking;
 
 import org.jclouds.compute.domain.NodeMetadata;
+import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.core.location.access.BrooklynAccessUtils;
 import org.apache.brooklyn.core.location.access.PortForwardManager;
 import org.apache.brooklyn.util.net.Cidr;
@@ -35,7 +36,7 @@ public interface JcloudsPortForwarderExtension {
      * 
      * This should also register the port with the {@link PortForwardManager}, via 
      * {@code portForwardManager.associate(node.getId(), result, targetPort)} so that
-     * subsequent calls to {@link BrooklynAccessUtils#getBrooklynAccessibleAddress(brooklyn.entity.Entity, int)}
+     * subsequent calls to {@link BrooklynAccessUtils#getBrooklynAccessibleAddress(Entity, int)}
      * will know about the mapped port.
      */
     public HostAndPort openPortForwarding(NodeMetadata node, int targetPort, Optional<Integer> optionalPublicPort, Protocol protocol, Cidr accessingCidr);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/policy/src/main/java/org/apache/brooklyn/policy/enricher/HttpLatencyDetector.java
----------------------------------------------------------------------
diff --git a/policy/src/main/java/org/apache/brooklyn/policy/enricher/HttpLatencyDetector.java b/policy/src/main/java/org/apache/brooklyn/policy/enricher/HttpLatencyDetector.java
index 58fda00..1bd9e8f 100644
--- a/policy/src/main/java/org/apache/brooklyn/policy/enricher/HttpLatencyDetector.java
+++ b/policy/src/main/java/org/apache/brooklyn/policy/enricher/HttpLatencyDetector.java
@@ -30,6 +30,7 @@ import java.util.concurrent.atomic.AtomicReference;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.EntityLocal;
 import org.apache.brooklyn.api.sensor.AttributeSensor;
+import org.apache.brooklyn.api.sensor.Enricher;
 import org.apache.brooklyn.api.sensor.SensorEvent;
 import org.apache.brooklyn.api.sensor.SensorEventListener;
 import org.apache.brooklyn.config.ConfigKey;
@@ -65,7 +66,7 @@ import com.google.common.reflect.TypeToken;
  * and has limited support for https.
  */
 //@Catalog(name="HTTP Latency Detector", description="An Enricher which computes latency in accessing a URL, normally by periodically polling that URL")
-public class HttpLatencyDetector extends AbstractEnricher {
+public class HttpLatencyDetector extends AbstractEnricher implements Enricher {
 
     private static final Logger log = LoggerFactory.getLogger(HttpLatencyDetector.class);
     
@@ -304,7 +305,7 @@ public class HttpLatencyDetector extends AbstractEnricher {
         }
 
         /** returns the detector. note that callers should then add this to the entity,
-         * typically using {@link Entity#addEnricher(brooklyn.policy.Enricher)} */
+         * typically using {@link Entity#addEnricher(Enricher)} */
         public HttpLatencyDetector build() {
             return new HttpLatencyDetector(MutableMap.builder()
                     .putIfNotNull(PERIOD, period)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/software/base/src/test/java/org/apache/brooklyn/feed/jmx/JmxFeedTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/feed/jmx/JmxFeedTest.java b/software/base/src/test/java/org/apache/brooklyn/feed/jmx/JmxFeedTest.java
index 3975e68..6b78930 100644
--- a/software/base/src/test/java/org/apache/brooklyn/feed/jmx/JmxFeedTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/feed/jmx/JmxFeedTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.brooklyn.feed.jmx;
 
-import static org.apache.brooklyn.test.TestUtils.executeUntilSucceeds;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertTrue;
 
@@ -64,22 +63,14 @@ import org.apache.brooklyn.entity.java.UsesJmx;
 import org.apache.brooklyn.entity.java.UsesJmx.JmxAgentModes;
 import org.apache.brooklyn.entity.software.base.test.jmx.GeneralisedDynamicMBean;
 import org.apache.brooklyn.entity.software.base.test.jmx.JmxService;
-import org.apache.brooklyn.feed.jmx.JmxAttributePollConfig;
-import org.apache.brooklyn.feed.jmx.JmxFeed;
-import org.apache.brooklyn.feed.jmx.JmxHelper;
-import org.apache.brooklyn.feed.jmx.JmxNotificationFilters;
-import org.apache.brooklyn.feed.jmx.JmxNotificationSubscriptionConfig;
-import org.apache.brooklyn.feed.jmx.JmxOperationPollConfig;
-import org.apache.brooklyn.feed.jmx.JmxValueFunctions;
+import org.apache.brooklyn.location.localhost.LocalhostMachineProvisioningLocation;
 import org.apache.brooklyn.test.Asserts;
-import org.apache.brooklyn.test.TestUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 import org.testng.collections.Lists;
-import org.apache.brooklyn.location.localhost.LocalhostMachineProvisioningLocation;
 
 import com.google.common.base.Function;
 import com.google.common.collect.ImmutableList;
@@ -236,7 +227,7 @@ public class JmxFeedTest {
                         .operationName(opName))
                 .build();
         
-        TestUtils.executeUntilSucceeds(ImmutableMap.of("timeout", TIMEOUT_MS), new Runnable() {
+        Asserts.succeedsEventually(ImmutableMap.of("timeout", TIMEOUT_MS), new Runnable() {
             public void run() {
                 assertTrue(invocationCount.get() > 0, "invocationCount="+invocationCount);
                 assertEquals(entity.getAttribute(intAttribute), (Integer)opReturnVal);
@@ -413,7 +404,7 @@ public class JmxFeedTest {
     }
     
     private <T> void assertSensorEventually(final AttributeSensor<T> sensor, final T expectedVal, long timeout) {
-        executeUntilSucceeds(ImmutableMap.of("timeout", timeout), new Callable<Void>() {
+        Asserts.succeedsEventually(ImmutableMap.of("timeout", timeout), new Callable<Void>() {
             public Void call() {
                 assertEquals(entity.getAttribute(sensor), expectedVal);
                 return null;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/software/base/src/test/java/org/apache/brooklyn/feed/jmx/JmxHelperTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/feed/jmx/JmxHelperTest.java b/software/base/src/test/java/org/apache/brooklyn/feed/jmx/JmxHelperTest.java
index 3470166..a78f49b 100644
--- a/software/base/src/test/java/org/apache/brooklyn/feed/jmx/JmxHelperTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/feed/jmx/JmxHelperTest.java
@@ -36,6 +36,7 @@ import javax.management.StandardEmitterMBean;
 import org.apache.brooklyn.entity.software.base.test.jmx.GeneralisedDynamicMBean;
 import org.apache.brooklyn.entity.software.base.test.jmx.JmxService;
 import org.apache.brooklyn.feed.jmx.JmxHelper;
+import org.apache.brooklyn.test.Asserts;
 import org.apache.brooklyn.test.TestUtils;
 import org.apache.brooklyn.util.collections.MutableMap;
 import org.apache.brooklyn.util.exceptions.Exceptions;
@@ -249,7 +250,7 @@ public class JmxHelperTest {
 
         final Notification notif = sendNotification(mbean, "one", sequence++, "abc");
 
-        TestUtils.executeUntilSucceeds(ImmutableMap.of("timeout", TIMEOUT_MS), new Runnable() {
+        Asserts.succeedsEventually(ImmutableMap.of("timeout", TIMEOUT_MS), new Runnable() {
             public void run() {
                 assertEquals(received.size(), 1);
                 assertNotificationsEqual(received.get(0), notif);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/software/nosql/src/main/resources/org/apache/brooklyn/entity/nosql/couchbase/pillowfight.yaml
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/resources/org/apache/brooklyn/entity/nosql/couchbase/pillowfight.yaml b/software/nosql/src/main/resources/org/apache/brooklyn/entity/nosql/couchbase/pillowfight.yaml
index 5323885..d91fcc9 100644
--- a/software/nosql/src/main/resources/org/apache/brooklyn/entity/nosql/couchbase/pillowfight.yaml
+++ b/software/nosql/src/main/resources/org/apache/brooklyn/entity/nosql/couchbase/pillowfight.yaml
@@ -34,7 +34,7 @@ services:
     base_url: http://127.0.0.1:8091/
     
   brooklyn.initializers:
-  - type: brooklyn.entity.software.ssh.SshCommandEffector
+  - type: org.apache.brooklyn.core.effector.ssh.SshCommandEffector
     brooklyn.config:
       name: pillow_fight
       description: runs cbc pillowfight

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxSshDriver.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxSshDriver.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxSshDriver.java
index ac26374..f309ca4 100644
--- a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxSshDriver.java
+++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxSshDriver.java
@@ -326,8 +326,7 @@ public class NginxSshDriver extends AbstractSoftwareProcessSshDriver implements
 
         getEntity().doExtraConfigurationDuringStart();
 
-        // We wait for evidence of running because, using
-        // brooklyn.ssh.config.tool.class=brooklyn.util.internal.ssh.cli.SshCliTool,
+        // We wait for evidence of running because, using SshCliTool,
         // we saw the ssh session return before the tomcat process was fully running
         // so the process failed to start.
         newScript(MutableMap.of("usePidFile", false), LAUNCHING)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java
index 80933df..e542af6 100644
--- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java
+++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java
@@ -142,8 +142,7 @@ public class JBoss6SshDriver extends JavaWebAppSshDriver implements JBoss6Driver
         // run.sh must be backgrounded otherwise the script will never return.
 
         // Don't automatically create pid; instead set JBOSS_PIDFILE to create the pid file we need
-        // We wait for evidence of tomcat running because, using 
-        // brooklyn.ssh.config.tool.class=brooklyn.util.internal.ssh.cli.SshCliTool,
+        // We wait for evidence of tomcat running because, using SshCliTool,
         // we saw the ssh session return before the tomcat process was fully running 
         // so the process failed to start.
         newScript(MutableMap.of(USE_PID_FILE, false), LAUNCHING)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java
index 7cbfff8..8425b6a 100644
--- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java
+++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java
@@ -198,8 +198,7 @@ public class JBoss7SshDriver extends JavaWebAppSshDriver implements JBoss7Driver
     public void launch() {
         entity.setAttribute(JBoss7Server.PID_FILE, Os.mergePathsUnix(getRunDir(), PID_FILENAME));
 
-        // We wait for evidence of JBoss running because, using
-        // brooklyn.ssh.config.tool.class=brooklyn.util.internal.ssh.cli.SshCliTool,
+        // We wait for evidence of JBoss running because, using SshCliTool,
         // we saw the ssh session return before the JBoss process was fully running
         // so the process failed to start.
         newScript(MutableMap.of(USE_PID_FILE, false), LAUNCHING)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatSshDriver.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatSshDriver.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatSshDriver.java
index 494f8a9..ed2dc60 100644
--- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatSshDriver.java
+++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatSshDriver.java
@@ -93,8 +93,7 @@ public class TomcatSshDriver extends JavaWebAppSshDriver implements TomcatDriver
         Map<String, Integer> ports = MutableMap.of("httpPort", getHttpPort(), "shutdownPort", getShutdownPort());
         Networking.checkPortsValid(ports);
 
-        // We wait for evidence of tomcat running because, using 
-        // brooklyn.ssh.config.tool.class=brooklyn.util.internal.ssh.cli.SshCliTool,
+        // We wait for evidence of tomcat running because, using SshCliTool,
         // we saw the ssh session return before the tomcat process was fully running 
         // so the process failed to start.
         newScript(MutableMap.of(USE_PID_FILE, false), LAUNCHING)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/WebAppLiveIntegrationTest.groovy
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/WebAppLiveIntegrationTest.groovy b/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/WebAppLiveIntegrationTest.groovy
index c8747fa..4706654 100644
--- a/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/WebAppLiveIntegrationTest.groovy
+++ b/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/WebAppLiveIntegrationTest.groovy
@@ -19,7 +19,6 @@
 package org.apache.brooklyn.entity.webapp
 
 import static java.util.concurrent.TimeUnit.*
-import static org.apache.brooklyn.test.TestUtils.*
 import static org.testng.Assert.*
 
 import org.apache.brooklyn.api.entity.Application
@@ -36,8 +35,6 @@ import org.apache.brooklyn.entity.webapp.jboss.JBoss7Server
 import org.apache.brooklyn.entity.webapp.jboss.JBoss7ServerImpl
 import org.apache.brooklyn.entity.webapp.tomcat.TomcatServer
 import org.apache.brooklyn.entity.webapp.tomcat.TomcatServerImpl
-import org.apache.brooklyn.test.TestUtils
-import org.apache.brooklyn.util.groovy.TimeExtras;
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 import org.testng.annotations.AfterMethod
@@ -51,8 +48,6 @@ import org.testng.annotations.Test
 public class WebAppLiveIntegrationTest {
     private static final Logger logger = LoggerFactory.getLogger(WebAppLiveIntegrationTest.class)
 
-    static { TimeExtras.init() }
-
     public static final int DEFAULT_HTTP_PORT = 8080
     public static final int DEFAULT_JMX_PORT = 32199
 
@@ -79,10 +74,6 @@ public class WebAppLiveIntegrationTest {
         return [ [ tomcat ], [ jboss6 ], [ jboss7 ] ]
     }
 
-    private File getResource(String path) {
-        return TestUtils.getResource(path, getClass().getClassLoader());
-    }
-
     @BeforeMethod(alwaysRun = true)
     public void setUp() {
         Entities.manage(application)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampCatalogUtils.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampCatalogUtils.java b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampCatalogUtils.java
index b486038..3d64897 100644
--- a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampCatalogUtils.java
+++ b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampCatalogUtils.java
@@ -122,7 +122,7 @@ public class CampCatalogUtils {
     }
 
     private static PolicySpec<?> createPolicySpec(DeploymentPlan plan, BrooklynClassLoadingContext loader, Set<String> encounteredCatalogTypes) {
-        //Would ideally re-use io.brooklyn.camp.brooklyn.spi.creation.BrooklynEntityDecorationResolver.PolicySpecResolver
+        //Would ideally re-use the PolicySpecResolver
         //but it is CAMP specific and there is no easy way to get hold of it.
         Object policies = checkNotNull(plan.getCustomAttributes().get(BasicBrooklynCatalog.POLICIES_KEY), "policy config");
         if (!(policies instanceof Iterable<?>)) {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/cli/src/main/resources/brooklyn/default.catalog.bom
----------------------------------------------------------------------
diff --git a/usage/cli/src/main/resources/brooklyn/default.catalog.bom b/usage/cli/src/main/resources/brooklyn/default.catalog.bom
index 92ed645..54e46fd 100644
--- a/usage/cli/src/main/resources/brooklyn/default.catalog.bom
+++ b/usage/cli/src/main/resources/brooklyn/default.catalog.bom
@@ -142,12 +142,12 @@ brooklyn.catalog:
         
         brooklyn.enrichers:
         # publish the URL as a sensor; the GUI will pick this up (main.uri)
-        - type: org.apache.brooklyn.sensor.enricher.Transformer
+        - type: org.apache.brooklyn.enricher.stock.Transformer
           brooklyn.config:
             uniqueTag: url-generator
             enricher.sourceSensor: host.subnet.hostname
             # use the definition from Attributes class, as it has a RendererHint so GUI makes it a link
-            enricher.targetSensor: $brooklyn:sensor("org.apache.brooklyn.entity.core.Attributes", "main.uri")
+            enricher.targetSensor: $brooklyn:sensor("org.apache.brooklyn.core.entity.Attributes", "main.uri")
             enricher.targetValue: 
               $brooklyn:formatString:
               - "http://%s:%s/" 
@@ -246,7 +246,7 @@ brooklyn.catalog:
               
               brooklyn.initializers:
               # make a simple request-count sensor, by counting the number of 200 responses in output.txt
-              - type: org.apache.brooklyn.sensor.ssh.SshCommandSensor
+              - type: org.apache.brooklyn.core.sensor.ssh.SshCommandSensor
                 brooklyn.config:
                   name: reqs.count
                   targetType: int
@@ -261,13 +261,13 @@ brooklyn.catalog:
               
               brooklyn.enrichers:
               # derive reqs.per_sec from reqs.count
-              - type: org.apache.brooklyn.sensor.enricher.YamlTimeWeightedDeltaEnricher
+              - type: org.apache.brooklyn.enricher.stock.YamlTimeWeightedDeltaEnricher
                 brooklyn.config:
                   enricher.sourceSensor: reqs.count
                   enricher.targetSensor: reqs.per_sec
                   enricher.delta.period: 1s
               # and take an average over 30s for reqs.per_sec into reqs.per_sec.windowed_30s
-              - type: org.apache.brooklyn.sensor.enricher.YamlRollingTimeWindowMeanEnricher
+              - type: org.apache.brooklyn.enricher.stock.YamlRollingTimeWindowMeanEnricher
                 brooklyn.config:
                   enricher.sourceSensor: reqs.per_sec
                   enricher.targetSensor: reqs.per_sec.windowed_30s
@@ -286,17 +286,17 @@ brooklyn.catalog:
         
         # back at the cluster, create a total per-sec and some per-node average
         brooklyn.enrichers:
-        - type: org.apache.brooklyn.sensor.enricher.Aggregator
+        - type: org.apache.brooklyn.enricher.stock.Aggregator
           brooklyn.config:
             enricher.sourceSensor: reqs.per_sec
             enricher.targetSensor: reqs.per_sec
             transformation: sum
-        - type: org.apache.brooklyn.sensor.enricher.Aggregator
+        - type: org.apache.brooklyn.enricher.stock.Aggregator
           brooklyn.config:
             enricher.sourceSensor: reqs.per_sec
             enricher.targetSensor: reqs.per_sec.per_node
             transformation: average
-        - type: org.apache.brooklyn.sensor.enricher.Aggregator
+        - type: org.apache.brooklyn.enricher.stock.Aggregator
           brooklyn.config:
             enricher.sourceSensor: reqs.per_sec.windowed_30s
             enricher.targetSensor: reqs.per_sec.windowed_30s.per_node
@@ -335,13 +335,13 @@ brooklyn.catalog:
       
       brooklyn.enrichers:
       # publish a few useful info sensors and KPI's to the root of the app
-      - type: org.apache.brooklyn.sensor.enricher.Propagator
+      - type: org.apache.brooklyn.enricher.stock.Propagator
         brooklyn.config:
           uniqueTag:    propagate-load-balancer-url
           producer:     $brooklyn:entity("load-bal")
           propagating:
           - main.uri
-      - type: org.apache.brooklyn.sensor.enricher.Propagator
+      - type: org.apache.brooklyn.enricher.stock.Propagator
         brooklyn.config:
           uniqueTag:    propagate-reqs-per-sec
           producer:     $brooklyn:entity("my-web-cluster")

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/dist/src/test/java/org/apache/brooklyn/cli/CliIntegrationTest.java
----------------------------------------------------------------------
diff --git a/usage/dist/src/test/java/org/apache/brooklyn/cli/CliIntegrationTest.java b/usage/dist/src/test/java/org/apache/brooklyn/cli/CliIntegrationTest.java
index 1d4280b..ec56d47 100644
--- a/usage/dist/src/test/java/org/apache/brooklyn/cli/CliIntegrationTest.java
+++ b/usage/dist/src/test/java/org/apache/brooklyn/cli/CliIntegrationTest.java
@@ -118,8 +118,8 @@ public class CliIntegrationTest extends BaseCliIntegrationTest {
         BrooklynCliTest test = new BrooklynCliTest(brooklyn) {
             @Override
             public void checkConsole() {
-                assertConsoleOutput("ERROR Execution error: brooklyn.util.ResourceUtils.getResourceFromUrl");
-                assertConsoleError("Execution error: Error getting resource '"+app+"' for LaunchCommand");
+                assertConsoleOutput(app, "not found");
+                assertConsoleError("ERROR", "Fatal", "getting resource", app);
             }
         };
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/jsgui/src/test/javascript/specs/model/application-spec.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/test/javascript/specs/model/application-spec.js b/usage/jsgui/src/test/javascript/specs/model/application-spec.js
index 175ee74..1b76e3b 100644
--- a/usage/jsgui/src/test/javascript/specs/model/application-spec.js
+++ b/usage/jsgui/src/test/javascript/specs/model/application-spec.js
@@ -71,7 +71,7 @@ define([
         it("loads the entity from fixtures/application-spec.json", function () {
             var entity = new Entity.Model(spec.get("entities")[0])
             expect(entity.get("name")).toEqual('Vanilla Java App')
-            expect(entity.get("type")).toEqual('brooklyn.entity.java.VanillaJavaApp')
+            expect(entity.get("type")).toEqual('org.apache.brooklyn.entity.java.VanillaJavaApp')
             expect(entity.getConfigByName('initialSize')).toEqual('1')
             expect(entity.getConfigByName('creationScriptUrl')).toEqual('http://my.brooklyn.io/storage/foo.sql')
         })

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/jsgui/src/test/javascript/specs/model/entity-spec.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/test/javascript/specs/model/entity-spec.js b/usage/jsgui/src/test/javascript/specs/model/entity-spec.js
index 8ea9c9e..6b3c80e 100644
--- a/usage/jsgui/src/test/javascript/specs/model/entity-spec.js
+++ b/usage/jsgui/src/test/javascript/specs/model/entity-spec.js
@@ -31,8 +31,8 @@ define([
             expect(entityFixture.length).toEqual(1)
             var entity = entityFixture.at(0)
             expect(entity.get("name")).toEqual('Vanilla Java App')
-            expect(entity.get("type")).toEqual('brooklyn.entity.java.VanillaJavaApp')
+            expect(entity.get("type")).toEqual('org.apache.brooklyn.entity.java.VanillaJavaApp')
             expect(entity.get("config")).toEqual({})
         })
     })
-})
\ No newline at end of file
+})

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynLauncherRebindToCloudObjectStoreTest.java
----------------------------------------------------------------------
diff --git a/usage/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynLauncherRebindToCloudObjectStoreTest.java b/usage/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynLauncherRebindToCloudObjectStoreTest.java
index dba30ac..24db1c7 100644
--- a/usage/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynLauncherRebindToCloudObjectStoreTest.java
+++ b/usage/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynLauncherRebindToCloudObjectStoreTest.java
@@ -46,9 +46,9 @@ public class BrooklynLauncherRebindToCloudObjectStoreTest extends BrooklynLaunch
     //     apps=[Application[mDNfOA7w]] expected [true] but found [false]
     // Should it really delete everything in the bucket?! Only if we can back up first!
 
-    // FIXME brooklyn.util.exceptions.FatalRuntimeException: Error rebinding to persisted state: Writes not allowed in brooklyn.entity.rebind.persister.BrooklynMementoPersisterToObjectStore@7d2f7563
-    //     at brooklyn.launcher.BrooklynLauncher.persistState(BrooklynLauncher.java:502)
-    //     at brooklyn.launcher.BrooklynLauncherRebindToCloudObjectStoreTest.testCopyPersistedState(BrooklynLauncherRebindToCloudObjectStoreTest.java:144)
+    // FIXME FatalRuntimeException: Error rebinding to persisted state: Writes not allowed in brooklyn.entity.rebind.persister.BrooklynMementoPersisterToObjectStore@7d2f7563
+    //     at BrooklynLauncher.persistState(BrooklynLauncher.java:502)
+    //     at BrooklynLauncherRebindToCloudObjectStoreTest.testCopyPersistedState(BrooklynLauncherRebindToCloudObjectStoreTest.java:144)
     // Presumably a previous run wasn't tearing down properly, so it joined as a standby rather than being master?! 
     
     { persistenceLocationSpec = BlobStoreTest.PERSIST_TO_OBJECT_STORE_FOR_TEST_SPEC; }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/launcher/src/test/resources/mongo-sharded.yaml
----------------------------------------------------------------------
diff --git a/usage/launcher/src/test/resources/mongo-sharded.yaml b/usage/launcher/src/test/resources/mongo-sharded.yaml
index b9b3d9e..1a7a0bc 100644
--- a/usage/launcher/src/test/resources/mongo-sharded.yaml
+++ b/usage/launcher/src/test/resources/mongo-sharded.yaml
@@ -36,7 +36,7 @@ services:
       $brooklyn:entitySpec:
         type: org.apache.brooklyn.entity.nosql.mongodb.sharding.CoLocatedMongoDBRouter
         brooklyn.enrichers:
-          - type: brooklyn.enricher.basic.Propagator
+          - type: org.apache.brooklyn.enricher.stock.Propagator
             brooklyn.config:
               enricher.propagating.sensorMapping:
                 $brooklyn:sensor("org.apache.brooklyn.entity.webapp.jboss.JBoss7Server", "http.port"): $brooklyn:sensor("org.apache.brooklyn.entity.webapp.jboss.JBoss7Server", "http.port") 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/qa/src/main/java/org/apache/brooklyn/qa/load/SimulatedJBoss7ServerImpl.java
----------------------------------------------------------------------
diff --git a/usage/qa/src/main/java/org/apache/brooklyn/qa/load/SimulatedJBoss7ServerImpl.java b/usage/qa/src/main/java/org/apache/brooklyn/qa/load/SimulatedJBoss7ServerImpl.java
index eb55d73..a050fd8 100644
--- a/usage/qa/src/main/java/org/apache/brooklyn/qa/load/SimulatedJBoss7ServerImpl.java
+++ b/usage/qa/src/main/java/org/apache/brooklyn/qa/load/SimulatedJBoss7ServerImpl.java
@@ -197,8 +197,7 @@ public class SimulatedJBoss7ServerImpl extends JBoss7ServerImpl {
                 return;
             }
             
-            // We wait for evidence of JBoss running because, using
-            // brooklyn.ssh.config.tool.class=brooklyn.util.internal.ssh.cli.SshCliTool,
+            // We wait for evidence of JBoss running because, using SshCliTool,
             // we saw the ssh session return before the JBoss process was fully running
             // so the process failed to start.
             String pidFile = Os.mergePathsUnix(getRunDir(), PID_FILENAME);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/qa/src/test/java/org/apache/brooklyn/qa/brooklynnode/SoftlayerObtainPrivateLiveTest.java
----------------------------------------------------------------------
diff --git a/usage/qa/src/test/java/org/apache/brooklyn/qa/brooklynnode/SoftlayerObtainPrivateLiveTest.java b/usage/qa/src/test/java/org/apache/brooklyn/qa/brooklynnode/SoftlayerObtainPrivateLiveTest.java
index bd6eb96..9f351ce 100644
--- a/usage/qa/src/test/java/org/apache/brooklyn/qa/brooklynnode/SoftlayerObtainPrivateLiveTest.java
+++ b/usage/qa/src/test/java/org/apache/brooklyn/qa/brooklynnode/SoftlayerObtainPrivateLiveTest.java
@@ -36,6 +36,7 @@ import org.apache.brooklyn.core.test.entity.TestApplication;
 import org.apache.brooklyn.entity.brooklynnode.BrooklynEntityMirror;
 import org.apache.brooklyn.entity.brooklynnode.BrooklynNode;
 import org.apache.brooklyn.entity.brooklynnode.BrooklynNode.DeployBlueprintEffector;
+import org.apache.brooklyn.entity.machine.MachineEntity;
 import org.apache.brooklyn.launcher.BrooklynLauncher;
 import org.apache.brooklyn.location.jclouds.JcloudsLocationConfig;
 import org.apache.brooklyn.test.EntityTestUtils;
@@ -212,7 +213,7 @@ public class SoftlayerObtainPrivateLiveTest {
         return Joiner.on('\n').join(ImmutableList.of(
                 "location: " + getTestLocation(hasPublicNetwork),
                 "services:",
-                "- type: brooklyn.entity.machine.MachineEntity",
+                "- type: "+MachineEntity.class.getName(),
                 "  name: " + (hasPublicNetwork ? "Public" : "Private")
                 ));
     }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApplicationSpecTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApplicationSpecTest.java b/usage/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApplicationSpecTest.java
index 43c95cc..a04d074 100644
--- a/usage/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApplicationSpecTest.java
+++ b/usage/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApplicationSpecTest.java
@@ -32,7 +32,7 @@ import com.google.common.collect.ImmutableSet;
 
 public class ApplicationSpecTest {
 
-    final EntitySpec entitySpec = new EntitySpec("Vanilla Java App", "brooklyn.entity.java.VanillaJavaApp",
+    final EntitySpec entitySpec = new EntitySpec("Vanilla Java App", "org.apache.brooklyn.entity.java.VanillaJavaApp",
             ImmutableMap.<String, String>of(
                     "initialSize", "1",
                     "creationScriptUrl", "http://my.brooklyn.io/storage/foo.sql"));

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySpecTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySpecTest.java b/usage/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySpecTest.java
index 74159d1..a61cfd5 100644
--- a/usage/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySpecTest.java
+++ b/usage/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySpecTest.java
@@ -29,7 +29,7 @@ import org.testng.annotations.Test;
 
 public class EntitySpecTest {
 
-    final EntitySpec entitySpec = new EntitySpec("Vanilla Java App", "brooklyn.entity.java.VanillaJavaApp");
+    final EntitySpec entitySpec = new EntitySpec("Vanilla Java App", "org.apache.brooklyn.entity.java.VanillaJavaApp");
 
     @Test
     public void testSerializeToJSON() throws IOException {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/rest-api/src/test/resources/fixtures/application-list.json
----------------------------------------------------------------------
diff --git a/usage/rest-api/src/test/resources/fixtures/application-list.json b/usage/rest-api/src/test/resources/fixtures/application-list.json
index f9f4b05..029cf68 100644
--- a/usage/rest-api/src/test/resources/fixtures/application-list.json
+++ b/usage/rest-api/src/test/resources/fixtures/application-list.json
@@ -25,7 +25,7 @@
             "entities":[
                 {
                     "name":"Vanilla Java App",
-                    "type":"brooklyn.entity.java.VanillaJavaApp",
+                    "type":"org.apache.brooklyn.entity.java.VanillaJavaApp",
                     "config":{
                         "initialSize":"1",
                         "creationScriptUrl":"http://my.brooklyn.io/storage/foo.sql"

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/rest-api/src/test/resources/fixtures/application-spec.json
----------------------------------------------------------------------
diff --git a/usage/rest-api/src/test/resources/fixtures/application-spec.json b/usage/rest-api/src/test/resources/fixtures/application-spec.json
index 3605791..9f042c6 100644
--- a/usage/rest-api/src/test/resources/fixtures/application-spec.json
+++ b/usage/rest-api/src/test/resources/fixtures/application-spec.json
@@ -3,7 +3,7 @@
     "entities":[
         {
             "name":"Vanilla Java App",
-            "type":"brooklyn.entity.java.VanillaJavaApp",
+            "type":"org.apache.brooklyn.entity.java.VanillaJavaApp",
             "config":{
                 "initialSize":"1",
                 "creationScriptUrl":"http://my.brooklyn.io/storage/foo.sql"
@@ -13,4 +13,4 @@
     "locations":[
         "/v1/locations/1"
     ]
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/rest-api/src/test/resources/fixtures/application.json
----------------------------------------------------------------------
diff --git a/usage/rest-api/src/test/resources/fixtures/application.json b/usage/rest-api/src/test/resources/fixtures/application.json
index d98e837..cd6a21a 100644
--- a/usage/rest-api/src/test/resources/fixtures/application.json
+++ b/usage/rest-api/src/test/resources/fixtures/application.json
@@ -5,7 +5,7 @@
         "entities":[
             {
                 "name":"Vanilla Java App",
-                "type":"brooklyn.entity.java.VanillaJavaApp",
+                "type":"org.apache.brooklyn.entity.java.VanillaJavaApp",
                 "config":{
                     "initialSize":"1",
                     "creationScriptUrl":"http://my.brooklyn.io/storage/foo.sql"
@@ -19,4 +19,4 @@
         "self":"/v1/applications/myapp",
         "entities":"fixtures/entity-summary-list.json"
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/rest-api/src/test/resources/fixtures/entity-only-type.json
----------------------------------------------------------------------
diff --git a/usage/rest-api/src/test/resources/fixtures/entity-only-type.json b/usage/rest-api/src/test/resources/fixtures/entity-only-type.json
index 949d373..e932ab1 100644
--- a/usage/rest-api/src/test/resources/fixtures/entity-only-type.json
+++ b/usage/rest-api/src/test/resources/fixtures/entity-only-type.json
@@ -1,3 +1,3 @@
 {
-    "type":"brooklyn.entity.java.VanillaJavaApp"
-}
\ No newline at end of file
+    "type":"org.apache.brooklyn.entity.java.VanillaJavaApp"
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/rest-api/src/test/resources/fixtures/entity.json
----------------------------------------------------------------------
diff --git a/usage/rest-api/src/test/resources/fixtures/entity.json b/usage/rest-api/src/test/resources/fixtures/entity.json
index cdadd2c..dac0509 100644
--- a/usage/rest-api/src/test/resources/fixtures/entity.json
+++ b/usage/rest-api/src/test/resources/fixtures/entity.json
@@ -1,7 +1,7 @@
 [
     {
         "name":"Vanilla Java App",
-        "type":"brooklyn.entity.java.VanillaJavaApp",
+        "type":"org.apache.brooklyn.entity.java.VanillaJavaApp",
         "config":{}
     }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java
index f2073b4..b09d829 100644
--- a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java
+++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java
@@ -39,7 +39,7 @@ import com.google.common.collect.ImmutableSet;
 
 public class ApplicationTest {
 
-    final EntitySpec entitySpec = new EntitySpec("Vanilla Java App", "brooklyn.entity.java.VanillaJavaApp",
+    final EntitySpec entitySpec = new EntitySpec("Vanilla Java App", "org.apache.brooklyn.entity.java.VanillaJavaApp",
             ImmutableMap.<String, String>of(
                     "initialSize", "1",
                     "creationScriptUrl", "http://my.brooklyn.io/storage/foo.sql"));


[22/28] incubator-brooklyn git commit: change release notes for 080, and add migration guide

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c4c0e342/docs/guide/misc/migrate-to-0.8.0.md
----------------------------------------------------------------------
diff --git a/docs/guide/misc/migrate-to-0.8.0.md b/docs/guide/misc/migrate-to-0.8.0.md
new file mode 100644
index 0000000..a71d19b
--- /dev/null
+++ b/docs/guide/misc/migrate-to-0.8.0.md
@@ -0,0 +1,32 @@
+---
+layout: website-normal
+title: Migrating to 0.8.0
+---
+
+As noted in the [release notes](release-nodes.html),
+this version introduces major package renames.
+
+However migrating your code should not be hard:
+
+* For small Java projects, simply "Optimizing Imports" in your IDE should fix code issues.
+   
+* For YAML blueprints and larger projects, 
+a set of regexes has been prepared [here](migrate-to-0.8.0-regexes.sed)
+detailing all class renames.
+
+To download and apply this to an entire directory, you can use the following snippet.
+If running this on a Java project, you should enter the `src` directory
+or `rm -rf target` first.  For other use cases it should be easy to adapt,
+noting the use of `sed` and the arguments (shown for OS X / BSD here). 
+Do make a `git commit` or other backup before applying,
+to make it easy to inspect the changes.
+It may add a new line to any file which does not terminate with one,
+so do not run on binary files.
+
+{% highlight bash %}   
+$ curl {{ site.url_root }}{{ site.path.guide }}/misc/migrate-to-0.8.0-regexes.sed -o /tmp/migrate.sed
+$ for x in `find . -type file` ; do sed -E -i .bak -f /tmp/migrate.sed $x ; done
+$ find . -name "*.bak" -delete
+{% endhighlight %}
+
+If you encounter any issues, please [contact us](/website/community/).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c4c0e342/docs/guide/misc/release-notes.md
----------------------------------------------------------------------
diff --git a/docs/guide/misc/release-notes.md b/docs/guide/misc/release-notes.md
index d174025..5a61833 100644
--- a/docs/guide/misc/release-notes.md
+++ b/docs/guide/misc/release-notes.md
@@ -12,13 +12,14 @@ title: Release Notes
 * Introduction
 * New Features
 * Backwards Compatibility
-* Community Activity
 
 
 ### Introduction
 
-Version 0.7.0 is a major step for Apache Brooklyn. It is the first full release
-of the project as part of the Apache incubator.
+Version 0.8.0 is a rapid, clean-up and hardening release, as we prepare for graduation.
+The biggest change is the package refactoring, discussed in the Backwards Compatibility section.
+Other new features include more machine management (suspend/resume and windows enhandements),
+MySQL cluster, entitlements enhancements, and pluggable blueprint languages. 
 
 Thanks go to our community for their improvements, feedback and guidance, and
 to Brooklyn's commercial users for funding much of this development.
@@ -26,91 +27,46 @@ to Brooklyn's commercial users for funding much of this development.
 
 ### New Features
 
-This release is of a magnitude that makes it difficult to do justice to all of
-the features that have been added to Brooklyn in the last eighteen months. The
-selection here is by no means all that is new.
+New features include:
 
-1. _Blueprints in YAML_ In a significant boost to accessibility, authors no
-   longer need to know Java to model applications. The format follows the
-   [OASIS CAMP specification](https://www.oasis-open.org/committees/camp/)
-   with some extensions.
+* All classes are in the `org.apache.brooklyn` namespace
 
-1. _Persistence and rebind_ Brooklyn persists its state and on restart rebinds
-   to the existing entities.
+* Port mappings supported for BYON locations:  fixed-IP machines can now be configured 
+  within subnets
 
-1. _High availability_ Brooklyn can be run a highly available mode with a
-   master node and one or more standby nodes.
+* The Entitlements API is extended to be more convenient and work better with LDAP
 
-1. _Blueprint versioning_ The blueprint catalogue supports multiple versions
-   of blueprints. Version dependencies are managed with OSGi.
+* The blueprint language is pluggable, so downstream projects can supply their own,
+  such as TOSCA to complement the default CAMP dialect used by Brooklyn 
 
-1. _Windows support_ Brooklyn can both run on and deploy to Windows instances.
+* A MySQL master-slave blueprint is added 
 
-1. _Cloud integrations_ Significant support for several clouds, including
-   SoftLayer, Google Compute Engine and Microsoft Azure.
-
-1. _Downstream parent_ A new module makes it significantly simpler for downstream
-   projects to depend on Brooklyn.
-
-
-Other post-0.7.0-M2 highlights include:
-
-1. New policies: `SshConnectionFailure`, which emits an event if it cannot make
-   an SSH connection to a machine, and `ConditionalSuspendPolicy`, which suspends
-   a target policy if it receives a sensor event.
-
-1. Brooklyn reports server features in responses to `GET /v1/server/version`.
-
-1. It is much easier for downstream projects to customise the behaviour of
-   `JcloudsLocationSecurityGroupCustomiser`.
-
-1. Brooklyn is compiled with Java 7 and uses jclouds 1.9.0.
-
-1. Improvements to the existing Nginx, Riak, RabbitMQ and Bind DNS entities and
-   support for Tomcat 8.
+* Misc other new sensors and improvements to Redis, Postgres, and general datastore mixins 
 
+* jclouds version bumped to 1.9.1, and misc improvements for several clouds
+  including Softlayer and GCE
+ 
 
 ### Backwards Compatibility
 
-Changes since 0.7.0-M2:
-
-1. Passwords generated with the `generate-password` command line tool must be
-   regenerated. The tool now generates exactly `sha256( salt + password )`.
-
-Changes since 0.6.0:
-
-1. Code deprecated in 0.6.0 has been deleted. Many classes and methods are newly deprecated.
-
-1. Persistence has been radically overhauled. In most cases the state files
-   from previous versions are compatible but many items have had to change.
-
-1. Location configuration getter and setter methods are changed to match those
-   of Entities. This is in preparation for having all Locations be Entities.
-
-1. OpenShift integration has moved from core Brooklyn to the downstream project
-   https://github.com/cloudsoft/brooklyn-openshift.
-
-Please refer to the release notes for versions
-[0.7.0-M2](https://brooklyn.incubator.apache.org/v/0.7.0-M2-incubating/misc/release-notes.html)
-and
-[0.7.0-M1](https://brooklyn.incubator.apache.org/v/0.7.0-M1/start/release-notes.html)
-for further compatibility notes.
-
-
-### Community Activity
-
-During development of 0.7.0 Brooklyn moved to the Apache Software Foundation.
+Changes since 0.7.0-incubating:
 
-Many exciting projects are using Brooklyn. Notably:
+1. **Major:** Packages have been renamed so that everything is in the `org.apache.brooklyn`
+   namespace. This decision has not been taken lightly!
+   
+   This **[migration guide](migrate-to-0.8.0.html)** will assist converting projects to
+   the new package structure.
+    
+   We recognize that this will be very inconvenient for downstream projects,
+   and it breaks our policy to deprecate any incompatibility for at least one version,
+   but it was necessary as part of becoming a top-level Apache project.
+   Pre-built binaries will not be compatible and must be recompiled against this version.
 
-* [Clocker](http://clocker.io), which creates and manages Docker cloud
-  infrastructures.
+   We have invested significant effort in ensuring that persisted state will be unaffected.
 
-* The Brooklyn Cloud Foundry Bridge, which brings blueprints into the Cloud
-  Foundry marketplace with the [Brooklyn Service
-  Broker](https://github.com/cloudfoundry-incubator/brooklyn-service-broker)
-  and manages those services with the Cloud Foundry CLI plugin.
+1. Some of the code deprecated in 0.7.0 has been deleted.
+   There are comparatively few newly deprecated items.
 
-* [SeaClouds](http://www.seaclouds-project.eu/), an ongoing EU project for
-  seamless adaptive multi-cloud management of service based applications.
+For changes in prior versions, please refer to the release notes for 
+[0.7.0](/v/0.7.0-incubating/misc/release-notes.html).
 


[08/28] incubator-brooklyn git commit: Brooklyn YAML supports deferred value resolution via $brooklyn:external().

Posted by he...@apache.org.
Brooklyn YAML supports deferred value resolution via $brooklyn:external().


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

Branch: refs/heads/master
Commit: f9cf496675ab6dfac5e864f48c302692e198feb3
Parents: 3ed391a
Author: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Authored: Mon Jun 22 16:53:14 2015 +0100
Committer: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Committed: Tue Aug 25 11:51:20 2015 +0100

----------------------------------------------------------------------
 .../spi/dsl/methods/BrooklynDslCommon.java      | 65 ++++++++++++++++++++
 1 file changed, 65 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f9cf4966/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
index 52122bf..67c31f3 100644
--- a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
+++ b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
@@ -21,6 +21,7 @@ package org.apache.brooklyn.camp.brooklyn.spi.dsl.methods;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.Callable;
 
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.mgmt.Task;
@@ -48,6 +49,30 @@ import org.apache.brooklyn.util.text.Strings;
 import org.apache.brooklyn.util.text.StringEscapes.JavaStringEscapes;
 import org.apache.commons.beanutils.BeanUtils;
 
+import brooklyn.config.external.ExternalConfigSupplier;
+import brooklyn.entity.Entity;
+import brooklyn.entity.basic.EntityDynamicType;
+import brooklyn.entity.basic.EntityInternal;
+import brooklyn.entity.trait.Configurable;
+import brooklyn.event.Sensor;
+import brooklyn.event.basic.DependentConfiguration;
+import brooklyn.management.Task;
+import brooklyn.management.TaskAdaptable;
+import brooklyn.management.TaskFactory;
+import brooklyn.management.internal.ExternalConfigSupplierRegistry;
+import brooklyn.management.internal.ManagementContextInternal;
+import brooklyn.util.collections.MutableMap;
+import brooklyn.util.config.ConfigBag;
+import brooklyn.util.exceptions.Exceptions;
+import brooklyn.util.flags.ClassCoercionException;
+import brooklyn.util.flags.FlagUtils;
+import brooklyn.util.flags.TypeCoercions;
+import brooklyn.util.javalang.Reflections;
+import brooklyn.util.task.DeferredSupplier;
+import brooklyn.util.text.StringEscapes.JavaStringEscapes;
+import brooklyn.util.text.Strings;
+import brooklyn.util.task.Tasks;
+
 import com.google.common.base.Function;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
@@ -297,4 +322,44 @@ public class BrooklynDslCommon {
         }
     }
 
+    /**
+     * Defers to management context's {@link ExternalConfigSupplierRegistry} to resolve values at runtime.
+     * The name of the appropriate {@link ExternalConfigSupplier} is captured, along with the key of
+     * the desired config value.
+     */
+    public static DslExternal external(final String providerName, final String key) {
+        return new DslExternal(providerName, key);
+    }
+    protected final static class DslExternal extends BrooklynDslDeferredSupplier<Object> {
+        private static final long serialVersionUID = -3860334240490397057L;
+        private final String providerName;
+        private final String key;
+
+        public DslExternal(String providerName, String key) {
+            this.providerName = providerName;
+            this.key = key;
+        }
+
+        @Override
+        public Task<Object> newTask() {
+            return Tasks.<Object>builder()
+                .name("resolving external configuration: '" + key + "' from provider '" + providerName + "'")
+                .dynamic(false)
+                .body(new Callable<Object>() {
+                    @Override
+                    public Object call() throws Exception {
+                        EntityInternal entity = (EntityInternal) BrooklynDslDeferredSupplier.entity();
+                        ManagementContextInternal managementContext = (ManagementContextInternal) entity.getManagementContext();
+                        return managementContext.getExternalConfigProviderRegistry().getConfig(providerName, key);
+                    }
+                })
+                .build();
+        }
+
+        @Override
+        public String toString() {
+            return "$brooklyn:external("+providerName+", "+key+")";
+        }
+    }
+
 }


[05/28] incubator-brooklyn git commit: Tighten-up generics in concrete implementations.

Posted by he...@apache.org.
Tighten-up generics in concrete implementations.


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

Branch: refs/heads/master
Commit: 7474be1f1674a83a2339d5cc88dae321d9a505a1
Parents: 0d401f7
Author: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Authored: Thu Aug 6 14:14:23 2015 +0100
Committer: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Committed: Tue Aug 25 11:51:20 2015 +0100

----------------------------------------------------------------------
 .../config/external/InPlaceExternalConfigSupplier.java         | 6 +++---
 .../config/external/PropertiesFileExternalConfigSupplier.java  | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7474be1f/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
index 697bc89..a5a3015 100644
--- a/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
+++ b/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
@@ -37,15 +37,15 @@ import brooklyn.management.ManagementContext;
  */
 public class InPlaceExternalConfigSupplier extends AbstractExternalConfigSupplier {
 
-    private final Map<?,?> config;
+    private final Map<String, String> config;
 
-    public InPlaceExternalConfigSupplier(ManagementContext managementContext, String name, Map<?, ?> config) {
+    public InPlaceExternalConfigSupplier(ManagementContext managementContext, String name, Map<String, String> config) {
         super(managementContext, name);
         this.config = config;
     }
 
     public String get(String key) {
-        return (String) config.get(key);
+        return config.get(key);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7474be1f/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
index 34a67c4..66d72e3 100644
--- a/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
+++ b/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
@@ -43,9 +43,9 @@ public class PropertiesFileExternalConfigSupplier extends AbstractExternalConfig
 
     private final Properties properties;
 
-    public PropertiesFileExternalConfigSupplier(ManagementContext managementContext, String name, Map<?, ?> config) throws IOException {
+    public PropertiesFileExternalConfigSupplier(ManagementContext managementContext, String name, Map<String, String> config) throws IOException {
         super(managementContext, name);
-        this.properties = loadProperties((String) config.get(PROPERTIES_URL));
+        this.properties = loadProperties(config.get(PROPERTIES_URL));
     }
 
     public String get(String key) {


[03/28] incubator-brooklyn git commit: Bootstrap external config suppliers from brooklyn properties.

Posted by he...@apache.org.
Bootstrap external config suppliers from brooklyn properties.


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

Branch: refs/heads/master
Commit: b0b4cd8a758cb976521aff8497223c0a280ae02e
Parents: 36787a1
Author: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Authored: Mon Jun 22 16:50:33 2015 +0100
Committer: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Committed: Tue Aug 25 11:49:23 2015 +0100

----------------------------------------------------------------------
 .../BasicExternalConfigSupplierRegistry.java    | 53 +++++++++++++++++++-
 1 file changed, 52 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b0b4cd8a/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java b/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
index 605ea11..16f7ed5 100644
--- a/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
+++ b/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
@@ -18,9 +18,19 @@
  */
 package brooklyn.management.internal;
 
+import java.lang.reflect.Constructor;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Map;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import brooklyn.config.ConfigPredicates;
+import brooklyn.config.ConfigUtils;
 import brooklyn.config.external.ExternalConfigSupplier;
+import brooklyn.management.ManagementContext;
+import brooklyn.util.exceptions.Exceptions;
 
 import com.google.common.collect.Maps;
 
@@ -32,10 +42,13 @@ import com.google.common.collect.Maps;
  */
 public class BasicExternalConfigSupplierRegistry implements ExternalConfigSupplierRegistry {
 
+    private static final Logger LOG = LoggerFactory.getLogger(BasicExternalConfigSupplierRegistry.class);
+
     private final Map<String, ExternalConfigSupplier> providersByName = Maps.newLinkedHashMap();
     private final Object providersMapMutex = new Object();
 
-    public BasicExternalConfigSupplierRegistry() {
+    public BasicExternalConfigSupplierRegistry(ManagementContext mgmt) {
+        updateFromBrooklynProperties(mgmt);
     }
 
     @Override
@@ -66,4 +79,42 @@ public class BasicExternalConfigSupplierRegistry implements ExternalConfigSuppli
         }
     }
 
+    @SuppressWarnings("unchecked")
+    private void updateFromBrooklynProperties(ManagementContext mgmt) {
+        // form is:
+        //     brooklyn.external.<name> : fully.qualified.ClassName
+        //     brooklyn.external.<name>.<key> : <value>
+        //     brooklyn.external.<name>.<key> : <value>
+        //     brooklyn.external.<name>.<key> : <value>
+
+        String EXTERNAL_PROVIDER_PREFIX = "brooklyn.external.";
+        Map<String, Object> externalProviderProperties = mgmt.getConfig().submap(ConfigPredicates.startingWith(EXTERNAL_PROVIDER_PREFIX)).asMapWithStringKeys();
+        ClassLoader classloader = mgmt.getCatalogClassLoader();
+        List<Exception> exceptions = new LinkedList<Exception>();
+
+        for (String key : externalProviderProperties.keySet()) {
+            String strippedKey = key.substring(EXTERNAL_PROVIDER_PREFIX.length());
+            if (strippedKey.contains("."))
+                continue;
+
+            String name = strippedKey;
+            String providerClassname = (String) externalProviderProperties.get(key);
+            Map<String, Object> config = ConfigUtils.filterForPrefixAndStrip(externalProviderProperties, key + ".");
+
+            try {
+                Class<? extends ExternalConfigSupplier> providerClass = (Class<? extends ExternalConfigSupplier>) classloader.loadClass(providerClassname);
+                Constructor<? extends ExternalConfigSupplier> constructor = providerClass.getConstructor(String.class, Map.class);
+                ExternalConfigSupplier configSupplier = constructor.newInstance(name, config);
+                addProvider(name, configSupplier);
+
+            } catch (Exception e) {
+                LOG.error("Failed to instantiate external config supplier named '" + name + "': " + e, e);
+                exceptions.add(e);
+            }
+        }
+
+        if (!exceptions.isEmpty())
+            Exceptions.propagate(exceptions);
+    }
+
 }


[14/28] incubator-brooklyn git commit: Builds on #872 to add renamed-class checks in a few other places classes are loaded.

Posted by he...@apache.org.
Builds on #872 to add renamed-class checks in a few other places classes are loaded.

Also tidies some error messages and adds a cache for renamed classes.


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

Branch: refs/heads/master
Commit: 9fca8a279c372088c99c5e120db35dd9c74c538c
Parents: be3e182
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Aug 31 15:38:56 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Aug 31 17:04:24 2015 +0100

----------------------------------------------------------------------
 .../catalog/internal/CatalogInitialization.java |  7 +--
 .../factory/BasicConfigurableEntityFactory.java |  3 +-
 .../JavaBrooklynClassLoadingContext.java        |  2 +
 .../OsgiBrooklynClassLoadingContext.java        |  1 -
 .../core/mgmt/entitlement/Entitlements.java     |  7 +--
 .../DeserializingClassRenamesProvider.java      | 31 +++++++------
 .../core/mgmt/persist/XmlMementoSerializer.java |  4 +-
 .../core/mgmt/rebind/RebindIteration.java       | 11 +++--
 .../brooklyn/core/plan/PlanToSpecFactory.java   |  3 +-
 .../util/core/xstream/ClassRenamingMapper.java  | 33 +++-----------
 .../util/core/xstream/XmlSerializer.java        | 38 ++++++++++++++--
 .../mgmt/persist/XmlMementoSerializerTest.java  |  5 ++-
 .../service/BrooklynServiceTypeResolver.java    | 24 +---------
 .../brooklyn/util/exceptions/Exceptions.java    | 47 +++++++++++++-------
 .../brooklyn/util/javalang/Reflections.java     | 41 +++++++++++++++++
 15 files changed, 157 insertions(+), 100 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java
index 80d29ad..907cbb8 100644
--- a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java
+++ b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java
@@ -434,14 +434,15 @@ public class CatalogInitialization implements ManagementContextInjectable {
         if (throwable instanceof RuntimeInterruptedException)
             throw (RuntimeInterruptedException) throwable;
 
-        log.error("Error loading catalog item '"+details+"': "+throwable);
-        log.debug("Trace for error loading catalog item '"+details+"': "+throwable, throwable);
+        String throwableText = Exceptions.collapseText(throwable);
+        log.error("Error loading catalog item '"+details+"': "+throwableText);
+        log.debug("Trace for error loading catalog item '"+details+"': "+throwableText, throwable);
 
         // TODO give more detail when adding
         ((ManagementContextInternal)getManagementContext()).errors().add(throwable);
         
         if (isStartingUp && failOnStartupErrors) {
-            throw new FatalRuntimeException("Unable to load catalog item '"+details+"': "+throwable, throwable);
+            throw new FatalRuntimeException("Unable to load catalog item '"+details+"': "+throwableText, throwable);
         }
     }
     

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/core/src/main/java/org/apache/brooklyn/core/entity/factory/BasicConfigurableEntityFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/factory/BasicConfigurableEntityFactory.java b/core/src/main/java/org/apache/brooklyn/core/entity/factory/BasicConfigurableEntityFactory.java
index 3011c9a..8f6e3f6 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/factory/BasicConfigurableEntityFactory.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/factory/BasicConfigurableEntityFactory.java
@@ -28,6 +28,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.core.mgmt.persist.DeserializingClassRenamesProvider;
 
 import com.google.common.base.Objects;
 import com.google.common.base.Throwables;
@@ -45,7 +46,7 @@ public class BasicConfigurableEntityFactory<T extends Entity> extends AbstractCo
     public BasicConfigurableEntityFactory(Map flags, Class<? extends T> clazz) {
         super(flags);
         this.clazz = checkNotNull(clazz, "clazz");
-        this.clazzName = clazz.getName();
+        this.clazzName = DeserializingClassRenamesProvider.findMappedName(clazz.getName());
     }
 
     public T newEntity2(Map flags, Entity parent) {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/JavaBrooklynClassLoadingContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/JavaBrooklynClassLoadingContext.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/JavaBrooklynClassLoadingContext.java
index 18f328f..51007d7 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/JavaBrooklynClassLoadingContext.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/JavaBrooklynClassLoadingContext.java
@@ -27,6 +27,7 @@ import java.util.Collections;
 import java.util.Enumeration;
 
 import org.apache.brooklyn.api.mgmt.ManagementContext;
+import org.apache.brooklyn.core.mgmt.persist.DeserializingClassRenamesProvider;
 import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.guava.Maybe;
 
@@ -79,6 +80,7 @@ public class JavaBrooklynClassLoadingContext extends AbstractBrooklynClassLoadin
     @SuppressWarnings({ "rawtypes", "unchecked" })
     public Maybe<Class<?>> tryLoadClass(String className) {
         try {
+            className = DeserializingClassRenamesProvider.findMappedName(className);
             return (Maybe) Maybe.of(getClassLoader().loadClass(className));
         } catch (Exception e) {
             Exceptions.propagateIfFatal(e);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/OsgiBrooklynClassLoadingContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/OsgiBrooklynClassLoadingContext.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/OsgiBrooklynClassLoadingContext.java
index fd1acb0..fa12aa2 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/OsgiBrooklynClassLoadingContext.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/OsgiBrooklynClassLoadingContext.java
@@ -25,7 +25,6 @@ import java.util.Collections;
 import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
 import org.apache.brooklyn.api.mgmt.ManagementContext;
-import org.apache.brooklyn.api.mgmt.entitlement.EntitlementClass;
 import org.apache.brooklyn.core.catalog.internal.CatalogUtils;
 import org.apache.brooklyn.core.mgmt.entitlement.Entitlements;
 import org.apache.brooklyn.core.mgmt.ha.OsgiManager;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/core/src/main/java/org/apache/brooklyn/core/mgmt/entitlement/Entitlements.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/entitlement/Entitlements.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/entitlement/Entitlements.java
index d916c5c..6c281fc 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/entitlement/Entitlements.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/entitlement/Entitlements.java
@@ -31,10 +31,11 @@ import org.apache.brooklyn.api.mgmt.entitlement.EntitlementContext;
 import org.apache.brooklyn.api.mgmt.entitlement.EntitlementManager;
 import org.apache.brooklyn.config.ConfigKey;
 import org.apache.brooklyn.core.config.ConfigKeys;
-import org.apache.brooklyn.core.entity.Entities;
+import org.apache.brooklyn.core.config.Sanitizer;
 import org.apache.brooklyn.core.internal.BrooklynProperties;
 import org.apache.brooklyn.core.mgmt.BrooklynTaskTags;
 import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal;
+import org.apache.brooklyn.core.mgmt.persist.DeserializingClassRenamesProvider;
 import org.apache.brooklyn.util.core.task.Tasks;
 import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.javalang.Reflections;
@@ -278,7 +279,7 @@ public class Entitlements {
                 @Override
                 public boolean apply(EntityAndItem<String> input) {
                     if (input == null) return false;
-                    return !Entities.isSecret(input.getItem());
+                    return !Sanitizer.IS_SECRET_PREDICATE.apply(input.getItem());
                 }
                 @Override
                 public String toString() {
@@ -390,7 +391,7 @@ public class Entitlements {
             try {
                 ClassLoader cl = mgmt==null ? null : ((ManagementContextInternal)mgmt).getCatalogClassLoader();
                 if (cl==null) cl = Entitlements.class.getClassLoader();
-                Class<?> clazz = cl.loadClass(type);
+                Class<?> clazz = cl.loadClass(DeserializingClassRenamesProvider.findMappedName(type));
                 return (EntitlementManager) instantiate(clazz, ImmutableList.of(
                         new Object[] {mgmt, brooklynProperties},
                         new Object[] {mgmt},

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/DeserializingClassRenamesProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/DeserializingClassRenamesProvider.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/DeserializingClassRenamesProvider.java
index e8ac5a4..9fbac01 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/DeserializingClassRenamesProvider.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/DeserializingClassRenamesProvider.java
@@ -24,22 +24,34 @@ import java.util.Enumeration;
 import java.util.Map;
 import java.util.Properties;
 
+import org.apache.brooklyn.util.core.ResourceUtils;
 import org.apache.brooklyn.util.exceptions.Exceptions;
+import org.apache.brooklyn.util.javalang.Reflections;
 import org.apache.brooklyn.util.stream.Streams;
 
 import com.google.common.annotations.Beta;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
 
 @Beta
 public class DeserializingClassRenamesProvider {
 
-    public static final String DESERIALIZING_CLASS_RENAMES_PROPERTIES_PATH = "classpath://org/apache/brooklyn/deserializingClassRenames.properties";
+    public static final String DESERIALIZING_CLASS_RENAMES_PROPERTIES_PATH = "classpath://org/apache/brooklyn/core/mgmt/persist/deserializingClassRenames.properties";
+    
+    private static Map<String, String> cache = null;
     
     @Beta
     public static Map<String, String> loadDeserializingClassRenames() {
-        InputStream resource = XmlMementoSerializer.class.getClassLoader().getResourceAsStream(DESERIALIZING_CLASS_RENAMES_PROPERTIES_PATH);
+        if (cache!=null) return cache;
+        synchronized (DeserializingClassRenamesProvider.class) {
+            cache = loadDeserializingClassRenamesCache();
+            return cache;
+        }
+    }
+    
+    private synchronized static Map<String, String> loadDeserializingClassRenamesCache() {
+        if (cache!=null) return cache;
+        InputStream resource = new ResourceUtils(DeserializingClassRenamesProvider.class).getResourceFromUrl(DESERIALIZING_CLASS_RENAMES_PROPERTIES_PATH);
         if (resource != null) {
             try {
                 Properties props = new Properties();
@@ -63,16 +75,7 @@ public class DeserializingClassRenamesProvider {
     }
 
     @Beta
-    public static Optional<String> tryFindMappedName(Map<String, String> renames, String name) {
-        String mappedName = (String) renames.get(name);
-        if (mappedName != null) {
-            return Optional.of(mappedName);
-        }
-        for (Map.Entry<String, String> entry : renames.entrySet()) {
-            if (name.startsWith(entry.getKey())) {
-                return Optional.of(entry.getValue()+ name.substring(entry.getKey().length()));
-            }
-        }
-        return Optional.<String>absent();
+    public static String findMappedName(String name) {
+        return Reflections.findMappedNameAndLog(loadDeserializingClassRenames(), name);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java
index a8a20b7..ec7fb6f 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java
@@ -139,8 +139,8 @@ public class XmlMementoSerializer<T> extends XmlSerializer<T> implements Memento
     
     // Warning: this is called in the super-class constuctor, so before this constructor!
     @Override
-    protected MapperWrapper wrapMapper(MapperWrapper next) {
-        MapperWrapper mapper = super.wrapMapper(next);
+    protected MapperWrapper wrapMapperForNormalUsage(Mapper next) {
+        MapperWrapper mapper = super.wrapMapperForNormalUsage(next);
         mapper = new CustomMapper(mapper, Entity.class, "entityProxy");
         mapper = new CustomMapper(mapper, Location.class, "locationProxy");
         return mapper;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
index 3f468ba..7b00ff8 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
@@ -72,12 +72,14 @@ import org.apache.brooklyn.core.feed.AbstractFeed;
 import org.apache.brooklyn.core.location.AbstractLocation;
 import org.apache.brooklyn.core.location.internal.LocationInternal;
 import org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContext;
+import org.apache.brooklyn.core.mgmt.classloading.JavaBrooklynClassLoadingContext;
 import org.apache.brooklyn.core.mgmt.internal.BrooklynObjectManagementMode;
 import org.apache.brooklyn.core.mgmt.internal.BrooklynObjectManagerInternal;
 import org.apache.brooklyn.core.mgmt.internal.EntityManagerInternal;
 import org.apache.brooklyn.core.mgmt.internal.LocationManagerInternal;
 import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal;
 import org.apache.brooklyn.core.mgmt.internal.ManagementTransitionMode;
+import org.apache.brooklyn.core.mgmt.persist.DeserializingClassRenamesProvider;
 import org.apache.brooklyn.core.mgmt.persist.PersistenceActivityMetrics;
 import org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.RebindTracker;
 import org.apache.brooklyn.core.objs.AbstractBrooklynObject;
@@ -211,7 +213,7 @@ public abstract class RebindIteration {
         
         managementContext = rebindManager.getManagementContext();
         rebindContext = new RebindContextImpl(managementContext, exceptionHandler, classLoader);
-        reflections = new Reflections(classLoader);
+        reflections = new Reflections(classLoader).applyClassRenames(DeserializingClassRenamesProvider.loadDeserializingClassRenames());
         instantiator = new BrooklynObjectInstantiator(classLoader, rebindContext, reflections);
         
         if (mode==ManagementNodeState.HOT_STANDBY || mode==ManagementNodeState.HOT_BACKUP) {
@@ -822,17 +824,14 @@ public abstract class RebindIteration {
 
             //As a last resort go through all catalog items trying to load the type and use the first that succeeds.
             //But first check if can be loaded from the default classpath
-            try {
-                cl.loadClass(entityManifest.getType());
+            if (JavaBrooklynClassLoadingContext.create(managementContext).tryLoadClass(entityManifest.getType()).isPresent())
                 return null;
-            } catch (ClassNotFoundException e) {
-            }
 
             for (CatalogItem<?, ?> item : catalog.getCatalogItems()) {
                 BrooklynClassLoadingContext loader = CatalogUtils.newClassLoadingContext(managementContext, item);
                 boolean canLoadClass = loader.tryLoadClass(entityManifest.getType()).isPresent();
                 if (canLoadClass) {
-                    LOG.warn("Missing catalog item for "+entityManifest.getId()+", inferring as "+item.getId()+" because that is able to load the item");
+                    LOG.warn("Missing catalog item for "+entityManifest.getId()+" ("+entityManifest.getType()+"), inferring as "+item.getId()+" because that is able to load the item");
                     return item.getId();
                 }
             }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/core/src/main/java/org/apache/brooklyn/core/plan/PlanToSpecFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/plan/PlanToSpecFactory.java b/core/src/main/java/org/apache/brooklyn/core/plan/PlanToSpecFactory.java
index 6f74855..a2e6500 100644
--- a/core/src/main/java/org/apache/brooklyn/core/plan/PlanToSpecFactory.java
+++ b/core/src/main/java/org/apache/brooklyn/core/plan/PlanToSpecFactory.java
@@ -101,7 +101,8 @@ public class PlanToSpecFactory {
                     (Strings.isNonBlank(e.getMessage()) ? " ("+e.getMessage()+")" : ""));
             } catch (Exception e) {
                 Exceptions.propagateIfFatal(e);
-                otherProblemsFromTransformers.add(new IllegalArgumentException("Transformer for "+t.getShortDescription()+" gave an error creating this plan", e));
+                otherProblemsFromTransformers.add(new IllegalArgumentException("Transformer for "+t.getShortDescription()+" gave an error creating this plan: "+
+                    Exceptions.collapseText(e), e));
             }
         }
         // failed

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/core/src/main/java/org/apache/brooklyn/util/core/xstream/ClassRenamingMapper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/xstream/ClassRenamingMapper.java b/core/src/main/java/org/apache/brooklyn/util/core/xstream/ClassRenamingMapper.java
index 13fd032..aae4a6e 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/xstream/ClassRenamingMapper.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/xstream/ClassRenamingMapper.java
@@ -22,7 +22,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.util.Map;
 
-import org.apache.brooklyn.core.mgmt.persist.DeserializingClassRenamesProvider;
+import org.apache.brooklyn.util.javalang.Reflections;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -41,32 +41,13 @@ public class ClassRenamingMapper extends MapperWrapper {
     }
     
     @Override
-    public Class realClass(String elementName) {
-        String nameToUse;
-        Optional<String> mappedName = DeserializingClassRenamesProvider.tryFindMappedName(nameToType, elementName);
-        if (mappedName.isPresent()) {
-            LOG.debug("Transforming xstream "+elementName+" to "+mappedName);
-            nameToUse = mappedName.get();
-        } else {
-            nameToUse = elementName;
+    public Class<?> realClass(String elementName) {
+        Optional<String> elementNameOpt = Reflections.tryFindMappedName(nameToType, elementName);
+        if (elementNameOpt.isPresent()) {
+            LOG.debug("Mapping class '"+elementName+"' to '"+elementNameOpt.get()+"'");
+            elementName = elementNameOpt.get();
         }
-        return super.realClass(nameToUse);
+        return super.realClass(elementName);
     }
 
-//    public boolean aliasIsAttribute(String name) {
-//        return nameToType.containsKey(name);
-//    }
-//    
-//    private Object readResolve() {
-//        nameToType = new HashMap();
-//        for (final Iterator iter = classToName.keySet().iterator(); iter.hasNext();) {
-//            final Object type = iter.next();
-//            nameToType.put(classToName.get(type), type);
-//        }
-//        for (final Iterator iter = typeToName.keySet().iterator(); iter.hasNext();) {
-//            final Class type = (Class)iter.next();
-//            nameToType.put(typeToName.get(type), type.getName());
-//        }
-//        return this;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java b/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java
index 9ed5b88..c83e25c 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java
@@ -34,12 +34,16 @@ import org.apache.brooklyn.util.collections.MutableSet;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.converters.extended.JavaClassConverter;
+import com.thoughtworks.xstream.mapper.DefaultMapper;
+import com.thoughtworks.xstream.mapper.Mapper;
 import com.thoughtworks.xstream.mapper.MapperWrapper;
 
 public class XmlSerializer<T> {
 
     private final Map<String, String> deserializingClassRenames;
-    protected final XStream xstream;
+    // XXX protected
+    public final XStream xstream;
 
     public XmlSerializer() {
         this(ImmutableMap.<String, String>of());
@@ -50,11 +54,12 @@ public class XmlSerializer<T> {
         this.xstream = new XStream() {
             @Override
             protected MapperWrapper wrapMapper(MapperWrapper next) {
-                MapperWrapper result = super.wrapMapper(next);
-                return XmlSerializer.this.wrapMapper(result);
+                return XmlSerializer.this.wrapMapperForNormalUsage( super.wrapMapper(next) );
             }
         };
         
+        xstream.registerConverter(newCustomJavaClassConverter(), XStream.PRIORITY_NORMAL);
+        
         // list as array list is default
         xstream.alias("map", Map.class, LinkedHashMap.class);
         xstream.alias("set", Set.class, LinkedHashSet.class);
@@ -77,11 +82,36 @@ public class XmlSerializer<T> {
         xstream.registerConverter(new EnumCaseForgivingConverter());
         xstream.registerConverter(new Inet4AddressConverter());
     }
+
+    /**
+     * JCC is used when class names are serialized/deserialized and no alias is defined;
+     * it is configured in XStream *without* access to the XStream mapper.
+     * However we need a few selected mappers (see {@link #wrapMapperForAllLowLevelMentions(Mapper)} )
+     * in order to effect renames at the low level, but many of the mappers must NOT be used,
+     * e.g. because some might intercept all Class<? extends Entity> references
+     * (and that interception is only wanted when serializing <i>instances</i>,
+     * as in {@link #wrapMapperForNormalUsage(Mapper)}).
+     * <p>
+     * This can typically be done simply by registering our own instance (due to order guarantee of PrioritizedList),
+     * after the instance added by XStream.setupConverters()
+     */
+    private JavaClassConverter newCustomJavaClassConverter() {
+        return new JavaClassConverter(wrapMapperForAllLowLevelMentions(new DefaultMapper(xstream.getClassLoaderReference()))) {};
+    }
     
-    protected MapperWrapper wrapMapper(MapperWrapper next) {
+    /** Adds mappers needed for *any* reference to a class, e.g. when names are used for inner classes, or classes are renamed;
+     * this *excludes* basic mentions, however, because most rewrites should *not* be applied at this deep level;
+     * mappers which effect aliases or intercept references to entities are usually NOT be invoked in this low-level pathway.
+     * See {@link #newCustomJavaClassConverter()}. */
+    protected MapperWrapper wrapMapperForAllLowLevelMentions(Mapper next) {
         MapperWrapper result = new CompilerIndependentOuterClassFieldMapper(next);
         return new ClassRenamingMapper(result, deserializingClassRenames);
     }
+    /** Extension point where sub-classes can add mappers wanted when instances of a class are serialized, 
+     * including {@link #wrapMapperForAllLowLevelMentions(Mapper)}, plus any usual domain mappings. */
+    protected MapperWrapper wrapMapperForNormalUsage(Mapper next) {
+        return wrapMapperForAllLowLevelMentions(next);
+    }
 
     public void serialize(Object object, Writer writer) {
         xstream.toXML(object, writer);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java
index 0d94819..8f1a248 100644
--- a/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java
@@ -71,7 +71,7 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
-import com.google.common.net.HostAndPort;
+import com.thoughtworks.xstream.converters.Converter;
 
 public class XmlMementoSerializerTest {
 
@@ -263,7 +263,6 @@ public class XmlMementoSerializerTest {
         final TestApplication app = TestApplication.Factory.newManagedInstanceForTests();
         ManagementContext managementContext = app.getManagementContext();
         try {
-            @SuppressWarnings("deprecation")
             final Location loc = managementContext.getLocationManager().createLocation(LocationSpec.create(SimulatedLocation.class));
             serializer.setLookupContext(new LookupContextImpl(managementContext,
                     ImmutableList.<Entity>of(), ImmutableList.of(loc), ImmutableList.<Policy>of(),
@@ -401,6 +400,8 @@ public class XmlMementoSerializerTest {
 
     @SuppressWarnings("unchecked")
     private <T> T assertSerializeAndDeserialize(T obj) throws Exception {
+Converter x = serializer.xstream.getConverterLookup().lookupConverterForType(Class.class);
+System.out.println("XXX: "+x);
         String serializedForm = serializer.toString(obj);
         LOG.info("serializedForm=" + serializedForm);
         Object deserialized = serializer.fromString(serializedForm);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/BrooklynServiceTypeResolver.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/BrooklynServiceTypeResolver.java b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/BrooklynServiceTypeResolver.java
index c6251df..f4bc9aa 100644
--- a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/BrooklynServiceTypeResolver.java
+++ b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/BrooklynServiceTypeResolver.java
@@ -48,14 +48,7 @@ public class BrooklynServiceTypeResolver implements ServiceTypeResolver {
 
     private static final Logger LOG = LoggerFactory.getLogger(ServiceTypeResolver.class);
     
-    private final Map<String, String> deserializingClassRenames;
-
     public BrooklynServiceTypeResolver() {
-        this(DeserializingClassRenamesProvider.loadDeserializingClassRenames());
-    }
-    
-    public BrooklynServiceTypeResolver(Map<String, String> deserializingClassRenames) {
-        this.deserializingClassRenames = checkNotNull(deserializingClassRenames, "deserializingClassRenames");
     }
     
     @Override
@@ -87,20 +80,7 @@ public class BrooklynServiceTypeResolver implements ServiceTypeResolver {
     }
 
     protected CatalogItem<Entity,EntitySpec<?>> getCatalogItemImpl(ManagementContext mgmt, String brooklynType) {
-        try {
-            return CatalogUtils.getCatalogItemOptionalVersion(mgmt, Entity.class,  brooklynType);
-        } catch (Exception e) {
-            Exceptions.propagateIfFatal(e);
-            Optional<String> alternativeType = DeserializingClassRenamesProvider.tryFindMappedName(deserializingClassRenames, brooklynType);
-            if (alternativeType.isPresent()) {
-                LOG.debug("Transforming entity "+brooklynType+" to "+alternativeType.get());
-                try {
-                    return CatalogUtils.getCatalogItemOptionalVersion(mgmt, Entity.class,  alternativeType.get());
-                } catch (Exception e2) {
-                    LOG.debug("Problem getting catalog for transformed type "+alternativeType.get()+"; throwing of untransformed type "+brooklynType, e);
-                }
-            }
-            throw Exceptions.propagate(e);
-        }
+        brooklynType = DeserializingClassRenamesProvider.findMappedName(brooklynType);
+        return CatalogUtils.getCatalogItemOptionalVersion(mgmt, Entity.class,  brooklynType);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/utils/common/src/main/java/org/apache/brooklyn/util/exceptions/Exceptions.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/exceptions/Exceptions.java b/utils/common/src/main/java/org/apache/brooklyn/util/exceptions/Exceptions.java
index 583104b..eac137d 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/exceptions/Exceptions.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/exceptions/Exceptions.java
@@ -27,16 +27,19 @@ import java.lang.reflect.UndeclaredThrowableException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Set;
 import java.util.concurrent.ExecutionException;
 
 import javax.annotation.Nullable;
 
+import org.apache.brooklyn.util.collections.MutableSet;
 import org.apache.brooklyn.util.text.Strings;
 
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 
@@ -137,17 +140,18 @@ public class Exceptions {
     /** as {@link #collapse(Throwable)} but includes causal messages in the message as per {@link #collapseTextIncludingAllCausalMessages(Throwable)};
      * use with care (limit once) as repeated usage can result in multiple copies of the same message */ 
     public static Throwable collapseIncludingAllCausalMessages(Throwable source) {
-        return collapse(source, true, true);
+        return collapse(source, true, true, ImmutableSet.<Throwable>of());
     }
     
     /** creates (but does not throw) a new {@link PropagatedRuntimeException} whose 
      * message is taken from the first _interesting_ element in the source,
      * and optionally also the causal chain */
     public static Throwable collapse(Throwable source, boolean collapseCausalChain) {
-        return collapse(source, collapseCausalChain, false);
+        return collapse(source, collapseCausalChain, false, ImmutableSet.<Throwable>of());
     }
     
-    private static Throwable collapse(Throwable source, boolean collapseCausalChain, boolean includeAllCausalMessages) {
+    private static Throwable collapse(Throwable source, boolean collapseCausalChain, boolean includeAllCausalMessages, Set<Throwable> visited) {
+        visited = MutableSet.copyOf(visited);
         String message = "";
         Throwable collapsed = source;
         int collapseCount = 0;
@@ -156,9 +160,14 @@ public class Exceptions {
         while (isBoring(collapsed)  && !messageIsFinal) {
             collapseCount++;
             Throwable cause = collapsed.getCause();
-            if (cause==null)
+            if (cause==null) {
                 // everything in the tree is boring...
                 return source;
+            }
+            if (visited.add(collapsed)) {
+                // there is a recursive loop
+                break;
+            }
             String collapsedS = collapsed.getMessage();
             if (collapsed instanceof PropagatedRuntimeException && ((PropagatedRuntimeException)collapsed).isCauseEmbeddedInMessage()) {
                 message = collapsed.getMessage();
@@ -180,7 +189,7 @@ public class Exceptions {
                 messagesCause = messagesCause.getCause();
                 break;
             }
-            messagesCause = messagesCause.getCause();
+            visited.add(messagesCause); messagesCause = messagesCause.getCause();
         }
         
         if (collapseCount==0 && !includeAllCausalMessages)
@@ -191,15 +200,12 @@ public class Exceptions {
             messagesCause = messagesCause.getCause();
         }
         
-        if (Strings.isBlank(message)) {
-            return new PropagatedRuntimeException(collapseCausalChain ? collapsed : source);
-        } else {
-            if (messagesCause!=null && !messageIsFinal) {
-                String extraMessage = collapseText(messagesCause, includeAllCausalMessages);
-                message = appendSeparator(message, extraMessage);
-            }
-            return new PropagatedRuntimeException(message, collapseCausalChain ? collapsed : source, true);
+        if (messagesCause!=null && !messageIsFinal) {
+            String extraMessage = collapseText(messagesCause, includeAllCausalMessages, ImmutableSet.copyOf(visited));
+            message = appendSeparator(message, extraMessage);
         }
+        if (message==null) message = "";
+        return new PropagatedRuntimeException(message, collapseCausalChain ? collapsed : source, true);
     }
     
     static String appendSeparator(String message, String next) {
@@ -233,14 +239,25 @@ public class Exceptions {
     }
     
     private static String collapseText(Throwable t, boolean includeAllCausalMessages) {
+        return collapseText(t, includeAllCausalMessages, ImmutableSet.<Throwable>of());
+    }
+    private static String collapseText(Throwable t, boolean includeAllCausalMessages, Set<Throwable> visited) {
         if (t == null) return null;
-        Throwable t2 = collapse(t, true, includeAllCausalMessages);
+        if (visited.contains(t)) {
+            // IllegalStateException sometimes refers to itself; guard against stack overflows
+            if (Strings.isNonBlank(t.getMessage())) return t.getMessage();
+            else return "("+t.getClass().getName()+", recursive cause)";
+        }
+        Throwable t2 = collapse(t, true, includeAllCausalMessages, visited);
+        visited = MutableSet.copyOf(visited);
+        visited.add(t);
+        visited.add(t2);
         if (t2 instanceof PropagatedRuntimeException) {
             if (((PropagatedRuntimeException)t2).isCauseEmbeddedInMessage())
                 // normally
                 return t2.getMessage();
             else if (t2.getCause()!=null)
-                return ""+t2.getCause();
+                return collapseText(t2.getCause(), includeAllCausalMessages, ImmutableSet.copyOf(visited));
             return ""+t2.getClass();
         }
         String result = t2.toString();

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9fca8a27/utils/common/src/main/java/org/apache/brooklyn/util/javalang/Reflections.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/javalang/Reflections.java b/utils/common/src/main/java/org/apache/brooklyn/util/javalang/Reflections.java
index decc1f0..c622ffc 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/javalang/Reflections.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/javalang/Reflections.java
@@ -38,12 +38,14 @@ import java.util.Comparator;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.Stack;
 
 import javax.annotation.Nullable;
 
 import org.apache.brooklyn.util.collections.MutableList;
+import org.apache.brooklyn.util.collections.MutableMap;
 import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -83,10 +85,17 @@ public class Reflections {
     }
 
     private final ClassLoader classLoader;
+    private final Map<String, String> classRenameMap = MutableMap.of();
     
     public Reflections(ClassLoader classLoader) {
         this.classLoader = checkNotNull(classLoader);
     }
+    
+    /** supply a map of known renames, of the form "old-class -> new-class" */ 
+    public Reflections applyClassRenames(Map<String,String> newClassRenames) {
+        this.classRenameMap.putAll(newClassRenames);
+        return this;
+    }
 
     public Object loadInstance(String classname, Object...argValues) throws ReflectionNotFoundException, ReflectionAccessException {
         Class<?> clazz = loadClass(classname);
@@ -119,6 +128,7 @@ public class Reflections {
     /** instantiates the given class from its binary name */
     public Class<?> loadClass(String classname) throws ReflectionNotFoundException {
         try {
+            classname = findMappedNameAndLog(classRenameMap, classname);
             return classLoader.loadClass(classname);
         } catch (ClassNotFoundException e) {
             throw new ReflectionNotFoundException("Failed to load class '" + classname + "' using class loader " + classLoader + ": " + Exceptions.collapseText(e), e);
@@ -785,4 +795,35 @@ public class Reflections {
         if (clazz.getDeclaredFields().length>0) return false;
         return hasNoNonObjectFields(clazz.getSuperclass());
     }
+
+    /** Takes a map of old-class-names to renames classes, and returns the mapped name if matched, or absent */
+    public static Optional<String> tryFindMappedName(Map<String, String> renames, String name) {
+        if (renames==null) return Optional.absent();
+        
+        String mappedName = renames.get(name);
+        if (mappedName != null) {
+            return Optional.of(mappedName);
+        }
+        
+        // look for inner classes by mapping outer class
+        if (name.contains("$")) {
+            String outerClassName = name.substring(0, name.indexOf('$'));
+            mappedName = renames.get(outerClassName);
+            if (mappedName != null) {
+                return Optional.of(mappedName + name.substring(name.indexOf('$')));
+            }
+        }
+        
+        return Optional.absent();
+    }
+
+    public static String findMappedNameAndLog(Map<String, String> renames, String name) {
+        Optional<String> rename = Reflections.tryFindMappedName(renames, name);
+        if (rename.isPresent()) {
+            LOG.debug("Mapping class '"+name+"' to '"+rename.get()+"'");
+            return rename.get();
+        }
+        return name;
+    }
+    
 }



[13/28] incubator-brooklyn git commit: This closes #872

Posted by he...@apache.org.
This closes #872


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

Branch: refs/heads/master
Commit: be3e182a3a7b01859ac80f5f79dbe40558183c45
Parents: 6212d19 3167af9
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Aug 31 09:05:42 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Aug 31 09:05:42 2015 +0100

----------------------------------------------------------------------
 .../catalog/internal/CatalogXmlSerializer.java  |    3 +
 .../DeserializingClassRenamesProvider.java      |   78 +
 .../core/mgmt/persist/XmlMementoSerializer.java |   10 +-
 .../util/core/xstream/ClassRenamingMapper.java  |   72 +
 .../util/core/xstream/XmlSerializer.java        |   14 +-
 .../deserializingClassRenames.properties        | 1419 ++++++++++++++++++
 .../mgmt/persist/XmlMementoSerializerTest.java  |  164 +-
 .../service/BrooklynServiceTypeResolver.java    |   42 +-
 8 files changed, 1784 insertions(+), 18 deletions(-)
----------------------------------------------------------------------



[10/28] incubator-brooklyn git commit: Handle class-renames in persisted state

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3167af95/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java
index 5bd1e5c..0d94819 100644
--- a/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java
@@ -20,6 +20,7 @@ package org.apache.brooklyn.core.mgmt.persist;
 
 import static org.testng.Assert.assertEquals;
 
+import java.net.InetAddress;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.LinkedHashMap;
@@ -30,18 +31,11 @@ import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Set;
 
-import org.apache.brooklyn.api.location.Location;
-import org.apache.brooklyn.api.location.LocationSpec;
-import org.apache.brooklyn.util.collections.MutableList;
-import org.apache.brooklyn.util.collections.MutableMap;
-import org.apache.brooklyn.util.collections.MutableSet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
 import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.EntitySpec;
+import org.apache.brooklyn.api.location.Location;
+import org.apache.brooklyn.api.location.LocationSpec;
 import org.apache.brooklyn.api.mgmt.ManagementContext;
 import org.apache.brooklyn.api.mgmt.rebind.mementos.BrooklynMementoPersister.LookupContext;
 import org.apache.brooklyn.api.objs.BrooklynObject;
@@ -56,18 +50,28 @@ import org.apache.brooklyn.core.entity.Entities;
 import org.apache.brooklyn.core.location.SimulatedLocation;
 import org.apache.brooklyn.core.mgmt.osgi.OsgiTestResources;
 import org.apache.brooklyn.core.mgmt.osgi.OsgiVersionMoreEntityTest;
-import org.apache.brooklyn.core.mgmt.persist.XmlMementoSerializer;
 import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
 import org.apache.brooklyn.core.test.entity.TestApplication;
 import org.apache.brooklyn.core.test.entity.TestEntity;
 import org.apache.brooklyn.entity.group.DynamicCluster;
 import org.apache.brooklyn.test.support.TestResourceUnavailableException;
+import org.apache.brooklyn.util.collections.MutableList;
+import org.apache.brooklyn.util.collections.MutableMap;
+import org.apache.brooklyn.util.collections.MutableSet;
+import org.apache.brooklyn.util.net.Networking;
+import org.apache.brooklyn.util.net.UserAndHostAndPort;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
 
+import com.google.api.client.repackaged.com.google.common.base.Joiner;
 import com.google.common.base.Objects;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
+import com.google.common.net.HostAndPort;
 
 public class XmlMementoSerializerTest {
 
@@ -81,6 +85,90 @@ public class XmlMementoSerializerTest {
     }
 
     @Test
+    public void testRenamedClass() throws Exception {
+        serializer = new XmlMementoSerializer<Object>(XmlMementoSerializerTest.class.getClassLoader(),
+                ImmutableMap.of("old.package.name.UserAndHostAndPort", UserAndHostAndPort.class.getName()));
+        
+        String serializedForm = Joiner.on("\n").join(
+                "<org.apache.brooklyn.util.net.UserAndHostAndPort>",
+                "<user>myuser</user>",
+                "<hostAndPort>",
+                "<host>myhost</host>",
+                "<port>1234</port>",
+                "<hasBracketlessColons>false</hasBracketlessColons>",
+                "</hostAndPort>",
+                "</org.apache.brooklyn.util.net.UserAndHostAndPort>");
+        UserAndHostAndPort obj = UserAndHostAndPort.fromParts("myuser", "myhost", 1234);
+        runRenamed(serializedForm, obj, ImmutableMap.<String, String>of(
+                UserAndHostAndPort.class.getName(), "old.package.name.UserAndHostAndPort"));
+    }
+
+    @Test
+    public void testRenamedStaticInner() throws Exception {
+        serializer = new XmlMementoSerializer<Object>(XmlMementoSerializerTest.class.getClassLoader(),
+                ImmutableMap.of("old.package.name.XmlMementoSerializerTest", XmlMementoSerializerTest.class.getName()));
+        
+        String serializedForm = Joiner.on("\n").join(
+                "<org.apache.brooklyn.core.mgmt.persist.XmlMementoSerializerTest_-MyStaticInner>",
+                "<myStaticInnerField>myStaticInnerVal</myStaticInnerField>",
+                "</org.apache.brooklyn.core.mgmt.persist.XmlMementoSerializerTest_-MyStaticInner>");
+        MyStaticInner obj = new MyStaticInner("myStaticInnerVal");
+        runRenamed(serializedForm, obj, ImmutableMap.<String, String>of(
+                XmlMementoSerializerTest.class.getName(), "old.package.name.XmlMementoSerializerTest"));
+    }
+
+    @Test
+    public void testRenamedNonStaticInner() throws Exception {
+        serializer = new XmlMementoSerializer<Object>(XmlMementoSerializerTest.class.getClassLoader(),
+                ImmutableMap.of("old.package.name.XmlMementoSerializerTest", XmlMementoSerializerTest.class.getName()));
+        
+        String serializedForm = Joiner.on("\n").join(
+                "<org.apache.brooklyn.core.mgmt.persist.XmlMementoSerializerTest_-MyStaticInner_-MyNonStaticInner>",
+                "<myNonStaticInnerField>myNonStaticInnerVal</myNonStaticInnerField>",
+                "<this_-1>",
+                "<myStaticInnerField>myStaticInnerVal</myStaticInnerField>",
+                "</this_-1>",
+                "</org.apache.brooklyn.core.mgmt.persist.XmlMementoSerializerTest_-MyStaticInner_-MyNonStaticInner>");
+        MyStaticInner outer = new MyStaticInner("myStaticInnerVal");
+        MyStaticInner.MyNonStaticInner obj = outer.new MyNonStaticInner("myNonStaticInnerVal");
+        runRenamed(serializedForm, obj, ImmutableMap.<String, String>of(
+                XmlMementoSerializerTest.class.getName(), "old.package.name.XmlMementoSerializerTest"));
+    }
+
+    @Test
+    public void testRenamedAnonymousInner() throws Exception {
+        serializer = new XmlMementoSerializer<Object>(XmlMementoSerializerTest.class.getClassLoader(),
+                ImmutableMap.of("old.package.name.XmlMementoSerializerTest", XmlMementoSerializerTest.class.getName()));
+        
+        String serializedForm = Joiner.on("\n").join(
+                "<org.apache.brooklyn.core.mgmt.persist.XmlMementoSerializerTest_-MySuper_-1>",
+                "<mySuperField>mySuperVal</mySuperField>",
+                "<myAnonymousInnerField>mySubVal</myAnonymousInnerField>",
+                "</org.apache.brooklyn.core.mgmt.persist.XmlMementoSerializerTest_-MySuper_-1>");
+        MySuper obj = MySuper.newAnonymousInner("mySuperVal", "mySubVal");
+        runRenamed(serializedForm, obj, ImmutableMap.<String, String>of(
+                XmlMementoSerializerTest.class.getName(), "old.package.name.XmlMementoSerializerTest"));
+    }
+
+    protected void runRenamed(String serializedForm, Object obj, Map<String, String> transforms) throws Exception {
+        assertSerializeAndDeserialize(obj);
+        
+        assertEquals(serializer.fromString(serializedForm), obj, "serializedForm="+serializedForm);
+        
+        String transformedForm = serializedForm;
+        for (Map.Entry<String, String> entry : transforms.entrySet()) {
+            transformedForm = transformedForm.replaceAll(entry.getKey(), entry.getValue());
+        }
+        assertEquals(serializer.fromString(transformedForm), obj, "serializedForm="+transformedForm);
+    }
+
+    @Test
+    public void testInetAddress() throws Exception {
+        InetAddress obj = Networking.getInetAddressWithFixedName("1.2.3.4");
+        assertSerializeAndDeserialize(obj);
+    }
+
+    @Test
     public void testMutableSet() throws Exception {
         Set<?> obj = MutableSet.of("123");
         assertSerializeAndDeserialize(obj);
@@ -452,4 +540,60 @@ public class XmlMementoSerializerTest {
             throw new IllegalStateException("Unexpected type "+type+" / id "+id);
         }
     };
+
+    public static class MySuper {
+        public String mySuperField;
+        
+        public static MySuper newAnonymousInner(final String superVal, final String subVal) {
+            MySuper result = new MySuper() {
+                public String myAnonymousInnerField = subVal;
+                
+                @Override public boolean equals(Object obj) {
+                    return (obj != null) && (obj.getClass() == getClass()) && super.equals(obj);
+                }
+                @Override public int hashCode() {
+                    return Objects.hashCode(super.hashCode(), myAnonymousInnerField);
+                }
+            };
+            result.mySuperField = superVal;
+            return result;
+        }
+        @Override public boolean equals(Object obj) {
+            return (obj instanceof MySuper) 
+                    && mySuperField.equals(((MySuper)obj).mySuperField);
+        }
+        @Override public int hashCode() {
+            return Objects.hashCode(mySuperField);
+        }
+    }
+    
+    public static class MyStaticInner {
+        public class MyNonStaticInner {
+            public String myNonStaticInnerField;
+            
+            public MyNonStaticInner(String val) {
+                this.myNonStaticInnerField = val;
+            }
+            @Override public boolean equals(Object obj) {
+                return (obj instanceof MyNonStaticInner) 
+                        && myNonStaticInnerField.equals(((MyNonStaticInner)obj).myNonStaticInnerField);
+            }
+            @Override public int hashCode() {
+                return Objects.hashCode(myNonStaticInnerField);
+            }
+        }
+
+        public String myStaticInnerField;
+        
+        public MyStaticInner(String val) {
+            this.myStaticInnerField = val;
+        }
+        @Override public boolean equals(Object obj) {
+            return (obj instanceof MyStaticInner) 
+                    && myStaticInnerField.equals(((MyStaticInner)obj).myStaticInnerField);
+        }
+        @Override public int hashCode() {
+            return Objects.hashCode(myStaticInnerField);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3167af95/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/BrooklynServiceTypeResolver.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/BrooklynServiceTypeResolver.java b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/BrooklynServiceTypeResolver.java
index 3af908e..c6251df 100644
--- a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/BrooklynServiceTypeResolver.java
+++ b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/BrooklynServiceTypeResolver.java
@@ -18,18 +18,27 @@
  */
 package org.apache.brooklyn.camp.brooklyn.spi.creation.service;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.util.Map;
+
 import javax.annotation.Nullable;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.EntitySpec;
+import org.apache.brooklyn.api.mgmt.ManagementContext;
 import org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynComponentTemplateResolver;
 import org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynEntityDecorationResolver;
 import org.apache.brooklyn.camp.spi.PlatformComponentTemplate;
 import org.apache.brooklyn.core.catalog.internal.CatalogUtils;
+import org.apache.brooklyn.core.mgmt.persist.DeserializingClassRenamesProvider;
+import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.text.Strings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Optional;
 
 /**
  * This converts {@link PlatformComponentTemplate} instances whose type is prefixed {@code brooklyn:}
@@ -38,7 +47,17 @@ import org.apache.brooklyn.util.text.Strings;
 public class BrooklynServiceTypeResolver implements ServiceTypeResolver {
 
     private static final Logger LOG = LoggerFactory.getLogger(ServiceTypeResolver.class);
+    
+    private final Map<String, String> deserializingClassRenames;
 
+    public BrooklynServiceTypeResolver() {
+        this(DeserializingClassRenamesProvider.loadDeserializingClassRenames());
+    }
+    
+    public BrooklynServiceTypeResolver(Map<String, String> deserializingClassRenames) {
+        this.deserializingClassRenames = checkNotNull(deserializingClassRenames, "deserializingClassRenames");
+    }
+    
     @Override
     public String getTypePrefix() { return DEFAULT_TYPE_PREFIX; }
 
@@ -54,7 +73,7 @@ public class BrooklynServiceTypeResolver implements ServiceTypeResolver {
     public CatalogItem<Entity,EntitySpec<?>> getCatalogItem(BrooklynComponentTemplateResolver resolver, String serviceType) {
         String type = getBrooklynType(serviceType);
         if (type != null) {
-            return CatalogUtils.getCatalogItemOptionalVersion(resolver.getManagementContext(), Entity.class,  type);
+            return getCatalogItemImpl(resolver.getManagementContext(),  type);
         } else {
             return null;
         }
@@ -67,4 +86,21 @@ public class BrooklynServiceTypeResolver implements ServiceTypeResolver {
         new BrooklynEntityDecorationResolver.InitializerResolver(resolver.getYamlLoader()).decorate(spec, resolver.getAttrs());
     }
 
+    protected CatalogItem<Entity,EntitySpec<?>> getCatalogItemImpl(ManagementContext mgmt, String brooklynType) {
+        try {
+            return CatalogUtils.getCatalogItemOptionalVersion(mgmt, Entity.class,  brooklynType);
+        } catch (Exception e) {
+            Exceptions.propagateIfFatal(e);
+            Optional<String> alternativeType = DeserializingClassRenamesProvider.tryFindMappedName(deserializingClassRenames, brooklynType);
+            if (alternativeType.isPresent()) {
+                LOG.debug("Transforming entity "+brooklynType+" to "+alternativeType.get());
+                try {
+                    return CatalogUtils.getCatalogItemOptionalVersion(mgmt, Entity.class,  alternativeType.get());
+                } catch (Exception e2) {
+                    LOG.debug("Problem getting catalog for transformed type "+alternativeType.get()+"; throwing of untransformed type "+brooklynType, e);
+                }
+            }
+            throw Exceptions.propagate(e);
+        }
+    }
 }


[28/28] incubator-brooklyn git commit: update release notes for externalized config

Posted by he...@apache.org.
update release notes for externalized config


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

Branch: refs/heads/master
Commit: c77e7618d0de4c85a1a4220d35ba4cfb32047ef0
Parents: 8c9e1dc
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Sep 1 16:13:45 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Sep 1 16:15:47 2015 +0100

----------------------------------------------------------------------
 docs/guide/misc/release-notes.md | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c77e7618/docs/guide/misc/release-notes.md
----------------------------------------------------------------------
diff --git a/docs/guide/misc/release-notes.md b/docs/guide/misc/release-notes.md
index 5a61833..e15421a 100644
--- a/docs/guide/misc/release-notes.md
+++ b/docs/guide/misc/release-notes.md
@@ -6,7 +6,7 @@ title: Release Notes
 ## Version {{ site.brooklyn-version }}
 
 {% if SNAPSHOT %}
-**You are viewing a SNAPSHOT release (master branch), so this list is incomplete.**
+**You are viewing a SNAPSHOT release (master branch), so this list is in progress!**
 {% endif %}
 
 * Introduction
@@ -18,7 +18,8 @@ title: Release Notes
 
 Version 0.8.0 is a rapid, clean-up and hardening release, as we prepare for graduation.
 The biggest change is the package refactoring, discussed in the Backwards Compatibility section.
-Other new features include more machine management (suspend/resume and windows enhandements),
+Other new features include more externalized configuration,
+machine management (suspend/resume and windows enhandements),
 MySQL cluster, entitlements enhancements, and pluggable blueprint languages. 
 
 Thanks go to our community for their improvements, feedback and guidance, and
@@ -31,6 +32,9 @@ New features include:
 
 * All classes are in the `org.apache.brooklyn` namespace
 
+* Externalized configuration, using `$brooklyn:external` to access data which is
+  retrieved from a remote store or injected via an extensible mechanism
+   
 * Port mappings supported for BYON locations:  fixed-IP machines can now be configured 
   within subnets
 


[11/28] incubator-brooklyn git commit: Handle class-renames in persisted state

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3167af95/core/src/main/resources/org/apache/brooklyn/core/mgmt/persist/deserializingClassRenames.properties
----------------------------------------------------------------------
diff --git a/core/src/main/resources/org/apache/brooklyn/core/mgmt/persist/deserializingClassRenames.properties b/core/src/main/resources/org/apache/brooklyn/core/mgmt/persist/deserializingClassRenames.properties
new file mode 100644
index 0000000..2bd0c00
--- /dev/null
+++ b/core/src/main/resources/org/apache/brooklyn/core/mgmt/persist/deserializingClassRenames.properties
@@ -0,0 +1,1419 @@
+#
+# 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.
+#
+# A mapping of files that have been moved (e.g. changed package, or renamed).
+# This can be used on de-serialization to map from the old name to the new name.
+#
+# For auto-generating this content, see https://github.com/brooklyncentral/version-differ
+
+brooklyn.basic.AbstractBrooklynObjectSpec                                        : org.apache.brooklyn.api.internal.AbstractBrooklynObjectSpec
+brooklyn.basic.BrooklynObject                                                    : org.apache.brooklyn.api.objs.BrooklynObject
+brooklyn.basic.BrooklynType                                                      : org.apache.brooklyn.api.objs.BrooklynType
+brooklyn.basic.internal.ApiObjectsFactory                                        : org.apache.brooklyn.api.internal.ApiObjectsFactory
+brooklyn.basic.internal.ApiObjectsFactoryInterface                               : org.apache.brooklyn.api.internal.ApiObjectsFactoryInterface
+brooklyn.catalog.BrooklynCatalog                                                 : org.apache.brooklyn.api.catalog.BrooklynCatalog
+brooklyn.catalog.Catalog                                                         : org.apache.brooklyn.api.catalog.Catalog
+brooklyn.catalog.CatalogConfig                                                   : org.apache.brooklyn.api.catalog.CatalogConfig
+brooklyn.catalog.CatalogItem                                                     : org.apache.brooklyn.api.catalog.CatalogItem
+brooklyn.entity.Application                                                      : org.apache.brooklyn.api.entity.Application
+brooklyn.entity.Entity                                                           : org.apache.brooklyn.api.entity.Entity
+brooklyn.entity.EntityType                                                       : org.apache.brooklyn.api.entity.EntityType
+brooklyn.entity.Feed                                                             : org.apache.brooklyn.api.sensor.Feed
+brooklyn.entity.Group                                                            : org.apache.brooklyn.api.entity.Group
+brooklyn.entity.ParameterType                                                    : org.apache.brooklyn.api.effector.ParameterType
+brooklyn.entity.basic.EntityLocal                                                : org.apache.brooklyn.api.entity.EntityLocal
+brooklyn.entity.drivers.DriverDependentEntity                                    : org.apache.brooklyn.api.entity.drivers.DriverDependentEntity
+brooklyn.entity.drivers.EntityDriver                                             : org.apache.brooklyn.api.entity.drivers.EntityDriver
+brooklyn.entity.drivers.EntityDriverManager                                      : org.apache.brooklyn.api.entity.drivers.EntityDriverManager
+brooklyn.entity.drivers.downloads.DownloadResolver                               : org.apache.brooklyn.api.entity.drivers.downloads.DownloadResolver
+brooklyn.entity.drivers.downloads.DownloadResolverManager                        : org.apache.brooklyn.api.entity.drivers.downloads.DownloadResolverManager
+brooklyn.entity.proxying.EntityInitializer                                       : org.apache.brooklyn.api.entity.EntityInitializer
+brooklyn.entity.proxying.EntityTypeRegistry                                      : org.apache.brooklyn.api.entity.EntityTypeRegistry
+brooklyn.entity.proxying.ImplementedBy                                           : org.apache.brooklyn.api.entity.ImplementedBy
+brooklyn.entity.rebind.BrooklynObjectType                                        : org.apache.brooklyn.api.objs.BrooklynObjectType
+brooklyn.entity.rebind.ChangeListener                                            : org.apache.brooklyn.api.mgmt.rebind.ChangeListener
+brooklyn.entity.rebind.PersistenceExceptionHandler                               : org.apache.brooklyn.api.mgmt.rebind.PersistenceExceptionHandler
+brooklyn.entity.rebind.RebindContext                                             : org.apache.brooklyn.api.mgmt.rebind.RebindContext
+brooklyn.entity.rebind.RebindExceptionHandler                                    : org.apache.brooklyn.api.mgmt.rebind.RebindExceptionHandler
+brooklyn.entity.rebind.RebindManager                                             : org.apache.brooklyn.api.mgmt.rebind.RebindManager
+brooklyn.entity.rebind.RebindSupport                                             : org.apache.brooklyn.api.mgmt.rebind.RebindSupport
+brooklyn.entity.rebind.Rebindable                                                : org.apache.brooklyn.api.mgmt.rebind.Rebindable
+brooklyn.entity.trait.Configurable                                               : org.apache.brooklyn.api.objs.Configurable
+brooklyn.entity.trait.HasShortName                                               : org.apache.brooklyn.api.objs.HasShortName
+brooklyn.entity.trait.Identifiable                                               : org.apache.brooklyn.api.objs.Identifiable
+brooklyn.event.AttributeSensor                                                   : org.apache.brooklyn.api.sensor.AttributeSensor
+brooklyn.event.Sensor                                                            : org.apache.brooklyn.api.sensor.Sensor
+brooklyn.event.SensorEvent                                                       : org.apache.brooklyn.api.sensor.SensorEvent
+brooklyn.event.SensorEventListener                                               : org.apache.brooklyn.api.sensor.SensorEventListener
+brooklyn.location.AddressableLocation                                            : org.apache.brooklyn.api.location.AddressableLocation
+brooklyn.location.BasicMachineLocationCustomizer                                 : org.apache.brooklyn.api.location.BasicMachineLocationCustomizer
+brooklyn.location.HardwareDetails                                                : org.apache.brooklyn.api.location.HardwareDetails
+brooklyn.location.Location                                                       : org.apache.brooklyn.api.location.Location
+brooklyn.location.LocationDefinition                                             : org.apache.brooklyn.api.location.LocationDefinition
+brooklyn.location.LocationNotAvailableException                                  : org.apache.brooklyn.api.location.LocationNotAvailableException
+brooklyn.location.LocationRegistry                                               : org.apache.brooklyn.api.location.LocationRegistry
+brooklyn.location.LocationResolver                                               : org.apache.brooklyn.api.location.LocationResolver
+brooklyn.location.LocationType                                                   : org.apache.brooklyn.api.location.LocationType
+brooklyn.location.MachineDetails                                                 : org.apache.brooklyn.api.location.MachineDetails
+brooklyn.location.MachineLocation                                                : org.apache.brooklyn.api.location.MachineLocation
+brooklyn.location.MachineLocationCustomizer                                      : org.apache.brooklyn.api.location.MachineLocationCustomizer
+brooklyn.location.MachineManagementMixins                                        : org.apache.brooklyn.api.location.MachineManagementMixins
+brooklyn.location.MachineProvisioningLocation                                    : org.apache.brooklyn.api.location.MachineProvisioningLocation
+brooklyn.location.NoMachinesAvailableException                                   : org.apache.brooklyn.api.location.NoMachinesAvailableException
+brooklyn.location.OsDetails                                                      : org.apache.brooklyn.api.location.OsDetails
+brooklyn.location.PortRange                                                      : org.apache.brooklyn.api.location.PortRange
+brooklyn.location.PortSupplier                                                   : org.apache.brooklyn.api.location.PortSupplier
+brooklyn.location.ProvisioningLocation                                           : org.apache.brooklyn.api.location.ProvisioningLocation
+brooklyn.management.AccessController                                             : org.apache.brooklyn.api.mgmt.AccessController
+brooklyn.management.EntityManager                                                : org.apache.brooklyn.api.mgmt.EntityManager
+brooklyn.management.ExecutionContext                                             : org.apache.brooklyn.api.mgmt.ExecutionContext
+brooklyn.management.ExecutionManager                                             : org.apache.brooklyn.api.mgmt.ExecutionManager
+brooklyn.management.HasTaskChildren                                              : org.apache.brooklyn.api.mgmt.HasTaskChildren
+brooklyn.management.LocationManager                                              : org.apache.brooklyn.api.mgmt.LocationManager
+brooklyn.management.ManagementContext                                            : org.apache.brooklyn.api.mgmt.ManagementContext
+brooklyn.management.SubscriptionContext                                          : org.apache.brooklyn.api.mgmt.SubscriptionContext
+brooklyn.management.SubscriptionHandle                                           : org.apache.brooklyn.api.mgmt.SubscriptionHandle
+brooklyn.management.SubscriptionManager                                          : org.apache.brooklyn.api.mgmt.SubscriptionManager
+brooklyn.management.Task                                                         : org.apache.brooklyn.api.mgmt.Task
+brooklyn.management.TaskAdaptable                                                : org.apache.brooklyn.api.mgmt.TaskAdaptable
+brooklyn.management.TaskFactory                                                  : org.apache.brooklyn.api.mgmt.TaskFactory
+brooklyn.management.TaskQueueingContext                                          : org.apache.brooklyn.api.mgmt.TaskQueueingContext
+brooklyn.management.TaskWrapper                                                  : org.apache.brooklyn.api.mgmt.TaskWrapper
+brooklyn.management.classloading.BrooklynClassLoadingContext                     : org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContext
+brooklyn.management.entitlement.EntitlementClass                                 : org.apache.brooklyn.api.mgmt.entitlement.EntitlementClass
+brooklyn.management.entitlement.EntitlementContext                               : org.apache.brooklyn.api.mgmt.entitlement.EntitlementContext
+brooklyn.management.entitlement.EntitlementManager                               : org.apache.brooklyn.api.mgmt.entitlement.EntitlementManager
+brooklyn.management.ha.HighAvailabilityManager                                   : org.apache.brooklyn.api.mgmt.ha.HighAvailabilityManager
+brooklyn.management.ha.HighAvailabilityMode                                      : org.apache.brooklyn.api.mgmt.ha.HighAvailabilityMode
+brooklyn.management.ha.ManagementNodeState                                       : org.apache.brooklyn.api.mgmt.ha.ManagementNodeState
+brooklyn.management.ha.ManagementNodeSyncRecord                                  : org.apache.brooklyn.api.mgmt.ha.ManagementNodeSyncRecord
+brooklyn.management.ha.ManagementPlaneSyncRecord                                 : org.apache.brooklyn.api.mgmt.ha.ManagementPlaneSyncRecord
+brooklyn.management.ha.ManagementPlaneSyncRecordPersister                        : org.apache.brooklyn.api.mgmt.ha.ManagementPlaneSyncRecordPersister
+brooklyn.management.ha.MementoCopyMode                                           : org.apache.brooklyn.api.mgmt.ha.MementoCopyMode
+brooklyn.mementos.BrooklynMemento                                                : org.apache.brooklyn.api.mgmt.rebind.mementos.BrooklynMemento
+brooklyn.mementos.BrooklynMementoManifest                                        : org.apache.brooklyn.api.mgmt.rebind.mementos.BrooklynMementoManifest
+brooklyn.mementos.BrooklynMementoPersister                                       : org.apache.brooklyn.api.mgmt.rebind.mementos.BrooklynMementoPersister
+brooklyn.mementos.BrooklynMementoRawData                                         : org.apache.brooklyn.api.mgmt.rebind.mementos.BrooklynMementoRawData
+brooklyn.mementos.CatalogItemMemento                                             : org.apache.brooklyn.api.mgmt.rebind.mementos.CatalogItemMemento
+brooklyn.mementos.EnricherMemento                                                : org.apache.brooklyn.api.mgmt.rebind.mementos.EnricherMemento
+brooklyn.mementos.EntityMemento                                                  : org.apache.brooklyn.api.mgmt.rebind.mementos.EntityMemento
+brooklyn.mementos.FeedMemento                                                    : org.apache.brooklyn.api.mgmt.rebind.mementos.FeedMemento
+brooklyn.mementos.LocationMemento                                                : org.apache.brooklyn.api.mgmt.rebind.mementos.LocationMemento
+brooklyn.mementos.Memento                                                        : org.apache.brooklyn.api.mgmt.rebind.mementos.Memento
+brooklyn.mementos.PolicyMemento                                                  : org.apache.brooklyn.api.mgmt.rebind.mementos.PolicyMemento
+brooklyn.mementos.TreeNode                                                       : org.apache.brooklyn.api.mgmt.rebind.mementos.TreeNode
+brooklyn.policy.Enricher                                                         : org.apache.brooklyn.api.sensor.Enricher
+brooklyn.policy.EnricherSpec                                                     : org.apache.brooklyn.api.sensor.EnricherSpec
+brooklyn.policy.EnricherType                                                     : org.apache.brooklyn.api.sensor.EnricherType
+brooklyn.policy.EntityAdjunct                                                    : org.apache.brooklyn.api.objs.EntityAdjunct
+brooklyn.policy.Policy                                                           : org.apache.brooklyn.api.policy.Policy
+brooklyn.policy.PolicySpec                                                       : org.apache.brooklyn.api.policy.PolicySpec
+brooklyn.policy.PolicyType                                                       : org.apache.brooklyn.api.policy.PolicyType
+io.brooklyn.camp.AggregatingCampPlatform                                         : org.apache.brooklyn.camp.AggregatingCampPlatform
+io.brooklyn.camp.BasicCampPlatform                                               : org.apache.brooklyn.camp.BasicCampPlatform
+io.brooklyn.camp.CampPlatform                                                    : org.apache.brooklyn.camp.CampPlatform
+io.brooklyn.camp.commontypes.RepresentationSkew                                  : org.apache.brooklyn.camp.commontypes.RepresentationSkew
+io.brooklyn.camp.spi.AbstractResource                                            : org.apache.brooklyn.camp.spi.AbstractResource
+io.brooklyn.camp.spi.ApplicationComponent                                        : org.apache.brooklyn.camp.spi.ApplicationComponent
+io.brooklyn.camp.spi.ApplicationComponentTemplate                                : org.apache.brooklyn.camp.spi.ApplicationComponentTemplate
+io.brooklyn.camp.spi.Assembly                                                    : org.apache.brooklyn.camp.spi.Assembly
+io.brooklyn.camp.spi.AssemblyTemplate                                            : org.apache.brooklyn.camp.spi.AssemblyTemplate
+io.brooklyn.camp.spi.Link                                                        : org.apache.brooklyn.camp.spi.Link
+io.brooklyn.camp.spi.PlatformComponent                                           : org.apache.brooklyn.camp.spi.PlatformComponent
+io.brooklyn.camp.spi.PlatformComponentTemplate                                   : org.apache.brooklyn.camp.spi.PlatformComponentTemplate
+io.brooklyn.camp.spi.PlatformRootSummary                                         : org.apache.brooklyn.camp.spi.PlatformRootSummary
+io.brooklyn.camp.spi.PlatformTransaction                                         : org.apache.brooklyn.camp.spi.PlatformTransaction
+io.brooklyn.camp.spi.collection.AbstractResourceLookup                           : org.apache.brooklyn.camp.spi.collection.AbstractResourceLookup
+io.brooklyn.camp.spi.collection.AggregatingResourceLookup                        : org.apache.brooklyn.camp.spi.collection.AggregatingResourceLookup
+io.brooklyn.camp.spi.collection.BasicResourceLookup                              : org.apache.brooklyn.camp.spi.collection.BasicResourceLookup
+io.brooklyn.camp.spi.collection.ResolvableLink                                   : org.apache.brooklyn.camp.spi.collection.ResolvableLink
+io.brooklyn.camp.spi.collection.ResourceLookup                                   : org.apache.brooklyn.camp.spi.collection.ResourceLookup
+io.brooklyn.camp.spi.instantiate.AssemblyTemplateInstantiator                    : org.apache.brooklyn.camp.spi.instantiate.AssemblyTemplateInstantiator
+io.brooklyn.camp.spi.instantiate.BasicAssemblyTemplateInstantiator               : org.apache.brooklyn.camp.spi.instantiate.BasicAssemblyTemplateInstantiator
+io.brooklyn.camp.spi.pdp.Artifact                                                : org.apache.brooklyn.camp.spi.pdp.Artifact
+io.brooklyn.camp.spi.pdp.ArtifactContent                                         : org.apache.brooklyn.camp.spi.pdp.ArtifactContent
+io.brooklyn.camp.spi.pdp.ArtifactRequirement                                     : org.apache.brooklyn.camp.spi.pdp.ArtifactRequirement
+io.brooklyn.camp.spi.pdp.AssemblyTemplateConstructor                             : org.apache.brooklyn.camp.spi.pdp.AssemblyTemplateConstructor
+io.brooklyn.camp.spi.pdp.DeploymentPlan                                          : org.apache.brooklyn.camp.spi.pdp.DeploymentPlan
+io.brooklyn.camp.spi.pdp.Service                                                 : org.apache.brooklyn.camp.spi.pdp.Service
+io.brooklyn.camp.spi.pdp.ServiceCharacteristic                                   : org.apache.brooklyn.camp.spi.pdp.ServiceCharacteristic
+io.brooklyn.camp.spi.resolve.PdpMatcher                                          : org.apache.brooklyn.camp.spi.resolve.PdpMatcher
+io.brooklyn.camp.spi.resolve.PdpProcessor                                        : org.apache.brooklyn.camp.spi.resolve.PdpProcessor
+io.brooklyn.camp.spi.resolve.PlanInterpreter                                     : org.apache.brooklyn.camp.spi.resolve.PlanInterpreter
+io.brooklyn.camp.spi.resolve.interpret.PlanInterpretationContext                 : org.apache.brooklyn.camp.spi.resolve.interpret.PlanInterpretationContext
+io.brooklyn.camp.spi.resolve.interpret.PlanInterpretationNode                    : org.apache.brooklyn.camp.spi.resolve.interpret.PlanInterpretationNode
+io.brooklyn.camp.CampRestResources                                               : org.apache.brooklyn.camp.server.rest.CampRestResources
+io.brooklyn.camp.CampServer                                                      : org.apache.brooklyn.camp.server.rest.CampServer
+io.brooklyn.camp.dto.ApiErrorDto                                                 : org.apache.brooklyn.camp.server.dto.ApiErrorDto
+io.brooklyn.camp.dto.ApplicationComponentDto                                     : org.apache.brooklyn.camp.server.dto.ApplicationComponentDto
+io.brooklyn.camp.dto.ApplicationComponentTemplateDto                             : org.apache.brooklyn.camp.server.dto.ApplicationComponentTemplateDto
+io.brooklyn.camp.dto.AssemblyDto                                                 : org.apache.brooklyn.camp.server.dto.AssemblyDto
+io.brooklyn.camp.dto.AssemblyTemplateDto                                         : org.apache.brooklyn.camp.server.dto.AssemblyTemplateDto
+io.brooklyn.camp.dto.DtoBase                                                     : org.apache.brooklyn.camp.server.dto.DtoBase
+io.brooklyn.camp.dto.DtoCustomAttributes                                         : org.apache.brooklyn.camp.server.dto.DtoCustomAttributes
+io.brooklyn.camp.dto.LinkDto                                                     : org.apache.brooklyn.camp.server.dto.LinkDto
+io.brooklyn.camp.dto.PlatformComponentDto                                        : org.apache.brooklyn.camp.server.dto.PlatformComponentDto
+io.brooklyn.camp.dto.PlatformComponentTemplateDto                                : org.apache.brooklyn.camp.server.dto.PlatformComponentTemplateDto
+io.brooklyn.camp.dto.PlatformDto                                                 : org.apache.brooklyn.camp.server.dto.PlatformDto
+io.brooklyn.camp.dto.ResourceDto                                                 : org.apache.brooklyn.camp.server.dto.ResourceDto
+io.brooklyn.camp.rest.resource.AbstractCampRestResource                          : org.apache.brooklyn.camp.server.rest.resource.AbstractCampRestResource
+io.brooklyn.camp.rest.resource.ApidocRestResource                                : org.apache.brooklyn.camp.server.rest.resource.ApidocRestResource
+io.brooklyn.camp.rest.resource.ApplicationComponentRestResource                  : org.apache.brooklyn.camp.server.rest.resource.ApplicationComponentRestResource
+io.brooklyn.camp.rest.resource.ApplicationComponentTemplateRestResource          : org.apache.brooklyn.camp.server.rest.resource.ApplicationComponentTemplateRestResource
+io.brooklyn.camp.rest.resource.AssemblyRestResource                              : org.apache.brooklyn.camp.server.rest.resource.AssemblyRestResource
+io.brooklyn.camp.rest.resource.AssemblyTemplateRestResource                      : org.apache.brooklyn.camp.server.rest.resource.AssemblyTemplateRestResource
+io.brooklyn.camp.rest.resource.PlatformComponentRestResource                     : org.apache.brooklyn.camp.server.rest.resource.PlatformComponentRestResource
+io.brooklyn.camp.rest.resource.PlatformComponentTemplateRestResource             : org.apache.brooklyn.camp.server.rest.resource.PlatformComponentTemplateRestResource
+io.brooklyn.camp.rest.resource.PlatformRestResource                              : org.apache.brooklyn.camp.server.rest.resource.PlatformRestResource
+io.brooklyn.camp.rest.util.CampJsons                                             : org.apache.brooklyn.camp.server.rest.util.CampJsons
+io.brooklyn.camp.rest.util.CampRestContext                                       : org.apache.brooklyn.camp.server.rest.util.CampRestContext
+io.brooklyn.camp.rest.util.CampRestGuavas                                        : org.apache.brooklyn.camp.server.rest.util.CampRestGuavas
+io.brooklyn.camp.rest.util.DtoFactory                                            : org.apache.brooklyn.camp.server.rest.util.DtoFactory
+brooklyn.BrooklynVersion                                                         : org.apache.brooklyn.core.BrooklynVersion
+brooklyn.basic.AbstractBrooklynObject                                            : org.apache.brooklyn.core.objs.AbstractBrooklynObject
+brooklyn.basic.BasicConfigurableObject                                           : org.apache.brooklyn.core.objs.BasicConfigurableObject
+brooklyn.basic.BrooklynDynamicType                                               : org.apache.brooklyn.core.objs.BrooklynDynamicType
+brooklyn.basic.BrooklynObjectInternal                                            : org.apache.brooklyn.core.objs.BrooklynObjectInternal
+brooklyn.basic.BrooklynTypeSnapshot                                              : org.apache.brooklyn.core.objs.BrooklynTypeSnapshot
+brooklyn.basic.BrooklynTypes                                                     : org.apache.brooklyn.core.objs.BrooklynTypes
+brooklyn.basic.internal.ApiObjectsFactoryImpl                                    : org.apache.brooklyn.core.internal.ApiObjectsFactoryImpl
+brooklyn.camp.brooklyn.api.AssemblyTemplateSpecInstantiator                      : org.apache.brooklyn.camp.brooklyn.api.AssemblyTemplateSpecInstantiator
+brooklyn.catalog.CatalogLoadMode                                                 : org.apache.brooklyn.core.catalog.CatalogLoadMode
+brooklyn.catalog.CatalogPredicates                                               : org.apache.brooklyn.core.catalog.CatalogPredicates
+brooklyn.catalog.internal.BasicBrooklynCatalog                                   : org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog
+brooklyn.catalog.internal.CatalogBundleConverter                                 : org.apache.brooklyn.core.catalog.internal.CatalogBundleConverter
+brooklyn.catalog.internal.CatalogBundleDto                                       : org.apache.brooklyn.core.catalog.internal.CatalogBundleDto
+brooklyn.catalog.internal.CatalogClasspathDo                                     : org.apache.brooklyn.core.catalog.internal.CatalogClasspathDo
+brooklyn.catalog.internal.CatalogClasspathDto                                    : org.apache.brooklyn.core.catalog.internal.CatalogClasspathDto
+brooklyn.catalog.internal.CatalogDo                                              : org.apache.brooklyn.core.catalog.internal.CatalogDo
+brooklyn.catalog.internal.CatalogDto                                             : org.apache.brooklyn.core.catalog.internal.CatalogDto
+brooklyn.catalog.internal.CatalogDtoUtils                                        : org.apache.brooklyn.core.catalog.internal.CatalogDtoUtils
+brooklyn.catalog.internal.CatalogEntityItemDto                                   : org.apache.brooklyn.core.catalog.internal.CatalogEntityItemDto
+brooklyn.catalog.internal.CatalogInitialization                                  : org.apache.brooklyn.core.catalog.internal.CatalogInitialization
+brooklyn.catalog.internal.CatalogItemBuilder                                     : org.apache.brooklyn.core.catalog.internal.CatalogItemBuilder
+brooklyn.catalog.internal.CatalogItemComparator                                  : org.apache.brooklyn.core.catalog.internal.CatalogItemComparator
+brooklyn.catalog.internal.CatalogItemDo                                          : org.apache.brooklyn.core.catalog.internal.CatalogItemDo
+brooklyn.catalog.internal.CatalogItemDtoAbstract                                 : org.apache.brooklyn.core.catalog.internal.CatalogItemDtoAbstract
+brooklyn.catalog.internal.CatalogLibrariesDo                                     : org.apache.brooklyn.core.catalog.internal.CatalogLibrariesDo
+brooklyn.catalog.internal.CatalogLibrariesDto                                    : org.apache.brooklyn.core.catalog.internal.CatalogLibrariesDto
+brooklyn.catalog.internal.CatalogLocationItemDto                                 : org.apache.brooklyn.core.catalog.internal.CatalogLocationItemDto
+brooklyn.catalog.internal.CatalogPolicyItemDto                                   : org.apache.brooklyn.core.catalog.internal.CatalogPolicyItemDto
+brooklyn.catalog.internal.CatalogTemplateItemDto                                 : org.apache.brooklyn.core.catalog.internal.CatalogTemplateItemDto
+brooklyn.catalog.internal.CatalogUtils                                           : org.apache.brooklyn.core.catalog.internal.CatalogUtils
+brooklyn.catalog.internal.CatalogXmlSerializer                                   : org.apache.brooklyn.core.catalog.internal.CatalogXmlSerializer
+brooklyn.config.BrooklynLogging                                                  : org.apache.brooklyn.core.BrooklynLogging
+brooklyn.config.BrooklynProperties                                               : org.apache.brooklyn.core.internal.BrooklynProperties
+brooklyn.config.BrooklynServerConfig                                             : org.apache.brooklyn.core.server.BrooklynServerConfig
+brooklyn.config.BrooklynServerPaths                                              : org.apache.brooklyn.core.server.BrooklynServerPaths
+brooklyn.config.BrooklynServiceAttributes                                        : org.apache.brooklyn.core.server.BrooklynServiceAttributes
+brooklyn.config.ConfigPredicates                                                 : org.apache.brooklyn.core.config.ConfigPredicates
+brooklyn.config.ConfigUtils                                                      : org.apache.brooklyn.core.config.ConfigUtils
+brooklyn.config.WrappedConfigKey                                                 : org.apache.brooklyn.core.config.WrappedConfigKey
+brooklyn.config.internal.AbstractConfigMapImpl                                   : org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl
+brooklyn.config.render.RendererHints                                             : org.apache.brooklyn.core.config.render.RendererHints
+brooklyn.enricher.CustomAggregatingEnricher                                      : org.apache.brooklyn.enricher.stock.CustomAggregatingEnricher
+brooklyn.enricher.Enrichers                                                      : org.apache.brooklyn.enricher.stock.Enrichers
+brooklyn.enricher.basic.AbstractAggregatingEnricher                              : org.apache.brooklyn.enricher.stock.AbstractAggregatingEnricher
+brooklyn.enricher.basic.AbstractAggregator                                       : org.apache.brooklyn.enricher.stock.AbstractAggregator
+brooklyn.enricher.basic.AbstractEnricher                                         : org.apache.brooklyn.core.enricher.AbstractEnricher
+brooklyn.enricher.basic.AbstractMultipleSensorAggregator                         : org.apache.brooklyn.enricher.stock.AbstractMultipleSensorAggregator
+brooklyn.enricher.basic.AbstractTransformer                                      : org.apache.brooklyn.enricher.stock.AbstractTransformer
+brooklyn.enricher.basic.AbstractTransformingEnricher                             : org.apache.brooklyn.enricher.stock.AbstractTransformingEnricher
+brooklyn.enricher.basic.AbstractTypeTransformingEnricher                         : org.apache.brooklyn.enricher.stock.AbstractTypeTransformingEnricher
+brooklyn.enricher.basic.AddingEnricher                                           : org.apache.brooklyn.enricher.stock.AddingEnricher
+brooklyn.enricher.basic.Aggregator                                               : org.apache.brooklyn.enricher.stock.Aggregator
+brooklyn.enricher.basic.Combiner                                                 : org.apache.brooklyn.enricher.stock.Combiner
+brooklyn.enricher.basic.EnricherDynamicType                                      : org.apache.brooklyn.core.enricher.EnricherDynamicType
+brooklyn.enricher.basic.EnricherTypeSnapshot                                     : org.apache.brooklyn.core.enricher.EnricherTypeSnapshot
+brooklyn.enricher.basic.Joiner                                                   : org.apache.brooklyn.enricher.stock.Joiner
+brooklyn.enricher.basic.Propagator                                               : org.apache.brooklyn.enricher.stock.Propagator
+brooklyn.enricher.basic.SensorPropagatingEnricher                                : org.apache.brooklyn.enricher.stock.SensorPropagatingEnricher
+brooklyn.enricher.basic.SensorTransformingEnricher                               : org.apache.brooklyn.enricher.stock.SensorTransformingEnricher
+brooklyn.enricher.basic.Transformer                                              : org.apache.brooklyn.enricher.stock.Transformer
+brooklyn.enricher.basic.UpdatingMap                                              : org.apache.brooklyn.enricher.stock.UpdatingMap
+brooklyn.enricher.basic.YamlRollingTimeWindowMeanEnricher                        : org.apache.brooklyn.enricher.stock.YamlRollingTimeWindowMeanEnricher
+brooklyn.enricher.basic.YamlTimeWeightedDeltaEnricher                            : org.apache.brooklyn.enricher.stock.YamlTimeWeightedDeltaEnricher
+brooklyn.entity.annotation.EffectorParam                                         : org.apache.brooklyn.core.annotation.EffectorParam
+brooklyn.entity.basic.AbstractApplication                                        : org.apache.brooklyn.core.entity.AbstractApplication
+brooklyn.entity.basic.AbstractConfigurableEntityFactory                          : org.apache.brooklyn.core.entity.factory.AbstractConfigurableEntityFactory
+brooklyn.entity.basic.AbstractEffector                                           : org.apache.brooklyn.core.effector.AbstractEffector
+brooklyn.entity.basic.AbstractEntity                                             : org.apache.brooklyn.core.entity.AbstractEntity
+brooklyn.entity.basic.AbstractGroup                                              : org.apache.brooklyn.entity.group.AbstractGroup
+brooklyn.entity.basic.AbstractGroupImpl                                          : org.apache.brooklyn.entity.group.AbstractGroupImpl
+brooklyn.entity.basic.ApplicationBuilder                                         : org.apache.brooklyn.core.entity.factory.ApplicationBuilder
+brooklyn.entity.basic.Attributes                                                 : org.apache.brooklyn.core.entity.Attributes
+brooklyn.entity.basic.BasicApplication                                           : org.apache.brooklyn.entity.stock.BasicApplication
+brooklyn.entity.basic.BasicApplicationImpl                                       : org.apache.brooklyn.entity.stock.BasicApplicationImpl
+brooklyn.entity.basic.BasicConfigurableEntityFactory                             : org.apache.brooklyn.core.entity.factory.BasicConfigurableEntityFactory
+brooklyn.entity.basic.BasicEntity                                                : org.apache.brooklyn.entity.stock.BasicEntity
+brooklyn.entity.basic.BasicEntityImpl                                            : org.apache.brooklyn.entity.stock.BasicEntityImpl
+brooklyn.entity.basic.BasicGroup                                                 : org.apache.brooklyn.entity.group.BasicGroup
+brooklyn.entity.basic.BasicGroupImpl                                             : org.apache.brooklyn.entity.group.BasicGroupImpl
+brooklyn.entity.basic.BasicParameterType                                         : org.apache.brooklyn.core.effector.BasicParameterType
+brooklyn.entity.basic.BasicStartable                                             : org.apache.brooklyn.entity.stock.BasicStartable
+brooklyn.entity.basic.BasicStartableImpl                                         : org.apache.brooklyn.entity.stock.BasicStartableImpl
+brooklyn.entity.basic.BrooklynConfigKeys                                         : org.apache.brooklyn.core.entity.BrooklynConfigKeys
+brooklyn.entity.basic.BrooklynShutdownHooks                                      : org.apache.brooklyn.core.mgmt.internal.BrooklynShutdownHooks
+brooklyn.entity.basic.BrooklynTags                                               : org.apache.brooklyn.core.mgmt.BrooklynTags
+brooklyn.entity.basic.BrooklynTaskTags                                           : org.apache.brooklyn.core.mgmt.BrooklynTaskTags
+brooklyn.entity.basic.BrooklynTasks                                              : org.apache.brooklyn.core.mgmt.BrooklynTasks
+brooklyn.entity.basic.ClosureEntityFactory                                       : org.apache.brooklyn.core.entity.factory.ClosureEntityFactory
+brooklyn.entity.basic.ConfigKeys                                                 : org.apache.brooklyn.core.config.ConfigKeys
+brooklyn.entity.basic.ConfigMapViewWithStringKeys                                : org.apache.brooklyn.core.entity.internal.ConfigMapViewWithStringKeys
+brooklyn.entity.basic.ConfigurableEntityFactory                                  : org.apache.brooklyn.core.entity.factory.ConfigurableEntityFactory
+brooklyn.entity.basic.ConfigurableEntityFactoryFromEntityFactory                 : org.apache.brooklyn.core.entity.factory.ConfigurableEntityFactoryFromEntityFactory
+brooklyn.entity.basic.DataEntity                                                 : org.apache.brooklyn.entity.stock.DataEntity
+brooklyn.entity.basic.DataEntityImpl                                             : org.apache.brooklyn.entity.stock.DataEntityImpl
+brooklyn.entity.basic.DelegateEntity                                             : org.apache.brooklyn.entity.stock.DelegateEntity
+brooklyn.entity.basic.DelegateEntityImpl                                         : org.apache.brooklyn.entity.stock.DelegateEntityImpl
+brooklyn.entity.basic.DynamicGroup                                               : org.apache.brooklyn.entity.group.DynamicGroup
+brooklyn.entity.basic.DynamicGroupImpl                                           : org.apache.brooklyn.entity.group.DynamicGroupImpl
+brooklyn.entity.basic.EffectorStartableImpl                                      : org.apache.brooklyn.entity.stock.EffectorStartableImpl
+brooklyn.entity.basic.Entities                                                   : org.apache.brooklyn.core.entity.Entities
+brooklyn.entity.basic.EntityAdjuncts                                             : org.apache.brooklyn.core.entity.EntityAdjuncts
+brooklyn.entity.basic.EntityAndAttribute                                         : org.apache.brooklyn.core.entity.EntityAndAttribute
+brooklyn.entity.basic.EntityConfigMap                                            : org.apache.brooklyn.core.entity.internal.EntityConfigMap
+brooklyn.entity.basic.EntityDynamicType                                          : org.apache.brooklyn.core.entity.EntityDynamicType
+brooklyn.entity.basic.EntityFactory                                              : org.apache.brooklyn.core.entity.factory.EntityFactory
+brooklyn.entity.basic.EntityFactoryForLocation                                   : org.apache.brooklyn.core.entity.factory.EntityFactoryForLocation
+brooklyn.entity.basic.EntityFunctions                                            : org.apache.brooklyn.core.entity.EntityFunctions
+brooklyn.entity.basic.EntityInitializers                                         : org.apache.brooklyn.core.entity.EntityInitializers
+brooklyn.entity.basic.EntityInternal                                             : org.apache.brooklyn.core.entity.EntityInternal
+brooklyn.entity.basic.EntityPredicates                                           : org.apache.brooklyn.core.entity.EntityPredicates
+brooklyn.entity.basic.EntitySuppliers                                            : org.apache.brooklyn.core.entity.EntitySuppliers
+brooklyn.entity.basic.EntityTasks                                                : org.apache.brooklyn.core.entity.EntityTasks
+brooklyn.entity.basic.EntityTransientCopyInternal                                : org.apache.brooklyn.core.entity.internal.EntityTransientCopyInternal
+brooklyn.entity.basic.EntityTypeSnapshot                                         : org.apache.brooklyn.core.entity.EntityTypeSnapshot
+brooklyn.entity.basic.EntityTypes                                                : org.apache.brooklyn.core.entity.EntityTypes
+brooklyn.entity.basic.ExplicitEffector                                           : org.apache.brooklyn.core.effector.ExplicitEffector
+brooklyn.entity.basic.Lifecycle                                                  : org.apache.brooklyn.core.entity.lifecycle.Lifecycle
+brooklyn.entity.basic.MethodEffector                                             : org.apache.brooklyn.core.effector.MethodEffector
+brooklyn.entity.basic.PolicyDescriptor                                           : org.apache.brooklyn.core.entity.lifecycle.PolicyDescriptor
+brooklyn.entity.basic.Sanitizer                                                  : org.apache.brooklyn.core.config.Sanitizer
+brooklyn.entity.basic.ServiceStateLogic                                          : org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogic
+brooklyn.entity.basic.StartableApplication                                       : org.apache.brooklyn.core.entity.StartableApplication
+brooklyn.entity.drivers.BasicEntityDriverManager                                 : org.apache.brooklyn.core.entity.drivers.BasicEntityDriverManager
+brooklyn.entity.drivers.ReflectiveEntityDriverFactory                            : org.apache.brooklyn.core.entity.drivers.ReflectiveEntityDriverFactory
+brooklyn.entity.drivers.RegistryEntityDriverFactory                              : org.apache.brooklyn.core.entity.drivers.RegistryEntityDriverFactory
+brooklyn.entity.drivers.downloads.BasicDownloadRequirement                       : org.apache.brooklyn.core.entity.drivers.downloads.BasicDownloadRequirement
+brooklyn.entity.drivers.downloads.BasicDownloadResolver                          : org.apache.brooklyn.core.entity.drivers.downloads.BasicDownloadResolver
+brooklyn.entity.drivers.downloads.BasicDownloadTargets                           : org.apache.brooklyn.core.entity.drivers.downloads.BasicDownloadTargets
+brooklyn.entity.drivers.downloads.BasicDownloadsManager                          : org.apache.brooklyn.core.entity.drivers.downloads.BasicDownloadsManager
+brooklyn.entity.drivers.downloads.DownloadProducerFromCloudsoftRepo              : org.apache.brooklyn.core.entity.drivers.downloads.DownloadProducerFromCloudsoftRepo
+brooklyn.entity.drivers.downloads.DownloadProducerFromLocalRepo                  : org.apache.brooklyn.core.entity.drivers.downloads.DownloadProducerFromLocalRepo
+brooklyn.entity.drivers.downloads.DownloadProducerFromProperties                 : org.apache.brooklyn.core.entity.drivers.downloads.DownloadProducerFromProperties
+brooklyn.entity.drivers.downloads.DownloadProducerFromUrlAttribute               : org.apache.brooklyn.core.entity.drivers.downloads.DownloadProducerFromUrlAttribute
+brooklyn.entity.drivers.downloads.DownloadSubstituters                           : org.apache.brooklyn.core.entity.drivers.downloads.DownloadSubstituters
+brooklyn.entity.drivers.downloads.FilenameProducers                              : org.apache.brooklyn.core.entity.drivers.downloads.FilenameProducers
+brooklyn.entity.effector.AddChildrenEffector                                     : org.apache.brooklyn.core.effector.AddChildrenEffector
+brooklyn.entity.effector.AddEffector                                             : org.apache.brooklyn.core.effector.AddEffector
+brooklyn.entity.effector.AddSensor                                               : org.apache.brooklyn.core.effector.AddSensor
+brooklyn.entity.effector.EffectorAndBody                                         : org.apache.brooklyn.core.effector.EffectorAndBody
+brooklyn.entity.effector.EffectorBase                                            : org.apache.brooklyn.core.effector.EffectorBase
+brooklyn.entity.effector.EffectorBody                                            : org.apache.brooklyn.core.effector.EffectorBody
+brooklyn.entity.effector.EffectorTasks                                           : org.apache.brooklyn.core.effector.EffectorTasks
+brooklyn.entity.effector.EffectorWithBody                                        : org.apache.brooklyn.core.effector.EffectorWithBody
+brooklyn.entity.effector.Effectors                                               : org.apache.brooklyn.core.effector.Effectors
+brooklyn.entity.group.AbstractMembershipTrackingPolicy                           : org.apache.brooklyn.entity.group.AbstractMembershipTrackingPolicy
+brooklyn.entity.group.Cluster                                                    : org.apache.brooklyn.entity.group.Cluster
+brooklyn.entity.group.DynamicCluster                                             : org.apache.brooklyn.entity.group.DynamicCluster
+brooklyn.entity.group.DynamicClusterImpl                                         : org.apache.brooklyn.entity.group.DynamicClusterImpl
+brooklyn.entity.group.DynamicFabric                                              : org.apache.brooklyn.entity.group.DynamicFabric
+brooklyn.entity.group.DynamicFabricImpl                                          : org.apache.brooklyn.entity.group.DynamicFabricImpl
+brooklyn.entity.group.DynamicMultiGroup                                          : org.apache.brooklyn.entity.group.DynamicMultiGroup
+brooklyn.entity.group.DynamicMultiGroupImpl                                      : org.apache.brooklyn.entity.group.DynamicMultiGroupImpl
+brooklyn.entity.group.DynamicRegionsFabric                                       : org.apache.brooklyn.entity.group.DynamicRegionsFabric
+brooklyn.entity.group.DynamicRegionsFabricImpl                                   : org.apache.brooklyn.entity.group.DynamicRegionsFabricImpl
+brooklyn.entity.group.Fabric                                                     : org.apache.brooklyn.entity.group.Fabric
+brooklyn.entity.group.QuarantineGroup                                            : org.apache.brooklyn.entity.group.QuarantineGroup
+brooklyn.entity.group.QuarantineGroupImpl                                        : org.apache.brooklyn.entity.group.QuarantineGroupImpl
+brooklyn.entity.group.StopFailedRuntimeException                                 : org.apache.brooklyn.entity.group.StopFailedRuntimeException
+brooklyn.entity.group.Tier                                                       : org.apache.brooklyn.entity.group.Tier
+brooklyn.entity.group.zoneaware.AbstractZoneFailureDetector                      : org.apache.brooklyn.entity.group.zoneaware.AbstractZoneFailureDetector
+brooklyn.entity.group.zoneaware.BalancingNodePlacementStrategy                   : org.apache.brooklyn.entity.group.zoneaware.BalancingNodePlacementStrategy
+brooklyn.entity.group.zoneaware.CombiningZoneFailureDetector                     : org.apache.brooklyn.entity.group.zoneaware.CombiningZoneFailureDetector
+brooklyn.entity.group.zoneaware.CriticalCauseZoneFailureDetector                 : org.apache.brooklyn.entity.group.zoneaware.CriticalCauseZoneFailureDetector
+brooklyn.entity.group.zoneaware.ProportionalZoneFailureDetector                  : org.apache.brooklyn.entity.group.zoneaware.ProportionalZoneFailureDetector
+brooklyn.entity.proxying.BasicEntityTypeRegistry                                 : org.apache.brooklyn.core.objs.BasicEntityTypeRegistry
+brooklyn.entity.proxying.EntityProxy                                             : org.apache.brooklyn.core.objs.proxy.EntityProxy
+brooklyn.entity.proxying.EntityProxyImpl                                         : org.apache.brooklyn.core.objs.proxy.EntityProxyImpl
+brooklyn.entity.proxying.InternalEntityFactory                                   : org.apache.brooklyn.core.objs.proxy.InternalEntityFactory
+brooklyn.entity.proxying.InternalFactory                                         : org.apache.brooklyn.core.objs.proxy.InternalFactory
+brooklyn.entity.proxying.InternalLocationFactory                                 : org.apache.brooklyn.core.objs.proxy.InternalLocationFactory
+brooklyn.entity.proxying.InternalPolicyFactory                                   : org.apache.brooklyn.core.objs.proxy.InternalPolicyFactory
+brooklyn.entity.rebind.AbstractBrooklynObjectRebindSupport                       : org.apache.brooklyn.core.mgmt.rebind.AbstractBrooklynObjectRebindSupport
+brooklyn.entity.rebind.ActivePartialRebindIteration                              : org.apache.brooklyn.core.mgmt.rebind.ActivePartialRebindIteration
+brooklyn.entity.rebind.BasicCatalogItemRebindSupport                             : org.apache.brooklyn.core.mgmt.rebind.BasicCatalogItemRebindSupport
+brooklyn.entity.rebind.BasicEnricherRebindSupport                                : org.apache.brooklyn.core.mgmt.rebind.BasicEnricherRebindSupport
+brooklyn.entity.rebind.BasicEntityRebindSupport                                  : org.apache.brooklyn.core.mgmt.rebind.BasicEntityRebindSupport
+brooklyn.entity.rebind.BasicFeedRebindSupport                                    : org.apache.brooklyn.core.mgmt.rebind.BasicFeedRebindSupport
+brooklyn.entity.rebind.BasicLocationRebindSupport                                : org.apache.brooklyn.core.mgmt.rebind.BasicLocationRebindSupport
+brooklyn.entity.rebind.BasicPolicyRebindSupport                                  : org.apache.brooklyn.core.mgmt.rebind.BasicPolicyRebindSupport
+brooklyn.entity.rebind.ImmediateDeltaChangeListener                              : org.apache.brooklyn.core.mgmt.rebind.ImmediateDeltaChangeListener
+brooklyn.entity.rebind.InitialFullRebindIteration                                : org.apache.brooklyn.core.mgmt.rebind.InitialFullRebindIteration
+brooklyn.entity.rebind.PeriodicDeltaChangeListener                               : org.apache.brooklyn.core.mgmt.rebind.PeriodicDeltaChangeListener
+brooklyn.entity.rebind.PersistenceExceptionHandlerImpl                           : org.apache.brooklyn.core.mgmt.rebind.PersistenceExceptionHandlerImpl
+brooklyn.entity.rebind.PersisterDeltaImpl                                        : org.apache.brooklyn.core.mgmt.rebind.PersisterDeltaImpl
+brooklyn.entity.rebind.RebindContextImpl                                         : org.apache.brooklyn.core.mgmt.rebind.RebindContextImpl
+brooklyn.entity.rebind.RebindContextLookupContext                                : org.apache.brooklyn.core.mgmt.rebind.RebindContextLookupContext
+brooklyn.entity.rebind.RebindExceptionHandlerImpl                                : org.apache.brooklyn.core.mgmt.rebind.RebindExceptionHandlerImpl
+brooklyn.entity.rebind.RebindIteration                                           : org.apache.brooklyn.core.mgmt.rebind.RebindIteration
+brooklyn.entity.rebind.RebindManagerImpl                                         : org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl
+brooklyn.entity.rebind.TreeUtils                                                 : org.apache.brooklyn.core.mgmt.rebind.TreeUtils
+brooklyn.entity.rebind.dto.AbstractMemento                                       : org.apache.brooklyn.core.mgmt.rebind.dto.AbstractMemento
+brooklyn.entity.rebind.dto.AbstractTreeNodeMemento                               : org.apache.brooklyn.core.mgmt.rebind.dto.AbstractTreeNodeMemento
+brooklyn.entity.rebind.dto.BasicCatalogItemMemento                               : org.apache.brooklyn.core.mgmt.rebind.dto.BasicCatalogItemMemento
+brooklyn.entity.rebind.dto.BasicEnricherMemento                                  : org.apache.brooklyn.core.mgmt.rebind.dto.BasicEnricherMemento
+brooklyn.entity.rebind.dto.BasicEntityMemento                                    : org.apache.brooklyn.core.mgmt.rebind.dto.BasicEntityMemento
+brooklyn.entity.rebind.dto.BasicFeedMemento                                      : org.apache.brooklyn.core.mgmt.rebind.dto.BasicFeedMemento
+brooklyn.entity.rebind.dto.BasicLocationMemento                                  : org.apache.brooklyn.core.mgmt.rebind.dto.BasicLocationMemento
+brooklyn.entity.rebind.dto.BasicPolicyMemento                                    : org.apache.brooklyn.core.mgmt.rebind.dto.BasicPolicyMemento
+brooklyn.entity.rebind.dto.BrooklynMementoImpl                                   : org.apache.brooklyn.core.mgmt.rebind.dto.BrooklynMementoImpl
+brooklyn.entity.rebind.dto.BrooklynMementoManifestImpl                           : org.apache.brooklyn.core.mgmt.rebind.dto.BrooklynMementoManifestImpl
+brooklyn.entity.rebind.dto.EntityMementoManifestImpl                             : org.apache.brooklyn.core.mgmt.rebind.dto.EntityMementoManifestImpl
+brooklyn.entity.rebind.dto.MementoValidators                                     : org.apache.brooklyn.core.mgmt.rebind.dto.MementoValidators
+brooklyn.entity.rebind.dto.MementosGenerators                                    : org.apache.brooklyn.core.mgmt.rebind.dto.MementosGenerators
+brooklyn.entity.rebind.dto.MutableBrooklynMemento                                : org.apache.brooklyn.core.mgmt.rebind.dto.MutableBrooklynMemento
+brooklyn.entity.rebind.persister.BrooklynMementoPersisterToObjectStore           : org.apache.brooklyn.core.mgmt.persist.BrooklynMementoPersisterToObjectStore
+brooklyn.entity.rebind.persister.BrooklynPersistenceUtils                        : org.apache.brooklyn.core.mgmt.persist.BrooklynPersistenceUtils
+brooklyn.entity.rebind.persister.CatalogItemLibrariesConverter                   : org.apache.brooklyn.core.mgmt.persist.CatalogItemLibrariesConverter
+brooklyn.entity.rebind.persister.FileBasedObjectStore                            : org.apache.brooklyn.core.mgmt.persist.FileBasedObjectStore
+brooklyn.entity.rebind.persister.FileBasedStoreObjectAccessor                    : org.apache.brooklyn.core.mgmt.persist.FileBasedStoreObjectAccessor
+brooklyn.entity.rebind.persister.LocationWithObjectStore                         : org.apache.brooklyn.core.mgmt.persist.LocationWithObjectStore
+brooklyn.entity.rebind.persister.MementoSerializer                               : org.apache.brooklyn.core.mgmt.persist.MementoSerializer
+brooklyn.entity.rebind.persister.PersistMode                                     : org.apache.brooklyn.core.mgmt.persist.PersistMode
+brooklyn.entity.rebind.persister.PersistenceActivityMetrics                      : org.apache.brooklyn.core.mgmt.persist.PersistenceActivityMetrics
+brooklyn.entity.rebind.persister.PersistenceObjectStore                          : org.apache.brooklyn.core.mgmt.persist.PersistenceObjectStore
+brooklyn.entity.rebind.persister.RetryingMementoSerializer                       : org.apache.brooklyn.core.mgmt.persist.RetryingMementoSerializer
+brooklyn.entity.rebind.persister.StoreObjectAccessorLocking                      : org.apache.brooklyn.core.mgmt.persist.StoreObjectAccessorLocking
+brooklyn.entity.rebind.persister.XmlMementoSerializer                            : org.apache.brooklyn.core.mgmt.persist.XmlMementoSerializer
+brooklyn.entity.rebind.plane.dto.BasicManagementNodeSyncRecord                   : org.apache.brooklyn.core.mgmt.ha.dto.BasicManagementNodeSyncRecord
+brooklyn.entity.rebind.plane.dto.ManagementPlaneSyncRecordImpl                   : org.apache.brooklyn.core.mgmt.ha.dto.ManagementPlaneSyncRecordImpl
+brooklyn.entity.rebind.transformer.BrooklynMementoTransformer                    : org.apache.brooklyn.core.mgmt.rebind.transformer.BrooklynMementoTransformer
+brooklyn.entity.rebind.transformer.CompoundTransformer                           : org.apache.brooklyn.core.mgmt.rebind.transformer.CompoundTransformer
+brooklyn.entity.rebind.transformer.CompoundTransformerLoader                     : org.apache.brooklyn.core.mgmt.rebind.transformer.CompoundTransformerLoader
+brooklyn.entity.rebind.transformer.RawDataTransformer                            : org.apache.brooklyn.core.mgmt.rebind.transformer.RawDataTransformer
+brooklyn.entity.rebind.transformer.impl.DeleteOrphanedLocationsTransformer       : org.apache.brooklyn.core.mgmt.rebind.transformer.impl.DeleteOrphanedLocationsTransformer
+brooklyn.entity.rebind.transformer.impl.XsltTransformer                          : org.apache.brooklyn.core.mgmt.rebind.transformer.impl.XsltTransformer
+brooklyn.entity.trait.Changeable                                                 : org.apache.brooklyn.core.entity.trait.Changeable
+brooklyn.entity.trait.MemberReplaceable                                          : org.apache.brooklyn.core.entity.trait.MemberReplaceable
+brooklyn.entity.trait.Resizable                                                  : org.apache.brooklyn.core.entity.trait.Resizable
+brooklyn.entity.trait.Startable                                                  : org.apache.brooklyn.core.entity.trait.Startable
+brooklyn.entity.trait.StartableMethods                                           : org.apache.brooklyn.core.entity.trait.StartableMethods
+brooklyn.event.basic.AbstractCollectionConfigKey                                 : org.apache.brooklyn.core.config.internal.AbstractCollectionConfigKey
+brooklyn.event.basic.AbstractStructuredConfigKey                                 : org.apache.brooklyn.core.config.internal.AbstractStructuredConfigKey
+brooklyn.event.basic.AttributeMap                                                : org.apache.brooklyn.core.sensor.AttributeMap
+brooklyn.event.basic.AttributeSensorAndConfigKey                                 : org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey
+brooklyn.event.basic.BasicAttributeSensor                                        : org.apache.brooklyn.core.sensor.BasicAttributeSensor
+brooklyn.event.basic.BasicAttributeSensorAndConfigKey                            : org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey
+brooklyn.event.basic.BasicConfigKey                                              : org.apache.brooklyn.core.config.BasicConfigKey
+brooklyn.event.basic.BasicNotificationSensor                                     : org.apache.brooklyn.core.sensor.BasicNotificationSensor
+brooklyn.event.basic.BasicSensor                                                 : org.apache.brooklyn.core.sensor.BasicSensor
+brooklyn.event.basic.BasicSensorEvent                                            : org.apache.brooklyn.core.sensor.BasicSensorEvent
+brooklyn.event.basic.DependentConfiguration                                      : org.apache.brooklyn.core.sensor.DependentConfiguration
+brooklyn.event.basic.ListConfigKey                                               : org.apache.brooklyn.core.config.ListConfigKey
+brooklyn.event.basic.MapConfigKey                                                : org.apache.brooklyn.core.config.MapConfigKey
+brooklyn.event.basic.PortAttributeSensorAndConfigKey                             : org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey
+brooklyn.event.basic.Sensors                                                     : org.apache.brooklyn.core.sensor.Sensors
+brooklyn.event.basic.SetConfigKey                                                : org.apache.brooklyn.core.config.SetConfigKey
+brooklyn.event.basic.StructuredConfigKey                                         : org.apache.brooklyn.core.config.StructuredConfigKey
+brooklyn.event.basic.SubElementConfigKey                                         : org.apache.brooklyn.core.config.SubElementConfigKey
+brooklyn.event.basic.TemplatedStringAttributeSensorAndConfigKey                  : org.apache.brooklyn.core.sensor.TemplatedStringAttributeSensorAndConfigKey
+brooklyn.event.feed.AbstractFeed                                                 : org.apache.brooklyn.core.feed.AbstractFeed
+brooklyn.event.feed.AttributePollHandler                                         : org.apache.brooklyn.core.feed.AttributePollHandler
+brooklyn.event.feed.ConfigToAttributes                                           : org.apache.brooklyn.core.feed.ConfigToAttributes
+brooklyn.event.feed.DelegatingPollHandler                                        : org.apache.brooklyn.core.feed.DelegatingPollHandler
+brooklyn.event.feed.FeedConfig                                                   : org.apache.brooklyn.core.feed.FeedConfig
+brooklyn.event.feed.PollConfig                                                   : org.apache.brooklyn.core.feed.PollConfig
+brooklyn.event.feed.PollHandler                                                  : org.apache.brooklyn.core.feed.PollHandler
+brooklyn.event.feed.Poller                                                       : org.apache.brooklyn.core.feed.Poller
+brooklyn.event.feed.function.FunctionFeed                                        : org.apache.brooklyn.feed.function.FunctionFeed
+brooklyn.event.feed.function.FunctionPollConfig                                  : org.apache.brooklyn.feed.function.FunctionPollConfig
+brooklyn.event.feed.http.HttpFeed                                                : org.apache.brooklyn.feed.http.HttpFeed
+brooklyn.event.feed.http.HttpPollConfig                                          : org.apache.brooklyn.feed.http.HttpPollConfig
+brooklyn.event.feed.http.HttpPollValue                                           : org.apache.brooklyn.feed.http.HttpPollValue
+brooklyn.event.feed.http.HttpPolls                                               : org.apache.brooklyn.feed.http.HttpPolls
+brooklyn.event.feed.http.HttpValueFunctions                                      : org.apache.brooklyn.feed.http.HttpValueFunctions
+brooklyn.event.feed.http.JsonFunctions                                           : org.apache.brooklyn.feed.http.JsonFunctions
+brooklyn.event.feed.shell.ShellFeed                                              : org.apache.brooklyn.feed.shell.ShellFeed
+brooklyn.event.feed.shell.ShellPollConfig                                        : org.apache.brooklyn.feed.shell.ShellPollConfig
+brooklyn.event.feed.ssh.SshFeed                                                  : org.apache.brooklyn.feed.ssh.SshFeed
+brooklyn.event.feed.ssh.SshPollConfig                                            : org.apache.brooklyn.feed.ssh.SshPollConfig
+brooklyn.event.feed.ssh.SshPollValue                                             : org.apache.brooklyn.feed.ssh.SshPollValue
+brooklyn.event.feed.ssh.SshValueFunctions                                        : org.apache.brooklyn.feed.ssh.SshValueFunctions
+brooklyn.event.feed.windows.WindowsPerformanceCounterFeed                        : org.apache.brooklyn.feed.windows.WindowsPerformanceCounterFeed
+brooklyn.event.feed.windows.WindowsPerformanceCounterPollConfig                  : org.apache.brooklyn.feed.windows.WindowsPerformanceCounterPollConfig
+brooklyn.internal.BrooklynFeatureEnablement                                      : org.apache.brooklyn.core.BrooklynFeatureEnablement
+brooklyn.internal.BrooklynInitialization                                         : org.apache.brooklyn.core.internal.BrooklynInitialization
+brooklyn.internal.storage.BrooklynStorage                                        : org.apache.brooklyn.core.internal.storage.BrooklynStorage
+brooklyn.internal.storage.DataGrid                                               : org.apache.brooklyn.core.internal.storage.DataGrid
+brooklyn.internal.storage.DataGridFactory                                        : org.apache.brooklyn.core.internal.storage.DataGridFactory
+brooklyn.internal.storage.Reference                                              : org.apache.brooklyn.core.internal.storage.Reference
+brooklyn.internal.storage.impl.BackedReference                                   : org.apache.brooklyn.core.internal.storage.impl.BackedReference
+brooklyn.internal.storage.impl.BasicReference                                    : org.apache.brooklyn.core.internal.storage.impl.BasicReference
+brooklyn.internal.storage.impl.BrooklynStorageImpl                               : org.apache.brooklyn.core.internal.storage.impl.BrooklynStorageImpl
+brooklyn.internal.storage.impl.ConcurrentMapAcceptingNullVals                    : org.apache.brooklyn.core.internal.storage.impl.ConcurrentMapAcceptingNullVals
+brooklyn.internal.storage.impl.inmemory.InMemoryDataGridFactory                  : org.apache.brooklyn.core.internal.storage.impl.inmemory.InMemoryDataGridFactory
+brooklyn.internal.storage.impl.inmemory.InmemoryDatagrid                         : org.apache.brooklyn.core.internal.storage.impl.inmemory.InmemoryDatagrid
+brooklyn.location.access.BrooklynAccessUtils                                     : org.apache.brooklyn.core.location.access.BrooklynAccessUtils
+brooklyn.location.access.PortForwardManager                                      : org.apache.brooklyn.core.location.access.PortForwardManager
+brooklyn.location.access.PortForwardManagerAuthority                             : org.apache.brooklyn.core.location.access.PortForwardManagerAuthority
+brooklyn.location.access.PortForwardManagerClient                                : org.apache.brooklyn.core.location.access.PortForwardManagerClient
+brooklyn.location.access.PortForwardManagerImpl                                  : org.apache.brooklyn.core.location.access.PortForwardManagerImpl
+brooklyn.location.access.PortForwardManagerLocationResolver                      : org.apache.brooklyn.core.location.access.PortForwardManagerLocationResolver
+brooklyn.location.access.PortMapping                                             : org.apache.brooklyn.core.location.access.PortMapping
+brooklyn.location.basic.AbstractLocation                                         : org.apache.brooklyn.core.location.AbstractLocation
+brooklyn.location.basic.AbstractLocationResolver                                 : org.apache.brooklyn.core.location.AbstractLocationResolver
+brooklyn.location.basic.AggregatingMachineProvisioningLocation                   : org.apache.brooklyn.core.location.AggregatingMachineProvisioningLocation
+brooklyn.location.basic.BasicHardwareDetails                                     : org.apache.brooklyn.core.location.BasicHardwareDetails
+brooklyn.location.basic.BasicLocationDefinition                                  : org.apache.brooklyn.core.location.BasicLocationDefinition
+brooklyn.location.basic.BasicLocationRegistry                                    : org.apache.brooklyn.core.location.BasicLocationRegistry
+brooklyn.location.basic.BasicMachineDetails                                      : org.apache.brooklyn.core.location.BasicMachineDetails
+brooklyn.location.basic.BasicMachineMetadata                                     : org.apache.brooklyn.core.location.BasicMachineMetadata
+brooklyn.location.basic.BasicOsDetails                                           : org.apache.brooklyn.core.location.BasicOsDetails
+brooklyn.location.basic.ByonLocationResolver                                     : org.apache.brooklyn.location.byon.ByonLocationResolver
+brooklyn.location.basic.CatalogLocationResolver                                  : org.apache.brooklyn.core.location.CatalogLocationResolver
+brooklyn.location.basic.DefinedLocationByIdResolver                              : org.apache.brooklyn.core.location.DefinedLocationByIdResolver
+brooklyn.location.basic.DeprecatedKeysMappingBuilder                             : org.apache.brooklyn.core.location.DeprecatedKeysMappingBuilder
+brooklyn.location.basic.FixedListMachineProvisioningLocation                     : org.apache.brooklyn.location.byon.FixedListMachineProvisioningLocation
+brooklyn.location.basic.HasSubnetHostname                                        : org.apache.brooklyn.core.location.HasSubnetHostname
+brooklyn.location.basic.HostLocationResolver                                     : org.apache.brooklyn.location.byon.HostLocationResolver
+brooklyn.location.basic.LocalhostLocationResolver                                : org.apache.brooklyn.location.localhost.LocalhostLocationResolver
+brooklyn.location.basic.LocalhostMachineProvisioningLocation                     : org.apache.brooklyn.location.localhost.LocalhostMachineProvisioningLocation
+brooklyn.location.basic.LocalhostPropertiesFromBrooklynProperties                : org.apache.brooklyn.location.localhost.LocalhostPropertiesFromBrooklynProperties
+brooklyn.location.basic.LocationConfigKeys                                       : org.apache.brooklyn.core.location.LocationConfigKeys
+brooklyn.location.basic.LocationConfigUtils                                      : org.apache.brooklyn.core.location.LocationConfigUtils
+brooklyn.location.basic.LocationDynamicType                                      : org.apache.brooklyn.core.location.internal.LocationDynamicType
+brooklyn.location.basic.LocationInternal                                         : org.apache.brooklyn.core.location.internal.LocationInternal
+brooklyn.location.basic.LocationPredicates                                       : org.apache.brooklyn.core.location.LocationPredicates
+brooklyn.location.basic.LocationPropertiesFromBrooklynProperties                 : org.apache.brooklyn.core.location.LocationPropertiesFromBrooklynProperties
+brooklyn.location.basic.LocationTypeSnapshot                                     : org.apache.brooklyn.core.location.internal.LocationTypeSnapshot
+brooklyn.location.basic.Locations                                                : org.apache.brooklyn.core.location.Locations
+brooklyn.location.basic.Machines                                                 : org.apache.brooklyn.core.location.Machines
+brooklyn.location.basic.MultiLocation                                            : org.apache.brooklyn.location.multi.MultiLocation
+brooklyn.location.basic.MultiLocationResolver                                    : org.apache.brooklyn.location.multi.MultiLocationResolver
+brooklyn.location.basic.NamedLocationResolver                                    : org.apache.brooklyn.core.location.NamedLocationResolver
+brooklyn.location.basic.PortRanges                                               : org.apache.brooklyn.core.location.PortRanges
+brooklyn.location.basic.SingleMachineLocationResolver                            : org.apache.brooklyn.location.byon.SingleMachineLocationResolver
+brooklyn.location.basic.SingleMachineProvisioningLocation                        : org.apache.brooklyn.location.byon.SingleMachineProvisioningLocation
+brooklyn.location.basic.SshMachineLocation                                       : org.apache.brooklyn.location.ssh.SshMachineLocation
+brooklyn.location.basic.SupportsPortForwarding                                   : org.apache.brooklyn.core.location.SupportsPortForwarding
+brooklyn.location.basic.WinRmMachineLocation                                     : org.apache.brooklyn.location.winrm.WinRmMachineLocation
+brooklyn.location.cloud.AbstractAvailabilityZoneExtension                        : org.apache.brooklyn.core.location.cloud.AbstractAvailabilityZoneExtension
+brooklyn.location.cloud.AbstractCloudMachineProvisioningLocation                 : org.apache.brooklyn.core.location.cloud.AbstractCloudMachineProvisioningLocation
+brooklyn.location.cloud.AvailabilityZoneExtension                                : org.apache.brooklyn.core.location.cloud.AvailabilityZoneExtension
+brooklyn.location.cloud.CloudLocationConfig                                      : org.apache.brooklyn.core.location.cloud.CloudLocationConfig
+brooklyn.location.cloud.names.AbstractCloudMachineNamer                          : org.apache.brooklyn.core.location.cloud.names.AbstractCloudMachineNamer
+brooklyn.location.cloud.names.BasicCloudMachineNamer                             : org.apache.brooklyn.core.location.cloud.names.BasicCloudMachineNamer
+brooklyn.location.cloud.names.CloudMachineNamer                                  : org.apache.brooklyn.core.location.cloud.names.CloudMachineNamer
+brooklyn.location.cloud.names.CustomMachineNamer                                 : org.apache.brooklyn.core.location.cloud.names.CustomMachineNamer
+brooklyn.location.dynamic.DynamicLocation                                        : org.apache.brooklyn.core.location.dynamic.DynamicLocation
+brooklyn.location.dynamic.LocationOwner                                          : org.apache.brooklyn.core.location.dynamic.LocationOwner
+brooklyn.location.geo.GeoBytesHostGeoLookup                                      : org.apache.brooklyn.core.location.geo.GeoBytesHostGeoLookup
+brooklyn.location.geo.HasHostGeoInfo                                             : org.apache.brooklyn.core.location.geo.HasHostGeoInfo
+brooklyn.location.geo.HostGeoInfo                                                : org.apache.brooklyn.core.location.geo.HostGeoInfo
+brooklyn.location.geo.HostGeoLookup                                              : org.apache.brooklyn.core.location.geo.HostGeoLookup
+brooklyn.location.geo.LocalhostExternalIpLoader                                  : org.apache.brooklyn.core.location.geo.LocalhostExternalIpLoader
+brooklyn.location.geo.MaxMind2HostGeoLookup                                      : org.apache.brooklyn.core.location.geo.MaxMind2HostGeoLookup
+brooklyn.location.geo.UtraceHostGeoLookup                                        : org.apache.brooklyn.core.location.geo.UtraceHostGeoLookup
+brooklyn.location.paas.PaasLocation                                              : org.apache.brooklyn.location.paas.PaasLocation
+brooklyn.management.ManagementContextInjectable                                  : org.apache.brooklyn.core.mgmt.ManagementContextInjectable
+brooklyn.management.classloading.AbstractBrooklynClassLoadingContext             : org.apache.brooklyn.core.mgmt.classloading.AbstractBrooklynClassLoadingContext
+brooklyn.management.classloading.BrooklynClassLoadingContextSequential           : org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential
+brooklyn.management.classloading.ClassLoaderFromBrooklynClassLoadingContext      : org.apache.brooklyn.core.mgmt.classloading.ClassLoaderFromBrooklynClassLoadingContext
+brooklyn.management.classloading.JavaBrooklynClassLoadingContext                 : org.apache.brooklyn.core.mgmt.classloading.JavaBrooklynClassLoadingContext
+brooklyn.management.classloading.OsgiBrooklynClassLoadingContext                 : org.apache.brooklyn.core.mgmt.classloading.OsgiBrooklynClassLoadingContext
+brooklyn.management.entitlement.BasicEntitlementClassDefinition                  : org.apache.brooklyn.core.mgmt.entitlement.BasicEntitlementClassDefinition
+brooklyn.management.entitlement.EntitlementManagerAdapter                        : org.apache.brooklyn.core.mgmt.entitlement.EntitlementManagerAdapter
+brooklyn.management.entitlement.EntitlementPredicates                            : org.apache.brooklyn.core.mgmt.entitlement.EntitlementPredicates
+brooklyn.management.entitlement.Entitlements                                     : org.apache.brooklyn.core.mgmt.entitlement.Entitlements
+brooklyn.management.entitlement.NotEntitledException                             : org.apache.brooklyn.core.mgmt.entitlement.NotEntitledException
+brooklyn.management.entitlement.PerUserEntitlementManager                        : org.apache.brooklyn.core.mgmt.entitlement.PerUserEntitlementManager
+brooklyn.management.entitlement.PerUserEntitlementManagerWithDefault             : org.apache.brooklyn.core.mgmt.entitlement.PerUserEntitlementManagerWithDefault
+brooklyn.management.entitlement.WebEntitlementContext                            : org.apache.brooklyn.core.mgmt.entitlement.WebEntitlementContext
+brooklyn.management.ha.BasicMasterChooser                                        : org.apache.brooklyn.core.mgmt.ha.BasicMasterChooser
+brooklyn.management.ha.HighAvailabilityManagerImpl                               : org.apache.brooklyn.core.mgmt.ha.HighAvailabilityManagerImpl
+brooklyn.management.ha.ManagementPlaneSyncRecordDeltaImpl                        : org.apache.brooklyn.core.mgmt.ha.ManagementPlaneSyncRecordDeltaImpl
+brooklyn.management.ha.ManagementPlaneSyncRecordPersisterToObjectStore           : org.apache.brooklyn.core.mgmt.ha.ManagementPlaneSyncRecordPersisterToObjectStore
+brooklyn.management.ha.MasterChooser                                             : org.apache.brooklyn.core.mgmt.ha.MasterChooser
+brooklyn.management.ha.OsgiManager                                               : org.apache.brooklyn.core.mgmt.ha.OsgiManager
+brooklyn.management.internal.AbstractManagementContext                           : org.apache.brooklyn.core.mgmt.internal.AbstractManagementContext
+brooklyn.management.internal.AbstractSubscriptionManager                         : org.apache.brooklyn.core.mgmt.internal.AbstractSubscriptionManager
+brooklyn.management.internal.AccessManager                                       : org.apache.brooklyn.core.mgmt.internal.AccessManager
+brooklyn.management.internal.AsyncCollectionChangeAdapter                        : org.apache.brooklyn.core.mgmt.internal.AsyncCollectionChangeAdapter
+brooklyn.management.internal.BasicSubscriptionContext                            : org.apache.brooklyn.core.mgmt.internal.BasicSubscriptionContext
+brooklyn.management.internal.BrooklynGarbageCollector                            : org.apache.brooklyn.core.mgmt.internal.BrooklynGarbageCollector
+brooklyn.management.internal.BrooklynObjectManagementMode                        : org.apache.brooklyn.core.mgmt.internal.BrooklynObjectManagementMode
+brooklyn.management.internal.BrooklynObjectManagerInternal                       : org.apache.brooklyn.core.mgmt.internal.BrooklynObjectManagerInternal
+brooklyn.management.internal.CollectionChangeListener                            : org.apache.brooklyn.core.mgmt.internal.CollectionChangeListener
+brooklyn.management.internal.EffectorUtils                                       : org.apache.brooklyn.core.mgmt.internal.EffectorUtils
+brooklyn.management.internal.EntityChangeListener                                : org.apache.brooklyn.core.mgmt.internal.EntityChangeListener
+brooklyn.management.internal.EntityManagementSupport                             : org.apache.brooklyn.core.mgmt.internal.EntityManagementSupport
+brooklyn.management.internal.EntityManagementUtils                               : org.apache.brooklyn.core.mgmt.EntityManagementUtils
+brooklyn.management.internal.EntityManagerInternal                               : org.apache.brooklyn.core.mgmt.internal.EntityManagerInternal
+brooklyn.management.internal.GroovyObservablesPropertyChangeToCollectionChangeAdapter : org.apache.brooklyn.core.mgmt.internal.GroovyObservablesPropertyChangeToCollectionChangeAdapter
+brooklyn.management.internal.LocalAccessManager                                  : org.apache.brooklyn.core.mgmt.internal.LocalAccessManager
+brooklyn.management.internal.LocalEntityManager                                  : org.apache.brooklyn.core.mgmt.internal.LocalEntityManager
+brooklyn.management.internal.LocalLocationManager                                : org.apache.brooklyn.core.mgmt.internal.LocalLocationManager
+brooklyn.management.internal.LocalManagementContext                              : org.apache.brooklyn.core.mgmt.internal.LocalManagementContext
+brooklyn.management.internal.LocalSubscriptionManager                            : org.apache.brooklyn.core.mgmt.internal.LocalSubscriptionManager
+brooklyn.management.internal.LocalUsageManager                                   : org.apache.brooklyn.core.mgmt.internal.LocalUsageManager
+brooklyn.management.internal.LocationManagerInternal                             : org.apache.brooklyn.core.mgmt.internal.LocationManagerInternal
+brooklyn.management.internal.ManagementContextInternal                           : org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal
+brooklyn.management.internal.ManagementTransitionInfo                            : org.apache.brooklyn.core.mgmt.internal.ManagementTransitionInfo
+brooklyn.management.internal.ManagementTransitionMode                            : org.apache.brooklyn.core.mgmt.internal.ManagementTransitionMode
+brooklyn.management.internal.NonDeploymentAccessManager                          : org.apache.brooklyn.core.mgmt.internal.NonDeploymentAccessManager
+brooklyn.management.internal.NonDeploymentEntityManager                          : org.apache.brooklyn.core.mgmt.internal.NonDeploymentEntityManager
+brooklyn.management.internal.NonDeploymentLocationManager                        : org.apache.brooklyn.core.mgmt.internal.NonDeploymentLocationManager
+brooklyn.management.internal.NonDeploymentManagementContext                      : org.apache.brooklyn.core.mgmt.internal.NonDeploymentManagementContext
+brooklyn.management.internal.NonDeploymentUsageManager                           : org.apache.brooklyn.core.mgmt.internal.NonDeploymentUsageManager
+brooklyn.management.internal.QueueingSubscriptionManager                         : org.apache.brooklyn.core.mgmt.internal.QueueingSubscriptionManager
+brooklyn.management.internal.Subscription                                        : org.apache.brooklyn.core.mgmt.internal.Subscription
+brooklyn.management.internal.SubscriptionTracker                                 : org.apache.brooklyn.core.mgmt.internal.SubscriptionTracker
+brooklyn.management.internal.UsageListener                                       : org.apache.brooklyn.core.mgmt.usage.UsageListener
+brooklyn.management.usage.ApplicationUsage                                       : org.apache.brooklyn.core.mgmt.usage.ApplicationUsage
+brooklyn.management.usage.LocationUsage                                          : org.apache.brooklyn.core.mgmt.usage.LocationUsage
+brooklyn.policy.basic.AbstractEntityAdjunct                                      : org.apache.brooklyn.core.objs.AbstractEntityAdjunct
+brooklyn.policy.basic.AbstractPolicy                                             : org.apache.brooklyn.core.policy.AbstractPolicy
+brooklyn.policy.basic.AdjunctType                                                : org.apache.brooklyn.core.objs.AdjunctType
+brooklyn.policy.basic.Policies                                                   : org.apache.brooklyn.core.policy.Policies
+brooklyn.policy.basic.PolicyDynamicType                                          : org.apache.brooklyn.core.policy.PolicyDynamicType
+brooklyn.policy.basic.PolicyTypeSnapshot                                         : org.apache.brooklyn.core.policy.PolicyTypeSnapshot
+brooklyn.util.BrooklynLanguageExtensions                                         : org.apache.brooklyn.util.core.BrooklynLanguageExtensions
+brooklyn.util.BrooklynMavenArtifacts                                             : org.apache.brooklyn.util.core.BrooklynMavenArtifacts
+brooklyn.util.BrooklynNetworkUtils                                               : org.apache.brooklyn.util.core.BrooklynNetworkUtils
+brooklyn.util.ResourceUtils                                                      : org.apache.brooklyn.util.core.ResourceUtils
+brooklyn.util.config.ConfigBag                                                   : org.apache.brooklyn.util.core.config.ConfigBag
+brooklyn.util.crypto.FluentKeySigner                                             : org.apache.brooklyn.util.core.crypto.FluentKeySigner
+brooklyn.util.crypto.SecureKeys                                                  : org.apache.brooklyn.util.core.crypto.SecureKeys
+brooklyn.util.file.ArchiveBuilder                                                : org.apache.brooklyn.util.core.file.ArchiveBuilder
+brooklyn.util.file.ArchiveTasks                                                  : org.apache.brooklyn.util.core.file.ArchiveTasks
+brooklyn.util.file.ArchiveUtils                                                  : org.apache.brooklyn.util.core.file.ArchiveUtils
+brooklyn.util.flags.ClassCoercionException                                       : org.apache.brooklyn.util.core.flags.ClassCoercionException
+brooklyn.util.flags.FlagUtils                                                    : org.apache.brooklyn.util.core.flags.FlagUtils
+brooklyn.util.flags.MethodCoercions                                              : org.apache.brooklyn.util.core.flags.MethodCoercions
+brooklyn.util.flags.SetFromFlag                                                  : org.apache.brooklyn.util.core.flags.SetFromFlag
+brooklyn.util.flags.TypeCoercions                                                : org.apache.brooklyn.util.core.flags.TypeCoercions
+brooklyn.util.http.HttpTool                                                      : org.apache.brooklyn.util.core.http.HttpTool
+brooklyn.util.http.HttpToolResponse                                              : org.apache.brooklyn.util.core.http.HttpToolResponse
+brooklyn.util.internal.ConfigKeySelfExtracting                                   : org.apache.brooklyn.util.core.internal.ConfigKeySelfExtracting
+brooklyn.util.internal.ssh.BackoffLimitedRetryHandler                            : org.apache.brooklyn.util.core.internal.ssh.BackoffLimitedRetryHandler
+brooklyn.util.internal.ssh.ShellAbstractTool                                     : org.apache.brooklyn.util.core.internal.ssh.ShellAbstractTool
+brooklyn.util.internal.ssh.ShellTool                                             : org.apache.brooklyn.util.core.internal.ssh.ShellTool
+brooklyn.util.internal.ssh.SshAbstractTool                                       : org.apache.brooklyn.util.core.internal.ssh.SshAbstractTool
+brooklyn.util.internal.ssh.SshException                                          : org.apache.brooklyn.util.core.internal.ssh.SshException
+brooklyn.util.internal.ssh.SshTool                                               : org.apache.brooklyn.util.core.internal.ssh.SshTool
+brooklyn.util.internal.ssh.cli.SshCliTool                                        : org.apache.brooklyn.util.core.internal.ssh.cli.SshCliTool
+brooklyn.util.internal.ssh.process.ProcessTool                                   : org.apache.brooklyn.util.core.internal.ssh.process.ProcessTool
+brooklyn.util.internal.ssh.sshj.SshjClientConnection                             : org.apache.brooklyn.util.core.internal.ssh.sshj.SshjClientConnection
+brooklyn.util.internal.ssh.sshj.SshjTool                                         : org.apache.brooklyn.util.core.internal.ssh.sshj.SshjTool
+brooklyn.util.javalang.ReflectionScanner                                         : org.apache.brooklyn.util.core.javalang.ReflectionScanner
+brooklyn.util.javalang.UrlClassLoader                                            : org.apache.brooklyn.util.core.javalang.UrlClassLoader
+brooklyn.util.mutex.MutexSupport                                                 : org.apache.brooklyn.util.core.mutex.MutexSupport
+brooklyn.util.mutex.SemaphoreForTasks                                            : org.apache.brooklyn.util.core.mutex.SemaphoreForTasks
+brooklyn.util.mutex.SemaphoreWithOwners                                          : org.apache.brooklyn.util.core.mutex.SemaphoreWithOwners
+brooklyn.util.mutex.WithMutexes                                                  : org.apache.brooklyn.util.core.mutex.WithMutexes
+brooklyn.util.osgi.Osgis                                                         : org.apache.brooklyn.util.core.osgi.Osgis
+brooklyn.util.task.AbstractExecutionContext                                      : org.apache.brooklyn.util.core.task.AbstractExecutionContext
+brooklyn.util.task.BasicExecutionContext                                         : org.apache.brooklyn.util.core.task.BasicExecutionContext
+brooklyn.util.task.BasicExecutionManager                                         : org.apache.brooklyn.util.core.task.BasicExecutionManager
+brooklyn.util.task.BasicTask                                                     : org.apache.brooklyn.util.core.task.BasicTask
+brooklyn.util.task.CanSetName                                                    : org.apache.brooklyn.util.core.task.CanSetName
+brooklyn.util.task.CompoundTask                                                  : org.apache.brooklyn.util.core.task.CompoundTask
+brooklyn.util.task.DeferredSupplier                                              : org.apache.brooklyn.util.core.task.DeferredSupplier
+brooklyn.util.task.DynamicSequentialTask                                         : org.apache.brooklyn.util.core.task.DynamicSequentialTask
+brooklyn.util.task.DynamicTasks                                                  : org.apache.brooklyn.util.core.task.DynamicTasks
+brooklyn.util.task.ExecutionListener                                             : org.apache.brooklyn.util.core.task.ExecutionListener
+brooklyn.util.task.ExecutionUtils                                                : org.apache.brooklyn.util.core.task.ExecutionUtils
+brooklyn.util.task.ForwardingTask                                                : org.apache.brooklyn.util.core.task.ForwardingTask
+brooklyn.util.task.ListenableForwardingFuture                                    : org.apache.brooklyn.util.core.task.ListenableForwardingFuture
+brooklyn.util.task.ParallelTask                                                  : org.apache.brooklyn.util.core.task.ParallelTask
+brooklyn.util.task.ScheduledTask                                                 : org.apache.brooklyn.util.core.task.ScheduledTask
+brooklyn.util.task.SequentialTask                                                : org.apache.brooklyn.util.core.task.SequentialTask
+brooklyn.util.task.SingleThreadedScheduler                                       : org.apache.brooklyn.util.core.task.SingleThreadedScheduler
+brooklyn.util.task.TaskBuilder                                                   : org.apache.brooklyn.util.core.task.TaskBuilder
+brooklyn.util.task.TaskInter

<TRUNCATED>


[15/28] incubator-brooklyn git commit: rename non-java mentions of classes which have been moved -- in plans, comments, and docs

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/test-support/src/main/java/org/apache/brooklyn/test/TestUtils.groovy
----------------------------------------------------------------------
diff --git a/usage/test-support/src/main/java/org/apache/brooklyn/test/TestUtils.groovy b/usage/test-support/src/main/java/org/apache/brooklyn/test/TestUtils.groovy
deleted file mode 100644
index 33ed9e4..0000000
--- a/usage/test-support/src/main/java/org/apache/brooklyn/test/TestUtils.groovy
+++ /dev/null
@@ -1,538 +0,0 @@
-/*
- * 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.test
-
-import static org.testng.Assert.*
-import groovy.time.TimeDuration
-
-import java.util.concurrent.Callable
-import java.util.concurrent.ExecutionException
-import java.util.concurrent.Executors
-
-import org.apache.brooklyn.api.entity.Entity
-import org.apache.brooklyn.util.time.Duration
-import org.codehaus.groovy.runtime.InvokerInvocationException
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-
-import com.google.common.base.Predicate
-import com.google.common.base.Supplier
-import com.google.common.collect.Iterables
-
-/**
- * Helper functions for tests of Tomcat, JBoss and others.
- * 
- * Note that methods will migrate from here to {@link Asserts} in future releases.
- */
-public class TestUtils {
-    private static final Logger log = LoggerFactory.getLogger(TestUtils.class)
-
-    private TestUtils() { }
-
-    /**
-     * True if two attempts to connect to the port succeed.
-     * 
-     * @deprecated since 0.5; use {@link brooklyn.util.NetworkUtils#isPortAvailable(int)}
-     */
-    @Deprecated
-    public static boolean isPortInUse(int port, long retryAfterMillis=0) {
-        try {
-            def s = new Socket("localhost", port)
-            s.close()
-            if (retryAfterMillis>0) {
-                log.debug "port {} still open, waiting 1s for it to really close", port
-                //give it 1s to close
-                Thread.sleep retryAfterMillis
-                s = new Socket("localhost", port)
-                s.close()
-            }
-            log.debug "port {} still open (conclusive)", port
-            return true
-        } catch (ConnectException e) {
-            return false
-        }
-    }
-
-    /**
-     * Connects to the given HTTP URL and asserts that the response had status code 200.
-     * @deprecated Use HttpTestUtils.getHttpStatusCode(url) == 200
-     */
-    @Deprecated
-    public static boolean urlRespondsWithStatusCode200(String url) {
-        int status = HttpTestUtils.getHttpStatusCode(url);
-        log.debug "connection to {} gives {}", url, status
-        if (status == 404)
-            throw new Exception("Connection to $url gave 404");
-        return status == 200
-    }
-    
-    /** 
-     * Connects to the given HTTP URL and asserts that the response had status code 200.
-     * @deprecated Use HttpTestUtils.getHttpStatusCode(url)
-     */
-    @Deprecated
-    public static int urlRespondsStatusCode(String url) {
-        return HttpTestUtils.getHttpStatusCode(url);
-    }
-    
-    /** 
-     * Connects to the given url and returns the connection.
-     * @deprecated Use HttpTestUtils.connectToUrl(url)
-     */
-    @Deprecated
-    public static URLConnection connectToURL(String url) {
-        return HttpTestUtils.connectToUrl(url);
-    }
-    
-    // calling groovy from java doesn't cope with generics here; stripping them from here :-(
-    //      <T> void assertEventually(Map flags=[:], Supplier<? extends T> supplier, Predicate<T> predicate)
-    /**
-     * @deprecated since 0.5; use {@link Asserts#eventually(Map, Supplier, Predicate)}
-     */
-    @Deprecated
-    public static void assertEventually(Map flags=[:], Supplier supplier, Predicate predicate) {
-        Asserts.eventually(flags, supplier, predicate);
-    }
-    
-    /**
-     * @deprecated since 0.5; use {@link Asserts#eventually(Map, Supplier, Predicate, String)}
-     */
-    @Deprecated
-    public static <T> void assertEventually(Map flags=[:], Supplier<? extends T> supplier, Predicate<T> predicate, String errMsg) {
-        Asserts.eventually(flags, supplier, predicate, errMsg);
-    }
-
-    /**    
-     * @deprecated since 0.5; use {@link Asserts#succeedsEventually(java.util.Map, Callable)}
-     */
-    @Deprecated
-    public static void assertEventually(Map flags=[:], Callable c) {
-        executeUntilSucceeds(flags, c);
-    }
-    
-    /**
-     * @deprecated since 0.5; use {@link Asserts#succeedsEventually(Map, Runnable)}
-     */
-    @Deprecated
-    public static void assertEventually(Map flags=[:], Runnable c) {
-        executeUntilSucceeds(flags, c);
-    }
-
-    /**
-     * @deprecated since 0.5; use {@link Asserts#succeedsEventually(Map, Callable)}
-     */
-    @Deprecated
-    public static void executeUntilSucceeds(Map flags=[:], Closure c) {
-        Asserts.succeedsEventually(flags, c);
-    }
-
-    /**
-     * @deprecated since 0.5; use {@link Asserts#succeedsEventually(Map, Callable)}
-     */
-    @Deprecated
-    public static void executeUntilSucceeds(Map flags=[:], Callable c) {
-        Asserts.succeedsEventually(flags, c);
-    }
-    
-    /**
-     * @deprecated since 0.5; use {@link Asserts#succeedsEventually(Map, Runnable)}
-     */
-    @Deprecated
-    public static void executeUntilSucceeds(Map flags=[:], Runnable r) {
-        if (r in Callable) 
-            executeUntilSucceedsWithFinallyBlock(flags, {return ((Callable)r).call();}, { })
-        else if (r in Closure)  // Closure check probably not necessary, just was trying to fix a server build which had a screwy problem
-            executeUntilSucceedsWithFinallyBlock(flags, {return ((Closure)r).call();}, { })
-        else
-            executeUntilSucceedsWithFinallyBlock(flags, {r.run(); return true}, { })
-    }
-
-    /**
-     * @deprecated since 0.5; use {@link Asserts#succeedsEventually(Map, Callable)}, and tear-down with {@link AfterMethod}.
-     */
-    @Deprecated
-    public static void executeUntilSucceedsElseShutdown(Map flags=[:], Entity entity, Closure c) {
-        try { 
-            executeUntilSucceedsWithFinallyBlock(flags, c) { }
-        } catch (Throwable t) {
-            entity.stop()
-            throw t
-        }
-    }
-
-    /**
-     * convenience for entities to ensure they shutdown afterwards.
-     * 
-     * @deprecated since 0.5; use {@link Asserts#succeedsEventually(Map, Callable)}, and tear-down with {@link AfterMethod}.
-     */
-    @Deprecated
-    public static void executeUntilSucceedsWithShutdown(Map flags=[:], Entity entity, Closure c) {
-        executeUntilSucceedsWithFinallyBlock(flags, c) { entity.stop() }
-    }
-
-    /**
-     * @deprecated since 0.5; use {@link Asserts#succeedsEventually(Map, Callable)}, and tear-down with {@link AfterMethod}.
-     */
-    @Deprecated
-    public static void executeUntilSucceedsWithFinallyBlock(Map flags=[:], Closure c, Closure finallyBlock={}) {
-        executeUntilSucceedsWithFinallyBlockInternal(flags, c, finallyBlock)
-    }
-    
-    /**
-     * Convenience method for cases where we need to test until something is true.
-     *
-     * The runnable will be invoked periodically until it succesfully concludes.
-     * Additionally, a finally block can be supplied.
-     * <p>
-     * The following flags are supported:
-     * <ul>
-     * <li>abortOnError (boolean, default true)
-     * <li>abortOnException - (boolean, default false)
-     * <li>useGroovyTruth - (defaults to false; any result code apart from 'false' will be treated as success including null; ignored for Runnables which aren't Callables)
-     * <li>timeout - (a Duration or an integer in millis, defaults to 30*SECONDS)
-     * <li>period - (a Duration or an integer in millis, for fixed retry time; if not set, defaults to exponentially increasing from 1 to 500ms)
-     * <li>minPeriod - (a Duration or an integer in millis; only used if period not explicitly set; the minimum period when exponentially increasing; defaults to 1ms)
-     * <li>maxPeriod - (a Duration or an integer in millis; only used if period not explicitly set; the maximum period when exponentially increasing; defaults to 500ms)
-     * <li>maxAttempts - (integer, Integer.MAX_VALUE)
-     * </ul>
-     *
-     * @param flags, accepts the flags listed above
-     * @param r
-     * @param finallyBlock
-     * 
-     * @deprecated since 0.5; use {@link Asserts#succeedsEventually(Map, Callable)}, and tear-down with {@link AfterMethod}.
-     */
-    @Deprecated
-    public static void executeUntilSucceedsWithFinallyBlock(Map flags=[:], Callable<?> c, Closure finallyBlock={}) {
-        executeUntilSucceedsWithFinallyBlockInternal(flags, c, finallyBlock);
-    }
-    
-    /**
-     * the "real" implementation, renamed to allow multiple entry points (depending whether closure cast to callable)
-     * 
-     * @deprecated since 0.5; use {@link Asserts#succeedsEventually(Map, Callable)}, and tear-down with {@link AfterMethod}.
-     */
-    @Deprecated
-    private static void executeUntilSucceedsWithFinallyBlockInternal(Map flags=[:], Callable<?> c, Closure finallyBlock={}) {
-//        log.trace "abortOnError = {}", flags.abortOnError
-        boolean abortOnException = flags.abortOnException ?: false
-        boolean abortOnError = flags.abortOnError ?: false
-        boolean useGroovyTruth = flags.useGroovyTruth ?: false
-        boolean logException = flags.logException ?: true
-
-        // To speed up tests, default is for the period to start small and increase...
-        Duration duration = Duration.of(flags.timeout) ?: Duration.THIRTY_SECONDS;
-        Duration fixedPeriod = Duration.of(flags.period) ?: null
-        Duration minPeriod = fixedPeriod ?: Duration.of(flags.minPeriod) ?: Duration.millis(1)
-        Duration maxPeriod = fixedPeriod ?: Duration.of(flags.maxPeriod) ?: Duration.millis(500)
-        int maxAttempts = flags.maxAttempts ?: Integer.MAX_VALUE;
-        int attempt = 0;
-        long startTime = System.currentTimeMillis();
-        try {
-            Throwable lastException = null;
-            Object result;
-            long lastAttemptTime = 0;
-            long expireTime = startTime+duration.toMilliseconds();
-            long sleepTimeBetweenAttempts = minPeriod.toMilliseconds();
-            
-            while (attempt<maxAttempts && lastAttemptTime<expireTime) {
-                try {
-                    attempt++
-                    lastAttemptTime = System.currentTimeMillis()
-                    result = c.call()
-                    log.trace "Attempt {} after {} ms: {}", attempt, System.currentTimeMillis() - startTime, result
-                    if (useGroovyTruth) {
-                        if (result) return;
-                    } else if (result != false) {
-                        if (result instanceof BooleanWithMessage) 
-                            log.warn "Test returned an instance of BooleanWithMessage but useGroovyTruth is not set! " +
-                                     "The result of this probably isn't what you intended."
-                        return;
-                    }
-                    lastException = null
-                } catch(Throwable e) {
-                    lastException = e
-                    log.trace "Attempt {} after {} ms: {}", attempt, System.currentTimeMillis() - startTime, e.message
-                    if (abortOnException) throw e
-                    if (abortOnError && e in Error) throw e
-                }
-                long sleepTime = Math.min(sleepTimeBetweenAttempts, expireTime-System.currentTimeMillis())
-                if (sleepTime > 0) Thread.sleep(sleepTime)
-                sleepTimeBetweenAttempts = Math.min(sleepTimeBetweenAttempts*2, maxPeriod.toMilliseconds())
-            }
-            
-            log.debug "TestUtils.executeUntilSucceedsWithFinallyBlockInternal exceeded max attempts or timeout - {} attempts lasting {} ms", attempt, System.currentTimeMillis()-startTime
-            if (lastException != null)
-                throw lastException
-            fail "invalid result: $result"
-        } catch (Throwable t) {
-			if (logException) log.info("failed execute-until-succeeds, "+attempt+" attempts, "+
-                (System.currentTimeMillis()-startTime)+"ms elapsed "+
-                "(rethrowing): "+t);
-			throw t
-        } finally {
-            finallyBlock.call()
-        }
-    }
-
-    /**
-     * @deprecated since 0.5; use {@link Asserts#succeedsContinually(Map, Runnable)}
-     */
-    @Deprecated
-    public static <T> void assertSucceedsContinually(Map flags=[:], Runnable job) {
-        assertSucceedsContinually(flags, Executors.callable(job));
-    }
-    
-    /**
-     * @deprecated since 0.5; use {@link Asserts#succeedsContinually(Map, Callable)}
-     */
-    @Deprecated
-    public static void assertSucceedsContinually(Map flags=[:], Callable<?> job) {
-        Duration duration = Duration.of(flags.timeout) ?: Duration.ONE_SECOND
-        Duration period = Duration.of(flags.period) ?: Duration.millis(10)
-        long periodMs = period.toMilliseconds()
-        long startTime = System.currentTimeMillis()
-        long expireTime = startTime+duration.toMilliseconds()
-        
-        boolean first = true;
-        while (first || System.currentTimeMillis() <= expireTime) {
-            job.call();
-            if (periodMs > 0) sleep(periodMs);
-            first = false;
-        }
-    }
-    
-    /**
-     * @deprecated since 0.5; use {@link Asserts#continually(Map, Supplier, Predicate)}
-     */
-    @Deprecated
-    // FIXME When calling from java, the generics declared in groovy messing things up!
-    public static void assertContinuallyFromJava(Map flags=[:], Supplier<?> supplier, Predicate<?> predicate) {
-        Asserts.continually(flags, supplier, predicate);
-    }
-    
-    /**
-     * @deprecated since 0.5; use {@link Asserts#continually(Map, Supplier, Predicate)}
-     */
-    @Deprecated
-    public static <T> void assertContinually(Map flags=[:], Supplier<? extends T> supplier, Predicate<T> predicate) {
-        Asserts.continually(flags, supplier, predicate, (String)null);
-    }
-
-    /**
-     * @deprecated since 0.5; use {@link Asserts#continually(Map, Supplier, Predicate, String)}
-     */
-    @Deprecated
-    public static <T> void assertContinually(Map flags=[:], Supplier<? extends T> supplier, Predicate<T> predicate, String errMsg, long durationMs) {
-        flags.put("duration", Duration.millis(durationMs));
-        Asserts.continually(flags, supplier, predicate, errMsg);
-    }
-    
-    /**
-     * @deprecated since 0.5; use {@link Asserts#continually(Map, Supplier, Predicate, String)}
-     */
-    @Deprecated
-    public static <T> void assertContinually(Map flags=[:], Supplier<? extends T> supplier, Predicate<T> predicate, String errMsg) {
-        Asserts.continually(flags, supplier, predicate, errMsg);
-    }
-    
-    public static class BooleanWithMessage {
-        boolean value; String message;
-        public BooleanWithMessage(boolean value, String message) {
-            this.value = value; this.message = message;
-        }
-        public boolean asBoolean() {
-            return value
-        }
-        public String toString() {
-            return message
-        }
-    }
-    
-    /**
-     * @deprecated since 0.5; use {@link brooklyn.util.ResourceUtils}
-     */
-    @Deprecated
-    public static File getResource(String path, ClassLoader loader) {
-        URL resource = loader.getResource(path)
-        if (resource==null)
-            throw new IllegalArgumentException("cannot find required entity '"+path+"'");
-            
-        return new File(resource.path)
-    }
-
-    /**
-     * @deprecated since 0.5; use long and {@link TimeUnit}
-     */
-    @Deprecated
-    public static TimeDuration toTimeDuration(Object duration) {
-        return toTimeDuration(duration, null);
-    }
-            
-    /**
-     * @deprecated since 0.5; use long and {@link TimeUnit}
-     */
-    @Deprecated
-    public static TimeDuration toTimeDuration(Object duration, TimeDuration defaultVal) {
-        if (duration == null) {
-            return defaultVal;
-        } else if (duration instanceof TimeDuration) {
-            return (TimeDuration) duration
-        } else if (duration instanceof Number) {
-            return new TimeDuration(0,0,0,(int)duration)
-            // TODO would be nice to have this, but we need to sort out utils / test-utils dependency
-//        } else if (duration instanceof String) {
-//            return Time.parseTimeString((String)duration);
-        } else {
-            throw new IllegalArgumentException("Cannot convert $duration of type ${duration.class.name} to a TimeDuration")
-        }
-    }
-    
-    public static Throwable unwrapThrowable(Throwable t) {
-        if (t.getCause() == null) {
-            return t;
-        } else if (t instanceof ExecutionException) {
-            return unwrapThrowable(t.getCause())
-        } else if (t instanceof InvokerInvocationException) {
-            return unwrapThrowable(t.getCause())
-        } else {
-            return t
-        }
-    }
-
-    // causes compilation errors??
-//    /**
-//     * @deprecated since 0.5; use {@link EntityTestUtils#assertAttributeEqualsEventually(Entity, AttributeSensor, Object)}
-//     */
-//    @Deprecated
-//    public static <T> void assertAttributeEventually(Entity entity, AttributeSensor<T> attribute, T expected) {
-//        executeUntilSucceeds() {
-//            assertEquals(entity.getAttribute(attribute), expected);
-//        }
-//    }
-//    
-//    /**
-//     * @deprecated since 0.5; use {@link EntityTestUtils#assertAttributeEqualsContinually(Entity, AttributeSensor, Object)}
-//     */
-//    @Deprecated
-//    public static <T> void assertAttributeContinually(Entity entity, AttributeSensor<T> attribute, T expected) {
-//        assertSucceedsContinually() {
-//            assertEquals(entity.getAttribute(attribute), expected);
-//        }
-//    }
-    
-    /**
-     * @deprecated since 0.5; use {@link HttpTestUtils#assertHttpStatusCodeEquals(String, int)}
-     */
-    @Deprecated
-    public static void assertUrlStatusCodeEventually(final String url, final int expected) {
-        executeUntilSucceeds() {
-            assertEquals(urlRespondsStatusCode(url), expected);
-        }
-    }
-
-    /**
-     * @deprecated since 0.5; use {@link Asserts#assertFails(Runnable)}
-     */
-    @Deprecated
-    public static void assertFails(Runnable c) {
-        assertFailsWith(c, (Predicate)null);
-    }
-    
-    /**
-     * @deprecated since 0.5; use {@link Asserts#assertFailsWith(Closure)}
-     */
-    @Deprecated
-    public static void assertFailsWith(Runnable c, Closure exceptionChecker) {
-        assertFailsWith(c, exceptionChecker as Predicate);
-    }
-    
-    /**
-     * @deprecated since 0.5; use {@link Asserts#assertFailsWith(Runnable, Class, Class...)}
-     */
-    @Deprecated
-    public static void assertFailsWith(Runnable c, final Class<? extends Throwable> validException, final Class<? extends Throwable> ...otherValidExceptions) {
-        assertFailsWith(c, { e -> 
-            if (validException.isInstance(e)) return true;
-            if (otherValidExceptions.find {it.isInstance(e)}) return true;
-            List expectedTypes = [validException];
-            expectedTypes.addAll(Arrays.asList(otherValidExceptions));
-            fail("Test threw exception of unexpected type "+e.getClass()+"; expecting "+expectedTypes);             
-        });
-    }
-    
-    /**
-     * @deprecated since 0.5; use {@link Asserts#assertFailsWith(Runnable, Predicate)}
-     */
-    @Deprecated
-    public static void assertFailsWith(Runnable c, Predicate<Throwable> exceptionChecker) {
-        boolean failed = false;
-        try {
-            c.run();
-        } catch (Throwable e) {
-            failed = true;
-            if (exceptionChecker!=null) {
-                if (!exceptionChecker.apply(e)) {
-                    fail("Test threw invalid exception: "+e);
-                }
-            }
-            log.debug("Test for exception successful ("+e+")");
-        }
-        if (!failed) fail("Test code should have thrown exception but did not");
-    }
-
-    public static void assertSetsEqual(Collection c1, Collection c2) {
-        Set s = new LinkedHashSet();
-        s.addAll(c1); s.removeAll(c2);
-        if (!s.isEmpty()) fail("First argument contains additional contents: "+s);
-        s.clear(); s.addAll(c2); s.removeAll(c1);
-        if (!s.isEmpty()) fail("Second argument contains additional contents: "+s);
-    }
-    
-    /**
-     * @deprecated since 0.5; use {@code assertFalse(Iterables.isEmpty(c))}
-     */
-    @Deprecated
-    public static <T> void assertNonEmpty(Iterable<T> c) {
-        if (c.iterator().hasNext()) return;
-        fail("Expected non-empty set");
-    }
-
-    /**
-     * @deprecated since 0.5; use {@code assertEquals(Iterables.size(c), expectedSize)}
-     */
-    @Deprecated
-    public static <T> void assertSize(Iterable<T> c, int expectedSize) {
-        int actualSize = Iterables.size(c);
-        if (actualSize==expectedSize) return;
-        fail("Expected collection of size "+expectedSize+" but got size "+actualSize+": "+c);
-    }
-
-    /**
-     * @deprecated since 0.7.0; use {@link Asserts#assertThat(Object, Predicate)} with {@link StringFunctions})}
-     */
-    @Deprecated
-    public static void assertStringContainsLiteral(String string, String substring) {
-        if (string==null) fail("String is null");
-        if (substring==null) fail("Substring is null");
-        if (string.indexOf(substring)>=0) return;
-        fail("String '"+string+"' does not contain expected pattern '"+substring+"'");
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/usage/test-support/src/main/java/org/apache/brooklyn/test/TestUtils.java
----------------------------------------------------------------------
diff --git a/usage/test-support/src/main/java/org/apache/brooklyn/test/TestUtils.java b/usage/test-support/src/main/java/org/apache/brooklyn/test/TestUtils.java
new file mode 100644
index 0000000..d2bf55e
--- /dev/null
+++ b/usage/test-support/src/main/java/org/apache/brooklyn/test/TestUtils.java
@@ -0,0 +1,79 @@
+/*
+ * 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.test;
+
+import static org.testng.Assert.fail;
+
+import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.Set;
+import java.util.concurrent.ExecutionException;
+
+import org.codehaus.groovy.runtime.InvokerInvocationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Helper functions for tests of Tomcat, JBoss and others.
+ * 
+ * @deprecated Since 0.8. Methods moving to {@link Asserts}.
+ */
+@Deprecated
+public class TestUtils {
+    private static final Logger log = LoggerFactory.getLogger(TestUtils.class);
+
+    private TestUtils() { }
+
+    /** @deprecated since 0.8; use Asserts.BooleanWithMessage */
+    public static class BooleanWithMessage {
+        boolean value; String message;
+        public BooleanWithMessage(boolean value, String message) {
+            this.value = value; this.message = message;
+        }
+        public boolean asBoolean() {
+            return value;
+        }
+        public String toString() {
+            return message;
+        }
+    }
+    
+    /** @deprecated since 0.8; use Exceptions.getFirstInteresting */ 
+    public static Throwable unwrapThrowable(Throwable t) {
+        if (t.getCause() == null) {
+            return t;
+        } else if (t instanceof ExecutionException) {
+            return unwrapThrowable(t.getCause());
+        } else if (t instanceof InvokerInvocationException) {
+            return unwrapThrowable(t.getCause());
+        } else {
+            return t;
+        }
+    }
+
+    /** @deprecated since 0.8; use Asserts.assertEqualsIgnoringOrder */
+    public static void assertSetsEqual(Collection c1, Collection c2) {
+        Set s = new LinkedHashSet();
+        s.addAll(c1); s.removeAll(c2);
+        if (!s.isEmpty()) fail("First argument contains additional contents: "+s);
+        s.clear(); s.addAll(c2); s.removeAll(c1);
+        if (!s.isEmpty()) fail("Second argument contains additional contents: "+s);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/utils/common/src/main/java/org/apache/brooklyn/test/Asserts.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/test/Asserts.java b/utils/common/src/main/java/org/apache/brooklyn/test/Asserts.java
index 20fc98d..0bf6936 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/test/Asserts.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/test/Asserts.java
@@ -32,7 +32,6 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicReference;
 
-import org.apache.brooklyn.test.Asserts;
 import org.apache.brooklyn.util.collections.MutableSet;
 import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.time.Duration;
@@ -60,8 +59,8 @@ import com.google.common.collect.Sets;
 public class Asserts {
 
     /**
-     * The default timeout for assertions. Alter in individual tests by giving a
-     * "timeout" entry in method flags.
+     * The default timeout for assertions - 30s.
+     * Alter in individual tests by giving a "timeout" entry in method flags.
      */
     public static final Duration DEFAULT_TIMEOUT = Duration.THIRTY_SECONDS;
 
@@ -178,20 +177,21 @@ public class Asserts {
 
     
     /**
-     * Asserts given runnable succeeds in default duration.
-     * @see #DEFAULT_TIMEOUT
+     * @see #succeedsContinually(Map, Callable)
      */
     public static void succeedsEventually(Runnable r) {
         succeedsEventually(ImmutableMap.<String,Object>of(), r);
     }
 
+    /**
+     * @see #succeedsContinually(Map, Callable)
+     */
     public static void succeedsEventually(Map<String,?> flags, Runnable r) {
         succeedsEventually(flags, toCallable(r));
     }
     
     /**
-     * Asserts given callable succeeds (runs without failure) in default duration.
-     * @see #DEFAULT_TIMEOUT
+     * @see #succeedsContinually(Map, Callable)
      */
     public static <T> T succeedsEventually(Callable<T> c) {
         return succeedsEventually(ImmutableMap.<String,Object>of(), c);
@@ -220,7 +220,7 @@ public class Asserts {
      * <ul>
      * <li>abortOnError (boolean, default true)
      * <li>abortOnException - (boolean, default false)
-     * <li>timeout - (a Duration or an integer in millis, defaults to 30*SECONDS)
+     * <li>timeout - (a Duration or an integer in millis, defaults to {@link Asserts#DEFAULT_TIMEOUT})
      * <li>period - (a Duration or an integer in millis, for fixed retry time; if not set, defaults to exponentially increasing from 1 to 500ms)
      * <li>minPeriod - (a Duration or an integer in millis; only used if period not explicitly set; the minimum period when exponentially increasing; defaults to 1ms)
      * <li>maxPeriod - (a Duration or an integer in millis; only used if period not explicitly set; the maximum period when exponentially increasing; defaults to 500ms)
@@ -357,6 +357,7 @@ public class Asserts {
         });
     }
     
+    @SafeVarargs
     public static void assertFailsWith(Runnable c, final Class<? extends Throwable> validException, final Class<? extends Throwable> ...otherValidExceptions) {
         final List<Class<?>> validExceptions = ImmutableList.<Class<?>>builder()
                 .add(validException)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/utils/common/src/main/java/org/apache/brooklyn/util/internal/BrooklynSystemProperties.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/internal/BrooklynSystemProperties.java b/utils/common/src/main/java/org/apache/brooklyn/util/internal/BrooklynSystemProperties.java
index 06b5a3b..3d0048b 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/internal/BrooklynSystemProperties.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/internal/BrooklynSystemProperties.java
@@ -33,7 +33,8 @@ public class BrooklynSystemProperties {
     public static IntegerSystemProperty JSCH_EXEC_DELAY = new IntegerSystemProperty("brooklyn.jsch.exec.delay");
 
     /** allows specifying a particular geo lookup service (to lookup IP addresses), as the class FQN to use */
-    // -Dbrooklyn.location.geo.HostGeoLookup=brooklyn.location.geo.UtraceHostGeoLookup
-    public static StringSystemProperty HOST_GEO_LOOKUP_IMPL = new StringSystemProperty("brooklyn.location.geo.HostGeoLookup");
+    // -Dorg.apache.brooklyn.core.brooklyn.location.geo.HostGeoLookup=org.apache.brooklyn.core.brooklyn.location.geo.UtraceHostGeoLookup
+    public static StringSystemProperty HOST_GEO_LOOKUP_IMPL_LEGACY = new StringSystemProperty("brooklyn.location.geo.HostGeoLookup");
+    public static StringSystemProperty HOST_GEO_LOOKUP_IMPL = new StringSystemProperty("org.apache.brooklyn.core.location.geo.HostGeoLookup");
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/utils/common/src/main/java/org/apache/brooklyn/util/javalang/StackTraceSimplifier.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/javalang/StackTraceSimplifier.java b/utils/common/src/main/java/org/apache/brooklyn/util/javalang/StackTraceSimplifier.java
index cdfbe1e..0468d33 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/javalang/StackTraceSimplifier.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/javalang/StackTraceSimplifier.java
@@ -41,10 +41,10 @@ public class StackTraceSimplifier {
     private static final Logger log = LoggerFactory.getLogger(StackTraceSimplifier.class);
     
     /** comma-separated prefixes (not regexes) */
-    public static final String DEFAULT_BLACKLIST_SYSTEM_PROPERTY_NAME = "brooklyn.util.javalang.StackTraceSimplifier.blacklist";
+    public static final String DEFAULT_BLACKLIST_SYSTEM_PROPERTY_NAME = "org.apache.brooklyn.util.javalang.StackTraceSimplifier.blacklist";
     
-    /** @deprecated since 0.6.0 use {@link #DEFAULT_BLACKLIST_SYSTEM_PROPERTY_NAME} */ @Deprecated
-    public static final String LEGACY_DEFAULT_BLACKLIST_SYSTEM_PROPERTY_NAME = "groovy.sanitized.stacktraces";
+    /** @deprecated since 0.8.0 use {@link #DEFAULT_BLACKLIST_SYSTEM_PROPERTY_NAME} */ @Deprecated
+    public static final String LEGACY_DEFAULT_BLACKLIST_SYSTEM_PROPERTY_NAME = "brooklyn.util.javalang.StackTraceSimplifier.blacklist";
     
     private static final Collection<String> DEFAULT_BLACKLIST;
     


[09/28] incubator-brooklyn git commit: Switch to new Brooklyn package names.

Posted by he...@apache.org.
Switch to new Brooklyn package names.

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

Branch: refs/heads/master
Commit: c87c0ea6ccd9089cc138ebdc922ee642216b7d5d
Parents: 7474be1
Author: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Authored: Tue Aug 25 11:57:16 2015 +0100
Committer: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Committed: Tue Aug 25 11:58:54 2015 +0100

----------------------------------------------------------------------
 .../AbstractExternalConfigSupplier.java         |  45 -------
 .../config/external/ExternalConfigSupplier.java |  34 ------
 .../external/InPlaceExternalConfigSupplier.java |  51 --------
 .../PropertiesFileExternalConfigSupplier.java   |  68 -----------
 .../BasicExternalConfigSupplierRegistry.java    | 120 -------------------
 .../ExternalConfigSupplierRegistry.java         |  45 -------
 .../AbstractExternalConfigSupplier.java         |  45 +++++++
 .../config/external/ExternalConfigSupplier.java |  34 ++++++
 .../external/InPlaceExternalConfigSupplier.java |  51 ++++++++
 .../PropertiesFileExternalConfigSupplier.java   |  68 +++++++++++
 .../BasicExternalConfigSupplierRegistry.java    | 119 ++++++++++++++++++
 .../ExternalConfigSupplierRegistry.java         |  45 +++++++
 .../spi/dsl/methods/BrooklynDslCommon.java      |  29 +----
 13 files changed, 366 insertions(+), 388 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java
deleted file mode 100644
index 7f0cec0..0000000
--- a/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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 brooklyn.config.external;
-
-import brooklyn.management.ManagementContext;
-
-
-/**
- * Default superclass for all {@link ExternalConfigSupplier} implementations.
- */
-abstract public class AbstractExternalConfigSupplier implements ExternalConfigSupplier {
-
-    private final ManagementContext managementContext;
-    private final String name;
-
-    protected AbstractExternalConfigSupplier(ManagementContext managementContext, String name) {
-        this.managementContext = managementContext;
-        this.name = name;
-    }
-
-    public ManagementContext getManagementContext() {
-        return managementContext;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/core/src/main/java/brooklyn/config/external/ExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/ExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/ExternalConfigSupplier.java
deleted file mode 100644
index 0df7917..0000000
--- a/core/src/main/java/brooklyn/config/external/ExternalConfigSupplier.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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 brooklyn.config.external;
-
-import com.google.common.annotations.Beta;
-
-/**
- * Provider of "externalised" entity configuration that is resolved at runtime.
- *
- * @since 0.8.0
- */
-@Beta
-public interface ExternalConfigSupplier {
-
-    String getName();
-    String get(String key);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
deleted file mode 100644
index a5a3015..0000000
--- a/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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 brooklyn.config.external;
-
-import java.util.Map;
-
-import brooklyn.management.ManagementContext;
-
-
-/**
- * Instances are populated via sub-keys specified directly in the <tt>brooklyn.properties</tt> file:
- *
- * <pre>
- * brooklyn.external.foo = brooklyn.management.config.external.InPlaceConfigSupplier
- * brooklyn.external.foo.key1 = value1
- * brooklyn.external.foo.key2 = value2
- * </pre>
- *
- * This will instantiate an <code>InPlaceExternalConfigSupplier</code> populated with values for <code>key1</code>
- * and <code>key2</code>. Note that the <code>brooklyn.external.&lt;name&gt;</code> prefix is stripped.
- */
-public class InPlaceExternalConfigSupplier extends AbstractExternalConfigSupplier {
-
-    private final Map<String, String> config;
-
-    public InPlaceExternalConfigSupplier(ManagementContext managementContext, String name, Map<String, String> config) {
-        super(managementContext, name);
-        this.config = config;
-    }
-
-    public String get(String key) {
-        return config.get(key);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
deleted file mode 100644
index 66d72e3..0000000
--- a/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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 brooklyn.config.external;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Map;
-import java.util.Properties;
-
-import brooklyn.management.ManagementContext;
-import brooklyn.util.stream.Streams;
-
-
-/**
- * Instances are populated from a plain java properties file named in the passed <code>config</code> map
- * under the <code>propertiesUrl</code> key:
- *
- * <pre>
- * brooklyn.external.foo = brooklyn.management.config.external.PropertiesFileExternalConfigSupplier
- * brooklyn.external.foo.propertiesUrl = http://brooklyn.example.com/config/foo.properties
- * </pre>
- */
-public class PropertiesFileExternalConfigSupplier extends AbstractExternalConfigSupplier {
-
-    public static final String PROPERTIES_URL = "propertiesUrl";
-
-    private final Properties properties;
-
-    public PropertiesFileExternalConfigSupplier(ManagementContext managementContext, String name, Map<String, String> config) throws IOException {
-        super(managementContext, name);
-        this.properties = loadProperties(config.get(PROPERTIES_URL));
-    }
-
-    public String get(String key) {
-        return properties.getProperty(key);
-    }
-
-    private static Properties loadProperties(String propertiesUrl) throws IOException {
-        InputStream is = null;
-        try {
-            is = new URL(propertiesUrl).openStream();
-            Properties p = new Properties();
-            p.load(is);
-            return p;
-
-        } finally {
-            Streams.closeQuietly(is);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java b/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
deleted file mode 100644
index 8d81d69..0000000
--- a/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * 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 brooklyn.management.internal;
-
-import java.lang.reflect.Constructor;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import brooklyn.config.ConfigPredicates;
-import brooklyn.config.ConfigUtils;
-import brooklyn.config.external.ExternalConfigSupplier;
-import brooklyn.management.ManagementContext;
-import brooklyn.util.exceptions.Exceptions;
-
-import com.google.common.collect.Maps;
-
-/**
- * Simple registry implementation.
- *
- * Permits a number of {@link ExternalConfigSupplier} instances to be registered, each with a unique name, for future
- * (deferred) lookup of configuration values.
- */
-public class BasicExternalConfigSupplierRegistry implements ExternalConfigSupplierRegistry {
-
-    private static final Logger LOG = LoggerFactory.getLogger(BasicExternalConfigSupplierRegistry.class);
-
-    private final Map<String, ExternalConfigSupplier> providersByName = Maps.newLinkedHashMap();
-    private final Object providersMapMutex = new Object();
-
-    public BasicExternalConfigSupplierRegistry(ManagementContext mgmt) {
-        updateFromBrooklynProperties(mgmt);
-    }
-
-    @Override
-    public void addProvider(String name, ExternalConfigSupplier supplier) {
-        synchronized (providersMapMutex) {
-            if (providersByName.containsKey(name))
-                throw new IllegalArgumentException("Provider already registered with name '" + name + "'");
-            providersByName.put(name, supplier);
-        }
-        LOG.info("Added external config supplier named '" + name + "': " + supplier);
-    }
-
-    @Override
-    public void removeProvider(String name) {
-        synchronized (providersMapMutex) {
-            ExternalConfigSupplier supplier = providersByName.remove(name);
-            LOG.info("Removed external config supplier named '" + name + "': " + supplier);
-        }
-    }
-
-    @Override
-    public String getConfig(String providerName, String key) {
-        synchronized (providersMapMutex) {
-            ExternalConfigSupplier provider = providersByName.get(providerName);
-            if (provider == null)
-                throw new IllegalArgumentException("No provider found with name '" + providerName + "'");
-            return provider.get(key);
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    private void updateFromBrooklynProperties(ManagementContext mgmt) {
-        // form is:
-        //     brooklyn.external.<name> : fully.qualified.ClassName
-        //     brooklyn.external.<name>.<key> : <value>
-        //     brooklyn.external.<name>.<key> : <value>
-        //     brooklyn.external.<name>.<key> : <value>
-
-        String EXTERNAL_PROVIDER_PREFIX = "brooklyn.external.";
-        Map<String, Object> externalProviderProperties = mgmt.getConfig().submap(ConfigPredicates.startingWith(EXTERNAL_PROVIDER_PREFIX)).asMapWithStringKeys();
-        ClassLoader classloader = mgmt.getCatalogClassLoader();
-        List<Exception> exceptions = new LinkedList<Exception>();
-
-        for (String key : externalProviderProperties.keySet()) {
-            String strippedKey = key.substring(EXTERNAL_PROVIDER_PREFIX.length());
-            if (strippedKey.contains("."))
-                continue;
-
-            String name = strippedKey;
-            String providerClassname = (String) externalProviderProperties.get(key);
-            Map<String, Object> config = ConfigUtils.filterForPrefixAndStrip(externalProviderProperties, key + ".");
-
-            try {
-                Class<? extends ExternalConfigSupplier> providerClass = (Class<? extends ExternalConfigSupplier>) classloader.loadClass(providerClassname);
-                Constructor<? extends ExternalConfigSupplier> constructor = providerClass.getConstructor(ManagementContext.class, String.class, Map.class);
-                ExternalConfigSupplier configSupplier = constructor.newInstance(this, name, config);
-                addProvider(name, configSupplier);
-
-            } catch (Exception e) {
-                LOG.error("Failed to instantiate external config supplier named '" + name + "': " + e, e);
-                exceptions.add(e);
-            }
-        }
-
-        if (!exceptions.isEmpty())
-            Exceptions.propagate(exceptions);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/core/src/main/java/brooklyn/management/internal/ExternalConfigSupplierRegistry.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/ExternalConfigSupplierRegistry.java b/core/src/main/java/brooklyn/management/internal/ExternalConfigSupplierRegistry.java
deleted file mode 100644
index 66eb127..0000000
--- a/core/src/main/java/brooklyn/management/internal/ExternalConfigSupplierRegistry.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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 brooklyn.management.internal;
-
-import com.google.common.annotations.Beta;
-
-import brooklyn.config.external.ExternalConfigSupplier;
-
-
-/**
- * Permits a number of {@link ExternalConfigSupplier} instances to be registered, each with a unique name, for future
- * (deferred) lookup of configuration values.
- *
- * @since 0.8.0
- */
-@Beta
-public interface ExternalConfigSupplierRegistry {
-
-    void addProvider(String name, ExternalConfigSupplier provider);
-    void removeProvider(String name);
-
-    /**
-     * Searches the named {@link ExternalConfigSupplier} for the config value associated with the specified key.
-     * Quietly returns <code>null</code> if no config exists for the specified key.
-     * Throws {@link IllegalArgumentException} if no {@link ExternalConfigSupplier} exists for the passed name.
-     */
-    public String getConfig(String providerName, String key);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/core/src/main/java/org/apache/brooklyn/core/config/external/AbstractExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/config/external/AbstractExternalConfigSupplier.java b/core/src/main/java/org/apache/brooklyn/core/config/external/AbstractExternalConfigSupplier.java
new file mode 100644
index 0000000..18b25eb
--- /dev/null
+++ b/core/src/main/java/org/apache/brooklyn/core/config/external/AbstractExternalConfigSupplier.java
@@ -0,0 +1,45 @@
+/*
+ * 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.core.config.external;
+
+import org.apache.brooklyn.api.mgmt.ManagementContext;
+
+
+/**
+ * Default superclass for all {@link ExternalConfigSupplier} implementations.
+ */
+abstract public class AbstractExternalConfigSupplier implements ExternalConfigSupplier {
+
+    private final ManagementContext managementContext;
+    private final String name;
+
+    protected AbstractExternalConfigSupplier(ManagementContext managementContext, String name) {
+        this.managementContext = managementContext;
+        this.name = name;
+    }
+
+    public ManagementContext getManagementContext() {
+        return managementContext;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/core/src/main/java/org/apache/brooklyn/core/config/external/ExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/config/external/ExternalConfigSupplier.java b/core/src/main/java/org/apache/brooklyn/core/config/external/ExternalConfigSupplier.java
new file mode 100644
index 0000000..c43f7ed
--- /dev/null
+++ b/core/src/main/java/org/apache/brooklyn/core/config/external/ExternalConfigSupplier.java
@@ -0,0 +1,34 @@
+/*
+ * 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.core.config.external;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * Provider of "externalised" entity configuration that is resolved at runtime.
+ *
+ * @since 0.8.0
+ */
+@Beta
+public interface ExternalConfigSupplier {
+
+    String getName();
+    String get(String key);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/core/src/main/java/org/apache/brooklyn/core/config/external/InPlaceExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/config/external/InPlaceExternalConfigSupplier.java b/core/src/main/java/org/apache/brooklyn/core/config/external/InPlaceExternalConfigSupplier.java
new file mode 100644
index 0000000..a5445e9
--- /dev/null
+++ b/core/src/main/java/org/apache/brooklyn/core/config/external/InPlaceExternalConfigSupplier.java
@@ -0,0 +1,51 @@
+/*
+ * 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.core.config.external;
+
+import java.util.Map;
+
+import org.apache.brooklyn.api.mgmt.ManagementContext;
+
+
+/**
+ * Instances are populated via sub-keys specified directly in the <tt>brooklyn.properties</tt> file:
+ *
+ * <pre>
+ * brooklyn.external.foo = brooklyn.management.config.external.InPlaceConfigSupplier
+ * brooklyn.external.foo.key1 = value1
+ * brooklyn.external.foo.key2 = value2
+ * </pre>
+ *
+ * This will instantiate an <code>InPlaceExternalConfigSupplier</code> populated with values for <code>key1</code>
+ * and <code>key2</code>. Note that the <code>brooklyn.external.&lt;name&gt;</code> prefix is stripped.
+ */
+public class InPlaceExternalConfigSupplier extends AbstractExternalConfigSupplier {
+
+    private final Map<String, String> config;
+
+    public InPlaceExternalConfigSupplier(ManagementContext managementContext, String name, Map<String, String> config) {
+        super(managementContext, name);
+        this.config = config;
+    }
+
+    public String get(String key) {
+        return config.get(key);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/core/src/main/java/org/apache/brooklyn/core/config/external/PropertiesFileExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/config/external/PropertiesFileExternalConfigSupplier.java b/core/src/main/java/org/apache/brooklyn/core/config/external/PropertiesFileExternalConfigSupplier.java
new file mode 100644
index 0000000..f76cdf6
--- /dev/null
+++ b/core/src/main/java/org/apache/brooklyn/core/config/external/PropertiesFileExternalConfigSupplier.java
@@ -0,0 +1,68 @@
+/*
+ * 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.core.config.external;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.brooklyn.api.mgmt.ManagementContext;
+import org.apache.brooklyn.util.stream.Streams;
+
+
+/**
+ * Instances are populated from a plain java properties file named in the passed <code>config</code> map
+ * under the <code>propertiesUrl</code> key:
+ *
+ * <pre>
+ * brooklyn.external.foo = brooklyn.management.config.external.PropertiesFileExternalConfigSupplier
+ * brooklyn.external.foo.propertiesUrl = http://brooklyn.example.com/config/foo.properties
+ * </pre>
+ */
+public class PropertiesFileExternalConfigSupplier extends AbstractExternalConfigSupplier {
+
+    public static final String PROPERTIES_URL = "propertiesUrl";
+
+    private final Properties properties;
+
+    public PropertiesFileExternalConfigSupplier(ManagementContext managementContext, String name, Map<String, String> config) throws IOException {
+        super(managementContext, name);
+        this.properties = loadProperties(config.get(PROPERTIES_URL));
+    }
+
+    public String get(String key) {
+        return properties.getProperty(key);
+    }
+
+    private static Properties loadProperties(String propertiesUrl) throws IOException {
+        InputStream is = null;
+        try {
+            is = new URL(propertiesUrl).openStream();
+            Properties p = new Properties();
+            p.load(is);
+            return p;
+
+        } finally {
+            Streams.closeQuietly(is);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BasicExternalConfigSupplierRegistry.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BasicExternalConfigSupplierRegistry.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BasicExternalConfigSupplierRegistry.java
new file mode 100644
index 0000000..deebd93
--- /dev/null
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BasicExternalConfigSupplierRegistry.java
@@ -0,0 +1,119 @@
+/*
+ * 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.core.mgmt.internal;
+
+import java.lang.reflect.Constructor;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.brooklyn.api.mgmt.ManagementContext;
+import org.apache.brooklyn.core.config.ConfigPredicates;
+import org.apache.brooklyn.core.config.ConfigUtils;
+import org.apache.brooklyn.core.config.external.ExternalConfigSupplier;
+import org.apache.brooklyn.util.exceptions.Exceptions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Maps;
+
+/**
+ * Simple registry implementation.
+ *
+ * Permits a number of {@link ExternalConfigSupplier} instances to be registered, each with a unique name, for future
+ * (deferred) lookup of configuration values.
+ */
+public class BasicExternalConfigSupplierRegistry implements ExternalConfigSupplierRegistry {
+
+    private static final Logger LOG = LoggerFactory.getLogger(BasicExternalConfigSupplierRegistry.class);
+
+    private final Map<String, ExternalConfigSupplier> providersByName = Maps.newLinkedHashMap();
+    private final Object providersMapMutex = new Object();
+
+    public BasicExternalConfigSupplierRegistry(ManagementContext mgmt) {
+        updateFromBrooklynProperties(mgmt);
+    }
+
+    @Override
+    public void addProvider(String name, ExternalConfigSupplier supplier) {
+        synchronized (providersMapMutex) {
+            if (providersByName.containsKey(name))
+                throw new IllegalArgumentException("Provider already registered with name '" + name + "'");
+            providersByName.put(name, supplier);
+        }
+        LOG.info("Added external config supplier named '" + name + "': " + supplier);
+    }
+
+    @Override
+    public void removeProvider(String name) {
+        synchronized (providersMapMutex) {
+            ExternalConfigSupplier supplier = providersByName.remove(name);
+            LOG.info("Removed external config supplier named '" + name + "': " + supplier);
+        }
+    }
+
+    @Override
+    public String getConfig(String providerName, String key) {
+        synchronized (providersMapMutex) {
+            ExternalConfigSupplier provider = providersByName.get(providerName);
+            if (provider == null)
+                throw new IllegalArgumentException("No provider found with name '" + providerName + "'");
+            return provider.get(key);
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private void updateFromBrooklynProperties(ManagementContext mgmt) {
+        // form is:
+        //     brooklyn.external.<name> : fully.qualified.ClassName
+        //     brooklyn.external.<name>.<key> : <value>
+        //     brooklyn.external.<name>.<key> : <value>
+        //     brooklyn.external.<name>.<key> : <value>
+
+        String EXTERNAL_PROVIDER_PREFIX = "brooklyn.external.";
+        Map<String, Object> externalProviderProperties = mgmt.getConfig().submap(ConfigPredicates.startingWith(EXTERNAL_PROVIDER_PREFIX)).asMapWithStringKeys();
+        ClassLoader classloader = mgmt.getCatalogClassLoader();
+        List<Exception> exceptions = new LinkedList<Exception>();
+
+        for (String key : externalProviderProperties.keySet()) {
+            String strippedKey = key.substring(EXTERNAL_PROVIDER_PREFIX.length());
+            if (strippedKey.contains("."))
+                continue;
+
+            String name = strippedKey;
+            String providerClassname = (String) externalProviderProperties.get(key);
+            Map<String, Object> config = ConfigUtils.filterForPrefixAndStrip(externalProviderProperties, key + ".");
+
+            try {
+                Class<? extends ExternalConfigSupplier> providerClass = (Class<? extends ExternalConfigSupplier>) classloader.loadClass(providerClassname);
+                Constructor<? extends ExternalConfigSupplier> constructor = providerClass.getConstructor(ManagementContext.class, String.class, Map.class);
+                ExternalConfigSupplier configSupplier = constructor.newInstance(this, name, config);
+                addProvider(name, configSupplier);
+
+            } catch (Exception e) {
+                LOG.error("Failed to instantiate external config supplier named '" + name + "': " + e, e);
+                exceptions.add(e);
+            }
+        }
+
+        if (!exceptions.isEmpty())
+            Exceptions.propagate(exceptions);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/ExternalConfigSupplierRegistry.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/ExternalConfigSupplierRegistry.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/ExternalConfigSupplierRegistry.java
new file mode 100644
index 0000000..81f0ee3
--- /dev/null
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/ExternalConfigSupplierRegistry.java
@@ -0,0 +1,45 @@
+/*
+ * 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.core.mgmt.internal;
+
+import org.apache.brooklyn.core.config.external.ExternalConfigSupplier;
+
+import com.google.common.annotations.Beta;
+
+
+/**
+ * Permits a number of {@link ExternalConfigSupplier} instances to be registered, each with a unique name, for future
+ * (deferred) lookup of configuration values.
+ *
+ * @since 0.8.0
+ */
+@Beta
+public interface ExternalConfigSupplierRegistry {
+
+    void addProvider(String name, ExternalConfigSupplier provider);
+    void removeProvider(String name);
+
+    /**
+     * Searches the named {@link ExternalConfigSupplier} for the config value associated with the specified key.
+     * Quietly returns <code>null</code> if no config exists for the specified key.
+     * Throws {@link IllegalArgumentException} if no {@link ExternalConfigSupplier} exists for the passed name.
+     */
+    public String getConfig(String providerName, String key);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c87c0ea6/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
index 67c31f3..8f1483c 100644
--- a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
+++ b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
@@ -36,6 +36,8 @@ import org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier;
 import org.apache.brooklyn.camp.brooklyn.spi.dsl.DslUtils;
 import org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent.Scope;
 import org.apache.brooklyn.core.entity.EntityDynamicType;
+import org.apache.brooklyn.core.entity.EntityInternal;
+import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal;
 import org.apache.brooklyn.core.sensor.DependentConfiguration;
 import org.apache.brooklyn.util.collections.MutableMap;
 import org.apache.brooklyn.util.core.config.ConfigBag;
@@ -43,36 +45,13 @@ import org.apache.brooklyn.util.core.flags.ClassCoercionException;
 import org.apache.brooklyn.util.core.flags.FlagUtils;
 import org.apache.brooklyn.util.core.flags.TypeCoercions;
 import org.apache.brooklyn.util.core.task.DeferredSupplier;
+import org.apache.brooklyn.util.core.task.Tasks;
 import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.javalang.Reflections;
-import org.apache.brooklyn.util.text.Strings;
 import org.apache.brooklyn.util.text.StringEscapes.JavaStringEscapes;
+import org.apache.brooklyn.util.text.Strings;
 import org.apache.commons.beanutils.BeanUtils;
 
-import brooklyn.config.external.ExternalConfigSupplier;
-import brooklyn.entity.Entity;
-import brooklyn.entity.basic.EntityDynamicType;
-import brooklyn.entity.basic.EntityInternal;
-import brooklyn.entity.trait.Configurable;
-import brooklyn.event.Sensor;
-import brooklyn.event.basic.DependentConfiguration;
-import brooklyn.management.Task;
-import brooklyn.management.TaskAdaptable;
-import brooklyn.management.TaskFactory;
-import brooklyn.management.internal.ExternalConfigSupplierRegistry;
-import brooklyn.management.internal.ManagementContextInternal;
-import brooklyn.util.collections.MutableMap;
-import brooklyn.util.config.ConfigBag;
-import brooklyn.util.exceptions.Exceptions;
-import brooklyn.util.flags.ClassCoercionException;
-import brooklyn.util.flags.FlagUtils;
-import brooklyn.util.flags.TypeCoercions;
-import brooklyn.util.javalang.Reflections;
-import brooklyn.util.task.DeferredSupplier;
-import brooklyn.util.text.StringEscapes.JavaStringEscapes;
-import brooklyn.util.text.Strings;
-import brooklyn.util.task.Tasks;
-
 import com.google.common.base.Function;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;



[06/28] incubator-brooklyn git commit: Make Brooklyn management context available to config suppliers.

Posted by he...@apache.org.
Make Brooklyn management context available to config suppliers.


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

Branch: refs/heads/master
Commit: 0d401f7712bddafcce493323f6ed559ebe1d6b51
Parents: b8eb3c7
Author: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Authored: Thu Jul 16 09:24:28 2015 +0100
Committer: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Committed: Tue Aug 25 11:51:20 2015 +0100

----------------------------------------------------------------------
 .../config/external/AbstractExternalConfigSupplier.java   | 10 +++++++++-
 .../config/external/InPlaceExternalConfigSupplier.java    |  6 ++++--
 .../external/PropertiesFileExternalConfigSupplier.java    |  5 +++--
 .../internal/BasicExternalConfigSupplierRegistry.java     |  4 ++--
 4 files changed, 18 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/0d401f77/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java
index 6aa6967..7f0cec0 100644
--- a/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java
+++ b/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java
@@ -18,18 +18,26 @@
  */
 package brooklyn.config.external;
 
+import brooklyn.management.ManagementContext;
+
 
 /**
  * Default superclass for all {@link ExternalConfigSupplier} implementations.
  */
 abstract public class AbstractExternalConfigSupplier implements ExternalConfigSupplier {
 
+    private final ManagementContext managementContext;
     private final String name;
 
-    protected AbstractExternalConfigSupplier(String name) {
+    protected AbstractExternalConfigSupplier(ManagementContext managementContext, String name) {
+        this.managementContext = managementContext;
         this.name = name;
     }
 
+    public ManagementContext getManagementContext() {
+        return managementContext;
+    }
+
     public String getName() {
         return name;
     }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/0d401f77/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
index 2279386..697bc89 100644
--- a/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
+++ b/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
@@ -20,6 +20,8 @@ package brooklyn.config.external;
 
 import java.util.Map;
 
+import brooklyn.management.ManagementContext;
+
 
 /**
  * Instances are populated via sub-keys specified directly in the <tt>brooklyn.properties</tt> file:
@@ -37,8 +39,8 @@ public class InPlaceExternalConfigSupplier extends AbstractExternalConfigSupplie
 
     private final Map<?,?> config;
 
-    public InPlaceExternalConfigSupplier(String name, Map<?, ?> config) {
-        super(name);
+    public InPlaceExternalConfigSupplier(ManagementContext managementContext, String name, Map<?, ?> config) {
+        super(managementContext, name);
         this.config = config;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/0d401f77/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
index a4d48d9..34a67c4 100644
--- a/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
+++ b/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
@@ -24,6 +24,7 @@ import java.net.URL;
 import java.util.Map;
 import java.util.Properties;
 
+import brooklyn.management.ManagementContext;
 import brooklyn.util.stream.Streams;
 
 
@@ -42,8 +43,8 @@ public class PropertiesFileExternalConfigSupplier extends AbstractExternalConfig
 
     private final Properties properties;
 
-    public PropertiesFileExternalConfigSupplier(String name, Map<?, ?> config) throws IOException {
-        super(name);
+    public PropertiesFileExternalConfigSupplier(ManagementContext managementContext, String name, Map<?, ?> config) throws IOException {
+        super(managementContext, name);
         this.properties = loadProperties((String) config.get(PROPERTIES_URL));
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/0d401f77/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java b/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
index 16f7ed5..8d81d69 100644
--- a/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
+++ b/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
@@ -103,8 +103,8 @@ public class BasicExternalConfigSupplierRegistry implements ExternalConfigSuppli
 
             try {
                 Class<? extends ExternalConfigSupplier> providerClass = (Class<? extends ExternalConfigSupplier>) classloader.loadClass(providerClassname);
-                Constructor<? extends ExternalConfigSupplier> constructor = providerClass.getConstructor(String.class, Map.class);
-                ExternalConfigSupplier configSupplier = constructor.newInstance(name, config);
+                Constructor<? extends ExternalConfigSupplier> constructor = providerClass.getConstructor(ManagementContext.class, String.class, Map.class);
+                ExternalConfigSupplier configSupplier = constructor.newInstance(this, name, config);
                 addProvider(name, configSupplier);
 
             } catch (Exception e) {


[17/28] incubator-brooklyn git commit: rename non-java mentions of classes which have been moved -- in plans, comments, and docs

Posted by he...@apache.org.
rename non-java mentions of classes which have been moved -- in plans, comments, and docs

minor other tidies, to policies docs, and camp Service.toString, to remove prefixes rather than just change them;
in docs, we've also updated `package_path`, policies docs, links, and confirmed the build of api docs and catalog


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

Branch: refs/heads/master
Commit: f17da16f6b4ed54e45df58e3acf33aa77fc513e3
Parents: 9fca8a2
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Aug 31 17:20:30 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Sep 1 12:05:39 2015 +0100

----------------------------------------------------------------------
 .../brooklyn/api/catalog/BrooklynCatalog.java   |   8 +-
 .../apache/brooklyn/api/location/Location.java  |   4 -
 .../apache/brooklyn/camp/spi/pdp/Service.java   |   3 +-
 .../brooklyn/core/catalog/CatalogLoadMode.java  |   3 +-
 .../catalog/internal/CatalogInitialization.java |   1 +
 .../core/entity/lifecycle/Lifecycle.java        |   8 +-
 .../brooklyn/core/location/geo/HostGeoInfo.java |  11 +
 .../rebind/transformer/CompoundTransformer.java |   2 +-
 .../core/objs/proxy/InternalEntityFactory.java  |   2 +-
 .../core/sensor/DependentConfiguration.java     |   2 +-
 .../core/catalog/CatalogPredicatesTest.java     |  22 +-
 .../core/effector/EffectorBasicTest.java        |  14 +-
 .../core/entity/EntityPreManagementTest.java    |   6 +-
 .../core/entity/PolicyRegistrationTest.java     |   7 +-
 .../mgmt/osgi/OsgiVersionMoreEntityTest.java    |   3 +-
 ...stomAggregatingEnricherDeprecatedTest.groovy |  14 +-
 .../TransformingEnricherDeprecatedTest.groovy   |   4 +-
 .../entity/group/DynamicClusterTest.java        |   2 +-
 .../entity/group/DynamicFabricTest.java         |   4 +-
 docs/README.md                                  |   9 +-
 docs/_build/make-javadoc.sh                     |   2 +-
 .../big_examples/global-web-fabric/index.md     |   8 +-
 docs/_includes/java_link.html                   |   4 +-
 docs/guide/dev/code/tests.md                    |   4 +-
 docs/guide/java/entitlements.md                 |   6 +-
 docs/guide/java/index.md                        |   2 +-
 docs/guide/java/policies.md                     |  64 +--
 docs/guide/java/policy.md                       |  37 +-
 docs/guide/ops/brooklyn_properties.md           |   4 +-
 docs/guide/ops/catalog/index.md                 |  10 +-
 docs/guide/ops/locations/index.md               |   8 +-
 docs/guide/ops/locations/more-locations.md      |   4 +-
 docs/guide/ops/persistence/index.md             |   2 +-
 docs/guide/ops/troubleshooting/deployment.md    |   2 +-
 .../going-deep-in-java-and-logs.md              | 175 +++---
 .../ops/troubleshooting/softwareprocess.md      |   3 +-
 docs/guide/start/_my-web-cluster.yaml           |   2 +-
 docs/guide/yaml/chef/creating-blueprints.md     |   2 +-
 docs/guide/yaml/custom-entities.md              |   4 +-
 .../example_yaml/appserver-clustered-w-db.yaml  |   4 +-
 .../appserver-configured-in-config.yaml         |   2 +-
 .../yaml/example_yaml/appserver-configured.yaml |   2 +-
 .../appserver-w-db-other-flavor.yaml            |   2 +-
 .../guide/yaml/example_yaml/appserver-w-db.yaml |   2 +-
 .../yaml/example_yaml/appserver-w-policy.yaml   |   4 +-
 docs/guide/yaml/example_yaml/cluster-vm.yaml    |   2 +-
 .../simple-appserver-with-location-byon.yaml    |   2 +-
 .../simple-appserver-with-location.yaml         |   2 +-
 .../yaml/example_yaml/simple-appserver.yaml     |   2 +-
 ...est-app-with-enrichers-slightly-simpler.yaml |  18 +-
 docs/guide/yaml/index.md                        |   1 +
 docs/guide/yaml/winrm/about-winrm.md            |   0
 docs/guide/yaml/winrm/index.md                  |   4 +-
 docs/guide/yaml/yaml-reference.md               |  12 +-
 .../release-process/verify-release-artifacts.md |   2 +-
 docs/website/learnmore/blueprint-tour.md        |   4 +-
 .../website/learnmore/catalog/catalog-item.html |   2 +-
 .../brooklyn/location/jclouds/JcloudsUtil.java  |   6 +-
 .../JcloudsPortForwarderExtension.java          |   3 +-
 .../policy/enricher/HttpLatencyDetector.java    |   5 +-
 .../apache/brooklyn/feed/jmx/JmxFeedTest.java   |  15 +-
 .../apache/brooklyn/feed/jmx/JmxHelperTest.java |   3 +-
 .../entity/nosql/couchbase/pillowfight.yaml     |   2 +-
 .../entity/proxy/nginx/NginxSshDriver.java      |   3 +-
 .../entity/webapp/jboss/JBoss6SshDriver.java    |   3 +-
 .../entity/webapp/jboss/JBoss7SshDriver.java    |   3 +-
 .../entity/webapp/tomcat/TomcatSshDriver.java   |   3 +-
 .../webapp/WebAppLiveIntegrationTest.groovy     |   9 -
 .../brooklyn/spi/creation/CampCatalogUtils.java |   2 +-
 .../main/resources/brooklyn/default.catalog.bom |  20 +-
 .../apache/brooklyn/cli/CliIntegrationTest.java |   4 +-
 .../javascript/specs/model/application-spec.js  |   2 +-
 .../test/javascript/specs/model/entity-spec.js  |   4 +-
 ...lynLauncherRebindToCloudObjectStoreTest.java |   6 +-
 .../src/test/resources/mongo-sharded.yaml       |   2 +-
 .../qa/load/SimulatedJBoss7ServerImpl.java      |   3 +-
 .../SoftlayerObtainPrivateLiveTest.java         |   3 +-
 .../rest/domain/ApplicationSpecTest.java        |   2 +-
 .../brooklyn/rest/domain/EntitySpecTest.java    |   2 +-
 .../resources/fixtures/application-list.json    |   2 +-
 .../resources/fixtures/application-spec.json    |   4 +-
 .../test/resources/fixtures/application.json    |   4 +-
 .../resources/fixtures/entity-only-type.json    |   4 +-
 .../src/test/resources/fixtures/entity.json     |   2 +-
 .../brooklyn/rest/domain/ApplicationTest.java   |   2 +-
 .../org/apache/brooklyn/test/TestUtils.groovy   | 538 -------------------
 .../org/apache/brooklyn/test/TestUtils.java     |  79 +++
 .../java/org/apache/brooklyn/test/Asserts.java  |  17 +-
 .../util/internal/BrooklynSystemProperties.java |   5 +-
 .../util/javalang/StackTraceSimplifier.java     |   6 +-
 90 files changed, 413 insertions(+), 894 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/api/src/main/java/org/apache/brooklyn/api/catalog/BrooklynCatalog.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/catalog/BrooklynCatalog.java b/api/src/main/java/org/apache/brooklyn/api/catalog/BrooklynCatalog.java
index 00ce2e7..21002d9 100644
--- a/api/src/main/java/org/apache/brooklyn/api/catalog/BrooklynCatalog.java
+++ b/api/src/main/java/org/apache/brooklyn/api/catalog/BrooklynCatalog.java
@@ -26,25 +26,25 @@ import com.google.common.base.Predicate;
 public interface BrooklynCatalog {
     static String DEFAULT_VERSION = "0.0.0_DEFAULT_VERSION";
 
-    /** @return The item with the given {@link brooklyn.catalog.CatalogItem#getSymbolicName()
+    /** @return The item with the given {@link CatalogItem#getSymbolicName()
      * symbolicName}, or null if not found.
      * @deprecated since 0.7.0 use {@link #getCatalogItem(String, String)};
      * or see also CatalogUtils getCatalogItemOptionalVersion */
     @Deprecated
     CatalogItem<?,?> getCatalogItem(String symbolicName);
 
-    /** @return The item with the given {@link brooklyn.catalog.CatalogItem#getSymbolicName()
+    /** @return The item with the given {@link CatalogItem#getSymbolicName()
      * symbolicName}, or null if not found. */
     CatalogItem<?,?> getCatalogItem(String symbolicName, String version);
 
     /** @return Deletes the item with the given
-     *  {@link brooklyn.catalog.CatalogItem#getSymbolicName() symbolicName}
+     *  {@link CatalogItem#getSymbolicName() symbolicName}
      * @throws NoSuchElementException if not found
      * @deprecated since 0.7.0 use {@link #deleteCatalogItem(String, String)} */
     @Deprecated
     void deleteCatalogItem(String symbolicName);
 
-    /** @return Deletes the item with the given {@link brooklyn.catalog.CatalogItem#getSymbolicName()
+    /** @return Deletes the item with the given {@link CatalogItem#getSymbolicName()
      * symbolicName} and version
      * @throws NoSuchElementException if not found */
     void deleteCatalogItem(String symbolicName, String version);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/api/src/main/java/org/apache/brooklyn/api/location/Location.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/location/Location.java b/api/src/main/java/org/apache/brooklyn/api/location/Location.java
index e2c49fb..392af13 100644
--- a/api/src/main/java/org/apache/brooklyn/api/location/Location.java
+++ b/api/src/main/java/org/apache/brooklyn/api/location/Location.java
@@ -29,10 +29,6 @@ import org.apache.brooklyn.config.ConfigKey.HasConfigKey;
 /**
  * A location that an entity can be in. Examples of locations include a single machine
  * or a pool of machines, or a region within a given cloud. 
- * 
- * See {@link brooklyn.entity.trait.Startable#start(Collection)}.
- * 
- * Locations may not be {@link Serializable} in subsequent releases!
  */
 public interface Location extends Serializable, BrooklynObject {
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/pdp/Service.java
----------------------------------------------------------------------
diff --git a/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/pdp/Service.java b/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/pdp/Service.java
index af15ddf..7bc310f 100644
--- a/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/pdp/Service.java
+++ b/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/pdp/Service.java
@@ -25,6 +25,7 @@ import java.util.Map;
 import org.apache.brooklyn.util.collections.MutableMap;
 import org.apache.brooklyn.util.yaml.Yamls;
 import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -87,7 +88,7 @@ public class Service {
     
     @Override
     public String toString() {
-        return ToStringBuilder.reflectionToString(this);
+        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/main/java/org/apache/brooklyn/core/catalog/CatalogLoadMode.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/catalog/CatalogLoadMode.java b/core/src/main/java/org/apache/brooklyn/core/catalog/CatalogLoadMode.java
index 73f5a4e..dd2e54b 100644
--- a/core/src/main/java/org/apache/brooklyn/core/catalog/CatalogLoadMode.java
+++ b/core/src/main/java/org/apache/brooklyn/core/catalog/CatalogLoadMode.java
@@ -20,6 +20,7 @@ package org.apache.brooklyn.core.catalog;
 
 import org.apache.brooklyn.core.catalog.internal.CatalogInitialization;
 import org.apache.brooklyn.core.mgmt.persist.PersistMode;
+import org.apache.brooklyn.core.server.BrooklynServerConfig;
 import org.slf4j.LoggerFactory;
 
 /** @deprecated since 0.7.0 replaced by {@link CatalogInitialization} */
@@ -27,7 +28,7 @@ import org.slf4j.LoggerFactory;
 public enum CatalogLoadMode {
     /**
      * The server will load its initial catalog from the URL configured in
-     * {@link brooklyn.config.BrooklynServerConfig#BROOKLYN_CATALOG_URL} and will
+     * {@link BrooklynServerConfig#BROOKLYN_CATALOG_URL} and will
      * disregard existing persisted state.
      */
     LOAD_BROOKLYN_CATALOG_URL,

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java
index 907cbb8..041037f 100644
--- a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java
+++ b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java
@@ -27,6 +27,7 @@ import org.slf4j.LoggerFactory;
 import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.mgmt.ManagementContext;
 import org.apache.brooklyn.api.mgmt.ha.ManagementNodeState;
+import org.apache.brooklyn.core.catalog.CatalogLoadMode;
 import org.apache.brooklyn.core.mgmt.ManagementContextInjectable;
 import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal;
 import org.apache.brooklyn.core.server.BrooklynServerConfig;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/main/java/org/apache/brooklyn/core/entity/lifecycle/Lifecycle.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/lifecycle/Lifecycle.java b/core/src/main/java/org/apache/brooklyn/core/entity/lifecycle/Lifecycle.java
index dfbdbd7..68b316e 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/lifecycle/Lifecycle.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/lifecycle/Lifecycle.java
@@ -25,6 +25,7 @@ import java.util.regex.Pattern;
 
 import org.apache.brooklyn.api.location.Location;
 import org.apache.brooklyn.core.config.render.RendererHints;
+import org.apache.brooklyn.core.entity.trait.Startable;
 import org.apache.brooklyn.util.core.flags.TypeCoercions;
 import org.apache.brooklyn.util.text.StringFunctions;
 
@@ -41,7 +42,7 @@ public enum Lifecycle {
      * The entity has just been created.
      *
      * This stage encompasses the contruction. Once this stage is
-     * complete, the basic set of {@link brooklyn.event.Sensor}s will be available, apart from any that require the entity to be active or
+     * complete, the basic set of sensors will be available, apart from any that require the entity to be active or
      * deployed to a {@link Location}.
      */
     CREATED,
@@ -49,7 +50,7 @@ public enum Lifecycle {
     /**
      * The entity is starting.
      * <p>
-     * This stage is typically entered when the {@link brooklyn.entity.trait.Startable#START} {@link brooklyn.entity.Effector} 
+     * This stage is typically entered when the {@link Startable#START} effector 
      * is called, to undertake the startup operations from the management plane.
      * When this completes the entity will normally transition to 
      * {@link Lifecycle#RUNNING}. 
@@ -65,7 +66,8 @@ public enum Lifecycle {
     /**
      * The entity is stopping.
      *
-     * This stage is activated when the {@link brooklyn.entity.trait.Startable#STOP} effector is called. The entity service is stopped. 
+     * This stage is activated when the 
+     * {@link Startable#STOP} effector is called. The entity service is stopped. 
      * Sensors that provide data from the running entity may be cleared and subscriptions cancelled.
      */
     STOPPING,

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/main/java/org/apache/brooklyn/core/location/geo/HostGeoInfo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/location/geo/HostGeoInfo.java b/core/src/main/java/org/apache/brooklyn/core/location/geo/HostGeoInfo.java
index 7089de9..f99b41d 100644
--- a/core/src/main/java/org/apache/brooklyn/core/location/geo/HostGeoInfo.java
+++ b/core/src/main/java/org/apache/brooklyn/core/location/geo/HostGeoInfo.java
@@ -140,9 +140,20 @@ public class HostGeoInfo implements Serializable {
         }
         return result;
     }
+
+    @Deprecated
+    private static boolean warnedLegacy = false;
     
     private static HostGeoLookup findHostGeoLookupImpl() throws InstantiationException, IllegalAccessException, ClassNotFoundException {
         String type = BrooklynSystemProperties.HOST_GEO_LOOKUP_IMPL.getValue();
+        if (type==null) {
+            type = BrooklynSystemProperties.HOST_GEO_LOOKUP_IMPL_LEGACY.getValue();
+            if (type!=null && !warnedLegacy) {
+                warnedLegacy = true;
+                log.warn("Using deprecated host-geo-lookup property "+BrooklynSystemProperties.HOST_GEO_LOOKUP_IMPL_LEGACY+"; "
+                    + "set "+BrooklynSystemProperties.HOST_GEO_LOOKUP_IMPL+" instead");
+            }
+        }
         /* utrace seems more accurate than geobytes, and it gives a report of how many tokens are left;
          * but maxmind if it's installed locally is even better (does not require remote lookup),
          * so use it if available */

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/transformer/CompoundTransformer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/transformer/CompoundTransformer.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/transformer/CompoundTransformer.java
index 74b1375..09b28b4 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/transformer/CompoundTransformer.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/transformer/CompoundTransformer.java
@@ -201,7 +201,7 @@ public class CompoundTransformer {
         }
 
         private String toXstreamClassnameFormat(String val) {
-            // xstream format for inner classes is like <brooklyn.entity.rebind.transformer.CompoundTransformerTest_-OrigType>
+            // xstream format for inner classes is like <org.apache.brooklyn.core.mgmt.rebind.transformer.CompoundTransformerTest_-OrigType>
             return (val.contains("$")) ? val.replace("$", "_-") : val;
         }
         public CompoundTransformer build() {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
index 9547c9d..af7dd77 100644
--- a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
+++ b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
@@ -112,7 +112,7 @@ public class InternalEntityFactory extends InternalFactory {
         // TODO OSGi strangeness! The classloader obtained from the type should be enough.
         // If an OSGi class loader, it should delegate to find things like Entity.class etc.
         // However, we get errors such as:
-        //    NoClassDefFoundError: brooklyn.event.AttributeSensor not found by io.brooklyn.brooklyn-test-osgi-entities
+        //    NoClassDefFoundError: org.apache.brooklyn.api.sensor.AttributeSensor not found by ....brooklyn-test-osgi-entities
         // Building our own aggregating class loader gets around this.
         // But we really should not have to do this! What are the consequences?
         //

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java b/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java
index d4f32d8..01e3426 100644
--- a/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java
+++ b/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java
@@ -90,7 +90,7 @@ import com.google.common.collect.Lists;
  * If using a lot it may be useful to:
  * <pre>
  * {@code
- *   import static brooklyn.event.basic.DependentConfiguration.*;
+ *   import static org.apache.brooklyn.core.sensor.DependentConfiguration.*;
  * }
  * </pre>
  */

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/test/java/org/apache/brooklyn/core/catalog/CatalogPredicatesTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/catalog/CatalogPredicatesTest.java b/core/src/test/java/org/apache/brooklyn/core/catalog/CatalogPredicatesTest.java
index e858061..2f9e841 100644
--- a/core/src/test/java/org/apache/brooklyn/core/catalog/CatalogPredicatesTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/catalog/CatalogPredicatesTest.java
@@ -55,7 +55,7 @@ public class CatalogPredicatesTest {
     @Test
     public void testDisplayName() {
         CatalogItem<Entity, EntitySpec<?>> item = createItem(CatalogItemBuilder.newEntity("foo", "1.0")
-                .plan("services:\n- type: brooklyn.entity.basic.BasicEntity")
+                .plan("services:\n- type: org.apache.brooklyn.entity.stock.BasicEntity")
                 .displayName("myname")
                 .build());
 
@@ -66,7 +66,7 @@ public class CatalogPredicatesTest {
     @Test
     public void testDeprecated() {
         CatalogItem<Entity, EntitySpec<?>> item = createItem(CatalogItemBuilder.newEntity("foo", "1.0")
-                .plan("services:\n- type: brooklyn.entity.basic.BasicEntity")
+                .plan("services:\n- type: org.apache.brooklyn.entity.stock.BasicEntity")
                 .build());
 
         assertTrue(CatalogPredicates.<Entity,EntitySpec<?>>deprecated(false).apply(item));
@@ -81,7 +81,7 @@ public class CatalogPredicatesTest {
     @Test
     public void testDisabled() {
         CatalogItem<Entity, EntitySpec<?>> item = createItem(CatalogItemBuilder.newEntity("foo", "1.0")
-                .plan("services:\n- type: brooklyn.entity.basic.BasicEntity")
+                .plan("services:\n- type: org.apache.brooklyn.entity.stock.BasicEntity")
                 .build());
 
         assertTrue(CatalogPredicates.<Entity,EntitySpec<?>>disabled(false).apply(item));
@@ -96,7 +96,7 @@ public class CatalogPredicatesTest {
     @Test
     public void testIsCatalogItemType() {
         CatalogItem<Entity, EntitySpec<?>> item = createItem(CatalogItemBuilder.newEntity("foo", "1.0")
-                .plan("services:\n- type: brooklyn.entity.basic.BasicEntity")
+                .plan("services:\n- type: org.apache.brooklyn.entity.stock.BasicEntity")
                 .build());
 
         assertTrue(CatalogPredicates.<Entity,EntitySpec<?>>isCatalogItemType(CatalogItemType.ENTITY).apply(item));
@@ -106,7 +106,7 @@ public class CatalogPredicatesTest {
     @Test
     public void testSymbolicName() {
         CatalogItem<Entity, EntitySpec<?>> item = createItem(CatalogItemBuilder.newEntity("foo", "1.0")
-                .plan("services:\n- type: brooklyn.entity.basic.BasicEntity")
+                .plan("services:\n- type: org.apache.brooklyn.entity.stock.BasicEntity")
                 .build());
 
         assertTrue(CatalogPredicates.<Entity,EntitySpec<?>>symbolicName(Predicates.equalTo("foo")).apply(item));
@@ -116,14 +116,14 @@ public class CatalogPredicatesTest {
     @Test
     public void testIsBestVersion() {
         CatalogItem<Entity, EntitySpec<?>> itemV1 = createItem(CatalogItemBuilder.newEntity("foo", "1.0")
-                .plan("services:\n- type: brooklyn.entity.basic.BasicEntity")
+                .plan("services:\n- type: org.apache.brooklyn.entity.stock.BasicEntity")
                 .build());
         CatalogItem<Entity, EntitySpec<?>> itemV2 = createItem(CatalogItemBuilder.newEntity("foo", "2.0")
-                .plan("services:\n- type: brooklyn.entity.basic.BasicEntity")
+                .plan("services:\n- type: org.apache.brooklyn.entity.stock.BasicEntity")
                 .build());
         CatalogItem<Entity, EntitySpec<?>> itemV3Disabled = createItem(CatalogItemBuilder.newEntity("foo", "3.0")
                 .disabled(true)
-                .plan("services:\n- type: brooklyn.entity.basic.BasicEntity")
+                .plan("services:\n- type: org.apache.brooklyn.entity.stock.BasicEntity")
                 .build());
 
         assertTrue(CatalogPredicates.<Entity,EntitySpec<?>>isBestVersion(mgmt).apply(itemV2));
@@ -135,7 +135,7 @@ public class CatalogPredicatesTest {
     public void testEntitledToSee() {
         // TODO No entitlements configured, so everything allowed - therefore test not thorough enough!
         CatalogItem<Entity, EntitySpec<?>> item = createItem(CatalogItemBuilder.newEntity("foo", "1.0")
-                .plan("services:\n- type: brooklyn.entity.basic.BasicEntity")
+                .plan("services:\n- type: org.apache.brooklyn.entity.stock.BasicEntity")
                 .build());
 
         assertTrue(CatalogPredicates.<Entity,EntitySpec<?>>entitledToSee(mgmt).apply(item));
@@ -145,10 +145,10 @@ public class CatalogPredicatesTest {
     @Test
     public void testJavaType() {
         CatalogItem<Entity, EntitySpec<?>> item = createItem(CatalogItemBuilder.newEntity("foo", "1.0")
-                .javaType("brooklyn.entity.basic.BasicEntity")
+                .javaType("org.apache.brooklyn.entity.stock.BasicEntity")
                 .build());
 
-        assertTrue(CatalogPredicates.<Entity,EntitySpec<?>>javaType(Predicates.equalTo("brooklyn.entity.basic.BasicEntity")).apply(item));
+        assertTrue(CatalogPredicates.<Entity,EntitySpec<?>>javaType(Predicates.equalTo("org.apache.brooklyn.entity.stock.BasicEntity")).apply(item));
         assertFalse(CatalogPredicates.<Entity,EntitySpec<?>>javaType(Predicates.equalTo("wrongtype")).apply(item));
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/test/java/org/apache/brooklyn/core/effector/EffectorBasicTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/effector/EffectorBasicTest.java b/core/src/test/java/org/apache/brooklyn/core/effector/EffectorBasicTest.java
index b05a397..a8dfda5 100644
--- a/core/src/test/java/org/apache/brooklyn/core/effector/EffectorBasicTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/effector/EffectorBasicTest.java
@@ -32,7 +32,7 @@ import org.apache.brooklyn.core.location.SimulatedLocation;
 import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal;
 import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
 import org.apache.brooklyn.core.test.entity.TestEntity;
-import org.apache.brooklyn.test.TestUtils;
+import org.apache.brooklyn.test.Asserts;
 import org.apache.brooklyn.util.collections.MutableMap;
 import org.apache.brooklyn.util.core.task.Tasks;
 import org.apache.brooklyn.util.exceptions.Exceptions;
@@ -63,20 +63,20 @@ public class EffectorBasicTest extends BrooklynAppUnitTestSupport {
     @Test
     public void testInvokeEffectorStart() {
         app.start(locs);
-        TestUtils.assertSetsEqual(locs, app.getLocations());
+        Asserts.assertEqualsIgnoringOrder(locs, app.getLocations());
         // TODO above does not get registered as a task
     }
 
     @Test
     public void testInvokeEffectorStartWithMap() {
         app.invoke(Startable.START, MutableMap.of("locations", locs)).getUnchecked();
-        TestUtils.assertSetsEqual(locs, app.getLocations());
+        Asserts.assertEqualsIgnoringOrder(locs, app.getLocations());
     }
 
     @Test
     public void testInvokeEffectorStartWithArgs() {
         Entities.invokeEffectorWithArgs((EntityLocal)app, app, Startable.START, locs).getUnchecked();
-        TestUtils.assertSetsEqual(locs, app.getLocations());
+        Asserts.assertEqualsIgnoringOrder(locs, app.getLocations());
     }
 
     @Test
@@ -84,9 +84,9 @@ public class EffectorBasicTest extends BrooklynAppUnitTestSupport {
         TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class));
         TestEntity entity2 = app.createAndManageChild(EntitySpec.create(TestEntity.class));
         app.start(locs);
-        TestUtils.assertSetsEqual(locs, app.getLocations());
-        TestUtils.assertSetsEqual(locs, entity.getLocations());
-        TestUtils.assertSetsEqual(locs, entity2.getLocations());
+        Asserts.assertEqualsIgnoringOrder(locs, app.getLocations());
+        Asserts.assertEqualsIgnoringOrder(locs, entity.getLocations());
+        Asserts.assertEqualsIgnoringOrder(locs, entity2.getLocations());
     }
     
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/test/java/org/apache/brooklyn/core/entity/EntityPreManagementTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/EntityPreManagementTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/EntityPreManagementTest.java
index 0d83980..e10c703 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/EntityPreManagementTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/EntityPreManagementTest.java
@@ -34,7 +34,7 @@ import org.apache.brooklyn.core.policy.AbstractPolicy;
 import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
 import org.apache.brooklyn.core.test.entity.TestApplication;
 import org.apache.brooklyn.core.test.entity.TestEntity;
-import org.apache.brooklyn.test.TestUtils;
+import org.apache.brooklyn.test.Asserts;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.Assert;
@@ -102,7 +102,7 @@ public class EntityPreManagementTest {
         e.setParent(app);
         Entities.manage(e);
         
-        TestUtils.assertEventually(new Runnable() {
+        Asserts.succeedsEventually(new Runnable() {
             @Override
             public void run() {
                 if (events.isEmpty()) Assert.fail("no events received");
@@ -135,7 +135,7 @@ public class EntityPreManagementTest {
         
         Entities.startManagement(app, managementContext);
         
-        TestUtils.assertEventually(new Runnable() {
+        Asserts.succeedsEventually(new Runnable() {
             @Override
             public void run() {
                 if (events.isEmpty()) Assert.fail("no events received");

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/test/java/org/apache/brooklyn/core/entity/PolicyRegistrationTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/PolicyRegistrationTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/PolicyRegistrationTest.java
index b802bb6..10b85bb 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/PolicyRegistrationTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/PolicyRegistrationTest.java
@@ -31,13 +31,12 @@ import org.apache.brooklyn.api.policy.PolicySpec;
 import org.apache.brooklyn.api.sensor.EnricherSpec;
 import org.apache.brooklyn.api.sensor.SensorEvent;
 import org.apache.brooklyn.api.sensor.SensorEventListener;
-import org.apache.brooklyn.core.entity.AbstractEntity;
 import org.apache.brooklyn.core.entity.lifecycle.PolicyDescriptor;
 import org.apache.brooklyn.core.policy.AbstractPolicy;
 import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
 import org.apache.brooklyn.core.test.entity.TestEntity;
 import org.apache.brooklyn.core.test.entity.TestEntityNoEnrichersImpl;
-import org.apache.brooklyn.test.TestUtils;
+import org.apache.brooklyn.test.Asserts;
 import org.apache.brooklyn.util.collections.MutableMap;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
@@ -135,7 +134,7 @@ public class PolicyRegistrationTest extends BrooklynAppUnitTestSupport {
     }
     
     private <T> void assertEqualsEventually(final T actual, final T expected) {
-        TestUtils.assertEventually(MutableMap.of("timeout", TIMEOUT_MS), new Runnable() {
+        Asserts.succeedsEventually(MutableMap.of("timeout", TIMEOUT_MS), new Runnable() {
                 @Override public void run() {
                     assertEquals(actual, expected, "actual="+actual);
                 }});
@@ -143,7 +142,7 @@ public class PolicyRegistrationTest extends BrooklynAppUnitTestSupport {
     
     // Ignores order of vals in collection, but asserts each same size and same elements 
     private <T> void assertCollectionEqualsEventually(final Collection<? extends T> actual, final Collection<? extends T> expected) {
-        TestUtils.assertEventually(MutableMap.of("timeout", TIMEOUT_MS), new Runnable() {
+        Asserts.succeedsEventually(MutableMap.of("timeout", TIMEOUT_MS), new Runnable() {
                 @Override public void run() {
                     assertEquals(ImmutableSet.copyOf(actual), ImmutableSet.copyOf(expected), "actual="+actual);
                     assertEquals(actual.size(), expected.size(), "actual="+actual);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/test/java/org/apache/brooklyn/core/mgmt/osgi/OsgiVersionMoreEntityTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/osgi/OsgiVersionMoreEntityTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/osgi/OsgiVersionMoreEntityTest.java
index b7c7292..5eb9bbf 100644
--- a/core/src/test/java/org/apache/brooklyn/core/mgmt/osgi/OsgiVersionMoreEntityTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/osgi/OsgiVersionMoreEntityTest.java
@@ -99,7 +99,8 @@ public class OsgiVersionMoreEntityTest {
     
     /**
      * Test fix for
-     * java.lang.NoClassDefFoundError: brooklyn.event.AttributeSensor not found by io.brooklyn.brooklyn-test-osgi-entities [41]
+     * NoClassDefFoundError: org.apache.brooklyn.api.sensor.AttributeSensor not found by ....brooklyn-test-osgi-entities
+     * (see comments in InternalEntityFactory)
      */
     @Test
     public void testEntityProxy() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/test/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricherDeprecatedTest.groovy
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricherDeprecatedTest.groovy b/core/src/test/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricherDeprecatedTest.groovy
index 481e233..68d6804 100644
--- a/core/src/test/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricherDeprecatedTest.groovy
+++ b/core/src/test/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricherDeprecatedTest.groovy
@@ -27,9 +27,9 @@ import org.apache.brooklyn.core.test.entity.TestEntity
 import org.apache.brooklyn.enricher.stock.CustomAggregatingEnricher;
 import org.apache.brooklyn.core.entity.Entities
 import org.apache.brooklyn.entity.group.BasicGroup
+import org.apache.brooklyn.test.Asserts;
 import org.apache.brooklyn.core.location.SimulatedLocation
 import org.apache.brooklyn.core.sensor.BasicAttributeSensor
-import org.apache.brooklyn.test.TestUtils
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 import org.testng.annotations.AfterMethod
@@ -271,18 +271,18 @@ class CustomAggregatingEnricherDeprecatedTest {
 
             group.addMember(p1)
             p1.setAttribute(intSensor, 1)
-            TestUtils.executeUntilSucceeds(timeout:TIMEOUT_MS) {
+            Asserts.succeedsEventually(timeout:TIMEOUT_MS) {
                 assertEquals cae.getAggregate(), 1
             }
 
             group.addMember(p2)
             p2.setAttribute(intSensor, 2)
-            TestUtils.executeUntilSucceeds(timeout:TIMEOUT_MS) {
+            Asserts.succeedsEventually(timeout:TIMEOUT_MS) {
                 assertEquals cae.getAggregate(), 3
             }
 
             group.removeMember(p2)
-            TestUtils.executeUntilSucceeds(timeout:TIMEOUT_MS) {
+            Asserts.succeedsEventually(timeout:TIMEOUT_MS) {
                 assertEquals cae.getAggregate(), 1
             }
         } catch (Exception e) {
@@ -315,12 +315,12 @@ class CustomAggregatingEnricherDeprecatedTest {
         assertEquals cae.getAggregate(), 1
 
         p2.setAttribute(intSensor, 2)
-        TestUtils.executeUntilSucceeds(timeout:TIMEOUT_MS) {
+        Asserts.succeedsEventually(timeout:TIMEOUT_MS) {
             assertEquals cae.getAggregate(), 3
         }
         
         group.removeMember(p2)
-        TestUtils.executeUntilSucceeds(timeout:TIMEOUT_MS) {
+        Asserts.succeedsEventually(timeout:TIMEOUT_MS) {
             assertEquals cae.getAggregate(), 1
         }
     }
@@ -343,7 +343,7 @@ class CustomAggregatingEnricherDeprecatedTest {
         assertEquals cae.getAggregate(), 1
         
         group.addMember(p3)
-        TestUtils.assertSucceedsContinually(timeout:SHORT_WAIT_MS) {
+        Asserts.succeedsContinually(timeout:SHORT_WAIT_MS) {
             assertEquals cae.getAggregate(), 1
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/test/java/org/apache/brooklyn/enricher/stock/TransformingEnricherDeprecatedTest.groovy
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/enricher/stock/TransformingEnricherDeprecatedTest.groovy b/core/src/test/java/org/apache/brooklyn/enricher/stock/TransformingEnricherDeprecatedTest.groovy
index d1f264d..b524738 100644
--- a/core/src/test/java/org/apache/brooklyn/enricher/stock/TransformingEnricherDeprecatedTest.groovy
+++ b/core/src/test/java/org/apache/brooklyn/enricher/stock/TransformingEnricherDeprecatedTest.groovy
@@ -28,7 +28,7 @@ import org.apache.brooklyn.enricher.stock.SensorTransformingEnricher;
 import org.apache.brooklyn.core.entity.Entities
 import org.apache.brooklyn.core.location.SimulatedLocation
 import org.apache.brooklyn.core.sensor.BasicAttributeSensor
-import org.apache.brooklyn.test.TestUtils
+import org.apache.brooklyn.test.Asserts;
 import org.apache.brooklyn.util.collections.MutableMap
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
@@ -73,7 +73,7 @@ public class TransformingEnricherDeprecatedTest {
         //ensure previous values get picked up
         producer.addEnricher(e1);
 
-        TestUtils.assertEventually(MutableMap.of("timeout", TIMEOUT_MS), 
+        Asserts.succeedsEventually(MutableMap.of("timeout", TIMEOUT_MS), 
                 new Callable<Object>() { public Object call() {
                     Assert.assertEquals(producer.getAttribute(target), (Long)((long)6));
                     return null;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/test/java/org/apache/brooklyn/entity/group/DynamicClusterTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/entity/group/DynamicClusterTest.java b/core/src/test/java/org/apache/brooklyn/entity/group/DynamicClusterTest.java
index 0e2f73f..44e4fbd 100644
--- a/core/src/test/java/org/apache/brooklyn/entity/group/DynamicClusterTest.java
+++ b/core/src/test/java/org/apache/brooklyn/entity/group/DynamicClusterTest.java
@@ -437,7 +437,7 @@ public class DynamicClusterTest extends BrooklynAppUnitTestSupport {
             return null;
         } catch (Exception e) {
             Exceptions.propagateIfFatal(e);
-            // expect: brooklyn.util.exceptions.PropagatedRuntimeException: Error invoking resize at DynamicClusterImpl{id=I9Ggxfc1}: 1 of 3 parallel child tasks failed: Simulating entity stop failure for test
+            // expect: PropagatedRuntimeException: Error invoking resize at DynamicClusterImpl{id=I9Ggxfc1}: 1 of 3 parallel child tasks failed: Simulating entity stop failure for test
             Assert.assertTrue(e.toString().contains("resize"));
             return e;
         }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/core/src/test/java/org/apache/brooklyn/entity/group/DynamicFabricTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/entity/group/DynamicFabricTest.java b/core/src/test/java/org/apache/brooklyn/entity/group/DynamicFabricTest.java
index 0c18820..9d1830e 100644
--- a/core/src/test/java/org/apache/brooklyn/entity/group/DynamicFabricTest.java
+++ b/core/src/test/java/org/apache/brooklyn/entity/group/DynamicFabricTest.java
@@ -47,9 +47,9 @@ import org.apache.brooklyn.core.test.entity.BlockingEntity;
 import org.apache.brooklyn.core.test.entity.TestEntity;
 import org.apache.brooklyn.entity.stock.BasicEntity;
 import org.apache.brooklyn.test.Asserts;
-import org.apache.brooklyn.test.TestUtils;
 import org.apache.brooklyn.util.collections.MutableList;
 import org.apache.brooklyn.util.collections.MutableMap;
+import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.repeat.Repeater;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -325,7 +325,7 @@ public class DynamicFabricTest extends BrooklynAppUnitTestSupport {
             fabric.start(ImmutableList.of(loc1));
             assertEquals(fabric.getChildren().size(), 1);
         } catch (Exception e) {
-            Throwable unwrapped = TestUtils.unwrapThrowable(e);
+            Throwable unwrapped = Exceptions.getFirstInteresting(e);
             if (unwrapped instanceof IllegalStateException && unwrapped.getMessage() != null && (unwrapped.getMessage().contains("is not Startable"))) {
                 // success
             } else {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
index bf0766b..8728afc 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -63,7 +63,7 @@ Some issues we've encountered are:
 Seeing the Website and Docs
 ---------------------------
 
-To build and see the documentation, run this command in your `docs` folder:
+To build and most of see the documentation, run this command in your `docs` folder:
 
     jekyll serve
     
@@ -73,6 +73,9 @@ Modified files will be detected and regenerated (but that might take up to 1m).
 Add `--no-watch` argument to turn off regeneration, or use `jekyll build` instead
 to generate a site in `_site` without a server.
 
+This does <i>not</i> generate API docs and certain other material;
+see the notes on `_build/build.sh` below for that.
+
 
 Project Structure
 -----------------
@@ -141,8 +144,8 @@ Building the Website and Guide
 ------------------------------
 
 For most users, the `jekyll serve` command described above is sufficient to test changes locally.
-The main reason to use the build scripts (and to read this section) is to push changes to the server.
-This power is reserved to Brooklyn committers.
+The main reason to use the build scripts (and to read this section) is to push changes to the server
+(requires Apache Brooklyn commit rights), or to test generated content such as API docs.
 
 The build is controlled by config files in `_build/` and accessed through `_build/build.sh`.
 There are a number of different builds possible; to list these, run:

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/_build/make-javadoc.sh
----------------------------------------------------------------------
diff --git a/docs/_build/make-javadoc.sh b/docs/_build/make-javadoc.sh
index 56e3bb5..2fa6258 100755
--- a/docs/_build/make-javadoc.sh
+++ b/docs/_build/make-javadoc.sh
@@ -45,7 +45,7 @@ javadoc -sourcepath $SOURCE_PATHS \
 if ((${PIPESTATUS[0]})) ; then echo ; echo ; echo "ERROR: javadoc process exited non-zero" ; exit 1 ; fi
 echo ; echo
 
-if [ ! -f target/$JAVADOC_TARGET1_SUBPATH/brooklyn/entity/Entity.html ]; then echo "ERROR: missing expected content. Are the paths right?" ; exit 1 ; fi
+if [ ! -f target/$JAVADOC_TARGET1_SUBPATH/org/apache/brooklyn/api/entity/Entity.html ]; then echo "ERROR: missing expected content. Are the paths right?" ; exit 1 ; fi
 
 if [ ! -z "`grep warnings target/javadoc.log`" ] ; then echo "WARNINGs occurred during javadoc build. See target/javadoc.log for more information." ; fi
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/_extra/big_examples/global-web-fabric/index.md
----------------------------------------------------------------------
diff --git a/docs/_extra/big_examples/global-web-fabric/index.md b/docs/_extra/big_examples/global-web-fabric/index.md
index 8ddbadc..a8c373a 100644
--- a/docs/_extra/big_examples/global-web-fabric/index.md
+++ b/docs/_extra/big_examples/global-web-fabric/index.md
@@ -73,7 +73,7 @@ unpack it, and copy it to `~/.brooklyn/GeoLite2-City.mmdb`.
 This will be picked up automatically if it is installed.
 You can instead specify to use an online lookup service, such as 
 [utrace.de](http://www.utrace.de) by specifying
-`-Dbrooklyn.location.geo.HostGeoLookup=UtraceHostGeoLookup`;
+`-Dorg.apache.brooklyn.core.location.geo.HostGeoLookup=UtraceHostGeoLookup`;
 but note this has a cap of 100 per day.
 
 This information is also used to display locations on the map
@@ -202,13 +202,13 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.brooklyn.api.entity.EntitySpec;
 import org.apache.brooklyn.config.StringConfigMap;
 import org.apache.brooklyn.core.entity.AbstractApplication;
 import org.apache.brooklyn.core.entity.Attributes;
 import org.apache.brooklyn.entity.dns.geoscaling.GeoscalingDnsService;
 import org.apache.brooklyn.entity.group.DynamicFabric;
 import org.apache.brooklyn.entity.proxy.AbstractController;
-import org.apache.brooklyn.entity.proxying.EntitySpec;
 import org.apache.brooklyn.entity.webapp.ElasticJavaWebAppService;
 import PortRanges;
 {% endhighlight %}
@@ -228,8 +228,8 @@ The following static constants are assumed (most of these as in the [Simple Web
 The code (which can safely be omitted) is as follows:
 
 {% highlight java %}
-import brooklyn.launcher.BrooklynLauncher;
-import brooklyn.util.CommandLineUtil;
+import org.apache.brooklyn.launcher.BrooklynLauncher;
+import org.apache.brooklyn.util.CommandLineUtil;
 
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/_includes/java_link.html
----------------------------------------------------------------------
diff --git a/docs/_includes/java_link.html b/docs/_includes/java_link.html
index 01ac1d7..9411877 100644
--- a/docs/_includes/java_link.html
+++ b/docs/_includes/java_link.html
@@ -4,7 +4,7 @@ includes a code-formatted class name with link to its javadoc and optionally its
 
 usage:  
 
-{ % include java_link.html class_name="JcloudsLocationConfig" package_path="brooklyn/location/jclouds" project_subpath="location/jclouds" % }
+{ % include java_link.html class_name="JcloudsLocationConfig" package_path="org/apache/brooklyn/location/jclouds" project_subpath="location/jclouds" % }
 
 
 {% endcomment %}{% if include.project_subpath %}<code>{{ include.class_name }}</code>
@@ -15,4 +15,4 @@ usage:
 {% endif %}{% comment %}
 
 must NOT have a newline at the end here, as the include is often done inline
-{% endcomment %}
\ No newline at end of file
+{% endcomment %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/dev/code/tests.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/tests.md b/docs/guide/dev/code/tests.md
index 460cc23..a19f814 100644
--- a/docs/guide/dev/code/tests.md
+++ b/docs/guide/dev/code/tests.md
@@ -25,7 +25,7 @@ To run these from the command line, use something like the following:
 
 To run a single test, use something like the following:
 
-*     run a single test class: `mvn -Dtest=brooklyn.enricher.EnrichersTest -DfailIfNoTests=false test`
-*     run a single test method: `mvn -Dtest=brooklyn.enricher.EnrichersTest#testAdding -DfailIfNoTests=false test`
+*     run a single test class: `mvn -Dtest=org.apache.brooklyn.enricher.stock.EnrichersTest -DfailIfNoTests=false test`
+*     run a single test method: `mvn -Dtest=org.apache.brooklyn.enricher.stock.EnrichersTest#testAdding -DfailIfNoTests=false test`
 
 <!-- TODO describe how to run each of these, as a group, and individually; and profiles -->

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/java/entitlements.md
----------------------------------------------------------------------
diff --git a/docs/guide/java/entitlements.md b/docs/guide/java/entitlements.md
index a1dd544..f4e13b8 100644
--- a/docs/guide/java/entitlements.md
+++ b/docs/guide/java/entitlements.md
@@ -24,10 +24,10 @@ This answers the question who is allowed do what to whom, looking at the followi
 
 To set a custom entitlements manager to apply across the board, simply use:
 
-    brooklyn.entitlements.global=brooklyn.management.entitlement.AcmeEntitlementManager
+    brooklyn.entitlements.global=org.apache.brooklyn.core.mgmt.entitlement.AcmeEntitlementManager
 
 The example above refers to a sample manager which is included in the test JARs of Brooklyn,
-which you can see [here]({{ site.brooklyn.url.git }}/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManagerTest.java),
+which you can see [here]({{ site.brooklyn.url.git }}/core/src/test/java/org/apache/brooklyn/core/mgmt/entitlement/AcmeEntitlementManagerTest.java),
 and include in your project by adding the core tests JAR to your `dropins` folder.
 
 There are some entitlements schemes which exist out of the box, so for a simpler setup,
@@ -38,5 +38,5 @@ which re-use the LDAP authorization support in Brooklyn,
 allowing permissions objects to be declared in LDAP leveraging regular expressions.
 For more information on this, ask on IRC or the mailing list,
 and see 
-{% include java_link.html class_name="EntitlementManager" package_path="brooklyn/management/entitlement" project_subpath="api" %}.
+{% include java_link.html class_name="EntitlementManager" package_path="org/apache/brooklyn/core/mgmt/entitlement" project_subpath="api" %}.
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/java/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/java/index.md b/docs/guide/java/index.md
index c2bd407..279ca4b 100644
--- a/docs/guide/java/index.md
+++ b/docs/guide/java/index.md
@@ -9,8 +9,8 @@ children:
 - common-usage.md
 - entity.md
 - entities.md
-- policy.md
 - policies.md
+- policy.md
 - service-state.md
 - entitlements.md
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/java/policies.md
----------------------------------------------------------------------
diff --git a/docs/guide/java/policies.md b/docs/guide/java/policies.md
index 9457f72..aee2766 100644
--- a/docs/guide/java/policies.md
+++ b/docs/guide/java/policies.md
@@ -21,51 +21,6 @@ When a policy runs it can:
 
 Entities can have zero or more ``Policy`` instances attached to them.
 
-Writing Policies
-----------------
-
-### Sample Policy
-
-<!---
-TODO
--->
-
-*This section is not complete. Feel free to [fork]({{site.path.guide}}/dev/code) the docs and lend a hand.*
-
-### Best Practice
-
-The following recommendations should be considered when designing policies:
-	
-#### Management should take place as "low" as possible in the hierarchy
-*	place management responsibility in policies at the entity, as much as possible ideally management should take run as a policy on the relevant entity
-
-*	place escalated management responsibility at the parent entity. Where this is impractical, perhaps because two aspects of an entity are best handled in two different places, ensure that the separation of responsibilities is documented and there is a group membership relationship between secondary/aspect managers.
-
-
-#### Policies should be small and composable
-<!-- 
-TODO Requires Content
--->
-
-e.g. one policy which takes a sensor and emits a different, enriched sensor, and a second policy which responds to the enriched sensor of the first 	(e.g. a policy detects a process is maxed out and emits a TOO_HOT sensor; a second policy responds to this by scaling up the VM where it is running, requesting more CPU)
-#### Where a policy cannot resolve a situation at an entity, the issue should be escalated to a manager with a compatible policy.
-
-Typically escalation will go to the entity parent, and then cascade up.
-e.g. if the earlier VM CPU cannot be increased, the TOO_HOT event may go to the parent, a cluster entity, which attempts to balance. If the cluster cannot balance, then to another policy which attempts to scale out the cluster, and should the cluster be unable to scale, to a third policy which emits TOO_HOT for the cluster.
-	
-#### Management escalation should be carefully designed so that policies are not incompatible
-
-Order policies carefully, and mark sensors as "handled" (or potentially "swallow" them locally), so that subsequent policies and parent entities do not take superfluous (or contradictory) corrective action.
-      
-
-For this release, some of the mechanisms for implementing the above practices are still being developed.
-
-### Implementation Classes
-
-*This section is not complete. Feel free to [fork]({{site.path.guide}}/dev/code) the docs and lend a hand.*
-
-- extend ``AbstractPolicy``, or override an existing policy
-
 
 Off-the-Shelf Policies
 ----------------------
@@ -73,11 +28,12 @@ Off-the-Shelf Policies
 Policies are highly reusable as their inputs, thresholds and targets are customizable.
 
 ### Management Policies
-- Resizer Policy
+
+- AutoScaler Policy
    
    Increases or decreases the size of a Resizable entity based on an aggregate sensor value, the current size of the entity, and customized high/low watermarks.
 
-   A Resizer policy can take any sensor as a metric, have its watermarks tuned live, and target any resizable entity - be it an application server managing how many instances it handles, or a tier managing global capacity.
+   An AutoScaler policy can take any sensor as a metric, have its watermarks tuned live, and target any resizable entity - be it an application server managing how many instances it handles, or a tier managing global capacity.
 
    e.g. if the average request per second across a cluster of Tomcat servers goes over the high watermark, it will resize the cluster to bring the average back to within the watermarks.
   
@@ -87,7 +43,7 @@ TODO - describe how they can be customised (briefly mention sensors)
 -->
 
 
-###  Enricher Policies
+###  Enrichers
 
 *	Delta
 
@@ -110,14 +66,8 @@ TODO - describe how they can be customised (briefly mention sensors)
 
 	Aggregates multiple sensor values (usually across a tier, esp. a cluster) and performs a supplied aggregation method to them to return an aggregate figure, e.g. sum, mean, median, etc. 
 
-Implementing Policies
----------------------
-
-<!---
-TODO
--->
-
-*This section is not yet complete. Feel free to [fork]({{site.path.guide}}/dev/code) the docs and lend a hand.*
 
-Please see the class* ``brooklyn.policy.Policy`` *and implementations.
+Next: Writing a Policy
+---------------------------
 
+To write a policy, see the section on [Writing a Policy](policy.html).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/java/policy.md
----------------------------------------------------------------------
diff --git a/docs/guide/java/policy.md b/docs/guide/java/policy.md
index fbb79db..93ad8ba 100644
--- a/docs/guide/java/policy.md
+++ b/docs/guide/java/policy.md
@@ -3,12 +3,14 @@ layout: website-normal
 title: Writing a Policy
 ---
 
+### Your First Policy
+
 Policies perform the active management enabled by Brooklyn.  
 Each policy instance is associated with an entity,
 and at runtime it will typically subscribe to sensors on that entity or children,
 performing some computation and optionally actions when a subscribed sensor event occurs.
 This action might be invoking an effector or emitting a new sensor,
-depending the desired behvaiour is.
+depending the desired behavior is.
 
 Writing a policy is straightforward.
 Simply extend ``AbstractPolicy``,
@@ -33,14 +35,43 @@ and supply the computation and/or activity desired whenever that event occurs:
     }
 {% endhighlight %}
 
+
 You'll want to do more complicated things, no doubt,
 like access other entities, perform multiple subscriptions,
 and emit other sensors -- and you can.
-See the source code, and see some commonly used policies
-in ``AutoScalerPolicy`` and ``RollingMeanEnricher``. 
+See the best practices below and source code for some commonly used policies and enrichers,
+such as ``AutoScalerPolicy`` and ``RollingMeanEnricher``. 
 
 One rule of thumb, to close on:
 try to keep policies simple, and compose them together at runtime;
 for instance, if a complex computation triggers an action,
 define one **enricher** policy to aggregate other sensors and emit a new sensor,
 then write a second policy to perform that action.
+
+
+### Best Practice
+
+The following recommendations should be considered when designing policies:
+    
+#### Management should take place as "low" as possible in the hierarchy
+*   place management responsibility in policies at the entity, as much as possible ideally management should take run as a policy on the relevant entity
+
+*   place escalated management responsibility at the parent entity. Where this is impractical, perhaps because two aspects of an entity are best handled in two different places, ensure that the separation of responsibilities is documented and there is a group membership relationship between secondary/aspect managers.
+
+
+#### Policies should be small and composable
+
+e.g. one policy which takes a sensor and emits a different, enriched sensor, and a second policy which responds to the enriched sensor of the first     (e.g. a policy detects a process is maxed out and emits a TOO_HOT sensor; a second policy responds to this by scaling up the VM where it is running, requesting more CPU)
+
+#### Where a policy cannot resolve a situation at an entity, the issue should be escalated to a manager with a compatible policy.
+
+Typically escalation will go to the entity parent, and then cascade up.
+e.g. if the earlier VM CPU cannot be increased, the TOO_HOT event may go to the parent, a cluster entity, which attempts to balance. If the cluster cannot balance, then to another policy which attempts to scale out the cluster, and should the cluster be unable to scale, to a third policy which emits TOO_HOT for the cluster.
+    
+#### Management escalation should be carefully designed so that policies are not incompatible
+
+Order policies carefully, and mark sensors as "handled" (or potentially "swallow" them locally), so that subsequent policies and parent entities do not take superfluous (or contradictory) corrective action.
+      
+### Implementation Classes
+
+- extend ``AbstractPolicy``, or override an existing policy

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/ops/brooklyn_properties.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/brooklyn_properties.md b/docs/guide/ops/brooklyn_properties.md
index 637dba2..cb00ceb 100644
--- a/docs/guide/ops/brooklyn_properties.md
+++ b/docs/guide/ops/brooklyn_properties.md
@@ -171,7 +171,7 @@ with a `default` set (and if not specified `default` defaults to `minimal`);
 so the above can equivalently be written:
 
 {% highlight properties %}
-brooklyn.entitlements.global=brooklyn.management.entitlement.PerUserEntitlementManager
+brooklyn.entitlements.global=org.apache.brooklyn.core.mgmt.entitlement.PerUserEntitlementManager
 brooklyn.entitlements.perUser.default=readonly
 brooklyn.entitlements.perUser.admin=root
 brooklyn.entitlements.perUser.support=readonly
@@ -181,7 +181,7 @@ brooklyn.entitlements.perUser.metrics=minimal
 For more information, see 
 [Java: Entitlements]({{ site.path.guide }}/java/entitlements.html).
 or
-{% include java_link.html class_name="EntitlementManager" package_path="brooklyn/management/entitlement" project_subpath="api" %}.
+{% include java_link.html class_name="EntitlementManager" package_path="org/apache/brooklyn/api/mgmt/entitlement" project_subpath="api" %}.
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md
index 9a65448..dea666f 100644
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@ -134,7 +134,7 @@ The following optional catalog metadata is supported:
 The following example installs the `RiakNode` entity, making it also available as an application template,
 with a nice display name, description, and icon.
 It can be referred in other blueprints to as `datastore:1.0`,
-and its implementation will be the Java class `brooklyn.entity.nosql.riak.RiakNode` included with Brooklyn.
+and its implementation will be the Java class `org.apache.brooklyn.entity.nosql.riak.RiakNode` included with Brooklyn.
 
 ~~~ yaml
 brooklyn.catalog:
@@ -145,7 +145,7 @@ brooklyn.catalog:
   name: Datastore (Riak)
   description: Riak is an open-source NoSQL key-value data store.
   item:
-    type: brooklyn.entity.nosql.riak.RiakNode
+    type: org.apache.brooklyn.entity.nosql.riak.RiakNode
     name: Riak Node
 ~~~ 
 
@@ -162,11 +162,11 @@ brooklyn.catalog:
   items:
     - id: riak-node
       item:
-        type: brooklyn.entity.nosql.riak.RiakNode
+        type: org.apache.brooklyn.entity.nosql.riak.RiakNode
         name: Riak Node
     - id: riak-cluster
       item:
-        type: brooklyn.entity.nosql.riak.RiakCluster
+        type: org.apache.brooklyn.entity.nosql.riak.RiakCluster
         name: Riak Cluster
     - id: datastore
       name: Datastore (Riak Cluster)
@@ -191,7 +191,7 @@ brooklyn.catalog:
 The items this will install are:
 
 - `riak-node`, as before, but with a different name
-- `riak-cluster` as a convenience short name for the `brooklyn.entity.nosql.riak.RiakCluster` class
+- `riak-cluster` as a convenience short name for the `org.apache.brooklyn.entity.nosql.riak.RiakCluster` class
 - `datastore`, now pointing at the `riak-cluster` blueprint, in SoftLayer and with the given size and machine spec, 
   as the default implementation for anyone
   requesting a `datastore` (and if installed atop the previous example, new references to `datastore` 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/ops/locations/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/locations/index.md b/docs/guide/ops/locations/index.md
index 9fb5572..60dd2e0 100644
--- a/docs/guide/ops/locations/index.md
+++ b/docs/guide/ops/locations/index.md
@@ -106,7 +106,7 @@ These steps can be skipped or customized as described below.
 The following is a subset of the most commonly used configuration keys used to customize 
 cloud provisioning.
 For more keys and more detail on the keys below, see 
-{% include java_link.html class_name="JcloudsLocationConfig" package_path="brooklyn/location/jclouds" project_subpath="locations/jclouds" %}.
+{% include java_link.html class_name="JcloudsLocationConfig" package_path="org/apache/brooklyn/location/jclouds" project_subpath="locations/jclouds" %}.
 
 ###### VM Creation
     
@@ -131,10 +131,10 @@ For more keys and more detail on the keys below, see
   including the ID of the app and of the entity.
   (As many cloud portals let you filter views, this can help find a specific entity or all machines for a given application.)
   For more sophisticated control over host naming, you can supply a custom 
-  {% include java_link.html class_name="CloudMachineNamer" package_path="brooklyn/location/cloud/names" project_subpath="core" %},
+  {% include java_link.html class_name="CloudMachineNamer" package_path="org/apache/brooklyn/core/location/cloud/names" project_subpath="core" %},
   for example
   `cloudMachineNamer: CustomMachineNamer`.
-  {% include java_link.html class_name="CustomMachineNamer" package_path="brooklyn/location/cloud/names" project_subpath="core" %}
+  {% include java_link.html class_name="CustomMachineNamer" package_path="org/apache/brooklyn/core/location/cloud/names" project_subpath="core" %}
   will use the entity's name or following a template you supply.
   On many clouds, a random suffix will be appended to help guarantee uniqueness;
   this can be removed by setting `vmNameSaltLength: 0` (selected clouds only).
@@ -154,7 +154,7 @@ For more keys and more detail on the keys below, see
   machines with `machineCreateAttempts` (jclouds only). This is useful as an efficient low-level fix
   for those occasions when cloud providers give machines that are dead on arrival.
   You can of course also resolve it at a higher level with a policy such as 
-  {% include java_link.html class_name="ServiceRestarter" package_path="brooklyn/policy/ha" project_subpath="policies" %}.
+  {% include java_link.html class_name="ServiceRestarter" package_path="org/apache/brooklyn/policy/ha" project_subpath="policy" %}.
 
 - If you want to investigate failures, set `destroyOnFailure: false`
   to keep failed VM's around. (You'll have to manually clean them up.)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/ops/locations/more-locations.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/locations/more-locations.md b/docs/guide/ops/locations/more-locations.md
index 994eaf7..0a00bf5 100644
--- a/docs/guide/ops/locations/more-locations.md
+++ b/docs/guide/ops/locations/more-locations.md
@@ -17,7 +17,7 @@ For example:
 
 {% highlight yaml %}
 services:
-- type: brooklyn.entity.webapp.jboss.JBoss7Server 
+- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server 
   location:
     host: 192.168.0.1
 {% endhighlight %}
@@ -50,6 +50,6 @@ and then to `acct2`.
 
 ### The Server Pool
 
-The {% include java_link.html class_name="ServerPool" package_path="brooklyn/entity/pool" project_subpath="software/base" %}
+The {% include java_link.html class_name="ServerPool" package_path="org/apache/brooklyn/entity/machine/pool" project_subpath="software/base" %}
 entity type allows defining an entity which becomes available as a location.
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/ops/persistence/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/persistence/index.md b/docs/guide/ops/persistence/index.md
index ab8e724..a74f301 100644
--- a/docs/guide/ops/persistence/index.md
+++ b/docs/guide/ops/persistence/index.md
@@ -99,7 +99,7 @@ Object Store Persistence
 Brooklyn can persist its state to any Object Store API that jclouds supports including 
 S3, Swift and Azure. This gives access to any compatible Object Store product or cloud provider
 including AWS-S3, SoftLayer, Rackspace, HP and Microsoft Azure. For a complete list of supported
-providers, see [jclouds](http://jclouds.apache.org/guides/providers/#blobstore-providers).
+providers, see [jclouds](http://jclouds.apache.org/reference/providers/#blobstore).
 
 To configure the Object Store, add the credentials to `~/.brooklyn/brooklyn.properties` such as:
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f17da16f/docs/guide/ops/troubleshooting/deployment.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/deployment.md b/docs/guide/ops/troubleshooting/deployment.md
index 6b1baea..38b6c5e 100644
--- a/docs/guide/ops/troubleshooting/deployment.md
+++ b/docs/guide/ops/troubleshooting/deployment.md
@@ -16,7 +16,7 @@ brackets.
 The error `Unrecognized application blueprint format: no services defined` means that the `services:`
 section is missing.
 
-An error like `Deployment plan item io.brooklyn.camp.spi.pdp.Service@23c159e2[name=<null>,description=<null>,serviceType=com.acme.Foo,characteristics=[],customAttributes={}] cannot be matched` means that the given entity type (in this case com.acme.Foo) is not in the catalog or on the classpath.
+An error like `Deployment plan item Service[name=<null>,description=<null>,serviceType=com.acme.Foo,characteristics=[],customAttributes={}] cannot be matched` means that the given entity type (in this case com.acme.Foo) is not in the catalog or on the classpath.
 
 An error like `Illegal parameter for 'location' (aws-ec3); not resolvable: java.util.NoSuchElementException: Unknown location 'aws-ec3': either this location is not recognised or there is a problem with location resolver configuration` means that the given location (in this case aws-ec3) 
 was unknown. This means it does not match any of the named locations in brooklyn.properties, nor any of the


[24/28] incubator-brooklyn git commit: change release notes for 080, and add migration guide

Posted by he...@apache.org.
change release notes for 080, and add migration guide


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

Branch: refs/heads/master
Commit: c4c0e34272634604f76b17d8e014923630fc5c6c
Parents: 984f9bc
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Sep 1 16:05:58 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Sep 1 16:05:58 2015 +0100

----------------------------------------------------------------------
 docs/guide/misc/migrate-to-0.8.0-regexes.sed | 1394 +++++++++++++++++++++
 docs/guide/misc/migrate-to-0.8.0.md          |   32 +
 docs/guide/misc/release-notes.md             |  108 +-
 3 files changed, 1458 insertions(+), 76 deletions(-)
----------------------------------------------------------------------



[23/28] incubator-brooklyn git commit: change release notes for 080, and add migration guide

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c4c0e342/docs/guide/misc/migrate-to-0.8.0-regexes.sed
----------------------------------------------------------------------
diff --git a/docs/guide/misc/migrate-to-0.8.0-regexes.sed b/docs/guide/misc/migrate-to-0.8.0-regexes.sed
new file mode 100644
index 0000000..e3a8326
--- /dev/null
+++ b/docs/guide/misc/migrate-to-0.8.0-regexes.sed
@@ -0,0 +1,1394 @@
+s/([^e].|^)brooklyn.BrooklynVersion/\1org.apache.brooklyn.core.BrooklynVersion/g
+s/([^e].|^)brooklyn.basic.AbstractBrooklynObject/\1org.apache.brooklyn.core.objs.AbstractBrooklynObject/g
+s/([^e].|^)brooklyn.basic.AbstractBrooklynObjectSpec/\1org.apache.brooklyn.api.internal.AbstractBrooklynObjectSpec/g
+s/([^e].|^)brooklyn.basic.BasicConfigurableObject/\1org.apache.brooklyn.core.objs.BasicConfigurableObject/g
+s/([^e].|^)brooklyn.basic.BrooklynDynamicType/\1org.apache.brooklyn.core.objs.BrooklynDynamicType/g
+s/([^e].|^)brooklyn.basic.BrooklynObject/\1org.apache.brooklyn.api.objs.BrooklynObject/g
+s/([^e].|^)brooklyn.basic.BrooklynObjectInternal/\1org.apache.brooklyn.core.objs.BrooklynObjectInternal/g
+s/([^e].|^)brooklyn.basic.BrooklynType/\1org.apache.brooklyn.api.objs.BrooklynType/g
+s/([^e].|^)brooklyn.basic.BrooklynTypeSnapshot/\1org.apache.brooklyn.core.objs.BrooklynTypeSnapshot/g
+s/([^e].|^)brooklyn.basic.BrooklynTypes/\1org.apache.brooklyn.core.objs.BrooklynTypes/g
+s/([^e].|^)brooklyn.basic.internal.ApiObjectsFactory/\1org.apache.brooklyn.api.internal.ApiObjectsFactory/g
+s/([^e].|^)brooklyn.basic.internal.ApiObjectsFactoryImpl/\1org.apache.brooklyn.core.internal.ApiObjectsFactoryImpl/g
+s/([^e].|^)brooklyn.basic.internal.ApiObjectsFactoryInterface/\1org.apache.brooklyn.api.internal.ApiObjectsFactoryInterface/g
+s/([^e].|^)brooklyn.camp.brooklyn.api.AssemblyTemplateSpecInstantiator/\1org.apache.brooklyn.camp.brooklyn.api.AssemblyTemplateSpecInstantiator/g
+s/([^e].|^)brooklyn.camp.brooklyn.api.HasBrooklynManagementContext/\1org.apache.brooklyn.core.mgmt.HasBrooklynManagementContext/g
+s/([^e].|^)brooklyn.catalog.BrooklynCatalog/\1org.apache.brooklyn.api.catalog.BrooklynCatalog/g
+s/([^e].|^)brooklyn.catalog.Catalog/\1org.apache.brooklyn.api.catalog.Catalog/g
+s/([^e].|^)brooklyn.catalog.CatalogConfig/\1org.apache.brooklyn.api.catalog.CatalogConfig/g
+s/([^e].|^)brooklyn.catalog.CatalogItem/\1org.apache.brooklyn.api.catalog.CatalogItem/g
+s/([^e].|^)brooklyn.catalog.CatalogLoadMode/\1org.apache.brooklyn.core.catalog.CatalogLoadMode/g
+s/([^e].|^)brooklyn.catalog.CatalogPredicates/\1org.apache.brooklyn.core.catalog.CatalogPredicates/g
+s/([^e].|^)brooklyn.catalog.internal.BasicBrooklynCatalog/\1org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogBundleConverter/\1org.apache.brooklyn.core.catalog.internal.CatalogBundleConverter/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogBundleDto/\1org.apache.brooklyn.core.catalog.internal.CatalogBundleDto/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogClasspathDo/\1org.apache.brooklyn.core.catalog.internal.CatalogClasspathDo/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogClasspathDto/\1org.apache.brooklyn.core.catalog.internal.CatalogClasspathDto/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogDo/\1org.apache.brooklyn.core.catalog.internal.CatalogDo/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogDto/\1org.apache.brooklyn.core.catalog.internal.CatalogDto/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogDtoUtils/\1org.apache.brooklyn.core.catalog.internal.CatalogDtoUtils/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogEntityItemDto/\1org.apache.brooklyn.core.catalog.internal.CatalogEntityItemDto/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogInitialization/\1org.apache.brooklyn.core.catalog.internal.CatalogInitialization/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogItemBuilder/\1org.apache.brooklyn.core.catalog.internal.CatalogItemBuilder/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogItemComparator/\1org.apache.brooklyn.core.catalog.internal.CatalogItemComparator/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogItemDo/\1org.apache.brooklyn.core.catalog.internal.CatalogItemDo/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogItemDtoAbstract/\1org.apache.brooklyn.core.catalog.internal.CatalogItemDtoAbstract/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogLibrariesDo/\1org.apache.brooklyn.core.catalog.internal.CatalogLibrariesDo/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogLibrariesDto/\1org.apache.brooklyn.core.catalog.internal.CatalogLibrariesDto/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogLocationItemDto/\1org.apache.brooklyn.core.catalog.internal.CatalogLocationItemDto/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogPolicyItemDto/\1org.apache.brooklyn.core.catalog.internal.CatalogPolicyItemDto/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogTemplateItemDto/\1org.apache.brooklyn.core.catalog.internal.CatalogTemplateItemDto/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogUtils/\1org.apache.brooklyn.core.catalog.internal.CatalogUtils/g
+s/([^e].|^)brooklyn.catalog.internal.CatalogXmlSerializer/\1org.apache.brooklyn.core.catalog.internal.CatalogXmlSerializer/g
+s/([^e].|^)brooklyn.cli.AbstractMain/\1org.apache.brooklyn.cli.AbstractMain/g
+s/([^e].|^)brooklyn.cli.CloudExplorer/\1org.apache.brooklyn.cli.CloudExplorer/g
+s/([^e].|^)brooklyn.cli.ItemLister/\1org.apache.brooklyn.cli.ItemLister/g
+s/([^e].|^)brooklyn.cli.Main/\1org.apache.brooklyn.cli.Main/g
+s/([^e].|^)brooklyn.cli.lister.ClassFinder/\1org.apache.brooklyn.cli.lister.ClassFinder/g
+s/([^e].|^)brooklyn.cli.lister.ItemDescriptors/\1org.apache.brooklyn.cli.lister.ItemDescriptors/g
+s/([^e].|^)brooklyn.config.BrooklynLogging/\1org.apache.brooklyn.core.BrooklynLogging/g
+s/([^e].|^)brooklyn.config.BrooklynProperties/\1org.apache.brooklyn.core.internal.BrooklynProperties/g
+s/([^e].|^)brooklyn.config.BrooklynServerConfig/\1org.apache.brooklyn.core.server.BrooklynServerConfig/g
+s/([^e].|^)brooklyn.config.BrooklynServerPaths/\1org.apache.brooklyn.core.server.BrooklynServerPaths/g
+s/([^e].|^)brooklyn.config.BrooklynServiceAttributes/\1org.apache.brooklyn.core.server.BrooklynServiceAttributes/g
+s/([^e].|^)brooklyn.config.ConfigInheritance/\1org.apache.brooklyn.config.ConfigInheritance/g
+s/([^e].|^)brooklyn.config.ConfigKey/\1org.apache.brooklyn.config.ConfigKey/g
+s/([^e].|^)brooklyn.config.ConfigMap/\1org.apache.brooklyn.config.ConfigMap/g
+s/([^e].|^)brooklyn.config.ConfigPredicates/\1org.apache.brooklyn.core.config.ConfigPredicates/g
+s/([^e].|^)brooklyn.config.ConfigUtils/\1org.apache.brooklyn.core.config.ConfigUtils/g
+s/([^e].|^)brooklyn.config.StringConfigMap/\1org.apache.brooklyn.config.StringConfigMap/g
+s/([^e].|^)brooklyn.config.WrappedConfigKey/\1org.apache.brooklyn.core.config.WrappedConfigKey/g
+s/([^e].|^)brooklyn.config.internal.AbstractConfigMapImpl/\1org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl/g
+s/([^e].|^)brooklyn.config.render.RendererHints/\1org.apache.brooklyn.core.config.render.RendererHints/g
+s/([^e].|^)brooklyn.enricher.CustomAggregatingEnricher/\1org.apache.brooklyn.enricher.stock.CustomAggregatingEnricher/g
+s/([^e].|^)brooklyn.enricher.DeltaEnricher/\1org.apache.brooklyn.policy.enricher.DeltaEnricher/g
+s/([^e].|^)brooklyn.enricher.Enrichers/\1org.apache.brooklyn.enricher.stock.Enrichers/g
+s/([^e].|^)brooklyn.enricher.HttpLatencyDetector/\1org.apache.brooklyn.policy.enricher.HttpLatencyDetector/g
+s/([^e].|^)brooklyn.enricher.RollingMeanEnricher/\1org.apache.brooklyn.policy.enricher.RollingMeanEnricher/g
+s/([^e].|^)brooklyn.enricher.RollingTimeWindowMeanEnricher/\1org.apache.brooklyn.policy.enricher.RollingTimeWindowMeanEnricher/g
+s/([^e].|^)brooklyn.enricher.TimeFractionDeltaEnricher/\1org.apache.brooklyn.policy.enricher.TimeFractionDeltaEnricher/g
+s/([^e].|^)brooklyn.enricher.TimeWeightedDeltaEnricher/\1org.apache.brooklyn.policy.enricher.TimeWeightedDeltaEnricher/g
+s/([^e].|^)brooklyn.enricher.basic.AbstractAggregatingEnricher/\1org.apache.brooklyn.enricher.stock.AbstractAggregatingEnricher/g
+s/([^e].|^)brooklyn.enricher.basic.AbstractAggregator/\1org.apache.brooklyn.enricher.stock.AbstractAggregator/g
+s/([^e].|^)brooklyn.enricher.basic.AbstractEnricher/\1org.apache.brooklyn.core.enricher.AbstractEnricher/g
+s/([^e].|^)brooklyn.enricher.basic.AbstractMultipleSensorAggregator/\1org.apache.brooklyn.enricher.stock.AbstractMultipleSensorAggregator/g
+s/([^e].|^)brooklyn.enricher.basic.AbstractTransformer/\1org.apache.brooklyn.enricher.stock.AbstractTransformer/g
+s/([^e].|^)brooklyn.enricher.basic.AbstractTransformingEnricher/\1org.apache.brooklyn.enricher.stock.AbstractTransformingEnricher/g
+s/([^e].|^)brooklyn.enricher.basic.AbstractTypeTransformingEnricher/\1org.apache.brooklyn.enricher.stock.AbstractTypeTransformingEnricher/g
+s/([^e].|^)brooklyn.enricher.basic.AddingEnricher/\1org.apache.brooklyn.enricher.stock.AddingEnricher/g
+s/([^e].|^)brooklyn.enricher.basic.Aggregator/\1org.apache.brooklyn.enricher.stock.Aggregator/g
+s/([^e].|^)brooklyn.enricher.basic.Combiner/\1org.apache.brooklyn.enricher.stock.Combiner/g
+s/([^e].|^)brooklyn.enricher.basic.EnricherDynamicType/\1org.apache.brooklyn.core.enricher.EnricherDynamicType/g
+s/([^e].|^)brooklyn.enricher.basic.EnricherTypeSnapshot/\1org.apache.brooklyn.core.enricher.EnricherTypeSnapshot/g
+s/([^e].|^)brooklyn.enricher.basic.Joiner/\1org.apache.brooklyn.enricher.stock.Joiner/g
+s/([^e].|^)brooklyn.enricher.basic.Propagator/\1org.apache.brooklyn.enricher.stock.Propagator/g
+s/([^e].|^)brooklyn.enricher.basic.SensorPropagatingEnricher/\1org.apache.brooklyn.enricher.stock.SensorPropagatingEnricher/g
+s/([^e].|^)brooklyn.enricher.basic.SensorTransformingEnricher/\1org.apache.brooklyn.enricher.stock.SensorTransformingEnricher/g
+s/([^e].|^)brooklyn.enricher.basic.Transformer/\1org.apache.brooklyn.enricher.stock.Transformer/g
+s/([^e].|^)brooklyn.enricher.basic.UpdatingMap/\1org.apache.brooklyn.enricher.stock.UpdatingMap/g
+s/([^e].|^)brooklyn.enricher.basic.YamlRollingTimeWindowMeanEnricher/\1org.apache.brooklyn.enricher.stock.YamlRollingTimeWindowMeanEnricher/g
+s/([^e].|^)brooklyn.enricher.basic.YamlTimeWeightedDeltaEnricher/\1org.apache.brooklyn.enricher.stock.YamlTimeWeightedDeltaEnricher/g
+s/([^e].|^)brooklyn.entity.Application/\1org.apache.brooklyn.api.entity.Application/g
+s/([^e].|^)brooklyn.entity.Effector/\1org.apache.brooklyn.api.effector.Effector/g
+s/([^e].|^)brooklyn.entity.Entity/\1org.apache.brooklyn.api.entity.Entity/g
+s/([^e].|^)brooklyn.entity.EntityType/\1org.apache.brooklyn.api.entity.EntityType/g
+s/([^e].|^)brooklyn.entity.Feed/\1org.apache.brooklyn.api.sensor.Feed/g
+s/([^e].|^)brooklyn.entity.Group/\1org.apache.brooklyn.api.entity.Group/g
+s/([^e].|^)brooklyn.entity.ParameterType/\1org.apache.brooklyn.api.effector.ParameterType/g
+s/([^e].|^)brooklyn.entity.annotation.Effector/\1org.apache.brooklyn.core.annotation.Effector/g
+s/([^e].|^)brooklyn.entity.annotation.EffectorParam/\1org.apache.brooklyn.core.annotation.EffectorParam/g
+s/([^e].|^)brooklyn.entity.basic.AbstractApplication/\1org.apache.brooklyn.core.entity.AbstractApplication/g
+s/([^e].|^)brooklyn.entity.basic.AbstractConfigurableEntityFactory/\1org.apache.brooklyn.core.entity.factory.AbstractConfigurableEntityFactory/g
+s/([^e].|^)brooklyn.entity.basic.AbstractEffector/\1org.apache.brooklyn.core.effector.AbstractEffector/g
+s/([^e].|^)brooklyn.entity.basic.AbstractEntity/\1org.apache.brooklyn.core.entity.AbstractEntity/g
+s/([^e].|^)brooklyn.entity.basic.AbstractGroup/\1org.apache.brooklyn.entity.group.AbstractGroup/g
+s/([^e].|^)brooklyn.entity.basic.AbstractGroupImpl/\1org.apache.brooklyn.entity.group.AbstractGroupImpl/g
+s/([^e].|^)brooklyn.entity.basic.AbstractSoftwareProcessDriver/\1org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver/g
+s/([^e].|^)brooklyn.entity.basic.AbstractSoftwareProcessSshDriver/\1org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessSshDriver/g
+s/([^e].|^)brooklyn.entity.basic.AbstractSoftwareProcessWinRmDriver/\1org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessWinRmDriver/g
+s/([^e].|^)brooklyn.entity.basic.AbstractVanillaProcess/\1org.apache.brooklyn.entity.software.base.AbstractVanillaProcess/g
+s/([^e].|^)brooklyn.entity.basic.ApplicationBuilder/\1org.apache.brooklyn.core.entity.factory.ApplicationBuilder/g
+s/([^e].|^)brooklyn.entity.basic.Attributes/\1org.apache.brooklyn.core.entity.Attributes/g
+s/([^e].|^)brooklyn.entity.basic.BasicApplication/\1org.apache.brooklyn.entity.stock.BasicApplication/g
+s/([^e].|^)brooklyn.entity.basic.BasicApplicationImpl/\1org.apache.brooklyn.entity.stock.BasicApplicationImpl/g
+s/([^e].|^)brooklyn.entity.basic.BasicConfigurableEntityFactory/\1org.apache.brooklyn.core.entity.factory.BasicConfigurableEntityFactory/g
+s/([^e].|^)brooklyn.entity.basic.BasicEntity/\1org.apache.brooklyn.entity.stock.BasicEntity/g
+s/([^e].|^)brooklyn.entity.basic.BasicEntityImpl/\1org.apache.brooklyn.entity.stock.BasicEntityImpl/g
+s/([^e].|^)brooklyn.entity.basic.BasicGroup/\1org.apache.brooklyn.entity.group.BasicGroup/g
+s/([^e].|^)brooklyn.entity.basic.BasicGroupImpl/\1org.apache.brooklyn.entity.group.BasicGroupImpl/g
+s/([^e].|^)brooklyn.entity.basic.BasicParameterType/\1org.apache.brooklyn.core.effector.BasicParameterType/g
+s/([^e].|^)brooklyn.entity.basic.BasicStartable/\1org.apache.brooklyn.entity.stock.BasicStartable/g
+s/([^e].|^)brooklyn.entity.basic.BasicStartableImpl/\1org.apache.brooklyn.entity.stock.BasicStartableImpl/g
+s/([^e].|^)brooklyn.entity.basic.BrooklynConfigKeys/\1org.apache.brooklyn.core.entity.BrooklynConfigKeys/g
+s/([^e].|^)brooklyn.entity.basic.BrooklynShutdownHooks/\1org.apache.brooklyn.core.mgmt.internal.BrooklynShutdownHooks/g
+s/([^e].|^)brooklyn.entity.basic.BrooklynTags/\1org.apache.brooklyn.core.mgmt.BrooklynTags/g
+s/([^e].|^)brooklyn.entity.basic.BrooklynTaskTags/\1org.apache.brooklyn.core.mgmt.BrooklynTaskTags/g
+s/([^e].|^)brooklyn.entity.basic.BrooklynTasks/\1org.apache.brooklyn.core.mgmt.BrooklynTasks/g
+s/([^e].|^)brooklyn.entity.basic.ClosureEntityFactory/\1org.apache.brooklyn.core.entity.factory.ClosureEntityFactory/g
+s/([^e].|^)brooklyn.entity.basic.ConfigKeys/\1org.apache.brooklyn.core.config.ConfigKeys/g
+s/([^e].|^)brooklyn.entity.basic.ConfigMapViewWithStringKeys/\1org.apache.brooklyn.core.entity.internal.ConfigMapViewWithStringKeys/g
+s/([^e].|^)brooklyn.entity.basic.ConfigurableEntityFactory/\1org.apache.brooklyn.core.entity.factory.ConfigurableEntityFactory/g
+s/([^e].|^)brooklyn.entity.basic.ConfigurableEntityFactoryFromEntityFactory/\1org.apache.brooklyn.core.entity.factory.ConfigurableEntityFactoryFromEntityFactory/g
+s/([^e].|^)brooklyn.entity.basic.DataEntity/\1org.apache.brooklyn.entity.stock.DataEntity/g
+s/([^e].|^)brooklyn.entity.basic.DataEntityImpl/\1org.apache.brooklyn.entity.stock.DataEntityImpl/g
+s/([^e].|^)brooklyn.entity.basic.DelegateEntity/\1org.apache.brooklyn.entity.stock.DelegateEntity/g
+s/([^e].|^)brooklyn.entity.basic.DelegateEntityImpl/\1org.apache.brooklyn.entity.stock.DelegateEntityImpl/g
+s/([^e].|^)brooklyn.entity.basic.DynamicGroup/\1org.apache.brooklyn.entity.group.DynamicGroup/g
+s/([^e].|^)brooklyn.entity.basic.DynamicGroupImpl/\1org.apache.brooklyn.entity.group.DynamicGroupImpl/g
+s/([^e].|^)brooklyn.entity.basic.EffectorStartableImpl/\1org.apache.brooklyn.entity.stock.EffectorStartableImpl/g
+s/([^e].|^)brooklyn.entity.basic.EmptySoftwareProcess/\1org.apache.brooklyn.entity.software.base.EmptySoftwareProcess/g
+s/([^e].|^)brooklyn.entity.basic.EmptySoftwareProcessDriver/\1org.apache.brooklyn.entity.software.base.EmptySoftwareProcessDriver/g
+s/([^e].|^)brooklyn.entity.basic.EmptySoftwareProcessImpl/\1org.apache.brooklyn.entity.software.base.EmptySoftwareProcessImpl/g
+s/([^e].|^)brooklyn.entity.basic.EmptySoftwareProcessSshDriver/\1org.apache.brooklyn.entity.software.base.EmptySoftwareProcessSshDriver/g
+s/([^e].|^)brooklyn.entity.basic.Entities/\1org.apache.brooklyn.core.entity.Entities/g
+s/([^e].|^)brooklyn.entity.basic.EntityAdjuncts/\1org.apache.brooklyn.core.entity.EntityAdjuncts/g
+s/([^e].|^)brooklyn.entity.basic.EntityAndAttribute/\1org.apache.brooklyn.core.entity.EntityAndAttribute/g
+s/([^e].|^)brooklyn.entity.basic.EntityConfigMap/\1org.apache.brooklyn.core.entity.internal.EntityConfigMap/g
+s/([^e].|^)brooklyn.entity.basic.EntityDynamicType/\1org.apache.brooklyn.core.entity.EntityDynamicType/g
+s/([^e].|^)brooklyn.entity.basic.EntityFactory/\1org.apache.brooklyn.core.entity.factory.EntityFactory/g
+s/([^e].|^)brooklyn.entity.basic.EntityFactoryForLocation/\1org.apache.brooklyn.core.entity.factory.EntityFactoryForLocation/g
+s/([^e].|^)brooklyn.entity.basic.EntityFunctions/\1org.apache.brooklyn.core.entity.EntityFunctions/g
+s/([^e].|^)brooklyn.entity.basic.EntityInitializers/\1org.apache.brooklyn.core.entity.EntityInitializers/g
+s/([^e].|^)brooklyn.entity.basic.EntityInternal/\1org.apache.brooklyn.core.entity.EntityInternal/g
+s/([^e].|^)brooklyn.entity.basic.EntityLocal/\1org.apache.brooklyn.api.entity.EntityLocal/g
+s/([^e].|^)brooklyn.entity.basic.EntityPredicates/\1org.apache.brooklyn.core.entity.EntityPredicates/g
+s/([^e].|^)brooklyn.entity.basic.EntitySuppliers/\1org.apache.brooklyn.core.entity.EntitySuppliers/g
+s/([^e].|^)brooklyn.entity.basic.EntityTasks/\1org.apache.brooklyn.core.entity.EntityTasks/g
+s/([^e].|^)brooklyn.entity.basic.EntityTransientCopyInternal/\1org.apache.brooklyn.core.entity.internal.EntityTransientCopyInternal/g
+s/([^e].|^)brooklyn.entity.basic.EntityTypeSnapshot/\1org.apache.brooklyn.core.entity.EntityTypeSnapshot/g
+s/([^e].|^)brooklyn.entity.basic.EntityTypes/\1org.apache.brooklyn.core.entity.EntityTypes/g
+s/([^e].|^)brooklyn.entity.basic.ExplicitEffector/\1org.apache.brooklyn.core.effector.ExplicitEffector/g
+s/([^e].|^)brooklyn.entity.basic.Lifecycle/\1org.apache.brooklyn.core.entity.lifecycle.Lifecycle/g
+s/([^e].|^)brooklyn.entity.basic.MethodEffector/\1org.apache.brooklyn.core.effector.MethodEffector/g
+s/([^e].|^)brooklyn.entity.basic.PolicyDescriptor/\1org.apache.brooklyn.core.entity.lifecycle.PolicyDescriptor/g
+s/([^e].|^)brooklyn.entity.basic.QuorumCheck/\1org.apache.brooklyn.util.collections.QuorumCheck/g
+s/([^e].|^)brooklyn.entity.basic.SameServerDriverLifecycleEffectorTasks/\1org.apache.brooklyn.entity.software.base.SameServerDriverLifecycleEffectorTasks/g
+s/([^e].|^)brooklyn.entity.basic.SameServerEntity/\1org.apache.brooklyn.entity.software.base.SameServerEntity/g
+s/([^e].|^)brooklyn.entity.basic.SameServerEntityImpl/\1org.apache.brooklyn.entity.software.base.SameServerEntityImpl/g
+s/([^e].|^)brooklyn.entity.basic.Sanitizer/\1org.apache.brooklyn.core.config.Sanitizer/g
+s/([^e].|^)brooklyn.entity.basic.ServiceStateLogic/\1org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogic/g
+s/([^e].|^)brooklyn.entity.basic.SoftwareProcess/\1org.apache.brooklyn.entity.software.base.SoftwareProcess/g
+s/([^e].|^)brooklyn.entity.basic.SoftwareProcessDriver/\1org.apache.brooklyn.entity.software.base.SoftwareProcessDriver/g
+s/([^e].|^)brooklyn.entity.basic.SoftwareProcessDriverLifecycleEffectorTasks/\1org.apache.brooklyn.entity.software.base.SoftwareProcessDriverLifecycleEffectorTasks/g
+s/([^e].|^)brooklyn.entity.basic.SoftwareProcessImpl/\1org.apache.brooklyn.entity.software.base.SoftwareProcessImpl/g
+s/([^e].|^)brooklyn.entity.basic.StartableApplication/\1org.apache.brooklyn.core.entity.StartableApplication/g
+s/([^e].|^)brooklyn.entity.basic.VanillaSoftwareProcess/\1org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess/g
+s/([^e].|^)brooklyn.entity.basic.VanillaSoftwareProcessDriver/\1org.apache.brooklyn.entity.software.base.VanillaSoftwareProcessDriver/g
+s/([^e].|^)brooklyn.entity.basic.VanillaSoftwareProcessImpl/\1org.apache.brooklyn.entity.software.base.VanillaSoftwareProcessImpl/g
+s/([^e].|^)brooklyn.entity.basic.VanillaSoftwareProcessSshDriver/\1org.apache.brooklyn.entity.software.base.VanillaSoftwareProcessSshDriver/g
+s/([^e].|^)brooklyn.entity.basic.VanillaWindowsProcess/\1org.apache.brooklyn.entity.software.base.VanillaWindowsProcess/g
+s/([^e].|^)brooklyn.entity.basic.VanillaWindowsProcessDriver/\1org.apache.brooklyn.entity.software.base.VanillaWindowsProcessDriver/g
+s/([^e].|^)brooklyn.entity.basic.VanillaWindowsProcessImpl/\1org.apache.brooklyn.entity.software.base.VanillaWindowsProcessImpl/g
+s/([^e].|^)brooklyn.entity.basic.VanillaWindowsProcessWinRmDriver/\1org.apache.brooklyn.entity.software.base.VanillaWindowsProcessWinRmDriver/g
+s/([^e].|^)brooklyn.entity.basic.lifecycle.NaiveScriptRunner/\1org.apache.brooklyn.entity.software.base.lifecycle.NaiveScriptRunner/g
+s/([^e].|^)brooklyn.entity.basic.lifecycle.ScriptHelper/\1org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper/g
+s/([^e].|^)brooklyn.entity.basic.lifecycle.ScriptPart/\1org.apache.brooklyn.entity.software.base.lifecycle.ScriptPart/g
+s/([^e].|^)brooklyn.entity.brooklyn.BrooklynMetrics/\1org.apache.brooklyn.core.server.entity.BrooklynMetrics/g
+s/([^e].|^)brooklyn.entity.brooklyn.BrooklynMetricsImpl/\1org.apache.brooklyn.core.server.entity.BrooklynMetricsImpl/g
+s/([^e].|^)brooklyn.entity.brooklynnode.BrooklynCluster/\1org.apache.brooklyn.entity.brooklynnode.BrooklynCluster/g
+s/([^e].|^)brooklyn.entity.brooklynnode.BrooklynClusterImpl/\1org.apache.brooklyn.entity.brooklynnode.BrooklynClusterImpl/g
+s/([^e].|^)brooklyn.entity.brooklynnode.BrooklynEntityMirror/\1org.apache.brooklyn.entity.brooklynnode.BrooklynEntityMirror/g
+s/([^e].|^)brooklyn.entity.brooklynnode.BrooklynEntityMirrorImpl/\1org.apache.brooklyn.entity.brooklynnode.BrooklynEntityMirrorImpl/g
+s/([^e].|^)brooklyn.entity.brooklynnode.BrooklynNode/\1org.apache.brooklyn.entity.brooklynnode.BrooklynNode/g
+s/([^e].|^)brooklyn.entity.brooklynnode.BrooklynNodeDriver/\1org.apache.brooklyn.entity.brooklynnode.BrooklynNodeDriver/g
+s/([^e].|^)brooklyn.entity.brooklynnode.BrooklynNodeImpl/\1org.apache.brooklyn.entity.brooklynnode.BrooklynNodeImpl/g
+s/([^e].|^)brooklyn.entity.brooklynnode.BrooklynNodeSshDriver/\1org.apache.brooklyn.entity.brooklynnode.BrooklynNodeSshDriver/g
+s/([^e].|^)brooklyn.entity.brooklynnode.EntityHttpClient/\1org.apache.brooklyn.entity.brooklynnode.EntityHttpClient/g
+s/([^e].|^)brooklyn.entity.brooklynnode.EntityHttpClientImpl/\1org.apache.brooklyn.entity.brooklynnode.EntityHttpClientImpl/g
+s/([^e].|^)brooklyn.entity.brooklynnode.LocalBrooklynNode/\1org.apache.brooklyn.entity.brooklynnode.LocalBrooklynNode/g
+s/([^e].|^)brooklyn.entity.brooklynnode.LocalBrooklynNodeImpl/\1org.apache.brooklyn.entity.brooklynnode.LocalBrooklynNodeImpl/g
+s/([^e].|^)brooklyn.entity.brooklynnode.RemoteEffectorBuilder/\1org.apache.brooklyn.entity.brooklynnode.RemoteEffectorBuilder/g
+s/([^e].|^)brooklyn.entity.brooklynnode.effector.BrooklynClusterUpgradeEffectorBody/\1org.apache.brooklyn.entity.brooklynnode.effector.BrooklynClusterUpgradeEffectorBody/g
+s/([^e].|^)brooklyn.entity.brooklynnode.effector.BrooklynNodeUpgradeEffectorBody/\1org.apache.brooklyn.entity.brooklynnode.effector.BrooklynNodeUpgradeEffectorBody/g
+s/([^e].|^)brooklyn.entity.brooklynnode.effector.SelectMasterEffectorBody/\1org.apache.brooklyn.entity.brooklynnode.effector.SelectMasterEffectorBody/g
+s/([^e].|^)brooklyn.entity.brooklynnode.effector.SetHighAvailabilityModeEffectorBody/\1org.apache.brooklyn.entity.brooklynnode.effector.SetHighAvailabilityModeEffectorBody/g
+s/([^e].|^)brooklyn.entity.brooklynnode.effector.SetHighAvailabilityPriorityEffectorBody/\1org.apache.brooklyn.entity.brooklynnode.effector.SetHighAvailabilityPriorityEffectorBody/g
+s/([^e].|^)brooklyn.entity.chef.ChefAttributeFeed/\1org.apache.brooklyn.entity.chef.ChefAttributeFeed/g
+s/([^e].|^)brooklyn.entity.chef.ChefAttributePollConfig/\1org.apache.brooklyn.entity.chef.ChefAttributePollConfig/g
+s/([^e].|^)brooklyn.entity.chef.ChefBashCommands/\1org.apache.brooklyn.entity.chef.ChefBashCommands/g
+s/([^e].|^)brooklyn.entity.chef.ChefConfig/\1org.apache.brooklyn.entity.chef.ChefConfig/g
+s/([^e].|^)brooklyn.entity.chef.ChefConfigs/\1org.apache.brooklyn.entity.chef.ChefConfigs/g
+s/([^e].|^)brooklyn.entity.chef.ChefEntity/\1org.apache.brooklyn.entity.chef.ChefEntity/g
+s/([^e].|^)brooklyn.entity.chef.ChefEntityImpl/\1org.apache.brooklyn.entity.chef.ChefEntityImpl/g
+s/([^e].|^)brooklyn.entity.chef.ChefLifecycleEffectorTasks/\1org.apache.brooklyn.entity.chef.ChefLifecycleEffectorTasks/g
+s/([^e].|^)brooklyn.entity.chef.ChefServerTasks/\1org.apache.brooklyn.entity.chef.ChefServerTasks/g
+s/([^e].|^)brooklyn.entity.chef.ChefSoloDriver/\1org.apache.brooklyn.entity.chef.ChefSoloDriver/g
+s/([^e].|^)brooklyn.entity.chef.ChefSoloTasks/\1org.apache.brooklyn.entity.chef.ChefSoloTasks/g
+s/([^e].|^)brooklyn.entity.chef.ChefTasks/\1org.apache.brooklyn.entity.chef.ChefTasks/g
+s/([^e].|^)brooklyn.entity.chef.KnifeConvergeTaskFactory/\1org.apache.brooklyn.entity.chef.KnifeConvergeTaskFactory/g
+s/([^e].|^)brooklyn.entity.chef.KnifeTaskFactory/\1org.apache.brooklyn.entity.chef.KnifeTaskFactory/g
+s/([^e].|^)brooklyn.entity.database.DatabaseNode/\1org.apache.brooklyn.entity.database.DatabaseNode/g
+s/([^e].|^)brooklyn.entity.database.DatastoreMixins/\1org.apache.brooklyn.entity.database.DatastoreMixins/g
+s/([^e].|^)brooklyn.entity.database.crate.CrateNode/\1org.apache.brooklyn.entity.database.crate.CrateNode/g
+s/([^e].|^)brooklyn.entity.database.crate.CrateNodeDriver/\1org.apache.brooklyn.entity.database.crate.CrateNodeDriver/g
+s/([^e].|^)brooklyn.entity.database.crate.CrateNodeImpl/\1org.apache.brooklyn.entity.database.crate.CrateNodeImpl/g
+s/([^e].|^)brooklyn.entity.database.crate.CrateNodeSshDriver/\1org.apache.brooklyn.entity.database.crate.CrateNodeSshDriver/g
+s/([^e].|^)brooklyn.entity.database.mariadb.MariaDbDriver/\1org.apache.brooklyn.entity.database.mariadb.MariaDbDriver/g
+s/([^e].|^)brooklyn.entity.database.mariadb.MariaDbNode/\1org.apache.brooklyn.entity.database.mariadb.MariaDbNode/g
+s/([^e].|^)brooklyn.entity.database.mariadb.MariaDbNodeImpl/\1org.apache.brooklyn.entity.database.mariadb.MariaDbNodeImpl/g
+s/([^e].|^)brooklyn.entity.database.mariadb.MariaDbSshDriver/\1org.apache.brooklyn.entity.database.mariadb.MariaDbSshDriver/g
+s/([^e].|^)brooklyn.entity.database.mysql.MySqlDriver/\1org.apache.brooklyn.entity.database.mysql.MySqlDriver/g
+s/([^e].|^)brooklyn.entity.database.mysql.MySqlNode/\1org.apache.brooklyn.entity.database.mysql.MySqlNode/g
+s/([^e].|^)brooklyn.entity.database.mysql.MySqlNodeImpl/\1org.apache.brooklyn.entity.database.mysql.MySqlNodeImpl/g
+s/([^e].|^)brooklyn.entity.database.mysql.MySqlSshDriver/\1org.apache.brooklyn.entity.database.mysql.MySqlSshDriver/g
+s/([^e].|^)brooklyn.entity.database.postgresql.PostgreSqlDriver/\1org.apache.brooklyn.entity.database.postgresql.PostgreSqlDriver/g
+s/([^e].|^)brooklyn.entity.database.postgresql.PostgreSqlNode/\1org.apache.brooklyn.entity.database.postgresql.PostgreSqlNode/g
+s/([^e].|^)brooklyn.entity.database.postgresql.PostgreSqlNodeChefImplFromScratch/\1org.apache.brooklyn.entity.database.postgresql.PostgreSqlNodeChefImplFromScratch/g
+s/([^e].|^)brooklyn.entity.database.postgresql.PostgreSqlNodeImpl/\1org.apache.brooklyn.entity.database.postgresql.PostgreSqlNodeImpl/g
+s/([^e].|^)brooklyn.entity.database.postgresql.PostgreSqlSpecs/\1org.apache.brooklyn.entity.database.postgresql.PostgreSqlSpecs/g
+s/([^e].|^)brooklyn.entity.database.postgresql.PostgreSqlSshDriver/\1org.apache.brooklyn.entity.database.postgresql.PostgreSqlSshDriver/g
+s/([^e].|^)brooklyn.entity.database.rubyrep.RubyRepDriver/\1org.apache.brooklyn.entity.database.rubyrep.RubyRepDriver/g
+s/([^e].|^)brooklyn.entity.database.rubyrep.RubyRepNode/\1org.apache.brooklyn.entity.database.rubyrep.RubyRepNode/g
+s/([^e].|^)brooklyn.entity.database.rubyrep.RubyRepNodeImpl/\1org.apache.brooklyn.entity.database.rubyrep.RubyRepNodeImpl/g
+s/([^e].|^)brooklyn.entity.database.rubyrep.RubyRepSshDriver/\1org.apache.brooklyn.entity.database.rubyrep.RubyRepSshDriver/g
+s/([^e].|^)brooklyn.entity.dns.AbstractGeoDnsService/\1org.apache.brooklyn.entity.dns.AbstractGeoDnsService/g
+s/([^e].|^)brooklyn.entity.dns.AbstractGeoDnsServiceImpl/\1org.apache.brooklyn.entity.dns.AbstractGeoDnsServiceImpl/g
+s/([^e].|^)brooklyn.entity.dns.geoscaling.GeoscalingDnsService/\1org.apache.brooklyn.entity.dns.geoscaling.GeoscalingDnsService/g
+s/([^e].|^)brooklyn.entity.dns.geoscaling.GeoscalingDnsServiceImpl/\1org.apache.brooklyn.entity.dns.geoscaling.GeoscalingDnsServiceImpl/g
+s/([^e].|^)brooklyn.entity.dns.geoscaling.GeoscalingScriptGenerator/\1org.apache.brooklyn.entity.dns.geoscaling.GeoscalingScriptGenerator/g
+s/([^e].|^)brooklyn.entity.dns.geoscaling.GeoscalingWebClient/\1org.apache.brooklyn.entity.dns.geoscaling.GeoscalingWebClient/g
+s/([^e].|^)brooklyn.entity.drivers.BasicEntityDriverManager/\1org.apache.brooklyn.core.entity.drivers.BasicEntityDriverManager/g
+s/([^e].|^)brooklyn.entity.drivers.DriverDependentEntity/\1org.apache.brooklyn.api.entity.drivers.DriverDependentEntity/g
+s/([^e].|^)brooklyn.entity.drivers.EntityDriver/\1org.apache.brooklyn.api.entity.drivers.EntityDriver/g
+s/([^e].|^)brooklyn.entity.drivers.EntityDriverManager/\1org.apache.brooklyn.api.entity.drivers.EntityDriverManager/g
+s/([^e].|^)brooklyn.entity.drivers.ReflectiveEntityDriverFactory/\1org.apache.brooklyn.core.entity.drivers.ReflectiveEntityDriverFactory/g
+s/([^e].|^)brooklyn.entity.drivers.RegistryEntityDriverFactory/\1org.apache.brooklyn.core.entity.drivers.RegistryEntityDriverFactory/g
+s/([^e].|^)brooklyn.entity.drivers.downloads.BasicDownloadRequirement/\1org.apache.brooklyn.core.entity.drivers.downloads.BasicDownloadRequirement/g
+s/([^e].|^)brooklyn.entity.drivers.downloads.BasicDownloadResolver/\1org.apache.brooklyn.core.entity.drivers.downloads.BasicDownloadResolver/g
+s/([^e].|^)brooklyn.entity.drivers.downloads.BasicDownloadTargets/\1org.apache.brooklyn.core.entity.drivers.downloads.BasicDownloadTargets/g
+s/([^e].|^)brooklyn.entity.drivers.downloads.BasicDownloadsManager/\1org.apache.brooklyn.core.entity.drivers.downloads.BasicDownloadsManager/g
+s/([^e].|^)brooklyn.entity.drivers.downloads.DownloadProducerFromCloudsoftRepo/\1org.apache.brooklyn.core.entity.drivers.downloads.DownloadProducerFromCloudsoftRepo/g
+s/([^e].|^)brooklyn.entity.drivers.downloads.DownloadProducerFromLocalRepo/\1org.apache.brooklyn.core.entity.drivers.downloads.DownloadProducerFromLocalRepo/g
+s/([^e].|^)brooklyn.entity.drivers.downloads.DownloadProducerFromProperties/\1org.apache.brooklyn.core.entity.drivers.downloads.DownloadProducerFromProperties/g
+s/([^e].|^)brooklyn.entity.drivers.downloads.DownloadProducerFromUrlAttribute/\1org.apache.brooklyn.core.entity.drivers.downloads.DownloadProducerFromUrlAttribute/g
+s/([^e].|^)brooklyn.entity.drivers.downloads.DownloadResolver/\1org.apache.brooklyn.api.entity.drivers.downloads.DownloadResolver/g
+s/([^e].|^)brooklyn.entity.drivers.downloads.DownloadResolverManager/\1org.apache.brooklyn.api.entity.drivers.downloads.DownloadResolverManager/g
+s/([^e].|^)brooklyn.entity.drivers.downloads.DownloadSubstituters/\1org.apache.brooklyn.core.entity.drivers.downloads.DownloadSubstituters/g
+s/([^e].|^)brooklyn.entity.drivers.downloads.FilenameProducers/\1org.apache.brooklyn.core.entity.drivers.downloads.FilenameProducers/g
+s/([^e].|^)brooklyn.entity.effector.AddChildrenEffector/\1org.apache.brooklyn.core.effector.AddChildrenEffector/g
+s/([^e].|^)brooklyn.entity.effector.AddEffector/\1org.apache.brooklyn.core.effector.AddEffector/g
+s/([^e].|^)brooklyn.entity.effector.AddSensor/\1org.apache.brooklyn.core.effector.AddSensor/g
+s/([^e].|^)brooklyn.entity.effector.EffectorAndBody/\1org.apache.brooklyn.core.effector.EffectorAndBody/g
+s/([^e].|^)brooklyn.entity.effector.EffectorBase/\1org.apache.brooklyn.core.effector.EffectorBase/g
+s/([^e].|^)brooklyn.entity.effector.EffectorBody/\1org.apache.brooklyn.core.effector.EffectorBody/g
+s/([^e].|^)brooklyn.entity.effector.EffectorTasks/\1org.apache.brooklyn.core.effector.EffectorTasks/g
+s/([^e].|^)brooklyn.entity.effector.EffectorWithBody/\1org.apache.brooklyn.core.effector.EffectorWithBody/g
+s/([^e].|^)brooklyn.entity.effector.Effectors/\1org.apache.brooklyn.core.effector.Effectors/g
+s/([^e].|^)brooklyn.entity.group.AbstractMembershipTrackingPolicy/\1org.apache.brooklyn.entity.group.AbstractMembershipTrackingPolicy/g
+s/([^e].|^)brooklyn.entity.group.Cluster/\1org.apache.brooklyn.entity.group.Cluster/g
+s/([^e].|^)brooklyn.entity.group.DynamicCluster/\1org.apache.brooklyn.entity.group.DynamicCluster/g
+s/([^e].|^)brooklyn.entity.group.DynamicClusterImpl/\1org.apache.brooklyn.entity.group.DynamicClusterImpl/g
+s/([^e].|^)brooklyn.entity.group.DynamicFabric/\1org.apache.brooklyn.entity.group.DynamicFabric/g
+s/([^e].|^)brooklyn.entity.group.DynamicFabricImpl/\1org.apache.brooklyn.entity.group.DynamicFabricImpl/g
+s/([^e].|^)brooklyn.entity.group.DynamicMultiGroup/\1org.apache.brooklyn.entity.group.DynamicMultiGroup/g
+s/([^e].|^)brooklyn.entity.group.DynamicMultiGroupImpl/\1org.apache.brooklyn.entity.group.DynamicMultiGroupImpl/g
+s/([^e].|^)brooklyn.entity.group.DynamicRegionsFabric/\1org.apache.brooklyn.entity.group.DynamicRegionsFabric/g
+s/([^e].|^)brooklyn.entity.group.DynamicRegionsFabricImpl/\1org.apache.brooklyn.entity.group.DynamicRegionsFabricImpl/g
+s/([^e].|^)brooklyn.entity.group.Fabric/\1org.apache.brooklyn.entity.group.Fabric/g
+s/([^e].|^)brooklyn.entity.group.QuarantineGroup/\1org.apache.brooklyn.entity.group.QuarantineGroup/g
+s/([^e].|^)brooklyn.entity.group.QuarantineGroupImpl/\1org.apache.brooklyn.entity.group.QuarantineGroupImpl/g
+s/([^e].|^)brooklyn.entity.group.StopFailedRuntimeException/\1org.apache.brooklyn.entity.group.StopFailedRuntimeException/g
+s/([^e].|^)brooklyn.entity.group.Tier/\1org.apache.brooklyn.entity.group.Tier/g
+s/([^e].|^)brooklyn.entity.group.zoneaware.AbstractZoneFailureDetector/\1org.apache.brooklyn.entity.group.zoneaware.AbstractZoneFailureDetector/g
+s/([^e].|^)brooklyn.entity.group.zoneaware.BalancingNodePlacementStrategy/\1org.apache.brooklyn.entity.group.zoneaware.BalancingNodePlacementStrategy/g
+s/([^e].|^)brooklyn.entity.group.zoneaware.CombiningZoneFailureDetector/\1org.apache.brooklyn.entity.group.zoneaware.CombiningZoneFailureDetector/g
+s/([^e].|^)brooklyn.entity.group.zoneaware.CriticalCauseZoneFailureDetector/\1org.apache.brooklyn.entity.group.zoneaware.CriticalCauseZoneFailureDetector/g
+s/([^e].|^)brooklyn.entity.group.zoneaware.ProportionalZoneFailureDetector/\1org.apache.brooklyn.entity.group.zoneaware.ProportionalZoneFailureDetector/g
+s/([^e].|^)brooklyn.entity.java.JavaAppUtils/\1org.apache.brooklyn.entity.java.JavaAppUtils/g
+s/([^e].|^)brooklyn.entity.java.JavaEntityMethods/\1org.apache.brooklyn.entity.java.JavaEntityMethods/g
+s/([^e].|^)brooklyn.entity.java.JavaSoftwareProcessDriver/\1org.apache.brooklyn.entity.java.JavaSoftwareProcessDriver/g
+s/([^e].|^)brooklyn.entity.java.JavaSoftwareProcessSshDriver/\1org.apache.brooklyn.entity.java.JavaSoftwareProcessSshDriver/g
+s/([^e].|^)brooklyn.entity.java.JmxSupport/\1org.apache.brooklyn.entity.java.JmxSupport/g
+s/([^e].|^)brooklyn.entity.java.JmxmpSslSupport/\1org.apache.brooklyn.entity.java.JmxmpSslSupport/g
+s/([^e].|^)brooklyn.entity.java.UsesJava/\1org.apache.brooklyn.entity.java.UsesJava/g
+s/([^e].|^)brooklyn.entity.java.UsesJavaMXBeans/\1org.apache.brooklyn.entity.java.UsesJavaMXBeans/g
+s/([^e].|^)brooklyn.entity.java.UsesJmx/\1org.apache.brooklyn.entity.java.UsesJmx/g
+s/([^e].|^)brooklyn.entity.java.VanillaJavaApp/\1org.apache.brooklyn.entity.java.VanillaJavaApp/g
+s/([^e].|^)brooklyn.entity.java.VanillaJavaAppDriver/\1org.apache.brooklyn.entity.java.VanillaJavaAppDriver/g
+s/([^e].|^)brooklyn.entity.java.VanillaJavaAppImpl/\1org.apache.brooklyn.entity.java.VanillaJavaAppImpl/g
+s/([^e].|^)brooklyn.entity.java.VanillaJavaAppSshDriver/\1org.apache.brooklyn.entity.java.VanillaJavaAppSshDriver/g
+s/([^e].|^)brooklyn.entity.machine.MachineAttributes/\1org.apache.brooklyn.entity.machine.MachineAttributes/g
+s/([^e].|^)brooklyn.entity.machine.MachineEntity/\1org.apache.brooklyn.entity.machine.MachineEntity/g
+s/([^e].|^)brooklyn.entity.machine.MachineEntityImpl/\1org.apache.brooklyn.entity.machine.MachineEntityImpl/g
+s/([^e].|^)brooklyn.entity.messaging.MessageBroker/\1org.apache.brooklyn.entity.messaging.MessageBroker/g
+s/([^e].|^)brooklyn.entity.messaging.Queue/\1org.apache.brooklyn.entity.messaging.Queue/g
+s/([^e].|^)brooklyn.entity.messaging.Topic/\1org.apache.brooklyn.entity.messaging.Topic/g
+s/([^e].|^)brooklyn.entity.messaging.activemq.ActiveMQBroker/\1org.apache.brooklyn.entity.messaging.activemq.ActiveMQBroker/g
+s/([^e].|^)brooklyn.entity.messaging.activemq.ActiveMQBrokerImpl/\1org.apache.brooklyn.entity.messaging.activemq.ActiveMQBrokerImpl/g
+s/([^e].|^)brooklyn.entity.messaging.activemq.ActiveMQDestination/\1org.apache.brooklyn.entity.messaging.activemq.ActiveMQDestination/g
+s/([^e].|^)brooklyn.entity.messaging.activemq.ActiveMQDestinationImpl/\1org.apache.brooklyn.entity.messaging.activemq.ActiveMQDestinationImpl/g
+s/([^e].|^)brooklyn.entity.messaging.activemq.ActiveMQDriver/\1org.apache.brooklyn.entity.messaging.activemq.ActiveMQDriver/g
+s/([^e].|^)brooklyn.entity.messaging.activemq.ActiveMQQueue/\1org.apache.brooklyn.entity.messaging.activemq.ActiveMQQueue/g
+s/([^e].|^)brooklyn.entity.messaging.activemq.ActiveMQQueueImpl/\1org.apache.brooklyn.entity.messaging.activemq.ActiveMQQueueImpl/g
+s/([^e].|^)brooklyn.entity.messaging.activemq.ActiveMQSpecs/\1org.apache.brooklyn.entity.messaging.activemq.ActiveMQSpecs/g
+s/([^e].|^)brooklyn.entity.messaging.activemq.ActiveMQSshDriver/\1org.apache.brooklyn.entity.messaging.activemq.ActiveMQSshDriver/g
+s/([^e].|^)brooklyn.entity.messaging.activemq.ActiveMQTopic/\1org.apache.brooklyn.entity.messaging.activemq.ActiveMQTopic/g
+s/([^e].|^)brooklyn.entity.messaging.activemq.ActiveMQTopicImpl/\1org.apache.brooklyn.entity.messaging.activemq.ActiveMQTopicImpl/g
+s/([^e].|^)brooklyn.entity.messaging.amqp.AmqpExchange/\1org.apache.brooklyn.entity.messaging.amqp.AmqpExchange/g
+s/([^e].|^)brooklyn.entity.messaging.amqp.AmqpServer/\1org.apache.brooklyn.entity.messaging.amqp.AmqpServer/g
+s/([^e].|^)brooklyn.entity.messaging.jms.JMSBroker/\1org.apache.brooklyn.entity.messaging.jms.JMSBroker/g
+s/([^e].|^)brooklyn.entity.messaging.jms.JMSBrokerImpl/\1org.apache.brooklyn.entity.messaging.jms.JMSBrokerImpl/g
+s/([^e].|^)brooklyn.entity.messaging.jms.JMSDestination/\1org.apache.brooklyn.entity.messaging.jms.JMSDestination/g
+s/([^e].|^)brooklyn.entity.messaging.jms.JMSDestinationImpl/\1org.apache.brooklyn.entity.messaging.jms.JMSDestinationImpl/g
+s/([^e].|^)brooklyn.entity.messaging.kafka.AbstractfKafkaSshDriver/\1org.apache.brooklyn.entity.messaging.kafka.AbstractfKafkaSshDriver/g
+s/([^e].|^)brooklyn.entity.messaging.kafka.Kafka/\1org.apache.brooklyn.entity.messaging.kafka.Kafka/g
+s/([^e].|^)brooklyn.entity.messaging.kafka.KafkaBroker/\1org.apache.brooklyn.entity.messaging.kafka.KafkaBroker/g
+s/([^e].|^)brooklyn.entity.messaging.kafka.KafkaBrokerDriver/\1org.apache.brooklyn.entity.messaging.kafka.KafkaBrokerDriver/g
+s/([^e].|^)brooklyn.entity.messaging.kafka.KafkaBrokerImpl/\1org.apache.brooklyn.entity.messaging.kafka.KafkaBrokerImpl/g
+s/([^e].|^)brooklyn.entity.messaging.kafka.KafkaBrokerSshDriver/\1org.apache.brooklyn.entity.messaging.kafka.KafkaBrokerSshDriver/g
+s/([^e].|^)brooklyn.entity.messaging.kafka.KafkaCluster/\1org.apache.brooklyn.entity.messaging.kafka.KafkaCluster/g
+s/([^e].|^)brooklyn.entity.messaging.kafka.KafkaClusterImpl/\1org.apache.brooklyn.entity.messaging.kafka.KafkaClusterImpl/g
+s/([^e].|^)brooklyn.entity.messaging.kafka.KafkaZooKeeper/\1org.apache.brooklyn.entity.messaging.kafka.KafkaZooKeeper/g
+s/([^e].|^)brooklyn.entity.messaging.kafka.KafkaZooKeeperDriver/\1org.apache.brooklyn.entity.messaging.kafka.KafkaZooKeeperDriver/g
+s/([^e].|^)brooklyn.entity.messaging.kafka.KafkaZooKeeperImpl/\1org.apache.brooklyn.entity.messaging.kafka.KafkaZooKeeperImpl/g
+s/([^e].|^)brooklyn.entity.messaging.kafka.KafkaZooKeeperSshDriver/\1org.apache.brooklyn.entity.messaging.kafka.KafkaZooKeeperSshDriver/g
+s/([^e].|^)brooklyn.entity.messaging.qpid.QpidBroker/\1org.apache.brooklyn.entity.messaging.qpid.QpidBroker/g
+s/([^e].|^)brooklyn.entity.messaging.qpid.QpidBrokerImpl/\1org.apache.brooklyn.entity.messaging.qpid.QpidBrokerImpl/g
+s/([^e].|^)brooklyn.entity.messaging.qpid.QpidDestination/\1org.apache.brooklyn.entity.messaging.qpid.QpidDestination/g
+s/([^e].|^)brooklyn.entity.messaging.qpid.QpidDestinationImpl/\1org.apache.brooklyn.entity.messaging.qpid.QpidDestinationImpl/g
+s/([^e].|^)brooklyn.entity.messaging.qpid.QpidDriver/\1org.apache.brooklyn.entity.messaging.qpid.QpidDriver/g
+s/([^e].|^)brooklyn.entity.messaging.qpid.QpidQueue/\1org.apache.brooklyn.entity.messaging.qpid.QpidQueue/g
+s/([^e].|^)brooklyn.entity.messaging.qpid.QpidQueueImpl/\1org.apache.brooklyn.entity.messaging.qpid.QpidQueueImpl/g
+s/([^e].|^)brooklyn.entity.messaging.qpid.QpidSshDriver/\1org.apache.brooklyn.entity.messaging.qpid.QpidSshDriver/g
+s/([^e].|^)brooklyn.entity.messaging.qpid.QpidTopic/\1org.apache.brooklyn.entity.messaging.qpid.QpidTopic/g
+s/([^e].|^)brooklyn.entity.messaging.qpid.QpidTopicImpl/\1org.apache.brooklyn.entity.messaging.qpid.QpidTopicImpl/g
+s/([^e].|^)brooklyn.entity.messaging.rabbit.RabbitBroker/\1org.apache.brooklyn.entity.messaging.rabbit.RabbitBroker/g
+s/([^e].|^)brooklyn.entity.messaging.rabbit.RabbitBrokerImpl/\1org.apache.brooklyn.entity.messaging.rabbit.RabbitBrokerImpl/g
+s/([^e].|^)brooklyn.entity.messaging.rabbit.RabbitDestination/\1org.apache.brooklyn.entity.messaging.rabbit.RabbitDestination/g
+s/([^e].|^)brooklyn.entity.messaging.rabbit.RabbitDriver/\1org.apache.brooklyn.entity.messaging.rabbit.RabbitDriver/g
+s/([^e].|^)brooklyn.entity.messaging.rabbit.RabbitQueue/\1org.apache.brooklyn.entity.messaging.rabbit.RabbitQueue/g
+s/([^e].|^)brooklyn.entity.messaging.rabbit.RabbitSshDriver/\1org.apache.brooklyn.entity.messaging.rabbit.RabbitSshDriver/g
+s/([^e].|^)brooklyn.entity.messaging.storm.Storm/\1org.apache.brooklyn.entity.messaging.storm.Storm/g
+s/([^e].|^)brooklyn.entity.messaging.storm.StormDeployment/\1org.apache.brooklyn.entity.messaging.storm.StormDeployment/g
+s/([^e].|^)brooklyn.entity.messaging.storm.StormDeploymentImpl/\1org.apache.brooklyn.entity.messaging.storm.StormDeploymentImpl/g
+s/([^e].|^)brooklyn.entity.messaging.storm.StormDriver/\1org.apache.brooklyn.entity.messaging.storm.StormDriver/g
+s/([^e].|^)brooklyn.entity.messaging.storm.StormImpl/\1org.apache.brooklyn.entity.messaging.storm.StormImpl/g
+s/([^e].|^)brooklyn.entity.messaging.storm.StormSshDriver/\1org.apache.brooklyn.entity.messaging.storm.StormSshDriver/g
+s/([^e].|^)brooklyn.entity.monitoring.monit.MonitDriver/\1org.apache.brooklyn.entity.monitoring.monit.MonitDriver/g
+s/([^e].|^)brooklyn.entity.monitoring.monit.MonitNode/\1org.apache.brooklyn.entity.monitoring.monit.MonitNode/g
+s/([^e].|^)brooklyn.entity.monitoring.monit.MonitNodeImpl/\1org.apache.brooklyn.entity.monitoring.monit.MonitNodeImpl/g
+s/([^e].|^)brooklyn.entity.monitoring.monit.MonitSshDriver/\1org.apache.brooklyn.entity.monitoring.monit.MonitSshDriver/g
+s/([^e].|^)brooklyn.entity.network.bind.BindDnsServer/\1org.apache.brooklyn.entity.network.bind.BindDnsServer/g
+s/([^e].|^)brooklyn.entity.network.bind.BindDnsServerDriver/\1org.apache.brooklyn.entity.network.bind.BindDnsServerDriver/g
+s/([^e].|^)brooklyn.entity.network.bind.BindDnsServerImpl/\1org.apache.brooklyn.entity.network.bind.BindDnsServerImpl/g
+s/([^e].|^)brooklyn.entity.network.bind.BindDnsServerSshDriver/\1org.apache.brooklyn.entity.network.bind.BindDnsServerSshDriver/g
+s/([^e].|^)brooklyn.entity.network.bind.BindOsSupport/\1org.apache.brooklyn.entity.network.bind.BindOsSupport/g
+s/([^e].|^)brooklyn.entity.nosql.cassandra.CassandraCluster/\1org.apache.brooklyn.entity.nosql.cassandra.CassandraCluster/g
+s/([^e].|^)brooklyn.entity.nosql.cassandra.CassandraClusterImpl/\1org.apache.brooklyn.entity.nosql.cassandra.CassandraClusterImpl/g
+s/([^e].|^)brooklyn.entity.nosql.cassandra.CassandraDatacenter/\1org.apache.brooklyn.entity.nosql.cassandra.CassandraDatacenter/g
+s/([^e].|^)brooklyn.entity.nosql.cassandra.CassandraDatacenterImpl/\1org.apache.brooklyn.entity.nosql.cassandra.CassandraDatacenterImpl/g
+s/([^e].|^)brooklyn.entity.nosql.cassandra.CassandraFabric/\1org.apache.brooklyn.entity.nosql.cassandra.CassandraFabric/g
+s/([^e].|^)brooklyn.entity.nosql.cassandra.CassandraFabricImpl/\1org.apache.brooklyn.entity.nosql.cassandra.CassandraFabricImpl/g
+s/([^e].|^)brooklyn.entity.nosql.cassandra.CassandraNode/\1org.apache.brooklyn.entity.nosql.cassandra.CassandraNode/g
+s/([^e].|^)brooklyn.entity.nosql.cassandra.CassandraNodeDriver/\1org.apache.brooklyn.entity.nosql.cassandra.CassandraNodeDriver/g
+s/([^e].|^)brooklyn.entity.nosql.cassandra.CassandraNodeImpl/\1org.apache.brooklyn.entity.nosql.cassandra.CassandraNodeImpl/g
+s/([^e].|^)brooklyn.entity.nosql.cassandra.CassandraNodeSshDriver/\1org.apache.brooklyn.entity.nosql.cassandra.CassandraNodeSshDriver/g
+s/([^e].|^)brooklyn.entity.nosql.cassandra.TokenGenerator/\1org.apache.brooklyn.entity.nosql.cassandra.TokenGenerator/g
+s/([^e].|^)brooklyn.entity.nosql.cassandra.TokenGenerators/\1org.apache.brooklyn.entity.nosql.cassandra.TokenGenerators/g
+s/([^e].|^)brooklyn.entity.nosql.couchbase.CouchbaseCluster/\1org.apache.brooklyn.entity.nosql.couchbase.CouchbaseCluster/g
+s/([^e].|^)brooklyn.entity.nosql.couchbase.CouchbaseClusterImpl/\1org.apache.brooklyn.entity.nosql.couchbase.CouchbaseClusterImpl/g
+s/([^e].|^)brooklyn.entity.nosql.couchbase.CouchbaseNode/\1org.apache.brooklyn.entity.nosql.couchbase.CouchbaseNode/g
+s/([^e].|^)brooklyn.entity.nosql.couchbase.CouchbaseNodeDriver/\1org.apache.brooklyn.entity.nosql.couchbase.CouchbaseNodeDriver/g
+s/([^e].|^)brooklyn.entity.nosql.couchbase.CouchbaseNodeImpl/\1org.apache.brooklyn.entity.nosql.couchbase.CouchbaseNodeImpl/g
+s/([^e].|^)brooklyn.entity.nosql.couchbase.CouchbaseNodeSshDriver/\1org.apache.brooklyn.entity.nosql.couchbase.CouchbaseNodeSshDriver/g
+s/([^e].|^)brooklyn.entity.nosql.couchbase.CouchbaseSyncGateway/\1org.apache.brooklyn.entity.nosql.couchbase.CouchbaseSyncGateway/g
+s/([^e].|^)brooklyn.entity.nosql.couchbase.CouchbaseSyncGatewayDriver/\1org.apache.brooklyn.entity.nosql.couchbase.CouchbaseSyncGatewayDriver/g
+s/([^e].|^)brooklyn.entity.nosql.couchbase.CouchbaseSyncGatewayImpl/\1org.apache.brooklyn.entity.nosql.couchbase.CouchbaseSyncGatewayImpl/g
+s/([^e].|^)brooklyn.entity.nosql.couchbase.CouchbaseSyncGatewaySshDriver/\1org.apache.brooklyn.entity.nosql.couchbase.CouchbaseSyncGatewaySshDriver/g
+s/([^e].|^)brooklyn.entity.nosql.couchdb.CouchDBCluster/\1org.apache.brooklyn.entity.nosql.couchdb.CouchDBCluster/g
+s/([^e].|^)brooklyn.entity.nosql.couchdb.CouchDBClusterImpl/\1org.apache.brooklyn.entity.nosql.couchdb.CouchDBClusterImpl/g
+s/([^e].|^)brooklyn.entity.nosql.couchdb.CouchDBNode/\1org.apache.brooklyn.entity.nosql.couchdb.CouchDBNode/g
+s/([^e].|^)brooklyn.entity.nosql.couchdb.CouchDBNodeDriver/\1org.apache.brooklyn.entity.nosql.couchdb.CouchDBNodeDriver/g
+s/([^e].|^)brooklyn.entity.nosql.couchdb.CouchDBNodeImpl/\1org.apache.brooklyn.entity.nosql.couchdb.CouchDBNodeImpl/g
+s/([^e].|^)brooklyn.entity.nosql.couchdb.CouchDBNodeSshDriver/\1org.apache.brooklyn.entity.nosql.couchdb.CouchDBNodeSshDriver/g
+s/([^e].|^)brooklyn.entity.nosql.elasticsearch.ElasticSearchCluster/\1org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchCluster/g
+s/([^e].|^)brooklyn.entity.nosql.elasticsearch.ElasticSearchClusterImpl/\1org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchClusterImpl/g
+s/([^e].|^)brooklyn.entity.nosql.elasticsearch.ElasticSearchNode/\1org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchNode/g
+s/([^e].|^)brooklyn.entity.nosql.elasticsearch.ElasticSearchNodeDriver/\1org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchNodeDriver/g
+s/([^e].|^)brooklyn.entity.nosql.elasticsearch.ElasticSearchNodeImpl/\1org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchNodeImpl/g
+s/([^e].|^)brooklyn.entity.nosql.elasticsearch.ElasticSearchNodeSshDriver/\1org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchNodeSshDriver/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.AbstractMongoDBServer/\1org.apache.brooklyn.entity.nosql.mongodb.AbstractMongoDBServer/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.AbstractMongoDBSshDriver/\1org.apache.brooklyn.entity.nosql.mongodb.AbstractMongoDBSshDriver/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.MongoDBClient/\1org.apache.brooklyn.entity.nosql.mongodb.MongoDBClient/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.MongoDBClientDriver/\1org.apache.brooklyn.entity.nosql.mongodb.MongoDBClientDriver/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.MongoDBClientImpl/\1org.apache.brooklyn.entity.nosql.mongodb.MongoDBClientImpl/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.MongoDBClientSshDriver/\1org.apache.brooklyn.entity.nosql.mongodb.MongoDBClientSshDriver/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.MongoDBClientSupport/\1org.apache.brooklyn.entity.nosql.mongodb.MongoDBClientSupport/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.MongoDBDriver/\1org.apache.brooklyn.entity.nosql.mongodb.MongoDBDriver/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.MongoDBReplicaSet/\1org.apache.brooklyn.entity.nosql.mongodb.MongoDBReplicaSet/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.MongoDBReplicaSetImpl/\1org.apache.brooklyn.entity.nosql.mongodb.MongoDBReplicaSetImpl/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.MongoDBServer/\1org.apache.brooklyn.entity.nosql.mongodb.MongoDBServer/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.MongoDBServerImpl/\1org.apache.brooklyn.entity.nosql.mongodb.MongoDBServerImpl/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.MongoDBSshDriver/\1org.apache.brooklyn.entity.nosql.mongodb.MongoDBSshDriver/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.ReplicaSetConfig/\1org.apache.brooklyn.entity.nosql.mongodb.ReplicaSetConfig/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.ReplicaSetMemberStatus/\1org.apache.brooklyn.entity.nosql.mongodb.ReplicaSetMemberStatus/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.CoLocatedMongoDBRouter/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.CoLocatedMongoDBRouter/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.CoLocatedMongoDBRouterImpl/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.CoLocatedMongoDBRouterImpl/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServer/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServer/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerCluster/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerCluster/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerClusterImpl/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerClusterImpl/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerDriver/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerDriver/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerImpl/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerImpl/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerSshDriver/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerSshDriver/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBRouter/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouter/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterCluster/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterCluster/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterClusterImpl/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterClusterImpl/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterDriver/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterDriver/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterImpl/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterImpl/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterSshDriver/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterSshDriver/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBShardCluster/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBShardCluster/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBShardClusterImpl/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBShardClusterImpl/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeployment/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeployment/g
+s/([^e].|^)brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeploymentImpl/\1org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeploymentImpl/g
+s/([^e].|^)brooklyn.entity.nosql.redis.RedisCluster/\1org.apache.brooklyn.entity.nosql.redis.RedisCluster/g
+s/([^e].|^)brooklyn.entity.nosql.redis.RedisClusterImpl/\1org.apache.brooklyn.entity.nosql.redis.RedisClusterImpl/g
+s/([^e].|^)brooklyn.entity.nosql.redis.RedisShard/\1org.apache.brooklyn.entity.nosql.redis.RedisShard/g
+s/([^e].|^)brooklyn.entity.nosql.redis.RedisShardImpl/\1org.apache.brooklyn.entity.nosql.redis.RedisShardImpl/g
+s/([^e].|^)brooklyn.entity.nosql.redis.RedisSlave/\1org.apache.brooklyn.entity.nosql.redis.RedisSlave/g
+s/([^e].|^)brooklyn.entity.nosql.redis.RedisSlaveImpl/\1org.apache.brooklyn.entity.nosql.redis.RedisSlaveImpl/g
+s/([^e].|^)brooklyn.entity.nosql.redis.RedisStore/\1org.apache.brooklyn.entity.nosql.redis.RedisStore/g
+s/([^e].|^)brooklyn.entity.nosql.redis.RedisStoreDriver/\1org.apache.brooklyn.entity.nosql.redis.RedisStoreDriver/g
+s/([^e].|^)brooklyn.entity.nosql.redis.RedisStoreImpl/\1org.apache.brooklyn.entity.nosql.redis.RedisStoreImpl/g
+s/([^e].|^)brooklyn.entity.nosql.redis.RedisStoreSshDriver/\1org.apache.brooklyn.entity.nosql.redis.RedisStoreSshDriver/g
+s/([^e].|^)brooklyn.entity.nosql.riak.RiakCluster/\1org.apache.brooklyn.entity.nosql.riak.RiakCluster/g
+s/([^e].|^)brooklyn.entity.nosql.riak.RiakClusterImpl/\1org.apache.brooklyn.entity.nosql.riak.RiakClusterImpl/g
+s/([^e].|^)brooklyn.entity.nosql.riak.RiakNode/\1org.apache.brooklyn.entity.nosql.riak.RiakNode/g
+s/([^e].|^)brooklyn.entity.nosql.riak.RiakNodeDriver/\1org.apache.brooklyn.entity.nosql.riak.RiakNodeDriver/g
+s/([^e].|^)brooklyn.entity.nosql.riak.RiakNodeImpl/\1org.apache.brooklyn.entity.nosql.riak.RiakNodeImpl/g
+s/([^e].|^)brooklyn.entity.nosql.riak.RiakNodeSshDriver/\1org.apache.brooklyn.entity.nosql.riak.RiakNodeSshDriver/g
+s/([^e].|^)brooklyn.entity.nosql.solr.SolrServer/\1org.apache.brooklyn.entity.nosql.solr.SolrServer/g
+s/([^e].|^)brooklyn.entity.nosql.solr.SolrServerDriver/\1org.apache.brooklyn.entity.nosql.solr.SolrServerDriver/g
+s/([^e].|^)brooklyn.entity.nosql.solr.SolrServerImpl/\1org.apache.brooklyn.entity.nosql.solr.SolrServerImpl/g
+s/([^e].|^)brooklyn.entity.nosql.solr.SolrServerSshDriver/\1org.apache.brooklyn.entity.nosql.solr.SolrServerSshDriver/g
+s/([^e].|^)brooklyn.entity.osgi.karaf.KarafContainer/\1org.apache.brooklyn.entity.osgi.karaf.KarafContainer/g
+s/([^e].|^)brooklyn.entity.osgi.karaf.KarafContainerImpl/\1org.apache.brooklyn.entity.osgi.karaf.KarafContainerImpl/g
+s/([^e].|^)brooklyn.entity.osgi.karaf.KarafDriver/\1org.apache.brooklyn.entity.osgi.karaf.KarafDriver/g
+s/([^e].|^)brooklyn.entity.osgi.karaf.KarafSshDriver/\1org.apache.brooklyn.entity.osgi.karaf.KarafSshDriver/g
+s/([^e].|^)brooklyn.entity.pool.ServerPool/\1org.apache.brooklyn.entity.machine.pool.ServerPool/g
+s/([^e].|^)brooklyn.entity.pool.ServerPoolImpl/\1org.apache.brooklyn.entity.machine.pool.ServerPoolImpl/g
+s/([^e].|^)brooklyn.entity.pool.ServerPoolLocation/\1org.apache.brooklyn.entity.machine.pool.ServerPoolLocation/g
+s/([^e].|^)brooklyn.entity.pool.ServerPoolLocationResolver/\1org.apache.brooklyn.entity.machine.pool.ServerPoolLocationResolver/g
+s/([^e].|^)brooklyn.entity.proxy.AbstractController/\1org.apache.brooklyn.entity.proxy.AbstractController/g
+s/([^e].|^)brooklyn.entity.proxy.AbstractControllerImpl/\1org.apache.brooklyn.entity.proxy.AbstractControllerImpl/g
+s/([^e].|^)brooklyn.entity.proxy.AbstractNonProvisionedController/\1org.apache.brooklyn.entity.proxy.AbstractNonProvisionedController/g
+s/([^e].|^)brooklyn.entity.proxy.AbstractNonProvisionedControllerImpl/\1org.apache.brooklyn.entity.proxy.AbstractNonProvisionedControllerImpl/g
+s/([^e].|^)brooklyn.entity.proxy.LoadBalancer/\1org.apache.brooklyn.entity.proxy.LoadBalancer/g
+s/([^e].|^)brooklyn.entity.proxy.LoadBalancerCluster/\1org.apache.brooklyn.entity.proxy.LoadBalancerCluster/g
+s/([^e].|^)brooklyn.entity.proxy.LoadBalancerClusterImpl/\1org.apache.brooklyn.entity.proxy.LoadBalancerClusterImpl/g
+s/([^e].|^)brooklyn.entity.proxy.ProxySslConfig/\1org.apache.brooklyn.entity.proxy.ProxySslConfig/g
+s/([^e].|^)brooklyn.entity.proxy.nginx.NginxConfigFileGenerator/\1org.apache.brooklyn.entity.proxy.nginx.NginxConfigFileGenerator/g
+s/([^e].|^)brooklyn.entity.proxy.nginx.NginxController/\1org.apache.brooklyn.entity.proxy.nginx.NginxController/g
+s/([^e].|^)brooklyn.entity.proxy.nginx.NginxControllerImpl/\1org.apache.brooklyn.entity.proxy.nginx.NginxControllerImpl/g
+s/([^e].|^)brooklyn.entity.proxy.nginx.NginxDefaultConfigGenerator/\1org.apache.brooklyn.entity.proxy.nginx.NginxDefaultConfigGenerator/g
+s/([^e].|^)brooklyn.entity.proxy.nginx.NginxDriver/\1org.apache.brooklyn.entity.proxy.nginx.NginxDriver/g
+s/([^e].|^)brooklyn.entity.proxy.nginx.NginxSshDriver/\1org.apache.brooklyn.entity.proxy.nginx.NginxSshDriver/g
+s/([^e].|^)brooklyn.entity.proxy.nginx.NginxTemplateConfigGenerator/\1org.apache.brooklyn.entity.proxy.nginx.NginxTemplateConfigGenerator/g
+s/([^e].|^)brooklyn.entity.proxy.nginx.UrlMapping/\1org.apache.brooklyn.entity.proxy.nginx.UrlMapping/g
+s/([^e].|^)brooklyn.entity.proxy.nginx.UrlMappingImpl/\1org.apache.brooklyn.entity.proxy.nginx.UrlMappingImpl/g
+s/([^e].|^)brooklyn.entity.proxy.nginx.UrlRewriteRule/\1org.apache.brooklyn.entity.proxy.nginx.UrlRewriteRule/g
+s/([^e].|^)brooklyn.entity.proxying.BasicEntityTypeRegistry/\1org.apache.brooklyn.core.objs.BasicEntityTypeRegistry/g
+s/([^e].|^)brooklyn.entity.proxying.EntityInitializer/\1org.apache.brooklyn.api.entity.EntityInitializer/g
+s/([^e].|^)brooklyn.entity.proxying.EntityProxy/\1org.apache.brooklyn.core.objs.proxy.EntityProxy/g
+s/([^e].|^)brooklyn.entity.proxying.EntityProxyImpl/\1org.apache.brooklyn.core.objs.proxy.EntityProxyImpl/g
+s/([^e].|^)brooklyn.entity.proxying.EntitySpec/\1org.apache.brooklyn.api.entity.EntitySpec/g
+s/([^e].|^)brooklyn.entity.proxying.EntityTypeRegistry/\1org.apache.brooklyn.api.entity.EntityTypeRegistry/g
+s/([^e].|^)brooklyn.entity.proxying.ImplementedBy/\1org.apache.brooklyn.api.entity.ImplementedBy/g
+s/([^e].|^)brooklyn.entity.proxying.InternalEntityFactory/\1org.apache.brooklyn.core.objs.proxy.InternalEntityFactory/g
+s/([^e].|^)brooklyn.entity.proxying.InternalFactory/\1org.apache.brooklyn.core.objs.proxy.InternalFactory/g
+s/([^e].|^)brooklyn.entity.proxying.InternalLocationFactory/\1org.apache.brooklyn.core.objs.proxy.InternalLocationFactory/g
+s/([^e].|^)brooklyn.entity.proxying.InternalPolicyFactory/\1org.apache.brooklyn.core.objs.proxy.InternalPolicyFactory/g
+s/([^e].|^)brooklyn.entity.rebind.AbstractBrooklynObjectRebindSupport/\1org.apache.brooklyn.core.mgmt.rebind.AbstractBrooklynObjectRebindSupport/g
+s/([^e].|^)brooklyn.entity.rebind.ActivePartialRebindIteration/\1org.apache.brooklyn.core.mgmt.rebind.ActivePartialRebindIteration/g
+s/([^e].|^)brooklyn.entity.rebind.BasicCatalogItemRebindSupport/\1org.apache.brooklyn.core.mgmt.rebind.BasicCatalogItemRebindSupport/g
+s/([^e].|^)brooklyn.entity.rebind.BasicEnricherRebindSupport/\1org.apache.brooklyn.core.mgmt.rebind.BasicEnricherRebindSupport/g
+s/([^e].|^)brooklyn.entity.rebind.BasicEntityRebindSupport/\1org.apache.brooklyn.core.mgmt.rebind.BasicEntityRebindSupport/g
+s/([^e].|^)brooklyn.entity.rebind.BasicFeedRebindSupport/\1org.apache.brooklyn.core.mgmt.rebind.BasicFeedRebindSupport/g
+s/([^e].|^)brooklyn.entity.rebind.BasicLocationRebindSupport/\1org.apache.brooklyn.core.mgmt.rebind.BasicLocationRebindSupport/g
+s/([^e].|^)brooklyn.entity.rebind.BasicPolicyRebindSupport/\1org.apache.brooklyn.core.mgmt.rebind.BasicPolicyRebindSupport/g
+s/([^e].|^)brooklyn.entity.rebind.BrooklynObjectType/\1org.apache.brooklyn.api.objs.BrooklynObjectType/g
+s/([^e].|^)brooklyn.entity.rebind.ChangeListener/\1org.apache.brooklyn.api.mgmt.rebind.ChangeListener/g
+s/([^e].|^)brooklyn.entity.rebind.ImmediateDeltaChangeListener/\1org.apache.brooklyn.core.mgmt.rebind.ImmediateDeltaChangeListener/g
+s/([^e].|^)brooklyn.entity.rebind.InitialFullRebindIteration/\1org.apache.brooklyn.core.mgmt.rebind.InitialFullRebindIteration/g
+s/([^e].|^)brooklyn.entity.rebind.PeriodicDeltaChangeListener/\1org.apache.brooklyn.core.mgmt.rebind.PeriodicDeltaChangeListener/g
+s/([^e].|^)brooklyn.entity.rebind.PersistenceExceptionHandler/\1org.apache.brooklyn.api.mgmt.rebind.PersistenceExceptionHandler/g
+s/([^e].|^)brooklyn.entity.rebind.PersistenceExceptionHandlerImpl/\1org.apache.brooklyn.core.mgmt.rebind.PersistenceExceptionHandlerImpl/g
+s/([^e].|^)brooklyn.entity.rebind.PersisterDeltaImpl/\1org.apache.brooklyn.core.mgmt.rebind.PersisterDeltaImpl/g
+s/([^e].|^)brooklyn.entity.rebind.RebindContext/\1org.apache.brooklyn.api.mgmt.rebind.RebindContext/g
+s/([^e].|^)brooklyn.entity.rebind.RebindContextImpl/\1org.apache.brooklyn.core.mgmt.rebind.RebindContextImpl/g
+s/([^e].|^)brooklyn.entity.rebind.RebindContextLookupContext/\1org.apache.brooklyn.core.mgmt.rebind.RebindContextLookupContext/g
+s/([^e].|^)brooklyn.entity.rebind.RebindExceptionHandler/\1org.apache.brooklyn.api.mgmt.rebind.RebindExceptionHandler/g
+s/([^e].|^)brooklyn.entity.rebind.RebindExceptionHandlerImpl/\1org.apache.brooklyn.core.mgmt.rebind.RebindExceptionHandlerImpl/g
+s/([^e].|^)brooklyn.entity.rebind.RebindIteration/\1org.apache.brooklyn.core.mgmt.rebind.RebindIteration/g
+s/([^e].|^)brooklyn.entity.rebind.RebindManager/\1org.apache.brooklyn.api.mgmt.rebind.RebindManager/g
+s/([^e].|^)brooklyn.entity.rebind.RebindManagerImpl/\1org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl/g
+s/([^e].|^)brooklyn.entity.rebind.RebindSupport/\1org.apache.brooklyn.api.mgmt.rebind.RebindSupport/g
+s/([^e].|^)brooklyn.entity.rebind.Rebindable/\1org.apache.brooklyn.api.mgmt.rebind.Rebindable/g
+s/([^e].|^)brooklyn.entity.rebind.TreeUtils/\1org.apache.brooklyn.core.mgmt.rebind.TreeUtils/g
+s/([^e].|^)brooklyn.entity.rebind.dto.AbstractMemento/\1org.apache.brooklyn.core.mgmt.rebind.dto.AbstractMemento/g
+s/([^e].|^)brooklyn.entity.rebind.dto.AbstractTreeNodeMemento/\1org.apache.brooklyn.core.mgmt.rebind.dto.AbstractTreeNodeMemento/g
+s/([^e].|^)brooklyn.entity.rebind.dto.BasicCatalogItemMemento/\1org.apache.brooklyn.core.mgmt.rebind.dto.BasicCatalogItemMemento/g
+s/([^e].|^)brooklyn.entity.rebind.dto.BasicEnricherMemento/\1org.apache.brooklyn.core.mgmt.rebind.dto.BasicEnricherMemento/g
+s/([^e].|^)brooklyn.entity.rebind.dto.BasicEntityMemento/\1org.apache.brooklyn.core.mgmt.rebind.dto.BasicEntityMemento/g
+s/([^e].|^)brooklyn.entity.rebind.dto.BasicFeedMemento/\1org.apache.brooklyn.core.mgmt.rebind.dto.BasicFeedMemento/g
+s/([^e].|^)brooklyn.entity.rebind.dto.BasicLocationMemento/\1org.apache.brooklyn.core.mgmt.rebind.dto.BasicLocationMemento/g
+s/([^e].|^)brooklyn.entity.rebind.dto.BasicPolicyMemento/\1org.apache.brooklyn.core.mgmt.rebind.dto.BasicPolicyMemento/g
+s/([^e].|^)brooklyn.entity.rebind.dto.BrooklynMementoImpl/\1org.apache.brooklyn.core.mgmt.rebind.dto.BrooklynMementoImpl/g
+s/([^e].|^)brooklyn.entity.rebind.dto.BrooklynMementoManifestImpl/\1org.apache.brooklyn.core.mgmt.rebind.dto.BrooklynMementoManifestImpl/g
+s/([^e].|^)brooklyn.entity.rebind.dto.EntityMementoManifestImpl/\1org.apache.brooklyn.core.mgmt.rebind.dto.EntityMementoManifestImpl/g
+s/([^e].|^)brooklyn.entity.rebind.dto.MementoValidators/\1org.apache.brooklyn.core.mgmt.rebind.dto.MementoValidators/g
+s/([^e].|^)brooklyn.entity.rebind.dto.MementosGenerators/\1org.apache.brooklyn.core.mgmt.rebind.dto.MementosGenerators/g
+s/([^e].|^)brooklyn.entity.rebind.dto.MutableBrooklynMemento/\1org.apache.brooklyn.core.mgmt.rebind.dto.MutableBrooklynMemento/g
+s/([^e].|^)brooklyn.entity.rebind.persister.BrooklynMementoPersisterToObjectStore/\1org.apache.brooklyn.core.mgmt.persist.BrooklynMementoPersisterToObjectStore/g
+s/([^e].|^)brooklyn.entity.rebind.persister.BrooklynPersistenceUtils/\1org.apache.brooklyn.core.mgmt.persist.BrooklynPersistenceUtils/g
+s/([^e].|^)brooklyn.entity.rebind.persister.CatalogItemLibrariesConverter/\1org.apache.brooklyn.core.mgmt.persist.CatalogItemLibrariesConverter/g
+s/([^e].|^)brooklyn.entity.rebind.persister.FileBasedObjectStore/\1org.apache.brooklyn.core.mgmt.persist.FileBasedObjectStore/g
+s/([^e].|^)brooklyn.entity.rebind.persister.FileBasedStoreObjectAccessor/\1org.apache.brooklyn.core.mgmt.persist.FileBasedStoreObjectAccessor/g
+s/([^e].|^)brooklyn.entity.rebind.persister.LocationWithObjectStore/\1org.apache.brooklyn.core.mgmt.persist.LocationWithObjectStore/g
+s/([^e].|^)brooklyn.entity.rebind.persister.MementoSerializer/\1org.apache.brooklyn.core.mgmt.persist.MementoSerializer/g
+s/([^e].|^)brooklyn.entity.rebind.persister.PersistMode/\1org.apache.brooklyn.core.mgmt.persist.PersistMode/g
+s/([^e].|^)brooklyn.entity.rebind.persister.PersistenceActivityMetrics/\1org.apache.brooklyn.core.mgmt.persist.PersistenceActivityMetrics/g
+s/([^e].|^)brooklyn.entity.rebind.persister.PersistenceObjectStore/\1org.apache.brooklyn.core.mgmt.persist.PersistenceObjectStore/g
+s/([^e].|^)brooklyn.entity.rebind.persister.RetryingMementoSerializer/\1org.apache.brooklyn.core.mgmt.persist.RetryingMementoSerializer/g
+s/([^e].|^)brooklyn.entity.rebind.persister.StoreObjectAccessorLocking/\1org.apache.brooklyn.core.mgmt.persist.StoreObjectAccessorLocking/g
+s/([^e].|^)brooklyn.entity.rebind.persister.XmlMementoSerializer/\1org.apache.brooklyn.core.mgmt.persist.XmlMementoSerializer/g
+s/([^e].|^)brooklyn.entity.rebind.persister.jclouds.JcloudsBlobStoreBasedObjectStore/\1org.apache.brooklyn.core.mgmt.persist.jclouds.JcloudsBlobStoreBasedObjectStore/g
+s/([^e].|^)brooklyn.entity.rebind.persister.jclouds.JcloudsStoreObjectAccessor/\1org.apache.brooklyn.core.mgmt.persist.jclouds.JcloudsStoreObjectAccessor/g
+s/([^e].|^)brooklyn.entity.rebind.plane.dto.BasicManagementNodeSyncRecord/\1org.apache.brooklyn.core.mgmt.ha.dto.BasicManagementNodeSyncRecord/g
+s/([^e].|^)brooklyn.entity.rebind.plane.dto.ManagementPlaneSyncRecordImpl/\1org.apache.brooklyn.core.mgmt.ha.dto.ManagementPlaneSyncRecordImpl/g
+s/([^e].|^)brooklyn.entity.rebind.transformer.BrooklynMementoTransformer/\1org.apache.brooklyn.core.mgmt.rebind.transformer.BrooklynMementoTransformer/g
+s/([^e].|^)brooklyn.entity.rebind.transformer.CompoundTransformer/\1org.apache.brooklyn.core.mgmt.rebind.transformer.CompoundTransformer/g
+s/([^e].|^)brooklyn.entity.rebind.transformer.CompoundTransformerLoader/\1org.apache.brooklyn.core.mgmt.rebind.transformer.CompoundTransformerLoader/g
+s/([^e].|^)brooklyn.entity.rebind.transformer.RawDataTransformer/\1org.apache.brooklyn.core.mgmt.rebind.transformer.RawDataTransformer/g
+s/([^e].|^)brooklyn.entity.rebind.transformer.impl.DeleteOrphanedLocationsTransformer/\1org.apache.brooklyn.core.mgmt.rebind.transformer.impl.DeleteOrphanedLocationsTransformer/g
+s/([^e].|^)brooklyn.entity.rebind.transformer.impl.XsltTransformer/\1org.apache.brooklyn.core.mgmt.rebind.transformer.impl.XsltTransformer/g
+s/([^e].|^)brooklyn.entity.service.EntityLaunchListener/\1org.apache.brooklyn.entity.system_service.EntityLaunchListener/g
+s/([^e].|^)brooklyn.entity.service.InitdServiceInstaller/\1org.apache.brooklyn.entity.system_service.InitdServiceInstaller/g
+s/([^e].|^)brooklyn.entity.service.SystemServiceEnricher/\1org.apache.brooklyn.entity.system_service.SystemServiceEnricher/g
+s/([^e].|^)brooklyn.entity.service.SystemServiceInstaller/\1org.apache.brooklyn.entity.system_service.SystemServiceInstaller/g
+s/([^e].|^)brooklyn.entity.service.SystemServiceInstallerFactory/\1org.apache.brooklyn.entity.system_service.SystemServiceInstallerFactory/g
+s/([^e].|^)brooklyn.entity.software.MachineInitTasks/\1org.apache.brooklyn.entity.machine.MachineInitTasks/g
+s/([^e].|^)brooklyn.entity.software.MachineLifecycleEffectorTasks/\1org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks/g
+s/([^e].|^)brooklyn.entity.software.ProvidesProvisioningFlags/\1org.apache.brooklyn.entity.machine.ProvidesProvisioningFlags/g
+s/([^e].|^)brooklyn.entity.software.SshEffectorTasks/\1org.apache.brooklyn.core.effector.ssh.SshEffectorTasks/g
+s/([^e].|^)brooklyn.entity.software.StaticSensor/\1org.apache.brooklyn.core.sensor.StaticSensor/g
+s/([^e].|^)brooklyn.entity.software.http.HttpRequestSensor/\1org.apache.brooklyn.core.sensor.http.HttpRequestSensor/g
+s/([^e].|^)brooklyn.entity.software.java.JmxAttributeSensor/\1org.apache.brooklyn.entity.java.JmxAttributeSensor/g
+s/([^e].|^)brooklyn.entity.software.ssh.SshCommandEffector/\1org.apache.brooklyn.core.effector.ssh.SshCommandEffector/g
+s/([^e].|^)brooklyn.entity.software.ssh.SshCommandSensor/\1org.apache.brooklyn.core.sensor.ssh.SshCommandSensor/g
+s/([^e].|^)brooklyn.entity.software.winrm.WindowsPerformanceCounterSensors/\1org.apache.brooklyn.core.sensor.windows.WindowsPerformanceCounterSensors/g
+s/([^e].|^)brooklyn.entity.trait.Changeable/\1org.apache.brooklyn.core.entity.trait.Changeable/g
+s/([^e].|^)brooklyn.entity.trait.Configurable/\1org.apache.brooklyn.api.objs.Configurable/g
+s/([^e].|^)brooklyn.entity.trait.HasShortName/\1org.apache.brooklyn.api.objs.HasShortName/g
+s/([^e].|^)brooklyn.entity.trait.Identifiable/\1org.apache.brooklyn.api.objs.Identifiable/g
+s/([^e].|^)brooklyn.entity.trait.MemberReplaceable/\1org.apache.brooklyn.core.entity.trait.MemberReplaceable/g
+s/([^e].|^)brooklyn.entity.trait.Resizable/\1org.apache.brooklyn.core.entity.trait.Resizable/g
+s/([^e].|^)brooklyn.entity.trait.Startable/\1org.apache.brooklyn.core.entity.trait.Startable/g
+s/([^e].|^)brooklyn.entity.trait.StartableMethods/\1org.apache.brooklyn.core.entity.trait.StartableMethods/g
+s/([^e].|^)brooklyn.entity.webapp.ControlledDynamicWebAppCluster/\1org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster/g
+s/([^e].|^)brooklyn.entity.webapp.ControlledDynamicWebAppClusterImpl/\1org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppClusterImpl/g
+s/([^e].|^)brooklyn.entity.webapp.DynamicWebAppCluster/\1org.apache.brooklyn.entity.webapp.DynamicWebAppCluster/g
+s/([^e].|^)brooklyn.entity.webapp.DynamicWebAppClusterImpl/\1org.apache.brooklyn.entity.webapp.DynamicWebAppClusterImpl/g
+s/([^e].|^)brooklyn.entity.webapp.DynamicWebAppFabric/\1org.apache.brooklyn.entity.webapp.DynamicWebAppFabric/g
+s/([^e].|^)brooklyn.entity.webapp.DynamicWebAppFabricImpl/\1org.apache.brooklyn.entity.webapp.DynamicWebAppFabricImpl/g
+s/([^e].|^)brooklyn.entity.webapp.ElasticJavaWebAppService/\1org.apache.brooklyn.entity.webapp.ElasticJavaWebAppService/g
+s/([^e].|^)brooklyn.entity.webapp.FilenameToWebContextMapper/\1org.apache.brooklyn.entity.webapp.FilenameToWebContextMapper/g
+s/([^e].|^)brooklyn.entity.webapp.HttpsSslConfig/\1org.apache.brooklyn.entity.webapp.HttpsSslConfig/g
+s/([^e].|^)brooklyn.entity.webapp.JavaWebAppDriver/\1org.apache.brooklyn.entity.webapp.JavaWebAppDriver/g
+s/([^e].|^)brooklyn.entity.webapp.JavaWebAppService/\1org.apache.brooklyn.entity.webapp.JavaWebAppService/g
+s/([^e].|^)brooklyn.entity.webapp.JavaWebAppSoftwareProcess/\1org.apache.brooklyn.entity.webapp.JavaWebAppSoftwareProcess/g
+s/([^e].|^)brooklyn.entity.webapp.JavaWebAppSoftwareProcessImpl/\1org.apache.brooklyn.entity.webapp.JavaWebAppSoftwareProcessImpl/g
+s/([^e].|^)brooklyn.entity.webapp.JavaWebAppSshDriver/\1org.apache.brooklyn.entity.webapp.JavaWebAppSshDriver/g
+s/([^e].|^)brooklyn.entity.webapp.WebAppService/\1org.apache.brooklyn.entity.webapp.WebAppService/g
+s/([^e].|^)brooklyn.entity.webapp.WebAppServiceConstants/\1org.apache.brooklyn.entity.webapp.WebAppServiceConstants/g
+s/([^e].|^)brooklyn.entity.webapp.WebAppServiceMethods/\1org.apache.brooklyn.entity.webapp.WebAppServiceMethods/g
+s/([^e].|^)brooklyn.entity.webapp.WebAppServiceMetrics/\1org.apache.brooklyn.entity.webapp.WebAppServiceMetrics/g
+s/([^e].|^)brooklyn.entity.webapp.jboss.JBoss6Driver/\1org.apache.brooklyn.entity.webapp.jboss.JBoss6Driver/g
+s/([^e].|^)brooklyn.entity.webapp.jboss.JBoss6Server/\1org.apache.brooklyn.entity.webapp.jboss.JBoss6Server/g
+s/([^e].|^)brooklyn.entity.webapp.jboss.JBoss6ServerImpl/\1org.apache.brooklyn.entity.webapp.jboss.JBoss6ServerImpl/g
+s/([^e].|^)brooklyn.entity.webapp.jboss.JBoss6SshDriver/\1org.apache.brooklyn.entity.webapp.jboss.JBoss6SshDriver/g
+s/([^e].|^)brooklyn.entity.webapp.jboss.JBoss7Driver/\1org.apache.brooklyn.entity.webapp.jboss.JBoss7Driver/g
+s/([^e].|^)brooklyn.entity.webapp.jboss.JBoss7Server/\1org.apache.brooklyn.entity.webapp.jboss.JBoss7Server/g
+s/([^e].|^)brooklyn.entity.webapp.jboss.JBoss7ServerImpl/\1org.apache.brooklyn.entity.webapp.jboss.JBoss7ServerImpl/g
+s/([^e].|^)brooklyn.entity.webapp.jboss.JBoss7SshDriver/\1org.apache.brooklyn.entity.webapp.jboss.JBoss7SshDriver/g
+s/([^e].|^)brooklyn.entity.webapp.jetty.Jetty6Driver/\1org.apache.brooklyn.entity.webapp.jetty.Jetty6Driver/g
+s/([^e].|^)brooklyn.entity.webapp.jetty.Jetty6Server/\1org.apache.brooklyn.entity.webapp.jetty.Jetty6Server/g
+s/([^e].|^)brooklyn.entity.webapp.jetty.Jetty6ServerImpl/\1org.apache.brooklyn.entity.webapp.jetty.Jetty6ServerImpl/g
+s/([^e].|^)brooklyn.entity.webapp.jetty.Jetty6SshDriver/\1org.apache.brooklyn.entity.webapp.jetty.Jetty6SshDriver/g
+s/([^e].|^)brooklyn.entity.webapp.nodejs.NodeJsWebAppDriver/\1org.apache.brooklyn.entity.webapp.nodejs.NodeJsWebAppDriver/g
+s/([^e].|^)brooklyn.entity.webapp.nodejs.NodeJsWebAppService/\1org.apache.brooklyn.entity.webapp.nodejs.NodeJsWebAppService/g
+s/([^e].|^)brooklyn.entity.webapp.nodejs.NodeJsWebAppServiceImpl/\1org.apache.brooklyn.entity.webapp.nodejs.NodeJsWebAppServiceImpl/g
+s/([^e].|^)brooklyn.entity.webapp.nodejs.NodeJsWebAppSshDriver/\1org.apache.brooklyn.entity.webapp.nodejs.NodeJsWebAppSshDriver/g
+s/([^e].|^)brooklyn.entity.webapp.tomcat.Tomcat7Driver/\1org.apache.brooklyn.entity.webapp.tomcat.Tomcat7Driver/g
+s/([^e].|^)brooklyn.entity.webapp.tomcat.Tomcat7SshDriver/\1org.apache.brooklyn.entity.webapp.tomcat.Tomcat7SshDriver/g
+s/([^e].|^)brooklyn.entity.webapp.tomcat.Tomcat8Server/\1org.apache.brooklyn.entity.webapp.tomcat.Tomcat8Server/g
+s/([^e].|^)brooklyn.entity.webapp.tomcat.Tomcat8ServerImpl/\1org.apache.brooklyn.entity.webapp.tomcat.Tomcat8ServerImpl/g
+s/([^e].|^)brooklyn.entity.webapp.tomcat.TomcatDriver/\1org.apache.brooklyn.entity.webapp.tomcat.TomcatDriver/g
+s/([^e].|^)brooklyn.entity.webapp.tomcat.TomcatServer/\1org.apache.brooklyn.entity.webapp.tomcat.TomcatServer/g
+s/([^e].|^)brooklyn.entity.webapp.tomcat.TomcatServerImpl/\1org.apache.brooklyn.entity.webapp.tomcat.TomcatServerImpl/g
+s/([^e].|^)brooklyn.entity.webapp.tomcat.TomcatSshDriver/\1org.apache.brooklyn.entity.webapp.tomcat.TomcatSshDriver/g
+s/([^e].|^)brooklyn.entity.zookeeper.AbstractZooKeeperImpl/\1org.apache.brooklyn.entity.zookeeper.AbstractZooKeeperImpl/g
+s/([^e].|^)brooklyn.entity.zookeeper.ZooKeeperDriver/\1org.apache.brooklyn.entity.zookeeper.ZooKeeperDriver/g
+s/([^e].|^)brooklyn.entity.zookeeper.ZooKeeperEnsemble/\1org.apache.brooklyn.entity.zookeeper.ZooKeeperEnsemble/g
+s/([^e].|^)brooklyn.entity.zookeeper.ZooKeeperEnsembleImpl/\1org.apache.brooklyn.entity.zookeeper.ZooKeeperEnsembleImpl/g
+s/([^e].|^)brooklyn.entity.zookeeper.ZooKeeperNode/\1org.apache.brooklyn.entity.zookeeper.ZooKeeperNode/g
+s/([^e].|^)brooklyn.entity.zookeeper.ZooKeeperNodeImpl/\1org.apache.brooklyn.entity.zookeeper.ZooKeeperNodeImpl/g
+s/([^e].|^)brooklyn.entity.zookeeper.ZooKeeperSshDriver/\1org.apache.brooklyn.entity.zookeeper.ZooKeeperSshDriver/g
+s/([^e].|^)brooklyn.event.AttributeSensor/\1org.apache.brooklyn.api.sensor.AttributeSensor/g
+s/([^e].|^)brooklyn.event.Sensor/\1org.apache.brooklyn.api.sensor.Sensor/g
+s/([^e].|^)brooklyn.event.SensorEvent/\1org.apache.brooklyn.api.sensor.SensorEvent/g
+s/([^e].|^)brooklyn.event.SensorEventListener/\1org.apache.brooklyn.api.sensor.SensorEventListener/g
+s/([^e].|^)brooklyn.event.basic.AbstractCollectionConfigKey/\1org.apache.brooklyn.core.config.internal.AbstractCollectionConfigKey/g
+s/([^e].|^)brooklyn.event.basic.AbstractStructuredConfigKey/\1org.apache.brooklyn.core.config.internal.AbstractStructuredConfigKey/g
+s/([^e].|^)brooklyn.event.basic.AttributeMap/\1org.apache.brooklyn.core.sensor.AttributeMap/g
+s/([^e].|^)brooklyn.event.basic.AttributeSensorAndConfigKey/\1org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey/g
+s/([^e].|^)brooklyn.event.basic.BasicAttributeSensor/\1org.apache.brooklyn.core.sensor.BasicAttributeSensor/g
+s/([^e].|^)brooklyn.event.basic.BasicAttributeSensorAndConfigKey/\1org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey/g
+s/([^e].|^)brooklyn.event.basic.BasicConfigKey/\1org.apache.brooklyn.core.config.BasicConfigKey/g
+s/([^e].|^)brooklyn.event.basic.BasicNotificationSensor/\1org.apache.brooklyn.core.sensor.BasicNotificationSensor/g
+s/([^e].|^)brooklyn.event.basic.BasicSensor/\1org.apache.brooklyn.core.sensor.BasicSensor/g
+s/([^e].|^)brooklyn.event.basic.BasicSensorEvent/\1org.apache.brooklyn.core.sensor.BasicSensorEvent/g
+s/([^e].|^)brooklyn.event.basic.DependentConfiguration/\1org.apache.brooklyn.core.sensor.DependentConfiguration/g
+s/([^e].|^)brooklyn.event.basic.ListConfigKey/\1org.apache.brooklyn.core.config.ListConfigKey/g
+s/([^e].|^)brooklyn.event.basic.MapConfigKey/\1org.apache.brooklyn.core.config.MapConfigKey/g
+s/([^e].|^)brooklyn.event.basic.PortAttributeSensorAndConfigKey/\1org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey/g
+s/([^e].|^)brooklyn.event.basic.Sensors/\1org.apache.brooklyn.core.sensor.Sensors/g
+s/([^e].|^)brooklyn.event.basic.SetConfigKey/\1org.apache.brooklyn.core.config.SetConfigKey/g
+s/([^e].|^)brooklyn.event.basic.StructuredConfigKey/\1org.apache.brooklyn.core.config.StructuredConfigKey/g
+s/([^e].|^)brooklyn.event.basic.SubElementConfigKey/\1org.apache.brooklyn.core.config.SubElementConfigKey/g
+s/([^e].|^)brooklyn.event.basic.TemplatedStringAttributeSensorAndConfigKey/\1org.apache.brooklyn.core.sensor.TemplatedStringAttributeSensorAndConfigKey/g
+s/([^e].|^)brooklyn.event.feed.AbstractFeed/\1org.apache.brooklyn.core.feed.AbstractFeed/g
+s/([^e].|^)brooklyn.event.feed.AttributePollHandler/\1org.apache.brooklyn.core.feed.AttributePollHandler/g
+s/([^e].|^)brooklyn.event.feed.ConfigToAttributes/\1org.apache.brooklyn.core.feed.ConfigToAttributes/g
+s/([^e].|^)brooklyn.event.feed.DelegatingPollHandler/\1org.apache.brooklyn.core.feed.DelegatingPollHandler/g
+s/([^e].|^)brooklyn.event.feed.FeedConfig/\1org.apache.brooklyn.core.feed.FeedConfig/g
+s/([^e].|^)brooklyn.event.feed.PollConfig/\1org.apache.brooklyn.core.feed.PollConfig/g
+s/([^e].|^)brooklyn.event.feed.PollHandler/\1org.apache.brooklyn.core.feed.PollHandler/g
+s/([^e].|^)brooklyn.event.feed.Poller/\1org.apache.brooklyn.core.feed.Poller/g
+s/([^e].|^)brooklyn.event.feed.function.FunctionFeed/\1org.apache.brooklyn.feed.function.FunctionFeed/g
+s/([^e].|^)brooklyn.event.feed.function.FunctionPollConfig/\1org.apache.brooklyn.feed.function.FunctionPollConfig/g
+s/([^e].|^)brooklyn.event.feed.http.HttpFeed/\1org.apache.brooklyn.feed.http.HttpFeed/g
+s/([^e].|^)brooklyn.event.feed.http.HttpPollConfig/\1org.apache.brooklyn.feed.http.HttpPollConfig/g
+s/([^e].|^)brooklyn.event.feed.http.HttpPollValue/\1org.apache.brooklyn.feed.http.HttpPollValue/g
+s/([^e].|^)brooklyn.event.feed.http.HttpPolls/\1org.apache.brooklyn.feed.http.HttpPolls/g
+s/([^e].|^)brooklyn.event.feed.http.HttpValueFunctions/\1org.apache.brooklyn.feed.http.HttpValueFunctions/g
+s/([^e].|^)brooklyn.event.feed.http.JsonFunctions/\1org.apache.brooklyn.feed.http.JsonFunctions/g
+s/([^e].|^)brooklyn.event.feed.jmx.JmxAttributePollConfig/\1org.apache.brooklyn.feed.jmx.JmxAttributePollConfig/g
+s/([^e].|^)brooklyn.event.feed.jmx.JmxFeed/\1org.apache.brooklyn.feed.jmx.JmxFeed/g
+s/([^e].|^)brooklyn.event.feed.jmx.JmxHelper/\1org.apache.brooklyn.feed.jmx.JmxHelper/g
+s/([^e].|^)brooklyn.event.feed.jmx.JmxNotificationFilters/\1org.apache.brooklyn.feed.jmx.JmxNotificationFilters/g
+s/([^e].|^)brooklyn.event.feed.jmx.JmxNotificationSubscriptionConfig/\1org.apache.brooklyn.feed.jmx.JmxNotificationSubscriptionConfig/g
+s/([^e].|^)brooklyn.event.feed.jmx.JmxOperationPollConfig/\1org.apache.brooklyn.feed.jmx.JmxOperationPollConfig/g
+s/([^e].|^)brooklyn.event.feed.jmx.JmxValueFunctions/\1org.apache.brooklyn.feed.jmx.JmxValueFunctions/g
+s/([^e].|^)brooklyn.event.feed.shell.ShellFeed/\1org.apache.brooklyn.feed.shell.ShellFeed/g
+s/([^e].|^)brooklyn.event.feed.shell.ShellPollConfig/\1org.apache.brooklyn.feed.shell.ShellPollConfig/g
+s/([^e].|^)brooklyn.event.feed.ssh.SshFeed/\1org.apache.brooklyn.feed.ssh.SshFeed/g
+s/([^e].|^)brooklyn.event.feed.ssh.SshPollConfig/\1org.apache.brooklyn.feed.ssh.SshPollConfig/g
+s/([^e].|^)brooklyn.event.feed.ssh.SshPollValue/\1org.apache.brooklyn.feed.ssh.SshPollValue/g
+s/([^e].|^)brooklyn.event.feed.ssh.SshValueFunctions/\1org.apache.brooklyn.feed.ssh.SshValueFunctions/g
+s/([^e].|^)brooklyn.event.feed.windows.WindowsPerformanceCounterFeed/\1org.apache.brooklyn.feed.windows.WindowsPerformanceCounterFeed/g
+s/([^e].|^)brooklyn.event.feed.windows.WindowsPerformanceCounterPollConfig/\1org.apache.brooklyn.feed.windows.WindowsPerformanceCounterPollConfig/g
+s/([^e].|^)brooklyn.internal.BrooklynFeatureEnablement/\1org.apache.brooklyn.core.BrooklynFeatureEnablement/g
+s/([^e].|^)brooklyn.internal.BrooklynInitialization/\1org.apache.brooklyn.core.internal.BrooklynInitialization/g
+s/([^e].|^)brooklyn.internal.storage.BrooklynStorage/\1org.apache.brooklyn.core.internal.storage.BrooklynStorage/g
+s/([^e].|^)brooklyn.internal.storage.DataGrid/\1org.apache.brooklyn.core.internal.storage.DataGrid/g
+s/([^e].|^)brooklyn.internal.storage.DataGridFactory/\1org.apache.brooklyn.core.internal.storage.DataGridFactory/g
+s/([^e].|^)brooklyn.internal.storage.Reference/\1org.apache.brooklyn.core.internal.storage.Reference/g
+s/([^e].|^)brooklyn.internal.storage.impl.BackedReference/\1org.apache.brooklyn.core.internal.storage.impl.BackedReference/g
+s/([^e].|^)brooklyn.internal.storage.impl.BasicReference/\1org.apache.brooklyn.core.internal.storage.impl.BasicReference/g
+s/([^e].|^)brooklyn.internal.storage.impl.BrooklynStorageImpl/\1org.apache.brooklyn.core.internal.storage.impl.BrooklynStorageImpl/g
+s/([^e].|^)brooklyn.internal.storage.impl.ConcurrentMapAcceptingNullVals/\1org.apache.brooklyn.core.internal.storage.impl.ConcurrentMapAcceptingNullVals/g
+s/([^e].|^)brooklyn.internal.storage.impl.hazelcast.EntityId/\1org.apache.brooklyn.internal.storage.impl.hazelcast.EntityId/g
+s/([^e].|^)brooklyn.internal.storage.impl.hazelcast.EntityStreamSerializer/\1org.apache.brooklyn.internal.storage.impl.hazelcast.EntityStreamSerializer/g
+s/([^e].|^)brooklyn.internal.storage.impl.hazelcast.HazelcastDataGrid/\1org.apache.brooklyn.internal.storage.impl.hazelcast.HazelcastDataGrid/g
+s/([^e].|^)brooklyn.internal.storage.impl.hazelcast.HazelcastDataGridFactory/\1org.apache.brooklyn.internal.storage.impl.hazelcast.HazelcastDataGridFactory/g
+s/([^e].|^)brooklyn.internal.storage.impl.inmemory.InMemoryDataGridFactory/\1org.apache.brooklyn.core.internal.storage.impl.inmemory.InMemoryDataGridFactory/g
+s/([^e].|^)brooklyn.internal.storage.impl.inmemory.InmemoryDatagrid/\1org.apache.brooklyn.core.internal.storage.impl.inmemory.InmemoryDatagrid/g
+s/([^e].|^)brooklyn.launcher.Activator/\1org.apache.brooklyn.launcher.Activator/g
+s/([^e].|^)brooklyn.launcher.BrooklynLauncher/\1org.apache.brooklyn.launcher.BrooklynLauncher/g
+s/([^e].|^)brooklyn.launcher.BrooklynServerDetails/\1org.apache.brooklyn.launcher.BrooklynServerDetails/g
+s/([^e].|^)brooklyn.launcher.BrooklynWebServer/\1org.apache.brooklyn.launcher.BrooklynWebServer/g
+s/([^e].|^)brooklyn.launcher.camp.BrooklynCampPlatformLauncher/\1org.apache.brooklyn.launcher.camp.BrooklynCampPlatformLauncher/g
+s/([^e].|^)brooklyn.launcher.camp.SimpleYamlLauncher/\1org.apache.brooklyn.launcher.camp.SimpleYamlLauncher/g
+s/([^e].|^)brooklyn.launcher.config.BrooklynDevelopmentModes/\1org.apache.brooklyn.launcher.config.BrooklynDevelopmentModes/g
+s/([^e].|^)brooklyn.launcher.config.BrooklynGlobalConfig/\1org.apache.brooklyn.launcher.config.BrooklynGlobalConfig/g
+s/([^e].|^)brooklyn.launcher.config.CustomResourceLocator/\1org.apache.brooklyn.launcher.config.CustomResourceLocator/g
+s/([^e].|^)brooklyn.launcher.config.StopWhichAppsOnShutdown/\1org.apache.brooklyn.launcher.config.StopWhichAppsOnShutdown/g
+s/([^e].|^)brooklyn.location.AddressableLocation/\1org.apache.brooklyn.api.location.AddressableLocation/g
+s/([^e].|^)brooklyn.location.BasicMachineLocationCustomizer/\1org.apache.brooklyn.api.location.BasicMachineLocationCustomizer/g
+s/([^e].|^)brooklyn.location.HardwareDetails/\1org.apache.brooklyn.api.location.HardwareDetails/g
+s/([^e].|^)brooklyn.location.Location/\1org.apache.brooklyn.api.location.Location/g
+s/([^e].|^)brooklyn.location.LocationDefinition/\1org.apache.brooklyn.api.location.LocationDefinition/g
+s/([^e].|^)brooklyn.location.LocationNotAvailableException/\1org.apache.brooklyn.api.location.LocationNotAvailableException/g
+s/([^e].|^)brooklyn.location.LocationRegistry/\1org.apache.brooklyn.api.location.LocationRegistry/g
+s/([^e].|^)brooklyn.location.LocationResolver/\1org.apache.brooklyn.api.location.LocationResolver/g
+s/([^e].|^)brooklyn.location.LocationSpec/\1org.apache.brooklyn.api.location.LocationSpec/g
+s/([^e].|^)brooklyn.location.LocationType/\1org.apache.brooklyn.api.location.LocationType/g
+s/([^e].|^)brooklyn.location.MachineDetails/\1org.apache.brooklyn.api.location.MachineDetails/g
+s/([^e].|^)brooklyn.location.MachineLocation/\1org.apache.brooklyn.api.location.MachineLocation/g
+s/([^e].|^)brooklyn.location.MachineLocationCustomizer/\1org.apache.brooklyn.api.location.MachineLocationCustomizer/g
+s/([^e].|^)brooklyn.location.MachineManagementMixins/\1org.apache.brooklyn.api.location.MachineManagementMixins/g
+s/([^e].|^)brooklyn.location.MachineProvisioningLocation/\1org.apache.brooklyn.api.location.MachineProvisioningLocation/g
+s/([^e].|^)brooklyn.location.NoMachinesAvailableException/\1org.apache.brooklyn.api.location.NoMachinesAvailableException/g
+s/([^e].|^)brooklyn.location.OsDetails/\1org.apache.brooklyn.api.location.OsDetails/g
+s/([^e].|^)brooklyn.location.PortRange/\1org.apache.brooklyn.api.location.PortRange/g
+s/([^e].|^)brooklyn.location.PortSupplier/\1org.apache.brooklyn.api.location.PortSupplier/g
+s/([^e].|^)brooklyn.location.ProvisioningLocation/\1org.apache.brooklyn.api.location.ProvisioningLocation/g
+s/([^e].|^)brooklyn.location.access.BrooklynAccessUtils/\1org.apache.brooklyn.core.location.access.BrooklynAccessUtils/g
+s/([^e].|^)brooklyn.location.access.PortForwardManager/\1org.apache.brooklyn.core.location.access.PortForwardManager/g
+s/([^e].|^)brooklyn.location.access.PortForwardManagerAuthority/\1org.apache.brooklyn.core.location.access.PortForwardManagerAuthority/g
+s/([^e].|^)brooklyn.location.access.PortForwardManagerClient/\1org.apache.brooklyn.core.location.access.PortForwardManagerClient/g
+s/([^e].|^)brooklyn.location.access.PortForwardManagerImpl/\1org.apache.brooklyn.core.location.access.PortForwardManagerImpl/g
+s/([^e].|^)brooklyn.location.access.PortForwardManagerLocationResolver/\1org.apache.brooklyn.core.location.access.PortForwardManagerLocationResolver/g
+s/([^e].|^)brooklyn.location.access.PortMapping/\1org.apache.brooklyn.core.location.access.PortMapping/g
+s/([^e].|^)brooklyn.location.basic.AbstractLocation/\1org.apache.brooklyn.core.location.AbstractLocation/g
+s/([^e].|^)brooklyn.location.basic.AbstractLocationResolver/\1org.apache.brooklyn.core.location.AbstractLocationResolver/g
+s/([^e].|^)brooklyn.location.basic.AggregatingMachineProvisioningLocation/\1org.apache.brooklyn.core.location.AggregatingMachineProvisioningLocation/g
+s/([^e].|^)brooklyn.location.basic.BasicHardwareDetails/\1org.apache.brooklyn.core.location.BasicHardwareDetails/g
+s/([^e].|^)brooklyn.location.basic.BasicLocationDefinition/\1org.apache.brooklyn.core.location.BasicLocationDefinition/g
+s/([^e].|^)brooklyn.location.basic.BasicLocationRegistry/\1org.apache.brooklyn.core.location.BasicLocationRegistry/g
+s/([^e].|^)brooklyn.location.basic.BasicMachineDetails/\1org.apache.brooklyn.core.location.BasicMachineDetails/g
+s/([^e].|^)brooklyn.location.basic.BasicMachineMetadata/\1org.apache.brooklyn.core.location.BasicMachineMetadata/g
+s/([^e].|^)brooklyn.location.basic.BasicOsDetails/\1org.apache.brooklyn.core.location.BasicOsDetails/g
+s/([^e].|^)brooklyn.location.basic.ByonLocationResolver/\1org.apache.brooklyn.location.byon.ByonLocationResolver/g
+s/([^e].|^)brooklyn.location.basic.CatalogLocationResolver/\1org.apache.brooklyn.core.location.CatalogLocationResolver/g
+s/([^e].|^)brooklyn.location.basic.Def

<TRUNCATED>


[02/28] incubator-brooklyn git commit: Add external-config-supplier registry to management context.

Posted by he...@apache.org.
Add external-config-supplier registry to management context.


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

Branch: refs/heads/master
Commit: 3ed391a25fdf52adbc51cf7b11029966995aeeba
Parents: b0b4cd8
Author: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Authored: Mon Jun 22 16:52:28 2015 +0100
Committer: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Committed: Tue Aug 25 11:49:23 2015 +0100

----------------------------------------------------------------------
 .../core/mgmt/internal/AbstractManagementContext.java  | 13 +++++++++++--
 .../core/mgmt/internal/ManagementContextInternal.java  |  3 +++
 .../mgmt/internal/NonDeploymentManagementContext.java  |  6 ++++++
 3 files changed, 20 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3ed391a2/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java
index cdd7219..76871cd 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java
@@ -164,9 +164,11 @@ public abstract class AbstractManagementContext implements ManagementContextInte
 
     private final BrooklynStorage storage;
 
+    protected final ExternalConfigSupplierRegistry configSupplierRegistry;
+
     private volatile boolean running = true;
     protected boolean startupComplete = false;
-    protected final List<Throwable> errors = Collections.synchronizedList(MutableList.<Throwable>of()); 
+    protected final List<Throwable> errors = Collections.synchronizedList(MutableList.<Throwable>of());
 
     protected Maybe<URI> uri = Maybe.absent();
     protected CatalogInitialization catalogInitialization;
@@ -191,6 +193,7 @@ public abstract class AbstractManagementContext implements ManagementContextInte
         this.highAvailabilityManager = new HighAvailabilityManagerImpl(this); // TODO leaking "this" reference; yuck
         
         this.entitlementManager = Entitlements.newManager(this, brooklynProperties);
+        this.configSupplierRegistry = new BasicExternalConfigSupplierRegistry(this); // TODO leaking "this" reference; yuck
     }
 
     @Override
@@ -478,5 +481,11 @@ public abstract class AbstractManagementContext implements ManagementContextInte
     public List<Throwable> errors() {
         return errors;
     }
-    
+
+    /** @since 0.8.0 */
+    @Override
+    public ExternalConfigSupplierRegistry getExternalConfigProviderRegistry() {
+        return configSupplierRegistry;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3ed391a2/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/ManagementContextInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/ManagementContextInternal.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/ManagementContextInternal.java
index 933f0ac..e76f2fb 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/ManagementContextInternal.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/ManagementContextInternal.java
@@ -119,4 +119,7 @@ public interface ManagementContextInternal extends ManagementContext {
     @Beta
     void setCatalogInitialization(CatalogInitialization catalogInitialization);
 
+    @Beta
+    ExternalConfigSupplierRegistry getExternalConfigProviderRegistry();
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3ed391a2/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/NonDeploymentManagementContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/NonDeploymentManagementContext.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/NonDeploymentManagementContext.java
index 7e1c324..87e8f84 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/NonDeploymentManagementContext.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/NonDeploymentManagementContext.java
@@ -465,6 +465,12 @@ public class NonDeploymentManagementContext implements ManagementContextInternal
         initialManagementContext.setCatalogInitialization(catalogInitialization);
     }
 
+    @Override
+    public ExternalConfigSupplierRegistry getExternalConfigProviderRegistry() {
+        checkInitialManagementContextReal();
+        return initialManagementContext.getExternalConfigProviderRegistry();
+    }
+
     /**
      * For when the initial management context is not "real"; the changeListener is a no-op, but everything else forbidden.
      * 


[21/28] incubator-brooklyn git commit: tidy up docs learnmore/catalog, showing locations instead of enrichers, and removing old static pages

Posted by he...@apache.org.
tidy up docs learnmore/catalog, showing locations instead of enrichers, and removing old static pages


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

Branch: refs/heads/master
Commit: 984f9bc99a3f4164dcfbe25b420e9e4e6718f135
Parents: 4a9ce77
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Sep 1 14:21:13 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Sep 1 14:21:13 2015 +0100

----------------------------------------------------------------------
 docs/style/css/catalog_items.css                |  1 -
 docs/style/js/catalog/common.js                 | 11 +++-
 .../website/learnmore/catalog/catalog-item.html | 16 +++--
 docs/website/learnmore/catalog/index.html       | 11 +++-
 ...brooklyn.entity.pool.ServerPoolLocation.html | 62 --------------------
 .../brooklyn.location.AddressableLocation.html  | 62 --------------------
 .../brooklyn.location.MachineLocation.html      | 62 --------------------
 ...tMixins$RichMachineProvisioningLocation.html | 62 --------------------
 ...yn.location.MachineProvisioningLocation.html | 62 --------------------
 ...rooklyn.location.basic.AbstractLocation.html | 62 --------------------
 ....AggregatingMachineProvisioningLocation.html | 62 --------------------
 ...ic.FixedListMachineProvisioningLocation.html | 62 --------------------
 ...neProvisioningLocation$LocalhostMachine.html | 62 --------------------
 ...ic.LocalhostMachineProvisioningLocation.html | 62 --------------------
 ...rooklyn.location.basic.LocationInternal.html | 62 --------------------
 .../brooklyn.location.basic.MultiLocation.html  | 62 --------------------
 ...ooklyn.location.basic.SimulatedLocation.html | 62 --------------------
 ...basic.SingleMachineProvisioningLocation.html | 62 --------------------
 ...oklyn.location.basic.SshMachineLocation.html | 62 --------------------
 ...bstractCloudMachineProvisioningLocation.html | 62 --------------------
 ...AbstractJcloudsSubnetSshMachineLocation.html | 62 --------------------
 ...ooklyn.location.jclouds.JcloudsLocation.html | 62 --------------------
 ...ation.jclouds.JcloudsSshMachineLocation.html | 62 --------------------
 ...followthesun.DefaultFollowTheSunModel$1.html | 62 --------------------
 24 files changed, 30 insertions(+), 1249 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/style/css/catalog_items.css
----------------------------------------------------------------------
diff --git a/docs/style/css/catalog_items.css b/docs/style/css/catalog_items.css
index a0bf0f0..d16e478 100644
--- a/docs/style/css/catalog_items.css
+++ b/docs/style/css/catalog_items.css
@@ -46,7 +46,6 @@ body {
 }
 
 a:hover > .card {
-  top: -2px;
   background-color: #f4f4f4;
   box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.2);
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/style/js/catalog/common.js
----------------------------------------------------------------------
diff --git a/docs/style/js/catalog/common.js b/docs/style/js/catalog/common.js
index d99508f..4fc5248 100644
--- a/docs/style/js/catalog/common.js
+++ b/docs/style/js/catalog/common.js
@@ -54,11 +54,20 @@ var brooklyn = (function ($, _) {
             "</div>" +
             "</a>"
         ),
+        locationCard: _.template(
+            "<a class='plain' data-type='<%= type %>' href='catalog-item.html#!locations/<%= type %>'>" +
+            "<div class='card'>" +
+            "<span class='glyphicon glyphicon-chevron-right'/>" +
+            "<div class='name'><%=name%></div>" +
+            "<div class='type'><%=type%></div>" +
+            "</div>" +
+            "</a>"
+        ),
 
         typeSummary: _.template(
             "<div class='summaryLabel'><%=name%></div>" +
             "<div class='summaryType'><%=type%></div>" +
-            "<div class='description'><%=description%></div>"
+            "<% if (typeof description !== 'undefined') { %><div class='description'><%=description%></div><% } %>"
         ),
 
         configKeyCard: _.template(

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/catalog-item.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/catalog-item.html b/docs/website/learnmore/catalog/catalog-item.html
index f52ec56..abff4c4 100644
--- a/docs/website/learnmore/catalog/catalog-item.html
+++ b/docs/website/learnmore/catalog/catalog-item.html
@@ -42,8 +42,8 @@ under the License.
 
   <ul class="nav nav-tabs">
     <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
-    <li><a href="#sensors" data-toggle="tab">Sensors</a></li>
-    <li><a href="#effectors" data-toggle="tab">Effectors</a></li>
+    <li id="sensorsTab"><a href="#sensors" data-toggle="tab">Sensors</a></li>
+    <li id="effectorsTab"><a href="#effectors" data-toggle="tab">Effectors</a></li>
   </ul>
 
   <div class="tab-content">
@@ -74,6 +74,7 @@ under the License.
       }
 
       // e.g. entities/org.apache.brooklyn.entity.brooklynnode.BrooklynNode
+      if (!brooklyn) return;
       var item = brooklyn.findItemOfType(items[args[0]], args[1]);
 
       $("#summary").html(brooklyn.typeSummary(item));
@@ -81,8 +82,8 @@ under the License.
         catalog_type = 'Entity';
       } else if(args[0] == 'policies') {
         catalog_type = 'Policy';
-      } else if(args[0] == 'enrichers') {
-        catalog_type = 'Enricher'
+      } else if(args[0] == 'locations') {
+        catalog_type = 'Location'
       }
 
       document.title = 'Brooklyn ' + catalog_type + ' - ' + item.name;
@@ -90,10 +91,17 @@ under the License.
       item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
 
       if(args[0] == 'entities') {
+        $("#sensorsTab").show();
+        $("#effectorsTab").show();
+        
         item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
         if (item.effectors != undefined) {
           item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
         }
+        
+      } else {
+        $("#sensorsTab").hide();
+        $("#effectorsTab").hide();
       }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/index.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/index.html b/docs/website/learnmore/catalog/index.html
index f987f37..0ef8d95 100644
--- a/docs/website/learnmore/catalog/index.html
+++ b/docs/website/learnmore/catalog/index.html
@@ -44,7 +44,7 @@ under the License.
   <ul class="nav nav-tabs">
     <li class="active"><a href="#entities" data-toggle="tab">Entities</a></li>
     <li><a href="#policies" data-toggle="tab">Policies</a></li>
-    <li><a href="#enrichers" data-toggle="tab">Enrichers</a></li>
+    <li><a href="#locations" data-toggle="tab">Locations</a></li>
   </ul>
 
   <div class="tab-content">
@@ -55,9 +55,12 @@ under the License.
       <input class="filter form-control" type="text" placeholder="Filter by type, e.g. ha">
     </div>
     <div class="tab-pane" id="enrichers">
+      <!-- TODO, and above -->
+      <input class="filter form-control" type="text" placeholder="Filter by type, e.g. http">
+    </div>
+    <div class="tab-pane" id="locations">
       <input class="filter form-control" type="text" placeholder="Filter by type, e.g. http">
     </div>
-    <div class="tab-pane" id="locations"></div>
     <div class="tab-pane" id="locationResolvers"></div>
   </div>
 </div>
@@ -145,7 +148,9 @@ under the License.
 
       card(items.entities, brooklyn.entityCard, "#entities");
       card(items.policies, brooklyn.policyCard, "#policies");
-      card(items.enrichers, brooklyn.enricherCard, "#enrichers");
+      //card(items.enrichers, brooklyn.enricherCard, "#enrichers");
+      card(items.locations, brooklyn.locationCard, "#locations");
+      
       //transformItemAndAddToElement(items.locations, brooklyn.locationCard, "#locations");
       //items.locationResolvers.forEach(function (element) { $("#locationResolvers").append("<tr><td>" + element + "</td></tr>"); });
       $("input.filter").each(function (index, element) {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.entity.pool.ServerPoolLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.entity.pool.ServerPoolLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.entity.pool.ServerPoolLocation.html
deleted file mode 100644
index 2e27b43..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.entity.pool.ServerPoolLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - brooklyn.entity.pool.ServerPoolLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>brooklyn.entity.pool.ServerPoolLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "brooklyn.entity.pool.ServerPoolLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.AddressableLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.AddressableLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.AddressableLocation.html
deleted file mode 100644
index bb484c2..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.AddressableLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - AddressableLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>AddressableLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "AddressableLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.MachineLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.MachineLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.MachineLocation.html
deleted file mode 100644
index edb16fd..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.MachineLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - MachineLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>MachineLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "MachineLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.MachineManagementMixins$RichMachineProvisioningLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.MachineManagementMixins$RichMachineProvisioningLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.MachineManagementMixins$RichMachineProvisioningLocation.html
deleted file mode 100644
index 09ffd3f..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.MachineManagementMixins$RichMachineProvisioningLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - MachineManagementMixins$RichMachineProvisioningLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>MachineManagementMixins$RichMachineProvisioningLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "MachineManagementMixins$RichMachineProvisioningLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.MachineProvisioningLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.MachineProvisioningLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.MachineProvisioningLocation.html
deleted file mode 100644
index f0a8282..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.MachineProvisioningLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - MachineProvisioningLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>MachineProvisioningLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "MachineProvisioningLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.basic.AbstractLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.AbstractLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.AbstractLocation.html
deleted file mode 100644
index 05ad96f..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.AbstractLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - AbstractLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>AbstractLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "AbstractLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.basic.AggregatingMachineProvisioningLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.AggregatingMachineProvisioningLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.AggregatingMachineProvisioningLocation.html
deleted file mode 100644
index 75c4101..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.AggregatingMachineProvisioningLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - AggregatingMachineProvisioningLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>AggregatingMachineProvisioningLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "AggregatingMachineProvisioningLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.basic.FixedListMachineProvisioningLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.FixedListMachineProvisioningLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.FixedListMachineProvisioningLocation.html
deleted file mode 100644
index bfedb11..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.FixedListMachineProvisioningLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - FixedListMachineProvisioningLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>FixedListMachineProvisioningLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "FixedListMachineProvisioningLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocalhostMachineProvisioningLocation$LocalhostMachine.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocalhostMachineProvisioningLocation$LocalhostMachine.html b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocalhostMachineProvisioningLocation$LocalhostMachine.html
deleted file mode 100644
index b39bc4c..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocalhostMachineProvisioningLocation$LocalhostMachine.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - LocalhostMachineProvisioningLocation$LocalhostMachine</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>LocalhostMachineProvisioningLocation$LocalhostMachine</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "LocalhostMachineProvisioningLocation$LocalhostMachine";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocalhostMachineProvisioningLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocalhostMachineProvisioningLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocalhostMachineProvisioningLocation.html
deleted file mode 100644
index 97f25e8..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocalhostMachineProvisioningLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - LocalhostMachineProvisioningLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>LocalhostMachineProvisioningLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "LocalhostMachineProvisioningLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocationInternal.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocationInternal.html b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocationInternal.html
deleted file mode 100644
index 1a71db3..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocationInternal.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - LocationInternal</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>LocationInternal</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "LocationInternal";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.basic.MultiLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.MultiLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.MultiLocation.html
deleted file mode 100644
index cf5a497..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.MultiLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - MultiLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>MultiLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "MultiLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SimulatedLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SimulatedLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SimulatedLocation.html
deleted file mode 100644
index b08d8a7..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SimulatedLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - SimulatedLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>SimulatedLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "SimulatedLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SingleMachineProvisioningLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SingleMachineProvisioningLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SingleMachineProvisioningLocation.html
deleted file mode 100644
index 168929f..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SingleMachineProvisioningLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - SingleMachineProvisioningLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>SingleMachineProvisioningLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "SingleMachineProvisioningLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SshMachineLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SshMachineLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SshMachineLocation.html
deleted file mode 100644
index b6edac1..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SshMachineLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - SshMachineLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>SshMachineLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "SshMachineLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.cloud.AbstractCloudMachineProvisioningLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.cloud.AbstractCloudMachineProvisioningLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.cloud.AbstractCloudMachineProvisioningLocation.html
deleted file mode 100644
index 958594e..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.cloud.AbstractCloudMachineProvisioningLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - AbstractCloudMachineProvisioningLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>AbstractCloudMachineProvisioningLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "AbstractCloudMachineProvisioningLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.AbstractJcloudsSubnetSshMachineLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.AbstractJcloudsSubnetSshMachineLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.AbstractJcloudsSubnetSshMachineLocation.html
deleted file mode 100644
index c2de588..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.AbstractJcloudsSubnetSshMachineLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - AbstractJcloudsSubnetSshMachineLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>AbstractJcloudsSubnetSshMachineLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "AbstractJcloudsSubnetSshMachineLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.JcloudsLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.JcloudsLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.JcloudsLocation.html
deleted file mode 100644
index 4491b02..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.JcloudsLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - JcloudsLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>JcloudsLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "JcloudsLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.JcloudsSshMachineLocation.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.JcloudsSshMachineLocation.html b/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.JcloudsSshMachineLocation.html
deleted file mode 100644
index c7fd198..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.JcloudsSshMachineLocation.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - JcloudsSshMachineLocation</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>JcloudsSshMachineLocation</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "JcloudsSshMachineLocation";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/984f9bc9/docs/website/learnmore/catalog/locations/brooklyn.policy.followthesun.DefaultFollowTheSunModel$1.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/locations/brooklyn.policy.followthesun.DefaultFollowTheSunModel$1.html b/docs/website/learnmore/catalog/locations/brooklyn.policy.followthesun.DefaultFollowTheSunModel$1.html
deleted file mode 100644
index 8172d3a..0000000
--- a/docs/website/learnmore/catalog/locations/brooklyn.policy.followthesun.DefaultFollowTheSunModel$1.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-    <title>Brooklyn Location - org.apache.brooklyn.policy.followthesun.DefaultFollowTheSunModel$1</title>
-    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-    <link rel="stylesheet" href="../items.css" type="text/css" media="screen"/>
-</head>
-<body>
-<div id="container">
-    <div id="header">
-        <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
-        </div>
-    </div>
-    <div id="content" class="objectContent">
-        <h1>org.apache.brooklyn.policy.followthesun.DefaultFollowTheSunModel$1</h1>
-        <h2 class="typeLabel">Type:</h2><span id="type"></span>
-
-        <h2>Config Keys</h2>
-        <table id="configKeys">
-            <tr>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Default Value</th>
-                <th>Description</th>
-            </tr>
-        </table>
-        <br>
-    </div>
-</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
-<script src="../items.js" type="text/javascript"></script>
-<script type="text/javascript">
-    $(document).ready(function () {
-        var item = $.grep((items.locations), function (entity) {
-            return entity.type == "org.apache.brooklyn.policy.followthesun.DefaultFollowTheSunModel$1";
-        })[0];
-        $("#type").html(item.type);
-        item.config.forEach(function (element) {
-            $("#configKeys").find("tr:last").after("<tr><td>" + element.name + "</td><td>" + element.type + "</td><td>" + element.defaultValue + "</td><td class='wordWrap'>" + element.description + "</td></tr>")
-        });
-    });
-</script>
-</body>
-</html>


[19/28] incubator-brooklyn git commit: styling of download page, align boxes

Posted by he...@apache.org.
styling of download page, align boxes


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

Branch: refs/heads/master
Commit: 8282c69ab884dee4da325e2f08f2f050cc3a73a2
Parents: 5ae2870
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Sep 1 13:36:59 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Sep 1 13:36:59 2015 +0100

----------------------------------------------------------------------
 docs/website/download/index.md | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8282c69a/docs/website/download/index.md
----------------------------------------------------------------------
diff --git a/docs/website/download/index.md b/docs/website/download/index.md
index afe1da2..4675af9 100644
--- a/docs/website/download/index.md
+++ b/docs/website/download/index.md
@@ -11,11 +11,14 @@ children:
 
 <div class="panel panel-default">
   <div class="panel-heading" markdown="1">
-#### **Recommended download:** Distribution
+#### **Distribution** (Recommended)
   </div>
   <div class="panel-body" markdown="1">
-A pre-built package that contains Apache Brooklyn and all of its dependencies in a single, easy-to-run package. Suitable for
-Linux and Windows servers and workstations that have Java 1.7<a href="#java-footnote">*</a>.
+<div style="height: 9em;" markdown="1">
+A pre-built package that contains Apache Brooklyn and all of its dependencies in a single, easy-to-run package. 
+*Suitable for Linux and Windows servers and workstations with Java installed
+(Java 1.7 or 1.8 are supported, including OpenJDK, Oracle, and IBM varieties).*
+</div>
 
 **Choose your preferred file format to see the list of mirrors where you can download this file.**
 
@@ -32,12 +35,14 @@ Linux and Windows servers and workstations that have Java 1.7<a href="#java-foot
 
 <div class="panel panel-default">
   <div class="panel-heading" markdown="1">
-#### Source code
+#### Source Code
   </div>
   <div class="panel-body" markdown="1">
+<div style="height: 9em;" markdown="1">
 The source code for Apache Brooklyn. Use this to build your own binaries and make private modifications. *If you want to
 contribute code changes to Apache Brooklyn, we recommend you get the source code from version control. Visit the
 [Developers pages](../developers/index.html) to find out more.*
+</div>
 
 **Choose your preferred file format to see the list of mirrors where you can download this file.**
 
@@ -54,8 +59,6 @@ contribute code changes to Apache Brooklyn, we recommend you get the source code
 
 We also publish Maven artifacts for Apache Brooklyn. These are available from [Maven Central](https://search.maven.org/#search%7Cga%7C1%7Corg.apache.brooklyn).
 
-<a name="java-footnote">*</a> We recommend Java 1.7 as this platform has had the most testing. Java 1.8 may also be suitable. Brooklyn is
-not compatible with Java 1.6 or earlier versions.
 
 ## What next?
 
@@ -66,7 +69,7 @@ not compatible with Java 1.6 or earlier versions.
   <div class="panel-heading" markdown="1">
 #### Verify your download
   </div>
-  <div class="panel-body" markdown="1">
+  <div class="panel-body" markdown="1" style="height: 7em;">
 
 [Hashes and signatures](verify.html) of all our artifacts are available, if you wish to verify that they are genuine.
 
@@ -80,7 +83,7 @@ not compatible with Java 1.6 or earlier versions.
   <div class="panel-heading" markdown="1">
 #### **Get Started!**
   </div>
-  <div class="panel-body" markdown="1">
+  <div class="panel-body" markdown="1" style="height: 7em;">
 
 Take a look at our guide to getting started.
 


[04/28] incubator-brooklyn git commit: Initial types for external config suppliers, and registry of same.

Posted by he...@apache.org.
Initial types for external config suppliers, and registry of same.


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

Branch: refs/heads/master
Commit: 36787a1c3c1e3625a8292e20f7d0b38dc3b34e05
Parents: 6fe9fc7
Author: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Authored: Mon Jun 22 16:20:46 2015 +0100
Committer: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Committed: Tue Aug 25 11:49:23 2015 +0100

----------------------------------------------------------------------
 .../AbstractExternalConfigSupplier.java         | 37 +++++++++++
 .../config/external/ExternalConfigSupplier.java | 34 ++++++++++
 .../BasicExternalConfigSupplierRegistry.java    | 69 ++++++++++++++++++++
 .../ExternalConfigSupplierRegistry.java         | 45 +++++++++++++
 4 files changed, 185 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/36787a1c/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java
new file mode 100644
index 0000000..6aa6967
--- /dev/null
+++ b/core/src/main/java/brooklyn/config/external/AbstractExternalConfigSupplier.java
@@ -0,0 +1,37 @@
+/*
+ * 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 brooklyn.config.external;
+
+
+/**
+ * Default superclass for all {@link ExternalConfigSupplier} implementations.
+ */
+abstract public class AbstractExternalConfigSupplier implements ExternalConfigSupplier {
+
+    private final String name;
+
+    protected AbstractExternalConfigSupplier(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/36787a1c/core/src/main/java/brooklyn/config/external/ExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/ExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/ExternalConfigSupplier.java
new file mode 100644
index 0000000..0df7917
--- /dev/null
+++ b/core/src/main/java/brooklyn/config/external/ExternalConfigSupplier.java
@@ -0,0 +1,34 @@
+/*
+ * 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 brooklyn.config.external;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * Provider of "externalised" entity configuration that is resolved at runtime.
+ *
+ * @since 0.8.0
+ */
+@Beta
+public interface ExternalConfigSupplier {
+
+    String getName();
+    String get(String key);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/36787a1c/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java b/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
new file mode 100644
index 0000000..605ea11
--- /dev/null
+++ b/core/src/main/java/brooklyn/management/internal/BasicExternalConfigSupplierRegistry.java
@@ -0,0 +1,69 @@
+/*
+ * 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 brooklyn.management.internal;
+
+import java.util.Map;
+
+import brooklyn.config.external.ExternalConfigSupplier;
+
+import com.google.common.collect.Maps;
+
+/**
+ * Simple registry implementation.
+ *
+ * Permits a number of {@link ExternalConfigSupplier} instances to be registered, each with a unique name, for future
+ * (deferred) lookup of configuration values.
+ */
+public class BasicExternalConfigSupplierRegistry implements ExternalConfigSupplierRegistry {
+
+    private final Map<String, ExternalConfigSupplier> providersByName = Maps.newLinkedHashMap();
+    private final Object providersMapMutex = new Object();
+
+    public BasicExternalConfigSupplierRegistry() {
+    }
+
+    @Override
+    public void addProvider(String name, ExternalConfigSupplier supplier) {
+        synchronized (providersMapMutex) {
+            if (providersByName.containsKey(name))
+                throw new IllegalArgumentException("Provider already registered with name '" + name + "'");
+            providersByName.put(name, supplier);
+        }
+        LOG.info("Added external config supplier named '" + name + "': " + supplier);
+    }
+
+    @Override
+    public void removeProvider(String name) {
+        synchronized (providersMapMutex) {
+            ExternalConfigSupplier supplier = providersByName.remove(name);
+            LOG.info("Removed external config supplier named '" + name + "': " + supplier);
+        }
+    }
+
+    @Override
+    public String getConfig(String providerName, String key) {
+        synchronized (providersMapMutex) {
+            ExternalConfigSupplier provider = providersByName.get(providerName);
+            if (provider == null)
+                throw new IllegalArgumentException("No provider found with name '" + providerName + "'");
+            return provider.get(key);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/36787a1c/core/src/main/java/brooklyn/management/internal/ExternalConfigSupplierRegistry.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/ExternalConfigSupplierRegistry.java b/core/src/main/java/brooklyn/management/internal/ExternalConfigSupplierRegistry.java
new file mode 100644
index 0000000..66eb127
--- /dev/null
+++ b/core/src/main/java/brooklyn/management/internal/ExternalConfigSupplierRegistry.java
@@ -0,0 +1,45 @@
+/*
+ * 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 brooklyn.management.internal;
+
+import com.google.common.annotations.Beta;
+
+import brooklyn.config.external.ExternalConfigSupplier;
+
+
+/**
+ * Permits a number of {@link ExternalConfigSupplier} instances to be registered, each with a unique name, for future
+ * (deferred) lookup of configuration values.
+ *
+ * @since 0.8.0
+ */
+@Beta
+public interface ExternalConfigSupplierRegistry {
+
+    void addProvider(String name, ExternalConfigSupplier provider);
+    void removeProvider(String name);
+
+    /**
+     * Searches the named {@link ExternalConfigSupplier} for the config value associated with the specified key.
+     * Quietly returns <code>null</code> if no config exists for the specified key.
+     * Throws {@link IllegalArgumentException} if no {@link ExternalConfigSupplier} exists for the passed name.
+     */
+    public String getConfig(String providerName, String key);
+
+}


[07/28] incubator-brooklyn git commit: Added basic concrete ExternalConfigSupplier implementations.

Posted by he...@apache.org.
Added basic concrete ExternalConfigSupplier implementations.


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

Branch: refs/heads/master
Commit: b8eb3c740b3501bbcce12175a9375731f9195a94
Parents: f9cf496
Author: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Authored: Mon Jun 22 17:33:41 2015 +0100
Committer: Alasdair Hodge <gi...@alasdairhodge.co.uk>
Committed: Tue Aug 25 11:51:20 2015 +0100

----------------------------------------------------------------------
 .../external/InPlaceExternalConfigSupplier.java | 49 ++++++++++++++
 .../PropertiesFileExternalConfigSupplier.java   | 67 ++++++++++++++++++++
 2 files changed, 116 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b8eb3c74/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
new file mode 100644
index 0000000..2279386
--- /dev/null
+++ b/core/src/main/java/brooklyn/config/external/InPlaceExternalConfigSupplier.java
@@ -0,0 +1,49 @@
+/*
+ * 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 brooklyn.config.external;
+
+import java.util.Map;
+
+
+/**
+ * Instances are populated via sub-keys specified directly in the <tt>brooklyn.properties</tt> file:
+ *
+ * <pre>
+ * brooklyn.external.foo = brooklyn.management.config.external.InPlaceConfigSupplier
+ * brooklyn.external.foo.key1 = value1
+ * brooklyn.external.foo.key2 = value2
+ * </pre>
+ *
+ * This will instantiate an <code>InPlaceExternalConfigSupplier</code> populated with values for <code>key1</code>
+ * and <code>key2</code>. Note that the <code>brooklyn.external.&lt;name&gt;</code> prefix is stripped.
+ */
+public class InPlaceExternalConfigSupplier extends AbstractExternalConfigSupplier {
+
+    private final Map<?,?> config;
+
+    public InPlaceExternalConfigSupplier(String name, Map<?, ?> config) {
+        super(name);
+        this.config = config;
+    }
+
+    public String get(String key) {
+        return (String) config.get(key);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b8eb3c74/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java b/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
new file mode 100644
index 0000000..a4d48d9
--- /dev/null
+++ b/core/src/main/java/brooklyn/config/external/PropertiesFileExternalConfigSupplier.java
@@ -0,0 +1,67 @@
+/*
+ * 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 brooklyn.config.external;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Map;
+import java.util.Properties;
+
+import brooklyn.util.stream.Streams;
+
+
+/**
+ * Instances are populated from a plain java properties file named in the passed <code>config</code> map
+ * under the <code>propertiesUrl</code> key:
+ *
+ * <pre>
+ * brooklyn.external.foo = brooklyn.management.config.external.PropertiesFileExternalConfigSupplier
+ * brooklyn.external.foo.propertiesUrl = http://brooklyn.example.com/config/foo.properties
+ * </pre>
+ */
+public class PropertiesFileExternalConfigSupplier extends AbstractExternalConfigSupplier {
+
+    public static final String PROPERTIES_URL = "propertiesUrl";
+
+    private final Properties properties;
+
+    public PropertiesFileExternalConfigSupplier(String name, Map<?, ?> config) throws IOException {
+        super(name);
+        this.properties = loadProperties((String) config.get(PROPERTIES_URL));
+    }
+
+    public String get(String key) {
+        return properties.getProperty(key);
+    }
+
+    private static Properties loadProperties(String propertiesUrl) throws IOException {
+        InputStream is = null;
+        try {
+            is = new URL(propertiesUrl).openStream();
+            Properties p = new Properties();
+            p.load(is);
+            return p;
+
+        } finally {
+            Streams.closeQuietly(is);
+        }
+    }
+
+}


[18/28] incubator-brooklyn git commit: fix download links and add reference to snapshots

Posted by he...@apache.org.
fix download links and add reference to snapshots


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

Branch: refs/heads/master
Commit: 5ae287066726dad91eb4375dc294ec4a961dd2cc
Parents: f17da16
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Sep 1 13:09:42 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Sep 1 13:09:42 2015 +0100

----------------------------------------------------------------------
 .../_extra/big_examples/before-begin.include.md |  2 +-
 docs/_includes/fields.md                        | 26 ++-----
 docs/_plugins/brooklyn_metadata.rb              | 14 +---
 docs/guide/misc/download.md                     | 71 ++++++++++----------
 docs/website/documentation/index.md             |  6 +-
 docs/website/index.md                           |  3 +-
 docs/website/meta/versions.md                   | 24 ++++++-
 7 files changed, 69 insertions(+), 77 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5ae28706/docs/_extra/big_examples/before-begin.include.md
----------------------------------------------------------------------
diff --git a/docs/_extra/big_examples/before-begin.include.md b/docs/_extra/big_examples/before-begin.include.md
index e05f9f1..5170c64 100644
--- a/docs/_extra/big_examples/before-begin.include.md
+++ b/docs/_extra/big_examples/before-begin.include.md
@@ -11,7 +11,7 @@ To use the examples, you'll need ``curl``, ``git``, ``java`` (1.6+), and ``maven
 {% if SNAPSHOT %}
 
 First, grab a copy of the Brooklyn snapshot distribution you wish to use from 
-[the Sonatype snapshot repo]({{ sonatype_repo_groupid_url }}brooklyn-dist/)
+[the maven repository]({{ this_dist_url_list }})
 (or build it yourself following instructions [here]({{ site.path.guide }}/dev/build/)),
 unpack it to your favourite location (e.g. `$(pwd)`), 
 and export `BROOKLYN_HOME`:

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5ae28706/docs/_includes/fields.md
----------------------------------------------------------------------
diff --git a/docs/_includes/fields.md b/docs/_includes/fields.md
index 67dd032..d9e74b7 100644
--- a/docs/_includes/fields.md
+++ b/docs/_includes/fields.md
@@ -14,37 +14,19 @@
 {% capture apache_snapshots_repo_groupid_url %}{{ this_repo_base_url }}/content/repositories/snapshots/{{ brooklyn_group_id_path }}{% endcapture %}
 {% capture apache_releases_repo_groupid_url %}{{ this_repo_base_url }}/content/repositories/releases/{{ brooklyn_group_id_path }}{% endcapture %}
 
-{% capture this_repo_base_url_content %}{{ apache_snapshots_repo_groupid_url }}{% endcapture %}
+{% capture this_repo_base_url_content %}{% if SNAPSHOT %}{{ apache_snapshots_repo_groupid_url }}{% else %}{{ apache_releases_repo_groupid_url }}{% endif %}{% endcapture %}
 {% capture this_dist_url_list %}{{ this_repo_base_url_content }}/brooklyn-dist/{{ site.brooklyn-version }}/{% endcapture %}
-{% capture this_alljar_url_list %}{{ this_repo_base_url_content }}/brooklyn-all/{{ site.brooklyn-version }}/{% endcapture %}
 
 {% if SNAPSHOT %}
-  {% capture this_dist_url_zip %}{{ this_repo_base_url_artifact }}?r=snapshots&g={{ brooklyn_group_id }}&a=brooklyn-dist&v={{ site.brooklyn-version }}&e=zip&c=dist{% endcapture %}
-  {% capture this_dist_url_tgz %}{{ this_repo_base_url_artifact }}?r=snapshots&g={{ brooklyn_group_id }}&a=brooklyn-dist&v={{ site.brooklyn-version }}&e=tar.gz&c=dist{% endcapture %}
-  {% capture this_alljar_url_jar %}{{ this_repo_base_url_artifact }}?r=snapshots&g={{ brooklyn_group_id }}&a=brooklyn-all&v={{ site.brooklyn-version }}&e=jar&c=with-dependencies{% endcapture %}
+  <!-- put e field last, so we can append .sha1 -->
+  {% capture this_dist_url_zip %}{{ this_repo_base_url_artifact }}?r=snapshots&g={{ brooklyn_group_id }}&a=brooklyn-dist&v={{ site.brooklyn-version }}&c=dist&e=zip{% endcapture %}
+  {% capture this_dist_url_tgz %}{{ this_repo_base_url_artifact }}?r=snapshots&g={{ brooklyn_group_id }}&a=brooklyn-dist&v={{ site.brooklyn-version }}&c=dist&e=tar.gz{% endcapture %}
 {% else %}<!--- RELEASE -->
   {% capture this_dist_url_zip %}{{ this_dist_url_list }}/brooklyn-dist-{{ site.brooklyn-version }}-dist.zip{% endcapture %}
   {% capture this_dist_url_tgz %}{{ this_dist_url_list }}/brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz{% endcapture %}
-  {% capture this_alljar_url_jar %}{{ this_alljar_url_list }}/brooklyn-all-{{ site.brooklyn-version }}-with-dependencies.jar{% endcapture %}
 {% endif %}
 
 {% capture this_anything_url_search %}{{ this_repo_base_url_search }};gav~{{ brooklyn_group_id }}~~{{ site.brooklyn-version }}~~{% endcapture %}
 {% capture this_dist_url_search %}{{ this_repo_base_url_search }};gav~{{ brooklyn_group_id }}~brooklyn-dist~{{ site.brooklyn-version }}~~{% endcapture %}
-{% capture this_alljar_url_search %}{{ this_repo_base_url_search }};gav~{{ brooklyn_group_id }}~brooklyn-all~{{ site.brooklyn-version }}~~{% endcapture %}
 
-<!-- OLD things -->
 
-{% capture brooklyn_examples_branch %}{% if SNAPSHOT %}{{ site.brooklyn-snapshot-git-branch }}{% else %}{{ site.brooklyn-version }}{% endif %}{% endcapture %}
-
-{% capture cloudsoft_snapshots_base_url %}http://developers.cloudsoftcorp.com/maven/snapshots/{% endcapture %}
-{% capture cloudsoft_releases_base_url %}http://developers.cloudsoftcorp.com/maven/releases/{% endcapture %}
-{% capture cloudsoft_this_version_base_url %}http://developers.cloudsoftcorp.com/maven/{% if SNAPSHOT %}snapshots/{% else %}releases/{% endif %}{% endcapture %}
-
-{% capture cloudsoft_this_version_groupid_url %}{{ cloudsoft_this_version_base_url }}io/brooklyn/{% endcapture %}
-{% capture cloudsoft_this_dist_url_dir %}{{ cloudsoft_this_version_groupid_url }}brooklyn-dist/{{ site.brooklyn-version }}/{% endcapture %}
-{% capture cloudsoft_this_alljar_url_dir %}{{ cloudsoft_this_version_groupid_url }}brooklyn-all/{{ site.brooklyn-version }}/{% endcapture %}
-
-<!--- both snapshots and releases -->
-{% capture sonatype_repo_groupid_url %}https://oss.sonatype.org/content/groups/public/io/brooklyn/{% endcapture %}
-<!--- releases --> 
-{% capture mavencentral_repo_groupid_url %}http://repo1.maven.org/maven2/io/brooklyn/{% endcapture %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5ae28706/docs/_plugins/brooklyn_metadata.rb
----------------------------------------------------------------------
diff --git a/docs/_plugins/brooklyn_metadata.rb b/docs/_plugins/brooklyn_metadata.rb
index 34d5dd0..d7913a1 100644
--- a/docs/_plugins/brooklyn_metadata.rb
+++ b/docs/_plugins/brooklyn_metadata.rb
@@ -21,16 +21,11 @@ module BrooklynMetadata
             "search" => {
                 "all" => "https://oss.sonatype.org/index.html#nexus-search;gav~io.brooklyn~~#{ BrooklynMetadata::BROOKLYN_VERSION }~~",
                 "dist" => "https://oss.sonatype.org/index.html#nexus-search;gav~io.brooklyn~brooklyn-dist~#{ BrooklynMetadata::BROOKLYN_VERSION }~~",
-                "alljar" => "https://oss.sonatype.org/index.html#nexus-search;gav~io.brooklyn~brooklyn-dist~#{ BrooklynMetadata::BROOKLYN_VERSION }~~"
             },
             "dist" => {
                 "base" => "https://oss.sonatype.org/content/groups/public/io/brooklyn/brooklyn-dist/#{ BrooklynMetadata::BROOKLYN_VERSION }/",
                 "zip" => "https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=io.brooklyn&v=#{ BrooklynMetadata::BROOKLYN_VERSION }&a=brooklyn-dist&c=dist&e=zip",
                 "tgz" => "https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=io.brooklyn&v=#{ BrooklynMetadata::BROOKLYN_VERSION }&a=brooklyn-dist&c=dist&e=tar.gz"
-            },
-            "alljar" => {
-                "base" => "https://oss.sonatype.org/content/groups/public/io/brooklyn/brooklyn-all/#{ BrooklynMetadata::BROOKLYN_VERSION }/",
-                "jar" => "https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=io.brooklyn&v=#{ BrooklynMetadata::BROOKLYN_VERSION }}&a=brooklyn-all&c=with-dependencies&e=jar"
             }
         }
         
@@ -40,16 +35,11 @@ module BrooklynMetadata
             "search" => {
                 "all" => "http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22io.brooklyn%22%20AND%20v%3A%22#{ BrooklynMetadata::BROOKLYN_VERSION }%22",
                 "dist" => "http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22io.brooklyn%22%20AND%20a%3A%22brooklyn-dist%22%20AND%20v%3A%22#{ BrooklynMetadata::BROOKLYN_VERSION }%22",
-                "alljar" => "http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22io.brooklyn%22%20AND%20a%3A%22brooklyn-all%22%20AND%20v%3A%22#{ BrooklynMetadata::BROOKLYN_VERSION }%22"
             },
             "dist" => {
                 "base" => "http://repo1.maven.org/maven2/io/brooklyn/brooklyn-dist/#{ BrooklynMetadata::BROOKLYN_VERSION }/",
                 "zip" => "http://repo1.maven.org/maven2/io/brooklyn/brooklyn-dist/#{ BrooklynMetadata::BROOKLYN_VERSION }/brooklyn-dist-#{ BrooklynMetadata::BROOKLYN_VERSION }-dist.zip",
                 "tgz" => "http://repo1.maven.org/maven2/io/brooklyn/brooklyn-dist/#{ BrooklynMetadata::BROOKLYN_VERSION }/brooklyn-dist-#{ BrooklynMetadata::BROOKLYN_VERSION }-dist.tar.gz"
-            },
-            "alljar" => {
-                "base" => "http://repo1.maven.org/maven2/io/brooklyn/brooklyn-all/#{ BrooklynMetadata::BROOKLYN_VERSION }/",
-                "jar" => "http://repo1.maven.org/maven2/io/brooklyn/brooklyn-all/#{ BrooklynMetadata::BROOKLYN_VERSION }/brooklyn-all-#{ BrooklynMetadata::BROOKLYN_VERSION }-with-dependencies.jar"
             }
         }
       end
@@ -59,7 +49,9 @@ module BrooklynMetadata
       site.config['brooklyn'] = {
           "version" => BrooklynMetadata::BROOKLYN_VERSION,
           "is_snapshot" => is_snapshot,
-          "url" => url_set
+          "is_release" => !is_snapshot,
+          "url" => url_set,
+          "git_branch" => git_branch
       }
 
       # config is preferred of data, because you can write just {{ site.brooklyn.xxx }},

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5ae28706/docs/guide/misc/download.md
----------------------------------------------------------------------
diff --git a/docs/guide/misc/download.md b/docs/guide/misc/download.md
index c79ef16..fdec037 100644
--- a/docs/guide/misc/download.md
+++ b/docs/guide/misc/download.md
@@ -16,21 +16,20 @@ For more information, see the [main download page]({{ site.path.website }}/downl
   <tr>
 	<th style='text-align:left'>Download</th>
 	<th style='text-align:left'>File/Format</th>
-	<th>checksums <small><a href="{{ site.path.website }}/download/verify.html" title='Instructions on verifying the integrity of your downloads.'>(?)</a></small></th>
+	<th>checksums <small><a href="{{ site.path.website }}/download/verify.html" title='Instructions on verifying the integrity of your downloads.{% if site.brooklyn.is_snapshot %} May not be available for SNAPSHOT artifacts.{% endif %}'>(?)</a></small></th>
   </tr>
   <tr>
 	<td style='text-align:left;vertical-align:top' rowspan='2'>Distro</td>
 	<td style='text-align:left'><a href='{{ this_dist_url_zip }}' title='Download ZIP archive'>brooklyn-dist-{{ site.brooklyn-version }}-dist.zip</a></td>
-	<td><small><a href='{{ this_dist_url_zip }}.asc'>PGP</a>, <a href='{{ this_dist_url_zip }}.sha1'>SHA1</a></small></td>
+	<td><small>
+	  {% if site.brooklyn.is_release %}<a href='{{ this_dist_url_zip }}.asc'>PGP</a>, {% endif %}
+	  <a href='{{ this_dist_url_zip }}.sha1'>SHA1</a></small></td>
   </tr>
   <tr>
 	<td style='text-align:left'><a href='{{ this_dist_url_tgz }}' title='Download TGZ archive'>brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz</a></td>
-	<td ><small><a href='{{ this_dist_url_tgz }}.asc'>PGP</a>, <a href='{{ this_dist_url_tgz }}.sha1'>SHA1</a></small></td>
-  </tr>
-  <tr>
-	<td style='text-align:left'>All Jar</td>
-	<td style='text-align:left'><a href='{{ this_alljar_url_jar }}' title='Download the ALL JAR'>brooklyn-all-{{ site.brooklyn-version }}-with-dependencies.jar</a></td>
-	<td><small><a href='{{ this_alljar_url_jar }}.asc'>PGP</a>, <a href='{{ this_alljar_url_jar }}.sha1'>SHA1</a></small></td>
+	<td ><small>
+	  {% if site.brooklyn.is_release %}<a href='{{ this_dist_url_tgz }}.asc'>PGP</a>, {% endif %}
+	  <a href='{{ this_dist_url_tgz }}.sha1'>SHA1</a></small></td>
   </tr>
   <tr>
     <td style='text-align:left'>Apache Repo</td>
@@ -51,41 +50,25 @@ For more information, see the [main download page]({{ site.path.website }}/downl
 
 <a name="distro"></a>
 
-## The Distro
+## The Dist
 
-The distribution archive contains Brooklyn as a standalone executable package.
+The binary distribution archive contains Brooklyn as a standalone executable package.
 
 * [This version ZIP]({{ this_dist_url_zip }})
 * [This version TGZ]({{ this_dist_url_tgz }})
 * [Apache stable versions]({{ apache_releases_repo_groupid_url }}/brooklyn-dist/)
 * [Apache snapshot versions]({{ apache_snapshots_repo_groupid_url }}/brooklyn-dist/)
 
-Very old versions are available at [Maven Central]({{ mavencentral_repo_groupid_url }}brooklyn-dist/) for stable releases
-and [Sonatype]({{ sonatype_repo_groupid_url }}brooklyn-dist/) for snapshot versions.
+Released versions are also available at 
+[Maven Central](https://search.maven.org/#search%7Cga%7C1%7Corg.apache.brooklyn).
 
 {% if site.brooklyn-version contains 'SNAPSHOT' %} 
 **Please note**: You are reading the documentation for a snapshot version of Brooklyn.
-You should always confirm that the source and date for snapshot artifacts.
+You should always confirm that the source repository and datestamp for downloaded snapshot artifacts
+match the intended dependencies, as snapshot artifacts change as code is written.
 {% endif %}
 
 
-<a name="alljar"></a>
-
-## The All Jar
-
-This is a single JAR containing all of Brooklyn and its dependencies, for developing Brooklyn into your own applications. If not using maven, just add it to your classpath.
-
-* [This version]({{ this_alljar_url_jar }})
-* [All Apache stable versions]({{ apache_releases_repo_groupid_url }}/brooklyn-all/)
-* [All Apache snapshot versions]({{ apache_snapshots_repo_groupid_url }}/brooklyn-all/)
-
-Very old versions are available at [Maven Central]({{ mavencentral_repo_groupid_url }}brooklyn-all/) for stable releases
-and [Sonatype]({{ sonatype_repo_groupid_url }}brooklyn-all/) for snapshot versions.
-
-{% if site.brooklyn-version contains 'SNAPSHOT' %} 
-**Again**, check the source and date for SNAPSHOT JARs.
-{% endif %}
-
 ## Release Notes
 
 Release notes can be found [here]({{ site.path.guide }}/misc/release-notes.html).
@@ -122,7 +105,7 @@ If you use Maven, you can add Brooklyn with the following in your pom:
     </dependencies>
 {% endhighlight %}
 
-`brooklyn-all` (used above) brings in all dependencies, including jclouds.
+`brooklyn-all` brings in all dependencies, including jclouds.
 If you prefer a smaller repo you might want just ``brooklyn-core``,  ``brooklyn-policies``, 
 and some of ``brooklyn-software-webapp``,  ``brooklyn-software-database``, ``brooklyn-software-messaging``, or others
 (browse the full list [here]({{ this_anything_url_search }})).
@@ -157,8 +140,8 @@ you can add some of the following sections:
 {% endhighlight %}
 
 {% if SNAPSHOT %}
-**Please note**: to use a snapshot version of Brooklyn, you must either have Brooklyn built locally
-or one of the additional snapshot repositories above.
+**Please note**: to add a snapshot version of Brooklyn as a dependency to your project, 
+you must either have Brooklyn built locally or one of these snapshot repositories in your POM.
 {% endif %}
 
 
@@ -166,11 +149,27 @@ or one of the additional snapshot repositories above.
 
 ## Source Code
 
-Full source is at [github.com/apache/incubator-brooklyn](http://github.com/apache/incubator-brooklyn).
+Source code is hosted at [github.com/apache/incubator-brooklyn](http://github.com/apache/incubator-brooklyn),
+with this version in branch [{{ site.brooklyn.git_branch }}]({{ site.brooklyn.url.git }}).
 Information on working with the source is [here]({{ site.path.guide }}/dev/code).
 
-Alternatively you can download archives of the source directly:
+You can download archives of the source directly:
 
+<table class="table">
+  <tr>
+    <td style="vertical-align: middle;"><center>{{ site.brooklyn.git_branch }}</center></td>
+    <td>
+<a href="https://github.com/apache/incubator-brooklyn/tarball/{{ site.brooklyn.git_branch }}"><img border="0" width="90" src="https://github.com/images/modules/download/tar.png"></a>
+<a href="https://github.com/apache/incubator-brooklyn/zipball/{{ site.brooklyn.git_branch }}"><img border="0" width="90" src="https://github.com/images/modules/download/zip.png"></a>
+    </td>
+  </tr>
+{% if site.brooklyn.git_branch != 'master' %}
+  <tr>
+    <td style="vertical-align: middle;"><center>master</center></td>
+    <td>
 <a href="https://github.com/apache/incubator-brooklyn/tarball/master"><img border="0" width="90" src="https://github.com/images/modules/download/tar.png"></a>
 <a href="https://github.com/apache/incubator-brooklyn/zipball/master"><img border="0" width="90" src="https://github.com/images/modules/download/zip.png"></a>
-
+    </td>
+  </tr>
+{% endif %}
+</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5ae28706/docs/website/documentation/index.md
----------------------------------------------------------------------
diff --git a/docs/website/documentation/index.md b/docs/website/documentation/index.md
index 073a7ba..df22fd7 100644
--- a/docs/website/documentation/index.md
+++ b/docs/website/documentation/index.md
@@ -4,14 +4,14 @@ title: Documentation
 children:
 - /guide/
 - /guide/dev/
+- ../meta/versions.md
 - other-docs.md
 ---
 
 {% comment %}
-TODO This is redundant with versions page.  Link to versions page?  List more things including other docs?
-Basically make this page pretty...
+TODO is this page used?
 
-TODO also add FAQ
+TODO add FAQ
 {% endcomment %}
 
 ## Official User Guide

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5ae28706/docs/website/index.md
----------------------------------------------------------------------
diff --git a/docs/website/index.md b/docs/website/index.md
index a23cac9..f3843d6 100644
--- a/docs/website/index.md
+++ b/docs/website/index.md
@@ -15,8 +15,9 @@ children:
   - { path: /guide/ops/index.md, title_in_menu: Operations,
       menu_customization: { dropdown_section_header: true } }
   - { path: /guide/dev/index.md, title_in_menu: Developer Guide }
-  - { path: documentation/other-docs.md, title_in_menu: Other Resources,
+  - { path: meta/versions.md, title_in_menu: Versions,
       menu_customization: { dropdown_new_section: true } }
+  - { path: documentation/other-docs.md, title_in_menu: Other Resources }
 - community/
 - developers/
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5ae28706/docs/website/meta/versions.md
----------------------------------------------------------------------
diff --git a/docs/website/meta/versions.md b/docs/website/meta/versions.md
index 6370e10..e178770 100644
--- a/docs/website/meta/versions.md
+++ b/docs/website/meta/versions.md
@@ -29,13 +29,31 @@ Apache Brooklyn has made the following releases:
   * [User guide](/v/0.7.0-M2-incubating/), download via mirrors
     &laquo;<a href="https://www.apache.org/dyn/closer.cgi/incubator/brooklyn/0.7.0-M2-incubating/apache-brooklyn-0.7.0-M2-incubating.tar.gz">src.tar.gz</a>&raquo;
 
-Note: To prevent accidentally referring to out-of-date information,
-a banner is displayed when accessing content from specific versions in the archive.
-You may
+
+Note: These "Version History" links are to permanent versions in the archive,
+different to the "Current Version" links.
+To prevent accidentally referring to out-of-date information,
+a banner is displayed when accessing content from these.
+If you wish you can
 <a href="javascript:void(0);" onclick="set_user_versions_all();">disable all warnings</a> or
 <a href="javascript:void(0);" onclick="clear_user_versions();">re-enable all warnings</a>.
 
 
+## Snapshot Versions
+
+Current work on Apache Brooklyn is done with SNAPSHOT version labels,
+in the `master` branch or in a branch with the version label.
+This code has not been voted on and are not endorsed by The Apache Software Foundation.
+Documentation for these versions are uploaded from time to time,
+and are provided here for reference:
+
+* **[0.8.0-SNAPSHOT](/v/0.8.0-SNAPSHOT/)**: latest unreleased version
+(although docs may not be up-to-date with the latest code)
+
+* **[0.7.0-SNAPSHOT](/v/0.7.0-SNAPSHOT/)**: any changes since 0.7.0-incubating which would go into 0.7.1
+(mainly things from 0.8.0-SNAPSHOT which warranted being backported)
+
+
 ## Ancient Versions
 
 The versions below were made prior to joining The Apache Software Foundation, therefore **they are not endorsed by


[26/28] incubator-brooklyn git commit: This closes #862

Posted by he...@apache.org.
This closes #862


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

Branch: refs/heads/master
Commit: f42b1374c95d1d4182a6dac10d19dd36f85b61bc
Parents: fd62419 2893e34
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Sep 1 16:15:35 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Sep 1 16:15:35 2015 +0100

----------------------------------------------------------------------
 docs/guide/dev/code/index.md | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
----------------------------------------------------------------------



[27/28] incubator-brooklyn git commit: This closes #770

Posted by he...@apache.org.
This closes #770


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

Branch: refs/heads/master
Commit: 8c9e1dcad4d6a43523fa8edac25e7868026cf6ee
Parents: f42b137 c87c0ea
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Sep 1 16:15:43 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Sep 1 16:15:43 2015 +0100

----------------------------------------------------------------------
 .../AbstractExternalConfigSupplier.java         |  45 +++++++
 .../config/external/ExternalConfigSupplier.java |  34 ++++++
 .../external/InPlaceExternalConfigSupplier.java |  51 ++++++++
 .../PropertiesFileExternalConfigSupplier.java   |  68 +++++++++++
 .../internal/AbstractManagementContext.java     |  13 +-
 .../BasicExternalConfigSupplierRegistry.java    | 119 +++++++++++++++++++
 .../ExternalConfigSupplierRegistry.java         |  45 +++++++
 .../internal/ManagementContextInternal.java     |   3 +
 .../NonDeploymentManagementContext.java         |   6 +
 .../spi/dsl/methods/BrooklynDslCommon.java      |  46 ++++++-
 10 files changed, 427 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[12/28] incubator-brooklyn git commit: Handle class-renames in persisted state

Posted by he...@apache.org.
Handle class-renames in persisted state

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

Branch: refs/heads/master
Commit: 3167af95c8ef25fa5bf787c34a73af2d7361b6bb
Parents: 6212d19
Author: Aled Sage <al...@gmail.com>
Authored: Sun Aug 30 12:03:01 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Sun Aug 30 12:03:01 2015 +0100

----------------------------------------------------------------------
 .../catalog/internal/CatalogXmlSerializer.java  |    3 +
 .../DeserializingClassRenamesProvider.java      |   78 +
 .../core/mgmt/persist/XmlMementoSerializer.java |   10 +-
 .../util/core/xstream/ClassRenamingMapper.java  |   72 +
 .../util/core/xstream/XmlSerializer.java        |   14 +-
 .../deserializingClassRenames.properties        | 1419 ++++++++++++++++++
 .../mgmt/persist/XmlMementoSerializerTest.java  |  164 +-
 .../service/BrooklynServiceTypeResolver.java    |   42 +-
 8 files changed, 1784 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3167af95/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogXmlSerializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogXmlSerializer.java b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogXmlSerializer.java
index 801fac6..855a753 100644
--- a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogXmlSerializer.java
+++ b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogXmlSerializer.java
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.brooklyn.core.catalog.internal.CatalogClasspathDo.CatalogScanningModes;
+import org.apache.brooklyn.core.mgmt.persist.DeserializingClassRenamesProvider;
 import org.apache.brooklyn.core.objs.AbstractBrooklynObject;
 import org.apache.brooklyn.util.core.xstream.EnumCaseForgivingSingleValueConverter;
 import org.apache.brooklyn.util.core.xstream.XmlSerializer;
@@ -32,6 +33,8 @@ public class CatalogXmlSerializer extends XmlSerializer<Object> {
 
     @SuppressWarnings("deprecation")
     public CatalogXmlSerializer() {
+        super(DeserializingClassRenamesProvider.loadDeserializingClassRenames());
+        
         xstream.addDefaultImplementation(ArrayList.class, Collection.class);
         
         xstream.aliasType("list", List.class);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3167af95/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/DeserializingClassRenamesProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/DeserializingClassRenamesProvider.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/DeserializingClassRenamesProvider.java
new file mode 100644
index 0000000..e8ac5a4
--- /dev/null
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/DeserializingClassRenamesProvider.java
@@ -0,0 +1,78 @@
+/*
+ * 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.core.mgmt.persist;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Enumeration;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.brooklyn.util.exceptions.Exceptions;
+import org.apache.brooklyn.util.stream.Streams;
+
+import com.google.common.annotations.Beta;
+import com.google.common.base.Optional;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Maps;
+
+@Beta
+public class DeserializingClassRenamesProvider {
+
+    public static final String DESERIALIZING_CLASS_RENAMES_PROPERTIES_PATH = "classpath://org/apache/brooklyn/deserializingClassRenames.properties";
+    
+    @Beta
+    public static Map<String, String> loadDeserializingClassRenames() {
+        InputStream resource = XmlMementoSerializer.class.getClassLoader().getResourceAsStream(DESERIALIZING_CLASS_RENAMES_PROPERTIES_PATH);
+        if (resource != null) {
+            try {
+                Properties props = new Properties();
+                props.load(resource);
+                
+                Map<String, String> result = Maps.newLinkedHashMap();
+                for (Enumeration<?> iter = props.propertyNames(); iter.hasMoreElements();) {
+                    String key = (String) iter.nextElement();
+                    String value = props.getProperty(key);
+                    result.put(key, value);
+                }
+                return result;
+            } catch (IOException e) {
+                throw Exceptions.propagate(e);
+            } finally {
+                Streams.closeQuietly(resource);
+            }
+        } else {
+            return ImmutableMap.<String, String>of();
+        }
+    }
+
+    @Beta
+    public static Optional<String> tryFindMappedName(Map<String, String> renames, String name) {
+        String mappedName = (String) renames.get(name);
+        if (mappedName != null) {
+            return Optional.of(mappedName);
+        }
+        for (Map.Entry<String, String> entry : renames.entrySet()) {
+            if (name.startsWith(entry.getKey())) {
+                return Optional.of(entry.getValue()+ name.substring(entry.getKey().length()));
+            }
+        }
+        return Optional.<String>absent();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3167af95/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java
index b232ce4..a8a20b7 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java
@@ -22,13 +22,12 @@ import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.io.IOException;
 import java.io.Writer;
+import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Stack;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.atomic.AtomicReference;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.effector.Effector;
 import org.apache.brooklyn.api.entity.Entity;
@@ -63,6 +62,8 @@ import org.apache.brooklyn.core.sensor.BasicAttributeSensor;
 import org.apache.brooklyn.util.core.xstream.XmlSerializer;
 import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.text.Strings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.thoughtworks.xstream.converters.Converter;
 import com.thoughtworks.xstream.converters.MarshallingContext;
@@ -89,6 +90,11 @@ public class XmlMementoSerializer<T> extends XmlSerializer<T> implements Memento
     private LookupContext lookupContext;
 
     public XmlMementoSerializer(ClassLoader classLoader) {
+        this(classLoader, DeserializingClassRenamesProvider.loadDeserializingClassRenames());
+    }
+    
+    public XmlMementoSerializer(ClassLoader classLoader, Map<String, String> deserializingClassRenames) {
+        super(deserializingClassRenames);
         this.classLoader = checkNotNull(classLoader, "classLoader");
         xstream.setClassLoader(this.classLoader);
         

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3167af95/core/src/main/java/org/apache/brooklyn/util/core/xstream/ClassRenamingMapper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/xstream/ClassRenamingMapper.java b/core/src/main/java/org/apache/brooklyn/util/core/xstream/ClassRenamingMapper.java
new file mode 100644
index 0000000..13fd032
--- /dev/null
+++ b/core/src/main/java/org/apache/brooklyn/util/core/xstream/ClassRenamingMapper.java
@@ -0,0 +1,72 @@
+/*
+ * 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.util.core.xstream;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.util.Map;
+
+import org.apache.brooklyn.core.mgmt.persist.DeserializingClassRenamesProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Optional;
+import com.thoughtworks.xstream.mapper.Mapper;
+import com.thoughtworks.xstream.mapper.MapperWrapper;
+
+public class ClassRenamingMapper extends MapperWrapper {
+    public static final Logger LOG = LoggerFactory.getLogger(ClassRenamingMapper.class);
+    
+    private final Map<String, String> nameToType;
+
+    public ClassRenamingMapper(Mapper wrapped, Map<String, String> nameToType) {
+        super(wrapped);
+        this.nameToType = checkNotNull(nameToType, "nameToType");
+    }
+    
+    @Override
+    public Class realClass(String elementName) {
+        String nameToUse;
+        Optional<String> mappedName = DeserializingClassRenamesProvider.tryFindMappedName(nameToType, elementName);
+        if (mappedName.isPresent()) {
+            LOG.debug("Transforming xstream "+elementName+" to "+mappedName);
+            nameToUse = mappedName.get();
+        } else {
+            nameToUse = elementName;
+        }
+        return super.realClass(nameToUse);
+    }
+
+//    public boolean aliasIsAttribute(String name) {
+//        return nameToType.containsKey(name);
+//    }
+//    
+//    private Object readResolve() {
+//        nameToType = new HashMap();
+//        for (final Iterator iter = classToName.keySet().iterator(); iter.hasNext();) {
+//            final Object type = iter.next();
+//            nameToType.put(classToName.get(type), type);
+//        }
+//        for (final Iterator iter = typeToName.keySet().iterator(); iter.hasNext();) {
+//            final Class type = (Class)iter.next();
+//            nameToType.put(typeToName.get(type), type.getName());
+//        }
+//        return this;
+//    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3167af95/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java b/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java
index 4a95bc2..9ed5b88 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/xstream/XmlSerializer.java
@@ -32,15 +32,22 @@ import org.apache.brooklyn.util.collections.MutableMap;
 import org.apache.brooklyn.util.collections.MutableSet;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.mapper.MapperWrapper;
 
 public class XmlSerializer<T> {
 
+    private final Map<String, String> deserializingClassRenames;
     protected final XStream xstream;
-    
+
     public XmlSerializer() {
-        xstream = new XStream() {
+        this(ImmutableMap.<String, String>of());
+    }
+    
+    public XmlSerializer(Map<String, String> deserializingClassRenames) {
+        this.deserializingClassRenames = deserializingClassRenames;
+        this.xstream = new XStream() {
             @Override
             protected MapperWrapper wrapMapper(MapperWrapper next) {
                 MapperWrapper result = super.wrapMapper(next);
@@ -72,7 +79,8 @@ public class XmlSerializer<T> {
     }
     
     protected MapperWrapper wrapMapper(MapperWrapper next) {
-        return new CompilerIndependentOuterClassFieldMapper(next);
+        MapperWrapper result = new CompilerIndependentOuterClassFieldMapper(next);
+        return new ClassRenamingMapper(result, deserializingClassRenames);
     }
 
     public void serialize(Object object, Writer writer) {


[20/28] incubator-brooklyn git commit: improve linking from main downloads to version downloads page

Posted by he...@apache.org.
improve linking from main downloads to version downloads page


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

Branch: refs/heads/master
Commit: 4a9ce77de4e5053214d76559039d2a464a8aa664
Parents: 8282c69
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Sep 1 14:02:16 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Sep 1 14:02:16 2015 +0100

----------------------------------------------------------------------
 docs/guide/misc/download.md         |  8 ++++----
 docs/guide/misc/index.md            |  2 +-
 docs/website/documentation/index.md |  2 +-
 docs/website/download/index.md      | 12 +++++++-----
 4 files changed, 13 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4a9ce77d/docs/guide/misc/download.md
----------------------------------------------------------------------
diff --git a/docs/guide/misc/download.md b/docs/guide/misc/download.md
index fdec037..21f201b 100644
--- a/docs/guide/misc/download.md
+++ b/docs/guide/misc/download.md
@@ -4,10 +4,10 @@ title: Downloads
 ---
 {% include fields.md %}
 
-**Brooklyn in Apache has not yet made an official clean binary release. 
-The downloads on this page have not been voted on and should be used at your own risk.
-Additionally some links on this page may not work until those builds have been officially released.
-For more information, see the [main download page]({{ site.path.website }}/download/).**
+{% if site.brooklyn.is_snapshot %}
+**The downloads on this page have not been voted on and should be used at your own risk.
+The latest stable release can be accessed on the [main download page]({{ site.path.website }}/download/).**
+{% endif %}
 
 
 ## Download Version {{ site.brooklyn-version }}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4a9ce77d/docs/guide/misc/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/misc/index.md b/docs/guide/misc/index.md
index f8cc018..203016b 100644
--- a/docs/guide/misc/index.md
+++ b/docs/guide/misc/index.md
@@ -13,7 +13,7 @@ children:
 
 Further documentation specific to this version of Brooklyn includes:
 
-{% for item in page.menu reversed offset:1 reversed %}
+{% for item in page.menu %}
 * [{{ item.title_in_menu }}]({{ item.url }})
 {% endfor %}
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4a9ce77d/docs/website/documentation/index.md
----------------------------------------------------------------------
diff --git a/docs/website/documentation/index.md b/docs/website/documentation/index.md
index df22fd7..5c07fa1 100644
--- a/docs/website/documentation/index.md
+++ b/docs/website/documentation/index.md
@@ -9,7 +9,7 @@ children:
 ---
 
 {% comment %}
-TODO is this page used?
+TODO add a bunch more here
 
 TODO add FAQ
 {% endcomment %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4a9ce77d/docs/website/download/index.md
----------------------------------------------------------------------
diff --git a/docs/website/download/index.md b/docs/website/download/index.md
index 4675af9..a58b07b 100644
--- a/docs/website/download/index.md
+++ b/docs/website/download/index.md
@@ -2,7 +2,9 @@
 layout: website-normal
 title: Download
 children:
-- verify.md
+- { path: /guide/misc/download.md, title: Details }
+- { path: verify.md, title: Verify }
+- /guide/misc/release-notes.md
 - ../meta/versions.md
 ---
 
@@ -57,17 +59,17 @@ contribute code changes to Apache Brooklyn, we recommend you get the source code
 </div><!-- col -->
 </div><!-- row -->
 
-We also publish Maven artifacts for Apache Brooklyn. These are available from [Maven Central](https://search.maven.org/#search%7Cga%7C1%7Corg.apache.brooklyn).
+A full list of download links including Maven coordinates are [here]({{ site.path.guide }}/misc/download.html).
+<br/><br/>
 
-
-## What next?
+## What Next?
 
 <div class="row">
 <div class="col-md-6" markdown="1">
 
 <div class="panel panel-default">
   <div class="panel-heading" markdown="1">
-#### Verify your download
+#### Verify Your Download
   </div>
   <div class="panel-body" markdown="1" style="height: 7em;">