You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by m4...@apache.org on 2017/10/25 21:05:26 UTC

[41/50] [abbrv] brooklyn-docs git commit: Add javadoc

Add javadoc


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

Branch: refs/heads/master
Commit: 06386b0407a7f0af2f53f0da301ac8ea38d4265f
Parents: aa70198
Author: Thomas Bouron <th...@cloudsoftcorp.com>
Authored: Sun Oct 15 17:10:15 2017 +0100
Committer: Thomas Bouron <th...@cloudsoftcorp.com>
Committed: Mon Oct 16 15:27:20 2017 +0100

----------------------------------------------------------------------
 .gitignore                              |  21 +-
 book.json                               |   2 +-
 guide/SUMMARY.md                        |   2 +-
 guide/blueprints/custom-entities.md     |   2 +-
 guide/blueprints/effectors.md           |   8 +-
 guide/blueprints/enrichers.md           |  20 +-
 guide/blueprints/java/entitlements.md   |   2 +-
 guide/blueprints/policies.md            |   6 +-
 guide/locations/_clouds.md              |   8 +-
 guide/locations/_special-locations.md   |   2 +-
 guide/ops/configuration/brooklyn_cfg.md |   2 +-
 guide/styles/variables.less             |   1 +
 javadoc/build.sh                        |  59 +++
 javadoc/javadoc.less                    | 573 +++++++++++++++++++++++++++
 javadoc/overview.html                   |  15 +
 package-lock.json                       | 117 ++++--
 package.json                            |  10 +-
 17 files changed, 761 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 958f32a..b0f4fbc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,9 +8,6 @@
 atlassian-ide-plugin.xml
 *.class
 
-target/
-test-output/
-
 .project
 .classpath
 .settings/
@@ -22,19 +19,7 @@ test-output/
 nbactions.xml
 nb-configuration.xml
 
-prodDb.*
-
-*.log
-brooklyn*.log.*
-
-*brooklyn-persisted-state/
-
-ignored
-_site
-_pdf
-_config_local.yml
-.sass-cache
-style/js/catalog/items.js
-
 _book
-node_modules
\ No newline at end of file
+node_modules
+javadoc/stylesheet.css
+javadoc/javadoc.log
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/book.json
----------------------------------------------------------------------
diff --git a/book.json b/book.json
index 76b6cfb..997a992 100644
--- a/book.json
+++ b/book.json
@@ -100,7 +100,7 @@
     "brooklyn_version_stable": "0.12.0",
     "url": {
       "brooklyn_website": "https://brooklyn.apache.org",
-      "brooklyn_javadoc": "https://brooklyn.apache.org"
+      "brooklyn_javadoc": "https://brooklyn.apache.org/v/latest/misc/javadoc"
     },
     "url_root": "http://0.0.0.0:4000"
   }

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/guide/SUMMARY.md
----------------------------------------------------------------------
diff --git a/guide/SUMMARY.md b/guide/SUMMARY.md
index fb80066..a076dd6 100644
--- a/guide/SUMMARY.md
+++ b/guide/SUMMARY.md
@@ -141,7 +141,7 @@
 * [Logging](dev/tips/logging.md)
 * [Brooklyn Remote Debugging](dev/tips/debugging-remote-brooklyn.md)
 * [GitHub](http://github.com/apache/brooklyn)
-* [Javadoc](https://brooklyn.apache.org/v/latest/misc/javadoc)
+* [Javadoc]({{book.url.brooklyn_javadoc}})
 
 ----
 

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/guide/blueprints/custom-entities.md
----------------------------------------------------------------------
diff --git a/guide/blueprints/custom-entities.md b/guide/blueprints/custom-entities.md
index 44d905f..8edc295 100644
--- a/guide/blueprints/custom-entities.md
+++ b/guide/blueprints/custom-entities.md
@@ -64,7 +64,7 @@ the `nc` process exits afterwards, causing Brooklyn to set the entity to an `ON_
 
 There are other options for determining health: you can set `checkRunning.command` and `stop.command` instead,
 as documented on the javadoc and config keys of the
-[org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcess.html)
+[org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcess.html)
 class, and those scripts will be used instead of checking and stopping the process whose PID is in `$PID_FILE`. For example:
 
 !CODEFILE "example_yaml/vanilla-bash-netcat-more-commands.yaml"

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/guide/blueprints/effectors.md
----------------------------------------------------------------------
diff --git a/guide/blueprints/effectors.md b/guide/blueprints/effectors.md
index 971e22b..af83a34 100644
--- a/guide/blueprints/effectors.md
+++ b/guide/blueprints/effectors.md
@@ -50,7 +50,7 @@ Here is a simple example of an `SshCommandEffector` definition:
           defaultValue: hi netcat
 ```
 
-See [`here`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/core/effector/ssh/SshCommandEffector.html) for more details.
+See [`here`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/core/effector/ssh/SshCommandEffector.html) for more details.
 
 ### HTTPCommandEffector
 
@@ -96,7 +96,7 @@ brooklyn.initializers:
       Content-Type: "application/x-www-form-urlencoded"
 ```
 
-See [`here`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/core/effector/http/HttpCommandEffector.html) for more details.
+See [`here`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/core/effector/http/HttpCommandEffector.html) for more details.
 
 ### AddChildrenEffector
 
@@ -133,7 +133,7 @@ brooklyn.initializers:
 
 One of the config keys `BLUEPRINT_YAML` (containing a YAML blueprint (map or string)) or `BLUEPRINT_TYPE` (containing a string referring to a catalog type) should be supplied, but not both.
 
-See [`here`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/core/effector/AddChildrenEffector.html) for more details.
+See [`here`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/core/effector/AddChildrenEffector.html) for more details.
 
 Writing an Effector
 -------------------
@@ -145,7 +145,7 @@ Each effector instance is associated with an entity,
 and at runtime it will typically exectute an operation, collect the result and, potentially, publish it as sensor on that entity, performing some computation.
 
 Writing an effector is straightforward.
-Simply extend [`AddEffector`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/core/effector/AddEffector.html),
+Simply extend [`AddEffector`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/core/effector/AddEffector.html),
 providing an implementation for `newEffectorBuilder` and adding a constructor that consumes the builder or override an existing effector.
 
 ```java

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/guide/blueprints/enrichers.md
----------------------------------------------------------------------
diff --git a/guide/blueprints/enrichers.md b/guide/blueprints/enrichers.md
index 8ed5c24..dcffda8 100644
--- a/guide/blueprints/enrichers.md
+++ b/guide/blueprints/enrichers.md
@@ -8,7 +8,7 @@ See below for documentation of the stock enrichers available in Apache Brooklyn.
 
 #### Transformer
 
-[`org.apache.brooklyn.enricher.stock.Transformer`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/enricher/stock/Transformer.html)
+[`org.apache.brooklyn.enricher.stock.Transformer`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/enricher/stock/Transformer.html)
 
 Takes a source sensor and modifies it in some way before publishing the result in a new sensor. See below an example using `$brooklyn:formatString`.
 
@@ -16,7 +16,7 @@ Takes a source sensor and modifies it in some way before publishing the result i
 
 #### Propagator
 
-[`org.apache.brooklyn.enricher.stock.Propagator`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/enricher/stock/Propagator.html)
+[`org.apache.brooklyn.enricher.stock.Propagator`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/enricher/stock/Propagator.html)
 
 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)
@@ -26,7 +26,7 @@ from which to take sensors; in that mode you can specify `propagate` as a list o
 
 #### Custom Aggregating
 
-[`org.apache.brooklyn.enricher.stock.Aggregator`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/enricher/stock/Aggregator.html)
+[`org.apache.brooklyn.enricher.stock.Aggregator`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/enricher/stock/Aggregator.html)
 
 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.
 
@@ -42,7 +42,7 @@ There are a number of additional configuration keys available for the Aggregator
 
 #### Joiner
 
-[`org.apache.brooklyn.enricher.stock.Joiner`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/enricher/stock/Joiner.html)
+[`org.apache.brooklyn.enricher.stock.Joiner`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/enricher/stock/Joiner.html)
 
 Joins a sensor whose output is a list into a single item joined by a separator.
 
@@ -61,13 +61,13 @@ There are a number of additional configuration keys available for the joiner:
 
 ####	Delta Enricher
 
-[`org.apache.brooklyn.policy.enricher.DeltaEnricher`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/policy/enricher/DeltaEnricher.html)
+[`org.apache.brooklyn.policy.enricher.DeltaEnricher`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/policy/enricher/DeltaEnricher.html)
 
 Converts an absolute sensor into a delta sensor (i.e. the difference between the current and previous value)
 
 ####	Time-weighted Delta
 
-[`org.apache.brooklyn.enricher.stock.YamlTimeWeightedDeltaEnricher`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/enricher/stock/YamlTimeWeightedDeltaEnricher.html)
+[`org.apache.brooklyn.enricher.stock.YamlTimeWeightedDeltaEnricher`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/enricher/stock/YamlTimeWeightedDeltaEnricher.html)
 
 Converts absolute sensor values into a difference over time. The `enricher.delta.period` indicates the measurement interval.
 
@@ -75,19 +75,19 @@ Converts absolute sensor values into a difference over time. The `enricher.delta
 
 ####	Rolling Mean
 
-[`org.apache.brooklyn.policy.enricher.RollingMeanEnricher`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/policy/enricher/RollingMeanEnricher.html)
+[`org.apache.brooklyn.policy.enricher.RollingMeanEnricher`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/policy/enricher/RollingMeanEnricher.html)
 
 Transforms a sensor into a rolling average based on a fixed window size. This is useful for smoothing sample type metrics, such as latency or CPU time
 
 #### Rolling Time-window Mean
 
-[`org.apache.brooklyn.policy.enricher.RollingTimeWindowMeanEnricher`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/policy/enricher/RollingTimeWindowMeanEnricher.html)
+[`org.apache.brooklyn.policy.enricher.RollingTimeWindowMeanEnricher`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/policy/enricher/RollingTimeWindowMeanEnricher.html)
 
 Transforms a sensor's data into a rolling average based on a time window. This time window can be specified with the config key `confidenceRequired` - Minimum confidence level (ie period covered) required to publish a rolling average (default `8d`).
 
 #### Http Latency Detector
 
-[`org.apache.brooklyn.policy.enricher.RollingTimeWindowMeanEnricher.HttpLatencyDetector`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/policy/enricher/HttpLatencyDetector.html)
+[`org.apache.brooklyn.policy.enricher.RollingTimeWindowMeanEnricher.HttpLatencyDetector`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/policy/enricher/HttpLatencyDetector.html)
 
 An Enricher which computes latency in accessing a URL, normally by periodically polling that URL. This is then published in the sensors `web.request.latency.last` and `web.request.latency.windowed`.
 
@@ -104,7 +104,7 @@ There are a number of additional configuration keys available for the Http Laten
 
 #### Combiner
 
-[`org.apache.brooklyn.enricher.stock.Combiner`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/enricher/stock/Combiner.html)
+[`org.apache.brooklyn.enricher.stock.Combiner`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/enricher/stock/Combiner.html)
 
 Can be used to combine the values of sensors.  This enricher should be instantiated using `Enrichers.builder().combining(..)`.
 This enricher is only available in Java blueprints and cannot be used in YAML.

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/guide/blueprints/java/entitlements.md
----------------------------------------------------------------------
diff --git a/guide/blueprints/java/entitlements.md b/guide/blueprints/java/entitlements.md
index 77a4f65..858b5d7 100644
--- a/guide/blueprints/java/entitlements.md
+++ b/guide/blueprints/java/entitlements.md
@@ -43,4 +43,4 @@ allowing permissions objects to be declared in LDAP leveraging regular expressio
 For more information on this, ask on IRC or the mailing list,
 and see 
 
-[EntitlementManager](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/api/mgmt/entitlement/EntitlementManager.html).
+[EntitlementManager]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/api/mgmt/entitlement/EntitlementManager.html).

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/guide/blueprints/policies.md
----------------------------------------------------------------------
diff --git a/guide/blueprints/policies.md b/guide/blueprints/policies.md
index b1d6eaf..fd841fc 100644
--- a/guide/blueprints/policies.md
+++ b/guide/blueprints/policies.md
@@ -201,8 +201,8 @@ This action might be invoking an effector or emitting a new sensor,
 depending the desired behavior is.
 
 Writing a policy is straightforward.
-Simply extend [``AbstractPolicy``](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/core/policy/AbstractPolicy.html),
-overriding the [``setEntity``](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/core/objs/AbstractEntityAdjunct.html#setEntity-org.apache.brooklyn.api.entity.EntityLocal-) method to supply any subscriptions desired:
+Simply extend [``AbstractPolicy``]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/core/policy/AbstractPolicy.html),
+overriding the [``setEntity``]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/core/objs/AbstractEntityAdjunct.html#setEntity-org.apache.brooklyn.api.entity.EntityLocal-) method to supply any subscriptions desired:
 
 ```java
     @Override
@@ -262,4 +262,4 @@ Order policies carefully, and mark sensors as "handled" (or potentially "swallow
 
 ### Implementation Classes
 
-Extend [`AbstractPolicy`](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/core/policy/AbstractPolicy.html), or override an existing policy.
+Extend [`AbstractPolicy`]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/core/policy/AbstractPolicy.html), or override an existing policy.

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/guide/locations/_clouds.md
----------------------------------------------------------------------
diff --git a/guide/locations/_clouds.md b/guide/locations/_clouds.md
index 183c0c4..6fe82c2 100644
--- a/guide/locations/_clouds.md
+++ b/guide/locations/_clouds.md
@@ -88,7 +88,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 
-[JcloudsLocationConfig](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/location/jclouds/JcloudsLocationConfig.html).
+[JcloudsLocationConfig]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/location/jclouds/JcloudsLocationConfig.html).
 
 ###### VM Creation
     
@@ -115,10 +115,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 
-  [CloudMachineNamer](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/core/location/cloud/names/CloudMachineNamer.html),
+  [CloudMachineNamer]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/core/location/cloud/names/CloudMachineNamer.html),
   for example
   `cloudMachineNamer: CustomMachineNamer`.
-  [CustomMachineNamer](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/core/location/cloud/names/CustomMachineNamer.html)
+  [CustomMachineNamer]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/core/location/cloud/names/CustomMachineNamer.html)
   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).
@@ -138,7 +138,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 
-  [ServiceRestarter](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/policy/ha/ServiceRestarter.html).
+  [ServiceRestarter]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/policy/ha/ServiceRestarter.html).
 
 - 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/brooklyn-docs/blob/06386b04/guide/locations/_special-locations.md
----------------------------------------------------------------------
diff --git a/guide/locations/_special-locations.md b/guide/locations/_special-locations.md
index 536829b..918024d 100644
--- a/guide/locations/_special-locations.md
+++ b/guide/locations/_special-locations.md
@@ -112,6 +112,6 @@ Custom alternatives to round-robin are also possible using the configuration opt
 
 #### The Server Pool
 
-The [ServerPool](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/entity/machine/pool/ServerPool.html)
+The [ServerPool]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/entity/machine/pool/ServerPool.html)
 entity type allows defining an entity which becomes available as a location.
 

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/guide/ops/configuration/brooklyn_cfg.md
----------------------------------------------------------------------
diff --git a/guide/ops/configuration/brooklyn_cfg.md b/guide/ops/configuration/brooklyn_cfg.md
index d270098..442e4bd 100644
--- a/guide/ops/configuration/brooklyn_cfg.md
+++ b/guide/ops/configuration/brooklyn_cfg.md
@@ -183,7 +183,7 @@ brooklyn.entitlements.perUser.metrics=minimal
 For more information, see 
 [Java: Entitlements](../../blueprints/java/entitlements.md).
 or
-[EntitlementManager](https://brooklyn.apache.org/v/latest/misc/javadoc/org/apache/brooklyn/api/mgmt/entitlement/EntitlementManager.html).
+[EntitlementManager]({{book.url.brooklyn_javadoc}}/org/apache/brooklyn/api/mgmt/entitlement/EntitlementManager.html).
 
 
 

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/guide/styles/variables.less
----------------------------------------------------------------------
diff --git a/guide/styles/variables.less b/guide/styles/variables.less
index 310dfce..e634d30 100644
--- a/guide/styles/variables.less
+++ b/guide/styles/variables.less
@@ -1,3 +1,4 @@
+@font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
 @text-color: #393939;
 @accent-color: #449d44;
 @border-color: rgba(0, 0, 0, .07);

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/javadoc/build.sh
----------------------------------------------------------------------
diff --git a/javadoc/build.sh b/javadoc/build.sh
new file mode 100755
index 0000000..3546918
--- /dev/null
+++ b/javadoc/build.sh
@@ -0,0 +1,59 @@
+#!/usr/bin/env bash
+
+JAVADOC_TARGET=./../_book/misc/javadoc
+
+if [ ! -x build.sh ]; then
+  echo "This command must be run from the _build directory, not its parent."
+  exit 1
+fi
+
+if [ -z "$BROOKLYN_JAVADOC_SOURCE_PATHS" ]; then
+  echo "Detecting source paths for javadoc ..."
+  export SOURCE_PATHS=`find ../.. -name java | grep "src/main/java$" | grep -v "^../../sandbox" | tr "\\n" ":"`
+else
+  echo "Using pre-defined source paths: $BROOKLYN_JAVADOC_SOURCE_PATHS"
+  export SOURCE_PATHS=$BROOKLYN_JAVADOC_SOURCE_PATHS
+fi
+
+mkdir -p $JAVADOC_TARGET
+
+export YEARSTAMP=`date "+%Y"`
+export DATESTAMP=`date "+%Y-%m-%d"`
+export SHA1STAMP=`git rev-parse HEAD`
+
+# BROOKLYN_VERSION_BELOW
+export BROOKLYN_JAVADOC_CLASSPATH=$( mvn -f ../../pom.xml --projects :brooklyn-all dependency:build-classpath | grep -E -v '^\[[A-Z]+\]' )
+
+echo "Building javadoc at $DATESTAMP from:
+$SOURCE_PATHS"
+
+javadoc -sourcepath $SOURCE_PATHS \
+  -public \
+  -d $JAVADOC_TARGET \
+  -subpackages "org.apache.brooklyn:io.brooklyn:brooklyn" \
+  -classpath "$BROOKLYN_JAVADOC_CLASSPATH" \
+  -doctitle "Apache Brooklyn" \
+  -windowtitle "Apache Brooklyn" \
+  -notimestamp \
+  -stylesheetfile stylesheet.css \
+  -overview overview.html \
+  -header '<a href="/" class="brooklyn-header">Apache Brooklyn</a>' \
+  -footer '<strong>Apache Brooklyn - Multi-Cloud Application Management</strong> <br/> <a href="https://brooklyn.apache.org" target="_top">brooklyn.apache.org</a>. Apache License. &copy; '$YEARSTAMP'.' \
+2>&1 1>/dev/null | tee javadoc.log
+
+if ((${PIPESTATUS[0]})); then
+  echo "WARNING: javadoc process exited non-zero";
+fi
+
+if [ ! -f $JAVADOC_TARGET/org/apache/brooklyn/api/entity/Entity.html ]; then
+  echo "ERROR: missing expected content. Are the paths right?";
+  exit 1;
+fi
+
+if [ ! -z "`grep warnings javadoc.log`" ]; then
+  echo "WARNINGs occurred during javadoc build. See javadoc.log for more information.";
+fi
+
+sed -i.bak s/'${DATESTAMP}'/"${DATESTAMP}"/ $JAVADOC_TARGET/overview-summary.html
+sed -i.bak s/'${SHA1STAMP}'/"${SHA1STAMP}"/ $JAVADOC_TARGET/overview-summary.html
+rm $JAVADOC_TARGET/*.bak

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/javadoc/javadoc.less
----------------------------------------------------------------------
diff --git a/javadoc/javadoc.less b/javadoc/javadoc.less
new file mode 100644
index 0000000..618e947
--- /dev/null
+++ b/javadoc/javadoc.less
@@ -0,0 +1,573 @@
+@import "../guide/styles/variables";
+
+body {
+  background-color:#ffffff;
+  color: @text-color;
+  font-family: @font-family;
+  font-size:14px;
+  font-weight: 300;
+  margin:0;
+}
+a:link, a:visited {
+  text-decoration:none;
+  color: @accent-color;
+}
+a:hover, a:focus {
+  text-decoration:none;
+  color: darken(@accent-color, 20%);
+}
+a:active {
+  text-decoration:none;
+  color:#4A6782;
+}
+a[name] {
+  color:@text-color;
+}
+a[name]:hover {
+  text-decoration:none;
+  color:@text-color;
+}
+pre {
+  font-family:monospace;
+  font-size:14px;
+}
+h1 {
+  font-size:20px;
+}
+h2 {
+  font-size:18px;
+}
+h3 {
+  font-size:16px;
+  font-style:italic;
+}
+h4 {
+  font-size:13px;
+}
+h5 {
+  font-size:12px;
+}
+h6 {
+  font-size:11px;
+}
+ul {
+  list-style-type:disc;
+}
+code, tt {
+  font-family:monospace;
+  font-size:14px;
+  padding-top:4px;
+  margin-top:8px;
+  line-height:1.4em;
+}
+dt code {
+  font-family:monospace;
+  font-size:14px;
+  padding-top:4px;
+}
+table tr td dt code {
+  font-family:monospace;
+  font-size:14px;
+  vertical-align:top;
+  padding-top:4px;
+}
+sup {
+  font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+  clear:both;
+  height:0px;
+  overflow:hidden;
+}
+.aboutLanguage {
+  float:right;
+  padding:0px 21px;
+  margin-top: -2px;
+  z-index:200;
+
+  .brooklyn-header {
+    font-size: 150%;
+    font-weight: bold;
+  }
+}
+.legalCopy {
+  margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+  color:#FFFFFF;
+  text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+  color:#bb7a2a;
+}
+.tab {
+  background-color:#0066FF;
+  color:#ffffff;
+  padding:8px;
+  width:5em;
+  font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+  background-color:@accent-color;
+  color:#FFFFFF;
+  padding:.8em .5em .4em .8em;
+  height:auto;/*height:1.8em;*/
+  font-size:11px;
+  margin:0;
+}
+.topNav {
+  background-color:@accent-color;
+  color:#FFFFFF;
+  float:left;
+  padding:0;
+  width:100%;
+  clear:right;
+  height:2.8em;
+  padding-top:10px;
+  overflow:hidden;
+  font-size:12px;
+}
+.bottomNav {
+  margin-top:10px;
+  background-color:@accent-color;
+  color:#FFFFFF;
+  float:left;
+  padding:0;
+  width:100%;
+  clear:right;
+  height:2.8em;
+  padding-top:10px;
+  overflow:hidden;
+  font-size:12px;
+}
+.subNav {
+  background-color:@border-color;
+  float:left;
+  width:100%;
+  overflow:hidden;
+  font-size:12px;
+}
+.subNav div {
+  clear:left;
+  float:left;
+  padding:0 0 5px 6px;
+  text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+  float:left;
+  margin:0 25px 0 0;
+  padding:0;
+}
+ul.navList li{
+  list-style:none;
+  float:left;
+  padding: 5px 6px;
+  text-transform:uppercase;
+}
+ul.subNavList li{
+  list-style:none;
+  float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+  color:#FFFFFF;
+  text-decoration:none;
+  text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+  text-decoration:none;
+  color:lighten(@accent-color, 40%);
+  text-transform:uppercase;
+}
+.navBarCell1Rev {
+  background-color:#F8981D;
+  color:#253441;
+  margin: auto 5px;
+}
+.skipNav {
+  position:absolute;
+  top:auto;
+  left:-9999px;
+  overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+  clear:both;
+  margin:0 20px;
+  padding:5px 0 0 0;
+}
+.indexHeader {
+  margin:10px;
+  position:relative;
+}
+.indexHeader span{
+  margin-right:15px;
+}
+.indexHeader h1 {
+  font-size:13px;
+}
+.title {
+  color:#2c4557;
+  margin:10px 0;
+}
+.subTitle {
+  margin:5px 0 0 0;
+}
+.header ul {
+  margin:0 0 15px 0;
+  padding:0;
+}
+.footer ul {
+  margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+  list-style:none;
+  font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+  background-color:@border-color;
+  border:1px solid #d0d9e0;
+  margin:0 0 6px -8px;
+  padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+  background-color:@border-color;
+  border:1px solid @border-color;
+  margin:0 0 6px -8px;
+  padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+  padding:0;
+  margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+  padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+  clear:both;
+  padding:10px 20px;
+  position:relative;
+}
+.indexContainer {
+  margin:10px;
+  position:relative;
+  font-size:12px;
+}
+.indexContainer h2 {
+  font-size:13px;
+  padding:0 0 3px 0;
+}
+.indexContainer ul {
+  margin:0;
+  padding:0;
+}
+.indexContainer ul li {
+  list-style:none;
+  padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+  font-size:12px;
+  font-weight:bold;
+  margin:10px 0 0 0;
+  color:@text-color;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+  margin:5px 0 10px 0px;
+  font-size:14px;
+  font-family:monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+  margin-left:1px;
+  font-size:1.1em;
+  display:inline;
+  font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+  margin:0 0 0 1px;
+  font-size:1.1em;
+  display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+  display:inline;
+  font-size:0.9em;
+}
+ul.inheritance {
+  margin:0;
+  padding:0;
+}
+ul.inheritance li {
+  display:inline;
+  list-style:none;
+}
+ul.inheritance li ul.inheritance {
+  margin-left:15px;
+  padding-left:15px;
+  padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+  margin:10px 0 10px 0;
+  padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+  list-style:none;
+  margin-bottom:15px;
+  line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+  padding:0px 20px 5px 10px;
+  border:1px solid #ededed;
+  background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+  padding:0 0 5px 8px;
+  background-color:#ffffff;
+  border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+  margin-left:0;
+  padding-left:0;
+  padding-bottom:15px;
+  border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+  list-style:none;
+  border-bottom:none;
+  padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+  margin-top:0;
+  margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+  width:100%;
+  border-left:1px solid #EEE;
+  border-right:1px solid #EEE;
+  border-bottom:1px solid #EEE;
+}
+.overviewSummary, .memberSummary  {
+  padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+  position:relative;
+  text-align:left;
+  background-repeat:no-repeat;
+  color: @text-color;
+  font-weight:bold;
+  clear:none;
+  overflow:hidden;
+  padding:0px;
+  padding-top:10px;
+  padding-left:1px;
+  margin:0px;
+  white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+  color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+  white-space:nowrap;
+  padding-top:5px;
+  padding-left:12px;
+  padding-right:12px;
+  padding-bottom:7px;
+  display:inline-block;
+  float:left;
+  background-color:#F8981D;
+  border: none;
+  height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+  white-space:nowrap;
+  padding-top:5px;
+  padding-left:12px;
+  padding-right:12px;
+  margin-right:3px;
+  display:inline-block;
+  float:left;
+  background-color:#F8981D;
+  height:16px;
+}
+.memberSummary caption span.tableTab span {
+  white-space:nowrap;
+  padding-top:5px;
+  padding-left:12px;
+  padding-right:12px;
+  margin-right:3px;
+  display:inline-block;
+  float:left;
+  background-color:@accent-color;
+  height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+  padding-top:0px;
+  padding-left:0px;
+  padding-right:0px;
+  background-image:none;
+  float:none;
+  display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+  display:none;
+  width:5px;
+  position:relative;
+  float:left;
+  background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+  display:none;
+  width:5px;
+  margin-right:3px;
+  position:relative;
+  float:left;
+  background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+  display:none;
+  width:5px;
+  margin-right:3px;
+  position:relative;
+  background-color:@accent-color;
+  float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+  text-align:left;
+  padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+  vertical-align:top;
+  padding-right:0px;
+  padding-top:8px;
+  padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+  background:@border-color;
+  text-align:left;
+  padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+  white-space:nowrap;
+  font-size:13px;
+}
+td.colLast, th.colLast {
+  font-size:13px;
+}
+td.colOne, th.colOne {
+  font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+  width:25%;
+  vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+  font-weight:bold;
+}
+.tableSubHeadingColor {
+  background-color:#EEEEFF;
+}
+.altColor {
+  background-color:#FFFFFF;
+}
+.rowColor {
+  background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+  margin-top:0;
+}
+.deprecatedContent {
+  margin:0;
+  padding:10px 0;
+}
+.docSummary {
+  padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+  font-style:normal;
+}
+
+div.block {
+  font-size:14px;
+}
+
+td.colLast div {
+  padding-top:0px;
+}
+
+
+td.colLast a {
+  padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+  color:@accent-color;
+  padding:0 30px 0 0;
+}
+h1.hidden {
+  visibility:hidden;
+  overflow:hidden;
+  font-size:10px;
+}
+.block {
+  display:block;
+  margin:3px 10px 2px 0px;
+  color:@text-color;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+  font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+  font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+  font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+  padding-bottom:0px;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/javadoc/overview.html b/javadoc/overview.html
new file mode 100644
index 0000000..ec5d737
--- /dev/null
+++ b/javadoc/overview.html
@@ -0,0 +1,15 @@
+<html><body>
+
+<!-- BROOKLYN_VERSION_BELOW -->
+Javadoc for <a href="https://brooklyn.apache.org">Apache Brooklyn</a> 1.0.0-SNAPSHOT
+
+<p>
+    Apache Brooklyn is distributed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License v2.0</a>.
+</p>
+
+<p>
+    <!-- BROOKLYN_VERSION_BELOW -->
+    This is the Javadoc for v 1.0.0-SNAPSHOT (git SHA1 hash ${SHA1STAMP}) auto-generated on ${DATESTAMP}.
+</p>
+
+</body><html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/package-lock.json
----------------------------------------------------------------------
diff --git a/package-lock.json b/package-lock.json
index 4945de5..c6663e0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -48,9 +48,9 @@
       "optional": true
     },
     "asap": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz",
-      "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0=",
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
       "dev": true,
       "optional": true
     },
@@ -542,11 +542,71 @@
         "q": "1.5.0"
       },
       "dependencies": {
+        "asap": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz",
+          "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0=",
+          "dev": true,
+          "optional": true
+        },
+        "graceful-fs": {
+          "version": "3.0.11",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
+          "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "natives": "1.1.0"
+          }
+        },
+        "image-size": {
+          "version": "0.3.5",
+          "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.3.5.tgz",
+          "integrity": "sha1-gyQOqy+1sAsEqrjHSwRx6cunrYw=",
+          "dev": true,
+          "optional": true
+        },
+        "less": {
+          "version": "2.5.3",
+          "resolved": "https://registry.npmjs.org/less/-/less-2.5.3.tgz",
+          "integrity": "sha1-n/WG6KcDUV/Bjcmce8SY0vOtSEk=",
+          "dev": true,
+          "requires": {
+            "errno": "0.1.4",
+            "graceful-fs": "3.0.11",
+            "image-size": "0.3.5",
+            "mime": "1.4.1",
+            "mkdirp": "0.5.1",
+            "promise": "6.1.0",
+            "request": "2.83.0",
+            "source-map": "0.4.4"
+          }
+        },
         "lodash": {
           "version": "3.10.1",
           "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
           "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
           "dev": true
+        },
+        "promise": {
+          "version": "6.1.0",
+          "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz",
+          "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "asap": "1.0.0"
+          }
+        },
+        "source-map": {
+          "version": "0.4.4",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "amdefine": "1.0.1"
+          }
         }
       }
     },
@@ -654,9 +714,9 @@
       }
     },
     "image-size": {
-      "version": "0.3.5",
-      "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.3.5.tgz",
-      "integrity": "sha1-gyQOqy+1sAsEqrjHSwRx6cunrYw=",
+      "version": "0.5.5",
+      "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
+      "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
       "dev": true,
       "optional": true
     },
@@ -778,41 +838,18 @@
       }
     },
     "less": {
-      "version": "2.5.3",
-      "resolved": "https://registry.npmjs.org/less/-/less-2.5.3.tgz",
-      "integrity": "sha1-n/WG6KcDUV/Bjcmce8SY0vOtSEk=",
+      "version": "3.0.0-alpha.3",
+      "resolved": "https://registry.npmjs.org/less/-/less-3.0.0-alpha.3.tgz",
+      "integrity": "sha512-CtLgi5FCi2bhVsea0rAH9dap/ORMZYeHBjFUrKVj53RytQqdMsTRrmBZm8dWZ+XJPNBoqOs46QEIoJoFxrp3gA==",
       "dev": true,
       "requires": {
         "errno": "0.1.4",
-        "graceful-fs": "3.0.11",
-        "image-size": "0.3.5",
+        "graceful-fs": "4.1.11",
+        "image-size": "0.5.5",
         "mime": "1.4.1",
         "mkdirp": "0.5.1",
-        "promise": "6.1.0",
-        "request": "2.83.0",
-        "source-map": "0.4.4"
-      },
-      "dependencies": {
-        "graceful-fs": {
-          "version": "3.0.11",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
-          "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "natives": "1.1.0"
-          }
-        },
-        "source-map": {
-          "version": "0.4.4",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
-          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "amdefine": "1.0.1"
-          }
-        }
+        "promise": "7.3.1",
+        "source-map": "0.5.7"
       }
     },
     "levn": {
@@ -5568,13 +5605,13 @@
       "dev": true
     },
     "promise": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz",
-      "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=",
+      "version": "7.3.1",
+      "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+      "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
       "dev": true,
       "optional": true,
       "requires": {
-        "asap": "1.0.0"
+        "asap": "2.0.6"
       }
     },
     "prr": {

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/06386b04/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index bbc2f63..f1da4cd 100644
--- a/package.json
+++ b/package.json
@@ -12,14 +12,16 @@
     "gitbook-plugin-partial-summary": "^1.0.0",
     "gitbook-plugin-styles-less": "^1.0.0",
     "gitbook-plugin-theme-api": "^1.1.2",
-    "gitbook-plugin-versions": "^2.1.4"
+    "gitbook-plugin-versions": "^2.1.4",
+    "less": "^3.0.0-alpha.3"
   },
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",
-    "postinstall": "gitbook install",
-    "build": "gitbook build",
+    "book": "gitbook build",
     "serve": "gitbook serve",
-    "pdf": "gitbook pdf"
+    "pdf": "gitbook pdf",
+    "javadoc": "lessc javadoc/javadoc.less javadoc/stylesheet.css && pushd javadoc && ./build.sh && popd",
+    "build": "npm run book && npm run javadoc"
   },
   "author": "",
   "license": "Apache-2.0",