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 2014/12/17 18:23:35 UTC

[01/50] [abbrv] incubator-brooklyn git commit: move version-specific things to "guide"

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 3cb52e517 -> d4cb22d10


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/policies-and-catalogs.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/policies-and-catalogs.md b/docs/use/guide/quickstart/policies-and-catalogs.md
deleted file mode 100644
index 2df32e4..0000000
--- a/docs/use/guide/quickstart/policies-and-catalogs.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: Getting Started - Policies and Catalogs
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide]
----
-
-{% include fields.md %}
-
-In the [previous step](index.html) we downloaded Brooklyn and used it to deploy an application to a cloud, but at its heart Brooklyn is a policy driven *management* plane.
-
-Here we will introduce Polices using a simple demo app, which we will load from a Service Catalog.
-
-## Service Catalogs
-
-Download the template [catalog.xml](catalog.xml) to your `~/.brooklyn/` folder, and relaunch Brooklyn.
-
-{% highlight bash %}
-$ cd ~/.brooklyn
-$ wget {{site.url}}/use/guide/quickstart/catalog.xml
-
-$ brooklyn launch
-{% endhighlight %}
-
-Now when we open the web console, two applications are displayed from the catalog.
-
-Select the 'Demo Web Cluster with DB' and click 'Next'.
-
-[![Viewing Catalog entries in Add Application dialog.](images/add-application-catalog-web-cluster-with-db.png)](add-application-catalog-web-cluster-with-db-large.png)
-
-Select the Location that Brooklyn should deploy to, and name your application:
-
-[![Selecting a location and application name.](images/add-application-catalog-web-cluster-with-db-location.png)](images/add-application-catalog-web-cluster-with-db-location-large.png)
-
-Click 'Finish' to launch the application as before.
-
-
-### Exploring and Testing Policies
-
-The Demo Web Cluster with DB application is pre-configured with two polices.
-
-The app server cluster has an `AutoScalerPolicy`, and the loadbalancer has a `targets` policy.
-
-Use the Applications tab in the web console to drill down into the Policies section of the ControlledDynamicWebAppCluster's Cluster of JBoss7Servers.
-
-You will see that the `AutoScalerPolicy` is running.
-
-[![Inspecting the jboss7 cluster policies.](images/jboss7-cluster-policies.png)](images/jboss7-cluster-policies-large.png)
-
-
-This policy automatically scales the cluster up or down to be the right size for the cluster's current load. (One server is the minimum size allowed by the policy.)
-
-The loadbalancer's `targets` policy ensures that the loadbalancer is updated as the cluster size changes.
-
-Sitting idle, this cluster will only contain one server, but you can use a tool like [jmeter](http://jmeter.apache.org/) pointed at the nginx endpoint to create load on the cluster. (Download a [jmeter test plan](https://github.com/brooklyncentral/brooklyn/blob/master/examples/simple-web-cluster/resources/jmeter-test-plan.jmx).)
-
-As load is added, Brooklyn requests a new cloud machine, creates a new app server, and adds it to the cluster. As load is removed, servers are removed from the cluster, and the infrastructure is handed back to the cloud.
-
-### Next
-
-The [Elastic Web Cluster Example]({{site.url}}use/examples/webcluster/index.html) page
-details how to build this demo application from scratch in Java. It shows in more detail how Brooklyn can
-complement your application with policy driven management, and how applications can be
-run from the command line.
-
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/toc.json
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/toc.json b/docs/use/guide/quickstart/toc.json
deleted file mode 100644
index d65eddb..0000000
--- a/docs/use/guide/quickstart/toc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-[{ "title": "Download & Deploy",
-  "file":  "{{ site.url }}/use/guide/quickstart/index.html" },
-{ "title": "Policies & Catalogs",
-  "file":  "{{ site.url }}/use/guide/quickstart/policies-and-catalogs.html" }]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/toc.json
----------------------------------------------------------------------
diff --git a/docs/use/guide/toc.json b/docs/use/guide/toc.json
deleted file mode 100644
index 9a59b2a..0000000
--- a/docs/use/guide/toc.json
+++ /dev/null
@@ -1,25 +0,0 @@
-[
-{ "title": "Quick Start",
-  "file":  "{{ site.url }}/use/guide/quickstart/index.html",
-   "children": {% readj ./quickstart/toc.json %} },
-{ "title": "Defining Applications",
-  "file":  "{{ site.url }}/use/guide/defining-applications/basic-concepts.html", 
-  "children": {% readj ./defining-applications/toc.json %} },
-{ "title": "Management",
-  "file":  "{{ site.url }}/use/guide/management/index.html" ,
-  "children": {% readj ./management/toc.json %} },
-{ "title": "Persistence",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html" ,
-  "children": {% readj ./persistence/toc.json %} },
-{ "title": "Locations",
-  "file":  "{{ site.url }}/use/guide/locations/index.html" },
-{ "title": "Policies",
-  "file":  "{{ site.url }}/use/guide/policies/index.html",
-  "children": {% readj ./policies/toc.json %} },
-{ "title": "Custom Entities",
-  "file":  "{{ site.url }}/use/guide/entities/index.html",
-  "children": {% readj ./entities/toc.json %} },
-{ "title": "Extras",
-  "file":  "{{ site.url }}/use/guide/extras/index.html",
-  "children": {% readj ./extras/toc.json %}  }
-]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/index.md
----------------------------------------------------------------------
diff --git a/docs/use/index.md b/docs/use/index.md
deleted file mode 100644
index 143ef80..0000000
--- a/docs/use/index.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: guide-normal
-title: Using Brooklyn
-toc: ../toc.json
----
-
-{% readj /start/docs-summary.include.md %}
-
-Beyond this, [just come chat to us](contact.html).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/toc.json
----------------------------------------------------------------------
diff --git a/docs/use/toc.json b/docs/use/toc.json
deleted file mode 100644
index 1a5e3c9..0000000
--- a/docs/use/toc.json
+++ /dev/null
@@ -1,12 +0,0 @@
-[
-{ "title": "User Guide",
-  "file":  "{{ site.url }}/use/guide/index.html",
-  "children": {% readj ./guide/toc.json %} },
-{ "title": "Examples",
-  "file":  "{{ site.url }}/use/examples/index.html", 
-  "children": {% readj ./examples/toc.json %} },
-{ "title": "API Reference (javadoc)",
-  "file": "{{ site.url }}/use/api/index.html" },
-{ "title": "Discuss",
-  "file": "{{ site.url }}/use/contact.html" }
-]


[47/50] [abbrv] incubator-brooklyn git commit: remove link from website downloads page to the snapshots download page

Posted by he...@apache.org.
remove link from website downloads page to the snapshots download page

as @rdowner notes apache policy forbids promoting snapshot downloads


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

Branch: refs/heads/master
Commit: 19901b8ab9819a5aa4e1b384ad6330463135dfdd
Parents: be1f457
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 14:40:23 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 14:40:23 2014 +0000

----------------------------------------------------------------------
 docs/website/download.md | 12 ------------
 1 file changed, 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/19901b8a/docs/website/download.md
----------------------------------------------------------------------
diff --git a/docs/website/download.md b/docs/website/download.md
index 1d048e9..20d6410 100644
--- a/docs/website/download.md
+++ b/docs/website/download.md
@@ -5,18 +5,6 @@ title: Download
 
 ## Download Brooklyn Binary Distributions
 
-**Snapshot Alert**: 
-We are working our way through the Apache process for an official Apache release,
-but as a result it has been a long time since the last milestone release.
-
-**You may wish to use a [snapshot release]({{ site.path.guide }}/start/download.html) 
-  as it now has many many features not in 0.7.0-M1!**
-
-{% if site.brooklyn-version contains 'SNAPSHOT' %}{% else %}
-  {% read FAIL_needs_updating_for_release %}
-  The alert above should be removed when we make the next release build!
-{% endif %} 
-
 **New to Brooklyn**? Download the *Milestone* release below then take a look
 at the [Get Started](quickstart/) page.
 


[06/50] [abbrv] incubator-brooklyn git commit: move version-specific things to "guide"

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/locations/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/locations/index.md b/docs/guide/use/guide/locations/index.md
new file mode 100644
index 0000000..c2eff2f
--- /dev/null
+++ b/docs/guide/use/guide/locations/index.md
@@ -0,0 +1,104 @@
+---
+title: Locations
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide]
+
+---
+
+Locations are the environments to which Brooklyn deploys applications.
+These can be clouds (public or private), fixed infrastructure environments, or your laptop.
+
+Brooklyn looks for Location configuration in `~/.brooklyn/brooklyn.properties`.
+
+## Setting up an SSH key
+
+While some locations can be accessed using *user:password* credentials it is more common to use authentication keys.
+
+To use keyfile based authentication, Brooklyn requires that the management machine has an SSH key. By default Brooklyn looks for a key at `~/.ssh/id_rsa` and `~/.ssh/id_dsa`.
+
+If you do not already have an SSH key installed, create a new id_rsa key:
+
+{% highlight bash %}
+$ ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
+{% endhighlight %}
+
+If you wish to use an existing key SSH, or an SSH key
+that has a passphrase, or a location other than `~/.ssh`, you can specify this in
+`brooklyn.properties` using `brooklyn.location.localhost.privateKeyFile` and
+`brooklyn.location.localhost.privateKeyPassphrase`.
+
+## Localhost
+
+Brooklyn can access localhost if there is an SSH key on the machine and if the SSH key has been added to the list of  `authorized_keys` on that machine.
+
+{% highlight bash %}
+# _Appends_ id_rsa.pub to authorized_keys. Other keys are unaffected.
+$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
+{% endhighlight %}
+
+MacOS user? In addition to the above, enable 'Remote Login' in System Preferences >
+ Sharing.
+
+
+## Cloud Endpoints (via jclouds)
+
+[Apache jclouds](http://www.jclouds.org) is a multi-cloud library that Brooklyn uses to access many clouds. The [full list of supported providers](http://jclouds.apache.org/reference/providers/) is available on jclouds.apache.org.
+
+Add your cloud provider's (API) credentials to `brooklyn.properties` and create an SSH key on the management machine.
+
+Some clouds provide both API keys and SSH keys. In this case add only the API credentials to `brooklyn.properties`. (jclouds will transparently use the API credentials to setup access using the management machine's SSH key.)
+
+### Example: AWS Virginia Large Centos
+
+{% highlight bash %}
+## Snippet from ~/.brooklyn/brooklyn.properties.
+
+# Provide jclouds with AWS API credentials.
+brooklyn.location.jclouds.aws-ec2.identity = AKA_YOUR_ACCESS_KEY_ID
+brooklyn.location.jclouds.aws-ec2.credential = YourSecretKeyWhichIsABase64EncodedString
+
+# Name this location 'AWS Virginia Large Centos' and wire to AWS US-East-1
+brooklyn.location.named.AWS\ Virginia\ Large\ Centos = jclouds:aws-ec2:us-east-1
+
+# (Using the same name) specify image, user and minimum ram size (ie instance size)
+brooklyn.location.named.AWS\ Virginia\ Large\ Centos.imageId=us-east-1/ami-7d7bfc14
+brooklyn.location.named.AWS\ Virginia\ Large\ Centos.user=root
+brooklyn.location.named.AWS\ Virginia\ Large\ Centos.minRam=4096
+
+
+{% endhighlight %}
+
+This will  appear as 'AWS Virginia Large Centos' in the web console, but will need to be escaped on the command line as:  `AWS\ Virginia\ Large\ Centos`.
+
+See the Getting Started [template brooklyn.properties](/use/guide/quickstart/brooklyn.properties) for more examples of using cloud endpoints.
+
+
+## Fixed Infrastructure
+
+Bringing your own nodes (BYON) to Brooklyn is straightforward.
+
+You will need the IP addresses of the nodes and the access credentials. Both SSH and password based login are supported.
+
+### Example: On-Prem Iron
+
+{% highlight bash %}
+## Snippet from ~/.brooklyn/brooklyn.properties.
+
+# Use the byon prefix, and provide the IP addresss (or IP ranges)
+brooklyn.location.named.On-Prem\ Iron\ Example=byon:(hosts="10.9.1.1,10.9.1.2,produser2@10.9.2.{10,11,20-29}")
+brooklyn.location.named.On-Prem\ Iron\ Example.user=produser1
+brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyFile=~/.ssh/produser_id_rsa
+brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyPassphrase=s3cr3tpassphrase
+
+{% endhighlight %}
+
+
+## Advanced Options
+
+Unusual provider? 'Featureful' API? Brooklyn can cope.
+
+[This spreadsheet](https://docs.google.com/a/cloudsoftcorp.com/spreadsheet/ccc?key=0Avy7Tdf2EOIqdGQzSlNiT2M0V19SejBScDhSdzMtT2c) provides explanation, guidance, and examples for the majority of location options.
+
+
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/locations/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/locations/toc.json b/docs/guide/use/guide/locations/toc.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/docs/guide/use/guide/locations/toc.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/management/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/management/index.md b/docs/guide/use/guide/management/index.md
new file mode 100644
index 0000000..576da81
--- /dev/null
+++ b/docs/guide/use/guide/management/index.md
@@ -0,0 +1,407 @@
+---
+title: Runtime Management
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide]
+
+---
+<a name="introduction"></a>
+brooklyn uses many of the ideas from autonomic computing to implement management of entities in a structured and reusable fashion (including provisioning, 
+healing, and optimising).
+
+Each external system, process or service is represented as an entity within brooklyn, with collections of these being represented and
+managed by other entities, and so forth through a hierarchy rooted in entities referred to as "Applications". Each entity has:
+
+- provisioning and tear-down logic for the external system(s) it represents
+- sensors which it publishes to report on its state and activity
+- effectors which can be invoked to change it
+- policies which perform analysis, enrichment (sensors), and execution (effectors). It is the policies in brooklyn which
+  perform the self-management (in autonomic terms) by monitoring sensors and invoking effectors.
+
+There are several ways to launch applications with brooklyn, and useful configuration options,
+as well as a debug-view web console.
+This chapter describes these high-level runtime concepts, then proceeds to present more
+detailed information on the underlying implementation of management within brooklyn.
+
+
+<a name="startup-config"></a>
+Startup Configuration
+---------------------
+
+brooklyn can read configuration from a variety of places:
+
+* the file ``~/.brooklyn/brooklyn.properties``
+* ``-D`` defines on the brooklyn (java) command-line
+* shell environment variables
+
+Default properties are described in the Javadoc and code of the class ``BrooklynProperties``,
+but some of the most common ones are:
+ 
+{% highlight properties %}
+brooklyn.location.jclouds.aws-ec2.identity=AKA50M30N3S1DFR0MAW55
+brooklyn.location.jclouds.aws-ec2.credential=aT0Ps3cr3tC0D3wh1chAW5w1llG1V3y0uTOus333
+brooklyn.location.jclouds.aws-ec2.privateKeyFile=~/path/to/id_rsa       # use specified key (default is ~/.ssh/id_rsa)
+brooklyn.location.jclouds.aws-ec2.publicKeyFile=~/path/to/id_rsa.pub    # (optional, inferred from previous if omitted)
+{% endhighlight %} 
+
+These can be specified as a shell environment variable or as a Java system property,
+although in those contexts the conventional format ``BROOKLYN_JCLOUDS_AWS_EC2_IDENTITY`` 
+is supported and recommended. 
+
+
+
+<a name="cli"></a>
+Command Line Interface
+----------------------
+
+Brooklyn comes with a Command Line Interface (cli) that makes it easier to launch an application.
+
+In order to have easy access to the cli it is useful to configure the PATH environment variable to also point to the cli's bin directory:
+
+{% highlight bash %}
+BROOKLYN_HOME=/path/to/brooklyn/
+export PATH=$PATH:$BROOKLYN_HOME/usage/dist/target/brooklyn-dist/bin/
+{% endhighlight %}
+
+If you have set this up correctly you should be able to invoke the ```brooklyn``` command:
+
+{% highlight bash %}
+brooklyn
+{% endhighlight %}
+
+To get information about all the supported cli options just run:
+
+{% highlight bash %}
+brooklyn help
+usage: brooklyn [(-q | --quiet)] [(-v | --verbose)] <command> [<args>]
+
+The most commonly used brooklyn commands are:
+    help     Display help information about brooklyn
+    info     Display information about brooklyn
+    launch   Starts a brooklyn application. Note that a BROOKLYN_CLASSPATH environment variable needs to be set up beforehand to point to the user application classpath.
+
+See 'brooklyn help <command>' for more information on a specific command.
+{% endhighlight %}
+
+Here is an example of the commands you might run to get the Brooklyn code, compile it and launch an application:
+
+{% highlight bash %}
+git clone https://github.com/brooklyncentral/brooklyn.git
+cd brooklyn
+mvn clean install -DskipTests
+BROOKLYN_HOME=$(pwd)
+export PATH=${PATH}:${BROOKLYN_HOME}/usage/dist/target/brooklyn-dist/bin/
+export BROOKLYN_CLASSPATH=${BROOKLYN_HOME}/examples/simple-web-cluster/target/classes
+brooklyn launch --app brooklyn.demo.SingleWebServerExample --location localhost
+{% endhighlight %}
+
+You can add things to the brooklyn classpath in a number of ways:
+
+* Add ``.jar`` files to brooklyn's ``./lib/dropins/`` directory. These are added at the end of the classpath.
+* Add ``.jar`` files to brooklyn's ``./lib/patch/`` directory. These are added at the front of the classpath.
+* Add resources to brooklyn's ``./conf/`` directory. This directory is at the very front of the classpath.
+* Use the ``BROOKLYN_CLASSPATH`` environment variable. If set, this is prepended to the brooklyn classpath.
+
+
+<a name="console"></a>
+Management Web Console
+----------------------
+
+The web-based management console that comes with brooklyn serves as a way to observe and manage brooklyn entities.
+It provides low-level details of activity (including stack-traces), sensor values, and policies,
+and some visual widgets for observing what is happening.
+This console is not designed as a management dashboard or portal -- 
+many good options exist in that space --
+but what could be useful is to embed widgets from the brooklyn portal for selected high-level views.
+
+<!-- FIXME Update to use new construction pattern, rather than calling app's constructor -->
+To start a management console from your own code, use ``BrooklynLaucher.launch``:
+{% highlight java %}
+public static void main(String[] argv) {
+	Application app = new MyApplicationExample(displayName:"myapp")
+    BrooklynServerDetails server = BrooklynLauncher.newLauncher()
+            .managing(app)
+            .launch();
+	// ...
+}
+{% endhighlight %}
+
+This will start an embedded brooklyn management node, including the web console.
+The URL for the web console defaults to http://127.0.0.1:8081, .
+
+The mechanism for launching brooklyn management will change in a future release. For this release, the brooklyn management node is embedded.
+
+The console contains two main views: Dashboard and Detail. These update in real-time.
+
+**Dashboard**
+
+The dashboard is a high level overview of the state of the application:
+
+[![Screenshot of the Webconsole Dashboard](webconsole-dashboard-w400.png "Screenshot of the Webconsole Dashboard")](webconsole-dashboard.png)
+
+
+**Detail**
+
+The Detail view gives an in-depth view of the application and its entities. 
+Child-parent relationships between entities are navigable using the entity tree;
+each entity is shown with its children (or, in the case of childless group entities, the members). 
+Selecting a specific entity allows you to access detailed information about that entity.
+
+[![Screenshot of the Webconsole Detail](webconsole-detail-w400.png "Screenshot of the Webconsole Detail")](webconsole-detail.png)
+
+The Detail view contains a breadcrumb trail, showing the current entitiy's position in the heirarchy, and six tabs:
+
+**Summary:** Description of the selected entity.
+
+**Sensors:** Lists the attribute sensors that the entity has and their values.
+
+**Effectors:** Lists the effectors that can be invoked on the selected entity.
+
+**Activity:** Current and historic activity of the entity, currently running effectors, finished effectors.
+
+**Location:** The geographical location of the selected entity.
+
+**Policies:** Lists the policies associated with the current entity. Policies can be suspended, resumed and removed through the UI.
+
+### Security
+
+Security providers can be configured by specifying `brooklyn.webconsole.security.provider` equal 
+to the name of a class implementing `SecurityProvider`.
+An implementation of this could point to Spring, LDAP, OpenID or another identity management system.
+
+The default implementation, `ExplicitUsersSecurityProvider`, reads from a list of users and passwords
+which should be specified as configuration parameters e.g. in `brooklyn.properties`.
+This configuration could look like:
+
+{% highlight properties %}
+brooklyn.webconsole.security.users=admin
+brooklyn.webconsole.security.user.admin.salt=OHDf
+brooklyn.webconsole.security.user.admin.sha256=91e16f94509fa8e3dd21c43d69cadfd7da6e7384051b18f168390fe378bb36f9
+{% endhighlight %}
+
+The `users` line should contain a comma-separated list. The special value `*` is accepted to permit all users.
+
+To generate this, the brooklyn CLI can be used:
+{% highlight bash %}
+brooklyn generate-password --user admin
+
+Enter password: 
+Re-enter password: 
+
+Please add the following to your brooklyn.properies:
+
+brooklyn.webconsole.security.users=admin
+brooklyn.webconsole.security.user.admin.salt=OHDf
+brooklyn.webconsole.security.user.admin.sha256=91e16f94509fa8e3dd21c43d69cadfd7da6e7384051b18f168390fe378bb36f9
+{% endhighlight %}
+
+For legacy and dev purposes, the password can also be stored in plain text:
+
+{% highlight properties %}
+brooklyn.webconsole.security.users=admin
+brooklyn.webconsole.security.user.admin.password=mypassword
+{% endhighlight %}
+
+If not using the web console, you can specify
+`brooklyn.webconsole.security.provider=brooklyn.rest.security.provider.BlackholeSecurityProvider` to prevent inadvertant logins.
+During dev/test you can specify `brooklyn.webconsole.security.provider=brooklyn.rest.security.provider.AnyoneSecurityProvider`
+to allow logins with no credentials. 
+
+To enable https, you will need a server certificate in a java keystore. To create a self-signed certificate, you can use the
+following command:
+
+`keytool -genkey -keyalg RSA -alias brooklyn -keystore <path-to-keystore-directory>/server.key -storepass mypassword -validity 360 -keysize 2048`
+
+You will then be prompted to enter you name and organization details. This will create a keystore with the password `mypassword`
+- you should use your own secure password, which will be the same password used in your brooklyn.properties (below). 
+You will also need to replace `<path-to-keystore-directory>` with the full path of the folder where you wish to store your
+keystore. 
+
+The certificate generated will be a self-signed certificate and will not have a CN field identifying the website server 
+name, which will cause a warning to be displayed by the browser when viewing the page. For production servers, a valid signed 
+certificate from a trusted certifying authority should be used instead
+
+To enable HTTPS in Brooklyn, add the following to your brooklyn.properties:
+
+```
+# HTTPS
+brooklyn.webconsole.security.https.required=true
+brooklyn.webconsole.security.keystore.url=<path-to-keystore-directory>/server.key
+brooklyn.webconsole.security.keystore.password=mypassword
+brooklyn.webconsole.security.keystore.certificate.alias=brooklyn
+```
+
+In order to access the Brooklyn console, you will also need to enable security, and setup a user as described above
+
+<a name="observation-other"></a>
+Other Ways to Observe Activity
+------------------------------
+
+### Java API
+
+``ManagementContext`` provides a Java programmatic API. 
+
+More information can be found in the javadoc for ``ManagementContext``.
+
+### Command-line Console
+
+*Not available yet.*
+
+### Management REST API
+
+Brooklyn does not yet expose a REST API. This was to allow the APi to be designed to align with emerging standards.
+
+Selected management operations are possible remotely using links exposed by the GUI (after authenticating with the GUI).
+
+### Logging
+
+Brooklyn uses the SLF4J logging facade,  which allows use of many popular frameworks including java.util.logging, log4j, and logback.
+
+The convention for log levels is as follows:
+* ERROR and above:  exceptional situations which indicate that something has unexpectedly failed or
+some other problem has occured which the user is expected to attend to
+* WARN:  exceptional situations which the user may which to know about but which do not necessarily indicate failure or require a response
+* INFO:  a synopsis of activity, but which should not generate large volumes of events nor overwhelm a human observer
+* DEBUG and lower:  detail of activity which is not normally of interest, but which might merit closer inspection under certain circumstances.
+
+Loggers follow the ``package.ClassName`` naming standard.  
+
+It is possible for entities to emit logging activity sensors so that an operator can observe what is occurring within their application through the web console or via programmatic means.
+
+Examples for testing can be found in some of the poms.
+
+
+<!---
+
+<a name="distributed-management"></a>
+Distributed Management
+----------------------
+
+TODO Describe how and when objects become "live", pushed out to other nodes.
+-->
+
+<!---
+
+<a name="resilience"></a>
+Resilience
+----------
+TODO
+*This section still needs to be written. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
+-->
+
+
+<a name="key-apis"></a>
+Key APIs
+--------
+<!---
+TODO - brief overview of key APIs
+-->
+*This section still needs to be written. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
+
+- ``ManagementContext`` (Java management API)
+- ``EntityLocal`` (used by policies)
+
+
+<!---
+TODO - describe how to simply configure logging slf4j
+-->
+<a name="sensors-and-effectors"></a>
+Sensors and Effectors
+---------------------
+
+### Sensors
+
+Sensors are typically defined as static named fields on the Entity subclass. These define the channels of events and activity that interested parties can track remotely. For example:
+{% highlight java %}
+/** a sensor for saying hi (illustrative), carrying a String value 
+	which is typically the name of the person to whom we are saying hi */
+public static final Sensor<String> HELLO_SENSOR = ...
+
+{% endhighlight %}
+
+If the entity is local (e.g. to a policy) these can be looked up using ``get(Sensor)``. If it may be remote, you can subscribe to it through various APIs.
+
+<!---
+TODO probably say about events now, quick reference about SubscriptionManager (either here or in next section on management context)
+TODO remaining section on Sensors perhaps should be moved to Writing Entities section? as reader won't need to know too much detail of sensor types to understand policies... though perhaps saying some is right. (Talking about JSON is almost certainly overkill...)
+-->
+
+Sensors are used by operators and policies to monitor health and know when to invoke the effectors. The sensor data forms a nested map (i.e. JSON), which can be subscribed to through the ``ManagementContext``.
+
+Often ``Policy`` instances will subscribe to sensor events on their associated entity or its children; these events might be an ``AttributeValueEvent`` – an attribute value being reported on change or periodically – or something transient such as ``LogMessage`` or a custom ``Event`` such as "TOO_HOT".
+
+<!---
+TODO check classes above; is this much detail needed here?
+-->
+
+Sensor values form a map-of-maps. An example of some simple sensor information is shown below in JSON:
+		
+	{
+	  config : {
+		url : "jdbc:mysql://ec2-50-17-19-65.compute-1.amazonaws.com:3306/mysql"
+		status : "running"
+	  }
+	  workrate : {
+		msgsPerSec : 432
+	  }
+	}
+
+Sensor values are defined as statics, which can be used to programmatically drive the subscription.
+<!---
+TODO , etc., example
+-->
+
+### SubscriptionManager
+
+*This section is not complete. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
+
+*See the* ``SubscriptionManager`` *class.*
+<!---
+TODO
+-->
+
+### Effectors
+
+Like sensors and config info, effectors are also static fields on the Entity class. These describe actions available on the entity, similar to methods. Their implementation includes details of how to invoke them, typically this is done by calling a method on the entity. Effectors are typically defined as follows:
+
+{% highlight java %}
+/** an effector which returns no value,
+	but which causes the entity to emit a HELLO sensor event */
+public static Effector<Void> SAY_HI = ...
+
+{% endhighlight %}
+
+Effectors are invoked by calling ``invoke(SAY_HI, name:"Bob")`` or similar. The method may take an entity if context is not clear, and it takes parameters as named parameters or a Map.
+
+Invocation returns a ``Task`` object (extending ``Future``). This allows the caller to understand progress and errors on the task, as well as ``Task.get()`` the return value. Be aware that ``task.get()`` is a blocking function that will wait until a value is available before returning.
+
+The management framework ensures that execution occurs on the machine where the ``Entity`` is mastered, with progress, result, and/or any errors reported back to the caller. It does this through the ``ExecutionManager`` which, where necessary, creates proxy ``Task`` instances. The ``ExecutionManager`` associates ``Tasks`` with the corresponding ``Entity`` so that these can be tracked externally (and relocated if the Entity is remastered to a different location).
+
+It is worth noting that where a method corresponds to an effector, direct invocation of that method on an ``Entity`` will implicitly generate the ``Task`` object as though the effector had been invoked. For example, invoking ``Cluster.resize(int)``, where ``resize`` provides an ``Effector RESIZE``, will generate a ``Task`` which can be observed remotely.
+
+### ExecutionManager
+
+The ``ExecutionManager`` is responsible for tracking simultaneous executing tasks and associating these with given **tags**.
+Arbitrary tasks can be run by calling ``Task submit(Runnable)`` (similarly to the standard ``Executor``, although it also supports ``Callable`` arguments including Groovy closures, and can even be passed ``Task`` instances which have not been started). ``submit`` also accepts a few other named parameters, including ``description``, which allow additional metadata to be kept on the ``Task``. The main benefit then is to have rich metadata for executing tasks, which can be inspected through methods on the ``Task`` interface.
+
+By using the ``tag`` or ``tags`` named parameters on ``submit`` (or setting ``tags`` in a ``Task`` that is submitted), execution can be associated with various categories. This allows easy viewing can be examined by calling
+``ExecutionManager.getTasksWithTag(...)``.
+
+The following example uses Groovy, with time delays abused for readability. brooklyn's test cases check this using mutexes, which is recommended.
+	
+	ExecutionManager em = []
+	em.submit(tag:"a", description:"One Mississippi", { Thread.sleep(1000) })
+	em.submit(tags:["a","b"], description:"Two Mississippi", { Thread.sleep(1000) })
+	assert em.getTasksWithTag("a").size()==2
+	assert em.getTasksWithTag("a").every { Task t -> !t.isDone() }
+	Thread.sleep(1500)
+	assert em.getTasksWithTag("a").size()==2
+	assert em.getTasksWithTag("a").every { Task t -> t.isDone() }
+
+It is possible to define ParallelTasks and SequentialTasks and to specify inter-task relationships with TaskPreprocessors. This allows building quite sophisticated workflows relatively easily. 
+
+Continuing the example above, submitting a SequentialTasks or specifying ``em.setTaskPreprocessorForTag("a", SingleThreadedExecution.class)`` will cause ``Two Mississippi`` to run after ``One Mississippi`` completes.
+
+For more information consult the javadoc on these classes and associated tests.
+
+Note that it is currently necessary to prune dead tasks, either periodically or by the caller. By default they are kept around for reference. It is expected that an enhancement in a future release will allow pruning completed and failed tasks after a specified amount of time.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/management/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/management/toc.json b/docs/guide/use/guide/management/toc.json
new file mode 100644
index 0000000..f470c2d
--- /dev/null
+++ b/docs/guide/use/guide/management/toc.json
@@ -0,0 +1,18 @@
+[{ "title": "Introduction",
+  "file":  "{{ site.url }}/use/guide/management/index.html#introduction" }, 
+{ "title": "Startup Configuration",
+  "file":  "{{ site.url }}/use/guide/management/index.html#startup-config" },
+{ "title": "Command Line Interface",
+  "file":  "{{ site.url }}/use/guide/management/index.html#cli" },
+{ "title": "Management Web Console",
+  "file":  "{{ site.url }}/use/guide/management/index.html#console" }, 
+{ "title": "Observation APIs",
+  "file":  "{{ site.url }}/use/guide/management/index.html#observation-other" }, 
+{ "title": "Distributed Management",
+  "file":  "{{ site.url }}/use/guide/management/index.html#distributed-management" }, 
+{ "title": "Resilience",
+  "file":  "{{ site.url }}/use/guide/management/index.html#resilience" }, 
+{ "title": "Key APIs",
+  "file":  "{{ site.url }}/use/guide/management/index.html#key-apis" }, 
+{ "title": "Sensors and Effectors",
+  "file":  "{{ site.url }}/use/guide/management/index.html#sensors-and-effectors" }]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/management/webconsole-dashboard-w400.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/management/webconsole-dashboard-w400.png b/docs/guide/use/guide/management/webconsole-dashboard-w400.png
new file mode 100644
index 0000000..6364dc5
Binary files /dev/null and b/docs/guide/use/guide/management/webconsole-dashboard-w400.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/management/webconsole-dashboard.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/management/webconsole-dashboard.png b/docs/guide/use/guide/management/webconsole-dashboard.png
new file mode 100644
index 0000000..cac5567
Binary files /dev/null and b/docs/guide/use/guide/management/webconsole-dashboard.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/management/webconsole-detail-w400.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/management/webconsole-detail-w400.png b/docs/guide/use/guide/management/webconsole-detail-w400.png
new file mode 100644
index 0000000..b372e55
Binary files /dev/null and b/docs/guide/use/guide/management/webconsole-detail-w400.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/management/webconsole-detail.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/management/webconsole-detail.png b/docs/guide/use/guide/management/webconsole-detail.png
new file mode 100644
index 0000000..17829cd
Binary files /dev/null and b/docs/guide/use/guide/management/webconsole-detail.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/persistence/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/persistence/index.md b/docs/guide/use/guide/persistence/index.md
new file mode 100644
index 0000000..8cd063b
--- /dev/null
+++ b/docs/guide/use/guide/persistence/index.md
@@ -0,0 +1,289 @@
+---
+title: Persistence
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide]
+
+---
+<a name="introduction"></a>
+Brooklyn can be configured to persist its state so that the Brooklyn server can be restarted, 
+or so that a high availability standby server can take over.
+
+Brooklyn can persist its state to one of two places: the file system, or to an Object Store
+of your choice.
+
+<a name="command-line-options"></a>
+Command Line Options
+--------------------
+
+To configure brooklyn, the relevant command line options for the `launch` commands are:
+
+* `--persist` <persistence mode>
+  The persistence mode.
+* `--persistenceDir` <persistence dir>
+  The directory to read/write persisted state (or container name if using an object store).
+* `--persistenceLocation` <persistence location>
+  The location spec for an object store to read/write persisted state.
+
+For the persistence mode, the possible values are:
+
+* `disabled` means that no state will be persisted or read; when Brooklyn stops all state is lost.
+* `rebind` means that it will read existing state, and recreate entities, locations and policies 
+  from that. If there is no existing state, startup will fail.
+* `clean` means that any existing state will be deleted, and Brooklyn will be started afresh.
+* `auto` means Brooklyn will rebind if there is any existing state, or will start afresh if 
+  there is no state.
+
+The persistence directory and location can instead be specified from `brooklyn.properties` using
+the following config keys:
+
+* `brooklyn.persistence.dir`
+* `brooklyn.persistence.location.spec`
+
+
+<a name="file-based-persistence"></a>
+File-based Persistence
+----------------------
+
+To persist to the file system, start brooklyn with:
+
+{% highlight bash %}
+brooklyn launch --persist auto --persistenceDir /path/to/myPersistenceDir
+{% endhighlight %}
+
+If there is already data at `/path/to/myPersistenceDir`, then a backup of the directory will 
+be made. This will have a name like `/path/to/myPersistenceDir.20140701-142101345.bak`.
+
+The state is written to the given path. The file structure under that path is:
+
+* `./entities/`
+* `./locations/`
+* `./policies/`
+* `./enrichers/`
+
+In each of those directories, an XML file will be created per item - for example a file per
+entity in ./entities/. This file will capture all of the state - for example, an
+entity's: id; display name; type; config; attributes; tags; relationships to locations, child 
+entities, group membership, policies and enrichers; and dynamically added effectors and sensors.
+
+
+<a name="object-store-persistence"></a>
+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.
+
+To configure the Object Store, add the credentials to `~/.brooklyn/brooklyn.properties` such as:
+
+{% highlight properties %}
+brooklyn.location.named.aws-s3-eu-west-1:aws-s3:eu-west-1
+brooklyn.location.named.aws-s3-eu-west-1.identity=ABCDEFGHIJKLMNOPQRSTU
+brooklyn.location.named.aws-s3-eu-west-1.credential=abcdefghijklmnopqrstuvwxyz1234567890ab/c
+{% endhighlight %} 
+
+or:
+
+{% highlight properties %}
+brooklyn.location.named.softlayer-swift-ams01=jclouds:swift:https://ams01.objectstorage.softlayer.net/auth/v1.0
+brooklyn.location.named.softlayer-swift-ams01.identity=ABCDEFGHIJKLM:myname
+brooklyn.location.named.softlayer-swift-ams01.credential=abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12
+{% endhighlight %} 
+
+Start Brooklyn pointing at this target object store, e.g.:
+
+{% highlight bash %}
+brooklyn launch --persist auto --persistenceDir myContainerName --persistenceLocation named:softlayer-swift-ams01
+{% endhighlight %}
+
+
+<a name="rebind"></a>
+Rebind
+------
+
+When Brooklyn starts up pointing at existing state, it will recreate the entities, locations 
+and policies based on that persisted state.
+
+Once all have been created, Brooklyn will "manage" the entities. This will bind to the 
+underlying entities under management to update the each entity's sensors (e.g. to poll over 
+HTTP or JMX). This new state will be reported in the web-console and can also trigger 
+any registered policies.
+
+
+<a name="copy-state"></a>
+Copying Persistence State
+-------------------------
+
+Brooklyn includes a command to copy persistence state easily between two locations.
+The `copy-state` CLI command takes the following arguments:
+
+* `--persistenceDir` <source persistence dir>
+  The directory to read persisted state (or container name if using an object store).
+* `--persistenceLocation` <source persistence location>
+  The location spec for an object store to read persisted state.
+* `--destinationDir` <target persistence dir>
+  The directory to copy persistence data to (or container name if using an object store).
+* `--destinationLocation` <target persistence location>
+  The location spec for an object store to copy data to.
+* `--transformations` <transformations>
+  The local transformations file to be applied to the copy of the data before uploading it.
+
+
+<a name="handling-rebind-failures"></a>
+Handling Rebind Failures
+------------------------
+If rebind were to fail for any reason, details of the underlying failures will be reported 
+in the brooklyn.debug.log. There are several approaches to resolving problems.
+
+<a name="rebind-failures-determine-underlying-cause"></a>
+### Determine Underlying Cause
+
+The problems reported in brooklyn.debug.log will indicate where the problem lies - which 
+entities, locations or policies, and in what way it failed.
+
+<a name="rebind-failures-ignore-errors"></a>
+### Ignore Errors
+
+The `~/.brooklyn/brooklyn.properties` has several configuration options:
+
+{% highlight properties %}
+rebind.failureMode.danglingRef=continue
+rebind.failureMode.loadPolicy=continue
+rebind.failureMode.addPolicy=continue
+rebind.failureMode.rebind=fail_at_end
+{% endhighlight %} 
+
+For each of these configuration options, the possible values are:
+
+* `fail_fast`: stop rebind immediately upon errors; do not try to rebind other entities
+* `fail_at_end`: continue rebinding all entities, but then fail so that all errors 
+  encountered are reported
+* `continue`: log a warning, but ignore the error to continue rebinding. Depending on the 
+  type of error, this can cause serious problems later (e.g. if the state of an entity
+  was entirely missing, then all its children would be orphaned).
+
+The meaning of the configuration options is:
+
+* `rebind.failureMode.dangingRef`: if there is a reference to an entity, location or policy 
+  that is missing... whether to continue (discarding the reference) or fail.
+* `rebind.failureMode.loadPolicy`: if there is an error instantiate or reconstituting the 
+  state of a policy or enricher... whether to continue (discarding the policy or enricher) 
+  or fail.
+* `rebind.failureMode.addPolicy`: if there is an error re-adding the policy or enricher to
+  its associated entity... whether to continue (discarding the policy or enricher) 
+  or fail.
+* `rebind.failureMode.rebind`: any errors on rebind not covered by the more specific error cases described above.
+
+
+<a name="rebind-failures-seek-help"></a>
+### Seek Help
+
+Help can be found at `dev@brooklyn.incubator.apache.org`, where folk will be able to investigate 
+issues and suggest work-arounds.
+
+By sharing the persisted state (with credentials removed), Brooklyn developers will be able to 
+reproduce and debug the problem.
+
+
+<a name="rebind-failures-determine-fix-up-the-state"></a>
+### Fix-up the State
+
+The state of each entity, location, policy and enricher is persisted in XML. 
+It is thus human readable and editable.
+
+After first taking a backup of the state, it is possible to modify the state. For example,
+an offending entity could be removed, or references to that entity removed, or its XML 
+could be fixed to remove the problem.
+
+
+### Fixing with Groovy Scripts
+
+The final (powerful and dangerous!) tool is to execute Groovy code on the running Brooklyn 
+instance. If authorized, the REST api allows arbitrary Groovy scripts to be passed in and 
+executed. This allows the state of entities to be modified (and thus fixed) at runtime.
+
+If used, it is strongly recommended that Groovy scripts are run against a disconnected Brooklyn
+instance. After fixing the entities, locations and/or policies, the Brooklyn instance's 
+new persisted state can be copied and used to fix the production instance.
+
+
+<a name="high-availability"></a>
+High Availability
+-----------------
+
+Brooklyn will automatically run in HA mode if multiple Brooklyn instances are started
+pointing at the same persistence store.  One Brooklyn node (e.g. the first one started)
+is elected as HA master:  all *write operations* against Brooklyn entities, such as creating
+an application or invoking an effector, should be directed to the master.
+
+Once one node is running as `MASTER`, other nodes start in either `STANDBY` or `HOT_STANDBY` mode:
+
+* In `STANDBY` mode, a Brooklyn instance will monitor the master and will be a candidate
+  to become `MASTER` should the master fail. Standby nodes do *not* attempt to rebind
+  until they are elected master, so the state of existing entities is not available at
+  the standby node.  However a standby server consumes very little resource until it is
+  promoted.
+  
+* In `HOT_STANDBY` mode, a Brooklyn instance will read and make available the live state of
+  entities.  Thus a hot-standby node is available as a read-only copy.
+  As with the standby node, if a hot-standby node detects that the master fails,
+  it will be a candidate for promotion to master.
+
+To explicitly specify what HA mode a node should be in, the following CLI options are available
+for the parameter `--highAvailability`:
+
+* `disabled`: management node works in isolation; it will not cooperate with any other standby/master nodes in management plane
+* `auto`: will look for other management nodes, and will allocate itself as standby or master based on other nodes' states
+* `master`: will startup as master; if there is already a master then fails immediately
+* `standby`: will start up as lukewarm standby; if there is not already a master then fails immediately
+* `hot_standby`: will start up as hot standby; if there is not already a master then fails immediately
+
+The REST API offers live detection and control of the HA mode,
+including setting priority to control which nodes will be promoted on master failure:
+
+* `/server/ha/state`: Returns the HA state of a management node (GET),
+  or changes the state (POST)
+* `/server/ha/states`: Returns the HA states and detail for all nodes in a management plane
+* `/server/ha/priority`: Returns the HA node priority for MASTER failover (GET),
+  or sets that priority (POST)
+
+Note that when POSTing to a non-master server it is necessary to pass a `Brooklyn-Allow-Non-Master-Access: true` header.
+For example, the following cURL command could be used to change the state of a `STANDBY` node on `localhost:8082` to `HOT_STANDBY`:
+
+    curl -v -X POST -d mode=HOT_STANDBY -H "Brooklyn-Allow-Non-Master-Access: true" http://localhost:8082/v1/server/ha/state
+
+
+<a name="writing-persistable-code"></a>
+Writing Persistable Code
+------------------------
+The most common problem on rebind is that custom entity code has not been written in a way
+that can be persisted and/or rebound.
+
+The rule of thumb when implementing new entities, locations and policies is that all state
+must be persistable. All state must be stored as config or as attributes, and must be
+serializable (e.g. avoid the use of anonymous inner classes).
+
+Below is a guide for when implementing an entity in Java (or any other JVM language):
+
+* Don't store state in artibrary fields - the field will not be persisted (this is a design
+  decision, because Brooklyn cannot intercept the field being written to, so cannot know
+  when to persist).
+* Store runtime state as attributes.
+* Ensure values can be serialized. This (currently) uses xstream, which means it does not
+  need to implement `Serializable`. However, if declaring your own classes that are to be
+  persisted as state of the entity then declare them as static (or top-level) classes 
+  rather than anonymous inner classes or non-static inner classes.
+* By extending `SoftwareProcess`, entities get a lot of the rebind logic for free. For 
+  example, the default `rebind()` method will call `connectSensors()`.
+* If necessary, implement rebind. The `entity.rebind()` is called automatically by the
+  Brooklyn framework on rebind, after configuring the entity's config/attributes but before 
+  the entity is managed.
+  Note that `init()` will not be called on rebind.
+* For special cases, it is possible to call `entity.requestPerist()` which will trigger
+  asynchronous persistence of the entity.
+
+For locations, policies and enrichers they (currently) do not have attributes. However,
+config is persisted automatically. Normally the state of a policy or enricher is transient - 
+on rebind it starts afresh, for example with monitoring the performance or health metrics
+rather than relying on the persisted values.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/persistence/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/persistence/toc.json b/docs/guide/use/guide/persistence/toc.json
new file mode 100644
index 0000000..b49602e
--- /dev/null
+++ b/docs/guide/use/guide/persistence/toc.json
@@ -0,0 +1,16 @@
+[{ "title": "Introduction",
+  "file":  "{{ site.url }}/use/guide/persistence/index.html#introduction" }, 
+{ "title": "Command Line Options",
+  "file":  "{{ site.url }}/use/guide/persistence/index.html#command-line-options" },
+{ "title": "File-based Persistence",
+  "file":  "{{ site.url }}/use/guide/persistence/index.html#file-based-persistence" },
+{ "title": "Object Store Persistence",
+  "file":  "{{ site.url }}/use/guide/persistence/index.html#object-store-persistence" }, 
+{ "title": "Rebind",
+  "file":  "{{ site.url }}/use/guide/persistence/index.html#rebind" }, 
+{ "title": "Handling Rebind Failures",
+  "file":  "{{ site.url }}/use/guide/persistence/index.html#handling-rebind-failures" }, 
+{ "title": "High Availability",
+  "file":  "{{ site.url }}/use/guide/persistence/index.html#high-availability" }, 
+{ "title": "Writing Persistable Code",
+  "file":  "{{ site.url }}/use/guide/persistence/index.html#writing-persistable-code" }]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/policies/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/policies/index.md b/docs/guide/use/guide/policies/index.md
new file mode 100644
index 0000000..9dea286
--- /dev/null
+++ b/docs/guide/use/guide/policies/index.md
@@ -0,0 +1,129 @@
+---
+title: Policies
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide]
+
+---
+<a name="introduction"></a>
+
+Policies perform the active management enabled by Brooklyn.  
+They can subscribe to entity sensors and be triggered by them or they can run periodically.
+
+<!---
+TODO, clarify below, memebers of what?
+-->
+Policies can add subscriptions to sensors on any entity. Normally a policy will subscribe to its related entity, to the child entities, and/or those entities which are members.
+
+When a policy runs it can:
+
+*	perform calculations,
+*	look up other values,
+*	invoke efectors  (management policies) or,
+*	cause the entity associated with the policy to emit sensor values (enricher policies). 
+
+Entities can have zero or more ``Policy`` instances attached to them.
+
+<a name="writing-policies"></a>
+Writing Policies
+----------------
+
+### Sample Policy
+
+<!---
+TODO
+-->
+
+*This section is not complete. Feel free to [fork]({{site.url}}/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.url}}/dev/code) the docs and lend a hand.*
+
+- extend ``AbstractPolicy``, or override an existing policy
+
+
+<a name="off-the-shelf-policies"></a>
+Off-the-Shelf Policies
+----------------------
+
+Policies are highly reusable as their inputs, thresholds and targets are customizable.
+
+### Management Policies
+- Resizer 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.
+
+   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.
+  
+<!---
+TODO - list some
+TODO - describe how they can be customised (briefly mention sensors)
+-->
+
+
+###  Enricher Policies
+
+*	Delta
+
+	Converts absolute sensor values into a delta.
+	
+
+*	Time-weighted Delta
+
+	Converts absolute sensor values into a delta/second.
+	
+*	Rolling Mean
+
+	Converts the last *N* sensor values into a mean.
+	
+*	Rolling Time-window Mean
+
+	Converts the last *N* seconds of sensor values into a weighted mean.
+
+*	Custom Aggregating
+
+	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. 
+
+<a name="implementing-policies"></a>
+Implementing Policies
+---------------------
+
+<!---
+TODO
+-->
+
+*This section is not yet complete. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
+
+Please see the class* ``brooklyn.policy.Policy`` *and implementations.
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/policies/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/policies/toc.json b/docs/guide/use/guide/policies/toc.json
new file mode 100644
index 0000000..7257dd7
--- /dev/null
+++ b/docs/guide/use/guide/policies/toc.json
@@ -0,0 +1,8 @@
+[{ "title": "Introduction",
+  "file":  "{{ site.url }}/use/guide/policies/index.html#introduction" }, 
+{ "title": "Writing Policies",
+  "file":  "{{ site.url }}/use/guide/policies/index.html#writing-policies" },
+{ "title": "Off-the-Shelf Policies",
+  "file":  "{{ site.url }}/use/guide/policies/index.html#off-the-shelf-policies" },
+{ "title": "Implementing Policies",
+  "file":  "{{ site.url }}/use/guide/policies/index.html#implementing-policies" }]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/brooklyn.properties
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/brooklyn.properties b/docs/guide/use/guide/quickstart/brooklyn.properties
new file mode 100644
index 0000000..59a6f06
--- /dev/null
+++ b/docs/guide/use/guide/quickstart/brooklyn.properties
@@ -0,0 +1,324 @@
+#
+# 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.
+#
+# This is Brooklyn's dot-properties file.
+# It should be located at "~/.brooklyn/brooklyn.properties" for automatic loading,
+# or can be specified as a CLI option with --localProperties /path/to/these.properties.
+
+##################################  Welcome!  ############################################
+
+# It's great to have you here.
+
+# Getting Started options have been pulled to the top. There's a formatting guide at the
+# very bottom.
+
+############################ Getting Started Options  ####################################
+
+## GUI Security
+
+## NOTE: in production it is highly recommended to set this, as otherwise it will not require login,
+## not will it be encrypted (though for safety if security is not set it will only bind to loopback)
+
+## Edit the name(s) and passwords as appropriate to your system:
+
+# brooklyn.webconsole.security.users=admin,bob
+# brooklyn.webconsole.security.user.admin.password=password
+# brooklyn.webconsole.security.user.bob.password=bobsword
+
+## If you prefer to run with https (on port 8443 by default), uncomment this:
+
+# brooklyn.webconsole.security.https.required=true
+
+
+# By default we have AWS set up (but with invalid credentials!).  Many, many other
+# providers are supported.
+
+## Amazon EC2 Credentials
+# These should be an "Access Key ID" and "Secret Access Key" for your account.
+# This is configured at https://console.aws.amazon.com/iam/home?#security_credential .
+
+brooklyn.location.jclouds.aws-ec2.identity = AKA_YOUR_ACCESS_KEY_ID
+brooklyn.location.jclouds.aws-ec2.credential = <access-key-hex-digits>
+
+# Beware of trailing spaces in your cloud credentials. This will cause unexpected
+# 401: unauthorized responses.
+
+## Using Other Clouds
+# 1. Cast your eyes down this document to find your preferred cloud in the Named Locations
+#    section, and the examples.
+# 2. Uncomment the relevant line(s) for your provider.
+# 3. ADD  -.identity and -.credential lines for your provider, similar to the AWS ones above,
+#    replacing 'aws-ec2' with jcloud's id for your cloud.
+
+
+## Deploying to Localhost
+## see: brooklyncentral.github.io/use/guide/locations/
+#
+## ~/.ssh/id_rsa is Brooklyn's default location
+# brooklyn.location.localhost.privateKeyFile = ~/.ssh/id_rsa
+## Passphrases are supported, but not required
+# brooklyn.location.localhost.privateKeyPassphrase = s3cr3tpassphrase
+
+## Geoscaling Service - used for the Global Web Fabric demo
+## see: brooklyncentral.github.io/use/examples/global-web-fabric/ and
+## https://www.geoscaling.com/dns2/
+## other services may take similar configuration similarly; or can usually be set in YAML
+# brooklyn.geoscaling.username = USERNAME
+# brooklyn.geoscaling.password = PASSWORD
+# brooklyn.geoscaling.primaryDomain = DOMAIN
+
+
+##########################  Getting Started Complete!  ###################################
+
+# That's it, although you may want to read through these options...
+
+################################ Brooklyn Options ########################################
+
+## Brooklyn Management Base Directory: specify where management data should be stored on this server;
+## ~/.brooklyn/ is the default but you could use something like /opt/brooklyn/state/
+## (provided this process has write permissions) 
+# brooklyn.base.dir=~/.brooklyn/
+
+## Brooklyn On-Box Directory: specify where data should be stored on managed hosts; 
+## for most locations a directory off home is the default (but using /tmp/brooklyn-user/ on localhost),
+## however you could specify something like /opt/brooklyn-managed-process/ (creation and permissions are handled)
+# onbox.base.dir=~/brooklyn-managed-process/
+
+## Additional security: Allow all - if you know what you are doing! 
+## (Or you can also plug in e.g. LDAP security etc here)
+# brooklyn.webconsole.security.provider = brooklyn.rest.security.provider.AnyoneSecurityProvider
+
+## Optionally disallow deployment to localhost (or any other location)
+# brooklyn.location.localhost.enabled=false
+
+## Scripting Behaviour
+
+## keep scripts around after running them (usually in /tmp) 
+# brooklyn.ssh.config.noDeleteAfterExec = true
+
+## Misc Cloud Settings
+## brooklyn will fail a node if the cloud machine doesn't come up, but you can tell it to retry:
+# brooklyn.location.jclouds.machineCreateAttempts = 3
+## many cloud machines don't have sufficient entropy for lots of encrypted networking, so fake it:
+# brooklyn.location.jclouds.installDevUrandom=true
+
+## Sets a minimium ram property for all jclouds locations. Recommended to avoid getting m1.micros on AWS!
+brooklyn.location.jclouds.minRam = 2048
+
+## When setting up a new cloud machine Brooklyn creates a user with the same name as the user running
+## Brooklyn on the management server, but you can force a different user here:
+# brooklyn.location.jclouds.user=brooklyn
+## And you can force a password or key (by default it will use the keys in ~/.ssh/id_rsa{,.pub}
+# brooklyn.location.jclouds.password=s3cr3t
+
+################################ Named Locations ########################################
+
+# Named locations appear in the web console. If using the command line or YAML it may be 
+# just as easy to use the jclouds:<provider> locations and specify additional properties there.
+
+## Example: AWS Virginia using Rightscale 6.3 64bit Centos AMI and Large Instances
+# brooklyn.location.named.aws-va-centos-large = jclouds:aws-ec2:us-east-1
+# brooklyn.location.named.aws-va-centos-large.imageId=us-east-1/ami-7d7bfc14
+# brooklyn.location.named.aws-va-centos-large.user=brooklyn
+# brooklyn.location.named.aws-va-centos-large.minRam=4096
+
+## You can also nest these:
+# brooklyn.location.named.aws-acct-two = jclouds:aws-ec2
+# brooklyn.location.named.aws-acct-two.identity = AKA_ACCT_TWO
+# brooklyn.location.named.aws-acct-two.credential = <access-key-hex-digits>
+# brooklyn.location.named.aws-acct-two-singapore = named:aws-acct-two
+# brooklyn.location.named.aws-acct-two-singapore.region = ap-southeast-1
+# brooklyn.location.named.aws-acct-two-singapore.displayName = AWS Singapore (Acct Two)
+
+# For convenience some common defaults:
+brooklyn.location.named.aws-california = jclouds:aws-ec2:us-west-1
+brooklyn.location.named.aws-oregon = jclouds:aws-ec2:us-west-2
+brooklyn.location.named.aws-ireland = jclouds:aws-ec2:eu-west-1
+brooklyn.location.named.aws-tokyo = jclouds:aws-ec2:ap-northeast-1
+
+## Google Compute
+## Note at present you have to create and download the P12 key from the Google "APIs & auth -> Registered Apps" interface,
+## then convert to PEM private key format using  `openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes`
+## then embed that on one line as the 'credential, replacing new lines with \n as below
+## (hopefully this will be improved in jclouds in the future)
+# brooklyn.location.jclouds.google-compute-engine.identity=1234567890-somet1mesArand0mU1Dhere@developer.gserviceaccount.com
+# brooklyn.location.jclouds.google-compute-engine.credential=-----BEGIN PRIVATE KEY----- \nMIIblahablahblah \nblahblahblah \n-----END PRIVATE KEY-----
+# brooklyn.location.named.Google\ US = jclouds:google-compute-engine
+# brooklyn.location.named.Google\ US.region=us-central1-a
+# brooklyn.location.named.Google\ EU = jclouds:google-compute-engine
+# brooklyn.location.named.Google\ EU.region=europe-west1-a
+## the following flags for GCE are recommended
+## specify the network to use - otherwise it creates new networks each time and you hit quotas pretty quickly
+## you may have to manually create this network AND enable a firewall rule EG  tcp:1-65535;udp:1-65535;icmp  
+## (fix for this is in progress)
+# brooklyn.location.jclouds.google-compute-engine.networkName=brooklyn-default-network
+## gce images have bad entropy, this ensures they have noisy /dev/random (even if the "randomness" is not quite as random)
+# brooklyn.location.jclouds.google-compute-engine.installDevUrandom=true
+## gce images often start with iptables turned on; turn it off 
+# brooklyn.location.jclouds.google-compute-engine.stopIptables=true
+
+## HP Cloud - also Ubuntu 12.04 LTS
+## You specify your HP Credentials like this:
+# brooklyn.location.jclouds.hpcloud-compute.identity = projectname:username
+# brooklyn.location.jclouds.hpcloud-compute.credential = password
+## where username and password are the same as logging in to the web console, and
+## projectname can be found here: https://account.hpcloud.com/projects
+#�brooklyn.location.named.HP\ Cloud\ Arizona-1 = jclouds:hpcloud-compute:az-1.region-a.geo-1
+# brooklyn.location.named.HP\ Cloud\ Arizona-1.imageId = az-1.region-a.geo-1/75845
+# brooklyn.location.named.HP\ Cloud\ Arizona-1.user = ubuntu
+
+## Softlayer - need a key from the gui, under "administrative -> user administration -> api-access 
+# brooklyn.location.jclouds.softlayer.identity=username
+# brooklyn.location.jclouds.softlayer.credential=<private-key-hex-digits>
+## locations
+# brooklyn.location.named.Softlayer\ Dallas=jclouds:softlayer:dal05
+# brooklyn.location.named.Softlayer\ Seattle=jclouds:softlayer:sea01
+# brooklyn.location.named.Softlayer\ Washington\ DC=jclouds:softlayer:wdc01
+# brooklyn.location.named.Softlayer\ Singapore\ 1=jclouds:softlayer:sng01
+# brooklyn.location.named.Softlayer\ Amsterdam\ 1=jclouds:softlayer:ams01
+
+
+## Brooklyn uses the jclouds multi-cloud library to access many clouds.
+## http://www.jclouds.org/documentation/reference/supported-providers/
+
+## Templates for many other clouds, but remember to add identity and credentials:
+
+# brooklyn.location.named.Bluelock = jclouds:bluelock-vcloud-zone01
+
+# brooklyn.location.named.CloudSigma\ Nevada = jclouds:cloudsigma-lvs
+# brooklyn.location.named.CloudSigma\ Zurich = jclouds:cloudsigma-zrh
+
+# brooklyn.location.named.ElasticHosts\ London = jclouds:elastichosts-lon-p
+# brooklyn.location.named.ElasticHosts\ Texas = jclouds:elastichosts-sat-p
+
+# brooklyn.location.named.GleSYS = jclouds:glesys
+
+# brooklyn.location.named.Go2Cloud = jclouds:go2cloud-jhb1
+
+# brooklyn.location.named.GoGrid = jclouds:gogrid
+
+# brooklyn.location.named.Green\ House\ Data = jclouds:greenhousedata-element-vcloud
+
+# brooklyn.location.named.Ninefold = jclouds:ninefold-compute
+
+# brooklyn.location.named.OpenHosting = jclouds:openhosting-east1
+
+# brooklyn.location.named.Rackspace\ Chicago\ (ord) = jclouds:rackspace-cloudservers-us:ORD
+# brooklyn.location.named.Rackspace\ Dallas\ (dfw) = jclouds:rackspace-cloudservers-us:DFW
+# brooklyn.location.named.Rackspace\ Hong\ Kong\ (hkg) = jclouds:rackspace-cloudservers-us:HKG
+# brooklyn.location.named.Rackspace\ Northern\ Virginia\ (iad) = jclouds:rackspace-cloudservers-us:IAD
+# brooklyn.location.named.Rackspace\ Sydney\ (syd) = jclouds:rackspace-cloudservers-us:SYD
+## for UK you will need a separate account with rackspace.co.uk
+# brooklyn.location.named.Rackspace\ London\ (lon) = jclouds:rackspace-cloudservers-uk
+
+## if you need to use Rackspace "first gen" API
+## (note the "next gen" api configured above seems to be faster)
+# brooklyn.location.jclouds.cloudservers-us.identity = YOURAPIKEY
+# brooklyn.location.jclouds.cloudservers-us.credential = YOURSECRETKEY
+# brooklyn.location.named.Rackspace\ US\ (First Gen) = jclouds:cloudservers-us
+## and as with next gen, first gen requires a separate acct for the UK:
+# brooklyn.location.jclouds.cloudservers-uk.identity = YOURAPIKEY
+# brooklyn.location.jclouds.cloudservers-uk.credential = YOURSECRETKEY
+# brooklyn.location.named.Rackspace\ UK\ (First Gen) = jclouds:cloudservers-uk
+
+# brooklyn.location.named.SeverLove = jclouds:serverlove-z1-man
+
+# brooklyn.location.named.SkaliCloud = jclouds:skalicloud-sdg-my
+
+# brooklyn.location.named.Stratogen = jclouds:stratogen-vcloud-mycloud
+
+# brooklyn.location.named.TryStack\ (Openstack) = jclouds:trystack-nova
+
+
+## Production pool of machines for my application (deploy to named:On-Prem\ Iron\ Example)
+# brooklyn.location.named.On-Prem\ Iron\ Example=byon:(hosts="10.9.1.1,10.9.1.2,produser2@10.9.2.{10,11,20-29}")
+# brooklyn.location.named.On-Prem\ Iron\ Example.user=produser1
+# brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyFile=~/.ssh/produser_id_rsa
+# brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyPassphrase=s3cr3tpassphrase
+
+## Various Private Clouds
+
+## Example: OpenStack Nova
+
+## openstack identity and credential are random strings of letters and numbers (TBC - still the case?)
+# brooklyn.location.named.My\ Openstack=jclouds:openstack-nova:https://9.9.9.9:9999/v2.0/
+
+## OpenStack Nova access information can be downloaded from the openstack web interface; for example, as openrc.sh file
+# brooklyn.location.named.My\ Openstack=jclouds:openstack-nova:keystone-url
+# brooklyn.location.named.My\ OpenStack.identity=your-tenant-name:your-user-name
+# brooklyn.location.named.My\ OpenStack.credential=your-password
+# brooklyn.location.named.My\ OpenStack.endpoint=your-keystone-url 
+
+## The ID of the image must be configured according to the local OpenStack settings
+## Use the command nova image-list to list all the available images
+## Use the command nova show <image-name> to get more details
+# brooklyn.location.named.My\ OpenStack.imageId=the-region-name/the-image-id
+
+## Virtual Machine flavors must match the ones created upfront according to the local OpenStack settings
+## Use the command nova flavor-list to list all the available options
+## Use the command nova flavor-show <flavor-name> to get more details
+# brooklyn.location.named.My\ OpenStack.hardwareId=the-region-name/the-flavor-id
+
+## (Optional) Configurations
+
+# brooklyn.location.named.My\ OpenStack.user=user-name-inside-the-instance
+
+## The keyPair must by created upfront. Both the following two options are required at the same time.
+# brooklyn.location.named.My\ OpenStack.keyPair=the-key-pair-name
+# brooklyn.location.named.My\ OpenStack.loginUser.privateKeyFile=/path/to/keypair.pem
+
+## Security groups must be created upfront (TBC - How to specify many security groups at one ?)
+# brooklyn.location.named.My\ OpenStack.securityGroups=universal
+
+# brooklyn.location.named.My\ OpenStack.openIptables=true
+# brooklyn.location.named.My\ OpenStack.selinux.disabled=true
+# brooklyn.location.named.My\ OpenStack.auto-create-floating-ips=true
+# brooklyn.location.named.My\ OpenStack.openstack-nova.auto-generate-keypairs=false
+
+## cloudstack identity and credential are rather long random strings of letters and numbers
+## you generate this in the cloudstack gui, under accounts, then "view users", then "generate key"
+## use the "api key" as the identity and "secret key" as the credential
+# brooklyn.location.named.My\ Cloudstack=jclouds:cloudstack:http://9.9.9.9:9999/client/api/
+
+## abiquo identity and credential are your login username/passed
+# brooklyn.location.named.My\ Abiquo=jclouds:abiquo:http://demonstration.abiquo.com/api/
+
+###############################  Formatting Guide  #######################################
+
+! Both # and ! mark lines as comments
+# The follow syntax are ALL valid.
+# example_key example_value
+# example_key : example_value
+# example_key = example_value
+# example_key=example_value
+
+# The backslash below tells Brooklyn to continue reading the value onto the next line.
+# example_key = A very \
+#          	long string!
+# Note all white space before 'long...' is ignored. Also '!' is kept as part of the string
+
+
+# Keys with spaces should be escaped with backslashes.
+# This is useful for named locations, as the name displayed in Brooklyn's web
+# interface is derived from the key name.
+# key\ with\ spaces = some\ value
+
+# Encoding for .properties must be ISO-8859-1, aka Latin-1.
+# All non-latin1 characters must be entered using unicode escape characters
+# polish_pangram = P\u00F3jd\u017A\u017Ce, ki\u0144 \
+#                  t\u0119 chmurno\u015B\u0107 w g\u0142\u0105b flaszy!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/catalog.xml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/catalog.xml b/docs/guide/use/guide/quickstart/catalog.xml
new file mode 100644
index 0000000..cbb5584
--- /dev/null
+++ b/docs/guide/use/guide/quickstart/catalog.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<catalog>
+    <name>Brooklyn Demos</name>
+
+
+    <template type="brooklyn.demo.WebClusterDatabaseExample" name="Demo Web Cluster with DB">
+      <description>Deploys a demonstration web application to a managed JBoss cluster with elasticity, persisting to a MySQL</description>
+      <iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/JBoss_by_Red_Hat.png</iconUrl>
+    </template>
+
+    <template type="brooklyn.demo.GlobalWebFabricExample" name="Demo GeoDNS Web Fabric DB">
+      <description>Deploys a demonstration web application to JBoss clusters around the world</description>
+      <iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/JBoss_by_Red_Hat.png</iconUrl>
+    </template>
+    
+    <classpath>
+      <entry>https://oss.sonatype.org/service/local/artifact/maven/redirect?r=releases&amp;g=io.brooklyn.example&amp;a=brooklyn-example-simple-web-cluster&amp;v=0.7.0-SNAPSHOT&amp;e=jar</entry> <!-- BROOKLYN_VERSION -->
+      <entry>https://oss.sonatype.org/service/local/artifact/maven/redirect?r=releases&amp;g=io.brooklyn.example&amp;a=brooklyn-example-global-web-fabric&amp;v=0.7.0-SNAPSHOT&amp;e=jar</entry> <!-- BROOKLYN_VERSION -->
+    </classpath>
+
+
+</catalog>
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-large.png b/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-large.png
new file mode 100644
index 0000000..b566b1a
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-large.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location-large.png b/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location-large.png
new file mode 100644
index 0000000..05e9b0c
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location-large.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location.png b/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location.png
new file mode 100644
index 0000000..c13fdd8
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db.png b/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db.png
new file mode 100644
index 0000000..ebb6f42
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/add-application-modal-yaml.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/add-application-modal-yaml.png b/docs/guide/use/guide/quickstart/images/add-application-modal-yaml.png
new file mode 100644
index 0000000..c50b7ab
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/add-application-modal-yaml.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/jboss7-cluster-policies-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/jboss7-cluster-policies-large.png b/docs/guide/use/guide/quickstart/images/jboss7-cluster-policies-large.png
new file mode 100644
index 0000000..3d84477
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/jboss7-cluster-policies-large.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/jboss7-cluster-policies.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/jboss7-cluster-policies.png b/docs/guide/use/guide/quickstart/images/jboss7-cluster-policies.png
new file mode 100644
index 0000000..2f85328
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/jboss7-cluster-policies.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/my-db-activities-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/my-db-activities-large.png b/docs/guide/use/guide/quickstart/images/my-db-activities-large.png
new file mode 100644
index 0000000..c214d9e
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/my-db-activities-large.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/my-db-activities.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/my-db-activities.png b/docs/guide/use/guide/quickstart/images/my-db-activities.png
new file mode 100644
index 0000000..0f2327c
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/my-db-activities.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/my-web-cluster-starting.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/my-web-cluster-starting.png b/docs/guide/use/guide/quickstart/images/my-web-cluster-starting.png
new file mode 100644
index 0000000..c389b0b
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/my-web-cluster-starting.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/my-web-cluster-stop-confirm-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/my-web-cluster-stop-confirm-large.png b/docs/guide/use/guide/quickstart/images/my-web-cluster-stop-confirm-large.png
new file mode 100644
index 0000000..c9bdab6
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/my-web-cluster-stop-confirm-large.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/my-web-cluster-stop-confirm.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/my-web-cluster-stop-confirm.png b/docs/guide/use/guide/quickstart/images/my-web-cluster-stop-confirm.png
new file mode 100644
index 0000000..179b00a
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/my-web-cluster-stop-confirm.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/my-web-summary-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/my-web-summary-large.png b/docs/guide/use/guide/quickstart/images/my-web-summary-large.png
new file mode 100644
index 0000000..fc4bffe
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/my-web-summary-large.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/my-web-summary.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/my-web-summary.png b/docs/guide/use/guide/quickstart/images/my-web-summary.png
new file mode 100644
index 0000000..e85752f
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/my-web-summary.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/images/my-web.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/images/my-web.png b/docs/guide/use/guide/quickstart/images/my-web.png
new file mode 100644
index 0000000..2bd6ac3
Binary files /dev/null and b/docs/guide/use/guide/quickstart/images/my-web.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/index.md b/docs/guide/use/guide/quickstart/index.md
new file mode 100644
index 0000000..150a163
--- /dev/null
+++ b/docs/guide/use/guide/quickstart/index.md
@@ -0,0 +1,221 @@
+---
+title: Getting Started
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide]
+---
+
+{% include fields.md %}
+
+This guide will walk you through deploying an application to a public cloud.
+
+We will be deploying an example 3-tier web application, described using this blueprint: 
+
+{% highlight yaml %}
+{% readj my-web-cluster.yaml %}
+{% endhighlight %}
+
+(This is written in YAML, following the [camp specification](https://www.oasis-open.org/committees/camp/). )
+
+
+## Install Brooklyn
+
+Download the [Brooklyn distribution]({{ this_dist_url_tgz }}) and expand it to your home directory ( `~/` ), or in a location of your choice. (Other [download options]({{site.url}}/start/download.html) are available.)
+
+{% if site.brooklyn-version contains 'SNAPSHOT' %}
+Expand the `tar.gz` archive (note: as this is a -SNAPSHOT version, your filename will be slightly different):
+{% else %}
+Expand the `tar.gz` archive:
+{% endif %}
+
+{% if site.brooklyn-version contains 'SNAPSHOT' %}
+{% highlight bash %}
+$ tar -zxf brooklyn-dist-{{ site.brooklyn-version }}-timestamp-dist.tar.gz
+{% endhighlight %}
+{% else %}
+{% highlight bash %}
+$ tar -zxf brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz
+{% endhighlight %}
+{% endif %}
+
+This will create a `brooklyn-{{ site.brooklyn-version }}` folder.
+
+Note: You'll need a Java JRE or SDK installed (version 6 or later), as Brooklyn is Java under the covers.
+
+## Launch Brooklyn
+
+Let's setup some paths for easy commands.
+
+(Click the clipboard on these code snippets for easier c&p.)
+
+{% highlight bash %}
+$ cd brooklyn-{{ site.brooklyn-version }}
+$ BROOKLYN_DIR="$(pwd)"
+$ export PATH=$PATH:$BROOKLYN_DIR/bin/
+{% endhighlight %}
+
+We can do a quick test drive by launching Brooklyn:
+
+{% highlight bash %}
+$ brooklyn launch
+{% endhighlight %}
+
+Brooklyn will output the address of the management interface:
+
+    INFO  Starting brooklyn web-console on loopback interface because no security config is set
+    INFO  Started Brooklyn console at http://127.0.0.1:8081/, running classpath://brooklyn.war and []
+
+But before we really use Brooklyn, we need to configure security and locations.
+In particular, if you are running on a remote server, you'll notice that Brooklyn has
+bound only to the loopback device, not a public network interface, and you won't be able
+to access the server. This is for security reasons; you can override by passing `-b 0.0.0.0`,
+or once you have configured security it will automatically bind to all interfaces by default.
+ 
+Stop Brooklyn with ctrl-c, or in the web-browser (under "Help"), or with `kill`.
+(The PID is written to a file in the directory where you launch.) 
+
+
+<a name="properties"></a>
+## Configuring Brooklyn with brooklyn.properties
+
+Brooklyn reads startup configuration from a file `~/.brooklyn/brooklyn.properties`, by default.
+You can create this from a template [brooklyn.properties](brooklyn.properties) file which you edit;
+this file can be installed with:
+
+{% highlight bash %}
+$ mkdir ~/.brooklyn
+$ cd ~/.brooklyn
+$ wget {{site.url}}/use/guide/quickstart/brooklyn.properties
+{% endhighlight %}
+
+Open this file in a text editor and follow the instructions there. The main settings are summarized below:
+
+<a name="security"></a>
+## Configuring Security
+
+To configure Brooklyn to run on a public IP address, security should be enabled.
+The simplest way is to define a user and password in `~/.brooklyn/brooklyn.properties`
+(described above): 
+
+    brooklyn.webconsole.security.users=admin
+    brooklyn.webconsole.security.user.admin.password=s3cr3t
+
+Other modes, including LDAP, are described in this file.
+
+The other common setting is to run under https (on port 8443 by default):
+
+    brooklyn.webconsole.security.https.required=true
+
+These settings require a restart to Brooklyn.
+
+
+<a name="location"></a>
+## Configuring a Location
+
+Brooklyn deploys applications to ``locations''. These locations
+can be clouds, machines with fixed IPs or localhost (for testing).
+Their configuration can be specified in `~/.brooklyn/brooklyn.properties` (described above),
+and then these locations can be easily selected within Brooklyn.
+Alternatively this information can be specified in the YAML when applications are deployed,
+without needing to set it in `brooklyn.properties`.
+
+Some sample settings for this are:
+
+    brooklyn.location.jclouds.aws-ec2.identity = AKA_YOUR_ACCESS_KEY_ID
+    brooklyn.location.jclouds.aws-ec2.credential = <access-key-hex-digits>
+    brooklyn.location.named.aws-california = jclouds:aws-ec2:us-west-1
+    brooklyn.location.named.aws-california.displayName = AWS US West 1 (CA)
+
+    brooklyn.location.jclouds.softlayer.identity = username
+    brooklyn.location.jclouds.softlayer.credential = <private-key-hex-digits>
+    brooklyn.location.named.softlayer-dal05 = jclouds:softlayer:dal05
+    brooklyn.location.named.softlayer-dal05.displayName = Softlayer Dallas
+
+If you want to test Brooklyn on localhost, follow [these instructions]({{site.url}}/use/guide/locations/) 
+to ensure that your Brooklyn can access your machine.
+
+Once updated, restart Brooklyn (or reload the properties within the web GUI).
+
+
+## Launching an Application in Brooklyn
+
+There are several ways to deploy a YAML blueprint (including specifying the blueprint on the command line or submitting it via the REST API).
+
+For now, we will simply copy-and-paste the raw YAML blueprint into the web console.
+
+Open the web console ([127.0.0.1:8081](http://127.0.0.1:8081)). As Brooklyn is not currently managing any applications the 'Create Application' dialog opens automatically. Select the YAML tab.
+
+![Brooklyn web console, showing the YAML tab of the Add Application dialog.](images/add-application-modal-yaml.png)
+
+
+### Chose your Cloud / Location
+
+Edit the 'location' parameter in the YAML template (repeated below) to use the location you configured.
+
+For example, replace:
+{% highlight yaml %}
+location: location
+{% endhighlight %}
+
+with (one of):
+{% highlight yaml %}
+location: aws-ec2:us-east-1
+location: rackspace-cloudservers-us:ORD
+location: google-compute-engine:europe-west1-a
+location: localhost
+{% endhighlight %}
+
+**My Web Cluster Blueprint**
+
+{% highlight yaml %}
+{% readj my-web-cluster.yaml %}
+{% endhighlight %}
+
+Paste the modified YAML into the dialog and click 'Finish'.
+The dialog will close and Brooklyn will begin deploying your application.
+
+Your application will be shown as 'Starting' on the web console's front page.
+
+![My Web Cluster is STARTING.](images/my-web-cluster-starting.png)
+
+
+## Monitoring and Managing Applications
+
+Click on the application name, or open the Applications tab.
+
+We can explore the management hierarchy of the application, which will show us the entities it is composed of.
+
+ * My Web Cluster (A `BasicApplication`)
+     * My DB (A `MySqlNode`)
+     * My Web (A `ControlledDynamicWebAppCluster`)
+        * Cluster of JBoss7 Servers (A `DynamicWebAppCluster`)
+        * NginxController (An `NginxController`)
+
+
+
+Clicking on the 'My Web' entity will show the Summary tab. Here we can see if the cluster is ready to serve and, when ready, grab the web address for the front of the loadbalancer.
+
+![Exploring My Web.](images/my-web.png)
+
+
+The Activity tab allows us to drill down into what activities each entity is currently doing or has recently done. It is possible to drill down to all child tasks, and view the commands issued, and any errors or warnings that occured.
+
+Drill into the 'My DB' start operation. Working down through  'Start (processes)', then 'launch', we can discover the ssh command used including the stdin, stdout and stderr.
+
+[![My DB Activities.](images/my-db-activities.png)](images/my-db-activities-large.png)
+
+
+## Stopping the Application
+
+To stop an application, select the application in the tree view (the top/root entity), click on the Effectors tab, and invoke the 'Stop' effector. This will cleanly shutdown all components in the application and return any cloud machines that were being used.
+
+[![My DB Activities.](images/my-web-cluster-stop-confirm.png)](images/my-web-cluster-stop-confirm-large.png)
+
+
+### Next 
+
+So far we have touched on Brooklyn's ability to *deploy* an application blueprint to a cloud provider, but this a very small part of Brooklyn's capabilities!
+
+Brooklyn's real power is in using Policies to automatically *manage* applications. There is also the (very useful) ability to store a catalog of application blueprints, ready to go.
+
+[Getting Started - Policies and Catalogs](policies-and-catalogs.html)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/my-web-cluster.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/my-web-cluster.yaml b/docs/guide/use/guide/quickstart/my-web-cluster.yaml
new file mode 100644
index 0000000..bbafa00
--- /dev/null
+++ b/docs/guide/use/guide/quickstart/my-web-cluster.yaml
@@ -0,0 +1,19 @@
+name: My Web Cluster
+location: location
+services:
+
+- serviceType: 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/{{ site.brooklyn-version }}/brooklyn-example-hello-world-sql-webapp-{{ site.brooklyn-version }}.war
+    java.sysprops:
+      brooklyn.example.db.url: >
+        $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
+        component("db").attributeWhenReady("datastore.url"),
+        "visitors", "brooklyn", "br00k11n")
+
+- serviceType: brooklyn.entity.database.mysql.MySqlNode
+  id: db
+  name: My DB
+  brooklyn.config:
+    creationScriptUrl: https://bit.ly/brooklyn-visitors-creation-script
\ No newline at end of file


[34/50] [abbrv] incubator-brooklyn git commit: tidy build script

Posted by he...@apache.org.
tidy build script


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

Branch: refs/heads/master
Commit: 4fc20766a60dbd14181816afb523c4a791e93362
Parents: 19d2915
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 00:56:48 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:58 2014 +0000

----------------------------------------------------------------------
 docs/_build/build.sh | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4fc20766/docs/_build/build.sh
----------------------------------------------------------------------
diff --git a/docs/_build/build.sh b/docs/_build/build.sh
index 66b50e4..129f0f4 100755
--- a/docs/_build/build.sh
+++ b/docs/_build/build.sh
@@ -9,9 +9,12 @@ if [ ! -x _build/build.sh ] ; then
 fi
 
 function help() {
+  echo ""
   echo "This will build the documentation in _site/."
+  echo ""
   echo "Usage:  _build/build.sh MODE [ARGS]"
-  echo "where MODE is:"
+  echo ""
+  echo "where MODE can be any of:"
   echo "* website-root  : to build the website only, in the root"
   echo "* guide-latest  : to build the guide only, in /v/latest/"
   # BROOKLYN_VERSION_BELOW
@@ -20,14 +23,15 @@ function help() {
   echo "* test-both : to build the website to root and guide to /v/latest/ (for testing)"
   echo "* test-both-sub : to build the website to /sub/ and guide to /sub/v/latest/ (for testing)"
   echo "* original : to build the files in their original location (website it /website and guide in /guide/, for testing)"
+  echo ""
   echo "and supported ARGS are:"
   echo "* --skip-javadoc : to skip javadoc build"
   echo "* --serve : serve files from _site after building (for testing)"
   echo "* --install : install files from _site to the appropriate place in "'$'"BROOKLYN_SITE_DIR (or ../../incubator-brooklyn-site-public)"
-  echo 'with any remaining ARGS passed to jekyll as `jekyll build --config ... ARGS`.'
+  echo ""
 }
 
-function parse_command() {
+function parse_mode() {
   case $1 in
   help)
     help
@@ -97,10 +101,10 @@ function parse_command() {
     SUMMARY="all files in their original place"
     ;;
   "")
-    echo "ERROR: arguments are required; try 'help'"
+    echo "ERROR: mode is required; try 'help'"
     exit 1 ;;
   *)
-    echo "ERROR: invalid argument '$1'; try 'help'"
+    echo "ERROR: invalid mode '$1'; try 'help'"
     exit 1 ;;
   esac
   SUMMARY="$SUMMARY of `pwd`/_site"
@@ -121,21 +125,17 @@ function parse_arguments() {
       INSTALL_AFTERWARDS=true
       shift
       ;;
-    "--")
-      shift
-      break
-      ;;
     *)
-      break
+      echo "ERROR: invalid argument '"$1"'"
+      exit 1
       ;;
     esac
   done
-  JEKYLL_ARGS="$@"
 }
 
 function make_jekyll() {
-  echo JEKYLL running with: jekyll build $JEKYLL_CONFIG $JEKYLL_ARGS
-  jekyll build --config $JEKYLL_CONFIG $JEKYLL_ARGS || return 1
+  echo JEKYLL running with: jekyll build $JEKYLL_CONFIG
+  jekyll build --config $JEKYLL_CONFIG || return 1
   echo JEKYLL completed
   for DI in "${!DIRS_TO_MOVE[@]}"; do
     D=${DIRS_TO_MOVE[$DI]}
@@ -183,7 +183,7 @@ function make_install() {
 
 rm -rf _site
 
-parse_command $@
+parse_mode $@
 shift
 parse_arguments $@
 


[22/50] [abbrv] incubator-brooklyn git commit: add website files, and update the build.sh script appropriately

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/items.js
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/items.js b/docs/website/learnmore/catalog/items.js
new file mode 100644
index 0000000..814636a
--- /dev/null
+++ b/docs/website/learnmore/catalog/items.js
@@ -0,0 +1,24674 @@
+var items = {
+  "entities" : [ {
+    "type" : "brooklyn.entity.messaging.activemq.ActiveMQBroker",
+    "defaultVersion" : "5.7.0",
+    "name" : "ActiveMQ Broker",
+    "description" : "ActiveMQ is an open source message broker which fully implements the Java Message Service 1.1 (JMS)",
+    "iconUrl" : "classpath:///activemq-logo.png",
+    "config" : [ {
+      "name" : "activemq.install.mirror.url",
+      "type" : "java.lang.String",
+      "defaultValue" : "http://www.mirrorservice.org/sites/ftp.apache.org/activemq/apache-activemq",
+      "description" : "URL of mirror",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "activemq.jetty.port",
+      "type" : "brooklyn.location.PortRange",
+      "defaultValue" : "8161-65535",
+      "description" : "jetty port",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "activemq.templateConfigurationUrl",
+      "type" : "java.lang.String",
+      "defaultValue" : "classpath://brooklyn/entity/messaging/activemq/activemq.xml",
+      "description" : "Template file (in freemarker format) for the conf/activemq.xml file",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "children.startable.mode",
+      "type" : "java.lang.Enum",
+      "defaultValue" : null,
+      "description" : "children.startable.mode",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : [ {
+        "value" : "NONE",
+        "description" : "NONE"
+      }, {
+        "value" : "FOREGROUND",
+        "description" : "FOREGROUND"
+      }, {
+        "value" : "FOREGROUND_LATE",
+        "description" : "FOREGROUND_LATE"
+      }, {
+        "value" : "BACKGROUND",
+        "description" : "BACKGROUND"
+      }, {
+        "value" : "BACKGROUND_LATE",
+        "description" : "BACKGROUND_LATE"
+      } ],
+      "links" : null
+    }, {
+      "name" : "customize.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking customize until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "download.addon.urls",
+      "type" : "java.util.Map",
+      "defaultValue" : null,
+      "description" : "URL patterns for downloading named add-ons (will substitute things like ${version} automatically)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "download.url",
+      "type" : "java.lang.String",
+      "defaultValue" : "${driver.mirrorUrl}/${version}/apache-activemq-${version}-bin.tar.gz",
+      "description" : "URL pattern for downloading the installer (will substitute things like ${version} automatically)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "expandedinstall.dir",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Directory for installed artifacts (e.g. expanded dir after unpacking .tgz)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "files.runtime",
+      "type" : "java.util.Map",
+      "defaultValue" : null,
+      "description" : "Map of files to be copied, keyed by destination name relative to runDir",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "install.dir",
+      "type" : "java.lang.String",
+      "defaultValue" : "${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/installs/${(config['install.unique_label']??)?string(config['install.unique_label']!'X',(entity.entityType.simpleName)+((config['install.version']??)?string('_'+(config['install.version']!'X'),'')))}",
+      "description" : "Directory for this software to be installed in",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "install.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking install until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "install.skip",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : false,
+      "description" : "Skip the driver install commands entirely, for pre-installed software",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "install.unique_label",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Provides a label which uniquely identifies an installation, used in the computation of the install dir; this should include something readable, and must include a hash of all data which differentiates an installation (e.g. version, plugins, etc), but should be the same where install dirs can be shared to allow for re-use",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "install.version",
+      "type" : "java.lang.String",
+      "defaultValue" : "5.7.0",
+      "description" : "Suggested version",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "java.check.hostname.bug",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : true,
+      "description" : "Check whether hostname is too long and will likely crash Javadue to bug 7089443",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "java.opts",
+      "type" : "java.util.Set",
+      "defaultValue" : [ ],
+      "description" : "Java command line options",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "java.sysprops",
+      "type" : "java.util.Map",
+      "defaultValue" : { },
+      "description" : "Java command line system properties",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.agent.mode",
+      "type" : "java.lang.Enum",
+      "defaultValue" : "AUTODETECT",
+      "description" : "What type of JMX agent to use; defaults to null (autodetect) which means JMXMP_AND_RMI allowing firewall access through a single port as well as local access supporting jconsole (unless JMX_SSL_ENABLED is set, in which case it is JMXMP only)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : [ {
+        "value" : "AUTODETECT",
+        "description" : "AUTODETECT"
+      }, {
+        "value" : "JMXMP",
+        "description" : "JMXMP"
+      }, {
+        "value" : "JMXMP_AND_RMI",
+        "description" : "JMXMP_AND_RMI"
+      }, {
+        "value" : "JMX_RMI_CUSTOM_AGENT",
+        "description" : "JMX_RMI_CUSTOM_AGENT"
+      }, {
+        "value" : "JMX_RMI",
+        "description" : "JMX_RMI"
+      }, {
+        "value" : "NONE",
+        "description" : "NONE"
+      } ],
+      "links" : null
+    }, {
+      "name" : "jmx.context",
+      "type" : "java.lang.String",
+      "defaultValue" : "jmxrmi",
+      "description" : "JMX context path",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.direct.port",
+      "type" : "brooklyn.location.PortRange",
+      "defaultValue" : "31001-65535",
+      "description" : "JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.enabled",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : true,
+      "description" : "JMX enabled",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.password",
+      "type" : "java.lang.String",
+      "defaultValue" : "admin",
+      "description" : "JMX password",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.ssl.access.cert",
+      "type" : "java.security.cert.Certificate",
+      "defaultValue" : null,
+      "description" : "certificate of key used to access a JMX agent",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.ssl.access.key",
+      "type" : "java.security.PrivateKey",
+      "defaultValue" : null,
+      "description" : "key used to access a JMX agent (typically per entity, embedded in the managed JVM)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.ssl.enabled",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : false,
+      "description" : "JMX over JMXMP enabled with SSL/TLS",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.user",
+      "type" : "java.lang.String",
+      "defaultValue" : "admin",
+      "description" : "JMX username",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "launch.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking launch until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "openwire.port",
+      "type" : "brooklyn.location.PortRange",
+      "defaultValue" : "61616-65535",
+      "description" : "OpenWire port",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "post.install.command",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Command to be run after the install method being called on the driver",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "post.launch.command",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Command to be run after the launch method being called on the driver",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "pre.install.command",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Command to be run prior to the install method being called on the driver",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "pre.launch.command",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Command to be run prior to the launch method being called on the driver",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "provisioning.properties",
+      "type" : "java.util.Map",
+      "defaultValue" : { },
+      "description" : "Custom properties to be passed in when provisioning a new machine",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "resources.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking resources until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "rmi.registry.port",
+      "type" : "brooklyn.location.PortRange",
+      "defaultValue" : "1099,19099-65535",
+      "description" : "RMI registry port, used for discovering JMX (private) port",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "run.dir",
+      "type" : "java.lang.String",
+      "defaultValue" : "${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/apps/${entity.applicationId}/entities/${entity.entityType.simpleName}_${entity.id}",
+      "description" : "Directory for this software to be run from",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "setup.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking setup until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "shell.env",
+      "type" : "java.util.Map",
+      "defaultValue" : { },
+      "description" : "Map of environment variables to pass to the runtime shell",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "softwareProcess.maxSensorRebindDelay",
+      "type" : "brooklyn.util.time.Duration",
+      "defaultValue" : "10s",
+      "description" : "The maximum delay to apply when reconnecting sensors when rebinding to this entity. Brooklyn will wait a random amount of time, up to the value of this config key, to avoid a thundering herd problem when the entity shares its machine with several others. Set to null or to 0 to disable any delay.",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "start.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking start until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "start.timeout",
+      "type" : "brooklyn.util.time.Duration",
+      "defaultValue" : "2m",
+      "description" : "Time to wait for process and for SERVICE_UP before failing (in seconds, default 2m)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "templates.runtime",
+      "type" : "java.util.Map",
+      "defaultValue" : null,
+      "description" : "Map of templates to be filled in and copied, keyed by destination name relative to runDir",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    } ],
+    "sensors" : [ {
+      "name" : "activemq.jetty.port",
+      "type" : "java.lang.Integer",
+      "description" : "jetty port",
+      "links" : null
+    }, {
+      "name" : "activemq.templateConfigurationUrl",
+      "type" : "java.lang.String",
+      "description" : "Template file (in freemarker format) for the conf/activemq.xml file",
+      "links" : null
+    }, {
+      "name" : "broker.url",
+      "type" : "java.lang.String",
+      "description" : "Broker Connection URL",
+      "links" : null
+    }, {
+      "name" : "download.addon.urls",
+      "type" : "java.util.Map",
+      "description" : "URL patterns for downloading named add-ons (will substitute things like ${version} automatically)",
+      "links" : null
+    }, {
+      "name" : "download.url",
+      "type" : "java.lang.String",
+      "description" : "URL pattern for downloading the installer (will substitute things like ${version} automatically)",
+      "links" : null
+    }, {
+      "name" : "expandedinstall.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for installed artifacts (e.g. expanded dir after unpacking .tgz)",
+      "links" : null
+    }, {
+      "name" : "host.address",
+      "type" : "java.lang.String",
+      "description" : "Host IP address",
+      "links" : null
+    }, {
+      "name" : "host.name",
+      "type" : "java.lang.String",
+      "description" : "Host name",
+      "links" : null
+    }, {
+      "name" : "host.subnet.address",
+      "type" : "java.lang.String",
+      "description" : "Host address as known internally in the subnet where it is running (if different to host.name)",
+      "links" : null
+    }, {
+      "name" : "host.subnet.hostname",
+      "type" : "java.lang.String",
+      "description" : "Host name as known internally in the subnet where it is running (if different to host.name)",
+      "links" : null
+    }, {
+      "name" : "install.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for this software to be installed in",
+      "links" : null
+    }, {
+      "name" : "jmx.context",
+      "type" : "java.lang.String",
+      "description" : "JMX context path",
+      "links" : null
+    }, {
+      "name" : "jmx.direct.port",
+      "type" : "java.lang.Integer",
+      "description" : "JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)",
+      "links" : null
+    }, {
+      "name" : "jmx.password",
+      "type" : "java.lang.String",
+      "description" : "JMX password",
+      "links" : null
+    }, {
+      "name" : "jmx.service.url",
+      "type" : "java.lang.String",
+      "description" : "The URL for connecting to the MBean Server",
+      "links" : null
+    }, {
+      "name" : "jmx.user",
+      "type" : "java.lang.String",
+      "description" : "JMX username",
+      "links" : null
+    }, {
+      "name" : "openwire.port",
+      "type" : "java.lang.Integer",
+      "description" : "OpenWire port",
+      "links" : null
+    }, {
+      "name" : "rmi.registry.port",
+      "type" : "java.lang.Integer",
+      "description" : "RMI registry port, used for discovering JMX (private) port",
+      "links" : null
+    }, {
+      "name" : "run.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for this software to be run from",
+      "links" : null
+    }, {
+      "name" : "service.isUp",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether the service is active and availability (confirmed and monitored)",
+      "links" : null
+    }, {
+      "name" : "service.process.isRunning",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether the process for the service is confirmed as running",
+      "links" : null
+    }, {
+      "name" : "service.state",
+      "type" : "brooklyn.entity.basic.Lifecycle",
+      "description" : "Actual lifecycle state of the service",
+      "links" : null
+    }, {
+      "name" : "softwareprocess.pid.file",
+      "type" : "java.lang.String",
+      "description" : "PID file",
+      "links" : null
+    }, {
+      "name" : "softwareservice.provisioningLocation",
+      "type" : "brooklyn.location.MachineProvisioningLocation",
+      "description" : "Location used to provision a machine where this is running",
+      "links" : null
+    } ],
+    "effectors" : [ {
+      "name" : "restart",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Restart the process/service represented by an entity",
+      "links" : null
+    }, {
+      "name" : "start",
+      "returnType" : "void",
+      "parameters" : [ {
+        "name" : "locations",
+        "type" : "java.lang.Object",
+        "description" : "The location or locations to start in, as a string, a location object, a list of strings, or a list of location objects",
+        "defaultValue" : null
+      } ],
+      "description" : "Start the process/service represented by an entity",
+      "links" : null
+    }, {
+      "name" : "stop",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Stop the process/service represented by an entity",
+      "links" : null
+    } ]
+  }, {
+    "type" : "brooklyn.entity.nosql.cassandra.CassandraFabric",
+    "name" : "Apache Cassandra Database Fabric",
+    "description" : "Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store which provides a ColumnFamily-based data model richer than typical key/value systems",
+    "iconUrl" : "classpath:///cassandra-logo.jpeg",
+    "config" : [ {
+      "name" : "cassandra.fabric.datacenter.namer",
+      "type" : "com.google.common.base.Function",
+      "defaultValue" : null,
+      "description" : "Function used to provide the cassandra.replication.datacenterName for a given location",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamiccfabric.memberspec",
+      "type" : "brooklyn.entity.proxying.EntitySpec",
+      "defaultValue" : null,
+      "description" : "entity spec for creating new cluster members",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamicfabric.customChildFlags",
+      "type" : "java.util.Map",
+      "defaultValue" : { },
+      "description" : "Additional flags to be passed to children when they are being created",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamicfabric.displayNamePrefix",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Display name prefix, for created children",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamicfabric.displayNameSuffix",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Display name suffix, for created children",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamicfabric.factory",
+      "type" : "brooklyn.entity.basic.EntityFactory",
+      "defaultValue" : null,
+      "description" : "factory for creating new cluster members",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "enricher.service_state.children_and_members.quorum.running",
+      "type" : "brooklyn.entity.basic.QuorumCheck",
+      "defaultValue" : "QuorumCheck[require=0,100.0%]",
+      "description" : "Problems check from children actual states (lifecycle), applied by default to members and children, not checking upness, but requiring by default that none are on-fire",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "enricher.service_state.children_and_members.quorum.up",
+      "type" : "brooklyn.entity.basic.QuorumCheck",
+      "defaultValue" : "QuorumCheck[require=1,0.0%]",
+      "description" : "Up check, applied by default to members, requiring at least one present and up",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "fabric.initial.quorumSize",
+      "type" : "java.lang.Integer",
+      "defaultValue" : -1,
+      "description" : "Initial fabric quorum size - number of initial nodes that must have been successfully started to report success (if less than 0, then use a value based on INITIAL_SIZE of clusters)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "group.members.delegate",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : false,
+      "description" : "Add delegate child entities for members of the group",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "group.members.delegate.nameFormat",
+      "type" : "java.lang.String",
+      "defaultValue" : "%s",
+      "description" : "Delegate members name format string (Use %s for the original entity display name)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    } ],
+    "sensors" : [ {
+      "name" : "cassandra.cluster.datacenterUsages",
+      "type" : "com.google.common.collect.Multimap",
+      "description" : "Current set of datacenters in use, with nodes in each",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.datacenters",
+      "type" : "java.util.Set",
+      "description" : "Current set of datacenters in use",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.hostname",
+      "type" : "java.lang.String",
+      "description" : "Hostname to connect to cluster with",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.seeds.current",
+      "type" : "java.util.Set",
+      "description" : "Current set of seeds to use to bootstrap the cluster",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.seeds.hasPublished",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether we have published any seeds",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.thrift.port",
+      "type" : "java.lang.Integer",
+      "description" : "Cassandra Thrift RPC port to connect to cluster with",
+      "links" : null
+    }, {
+      "name" : "fabric.size",
+      "type" : "java.lang.Integer",
+      "description" : "Fabric size",
+      "links" : null
+    }, {
+      "name" : "group.members",
+      "type" : "java.util.Collection",
+      "description" : "Members of the group",
+      "links" : null
+    }, {
+      "name" : "group.members.added",
+      "type" : "brooklyn.entity.Entity",
+      "description" : "Entity added to group members",
+      "links" : null
+    }, {
+      "name" : "group.members.count",
+      "type" : "java.lang.Integer",
+      "description" : "Number of members",
+      "links" : null
+    }, {
+      "name" : "group.members.removed",
+      "type" : "brooklyn.entity.Entity",
+      "description" : "Entity removed from group members",
+      "links" : null
+    }, {
+      "name" : "service.isUp",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether the service is active and availability (confirmed and monitored)",
+      "links" : null
+    }, {
+      "name" : "service.state",
+      "type" : "brooklyn.entity.basic.Lifecycle",
+      "description" : "Actual lifecycle state of the service",
+      "links" : null
+    } ],
+    "effectors" : [ {
+      "name" : "restart",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Restart the process/service represented by an entity",
+      "links" : null
+    }, {
+      "name" : "start",
+      "returnType" : "void",
+      "parameters" : [ {
+        "name" : "locations",
+        "type" : "java.lang.Object",
+        "description" : "The location or locations to start in, as a string, a location object, a list of strings, or a list of location objects",
+        "defaultValue" : null
+      } ],
+      "description" : "Start the process/service represented by an entity",
+      "links" : null
+    }, {
+      "name" : "stop",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Stop the process/service represented by an entity",
+      "links" : null
+    }, {
+      "name" : "update",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Updates the cluster members",
+      "links" : null
+    } ]
+  }, {
+    "type" : "brooklyn.entity.nosql.cassandra.CassandraDatacenter",
+    "name" : "Apache Cassandra Datacenter Cluster",
+    "description" : "Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store which provides a ColumnFamily-based data model richer than typical key/value systems",
+    "iconUrl" : "classpath:///cassandra-logo.jpeg",
+    "config" : [ {
+      "name" : "cassandra.cluster.delayBeforeAdvertisingCluster",
+      "type" : "brooklyn.util.time.Duration",
+      "defaultValue" : "10s",
+      "description" : "Delay after cluster is started before checking and advertising its availability",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.name",
+      "type" : "java.lang.String",
+      "defaultValue" : "BrooklynCluster",
+      "description" : "Name of the Cassandra cluster",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.seedSupplier",
+      "type" : "com.google.common.base.Supplier",
+      "defaultValue" : null,
+      "description" : "For determining the seed nodes",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.snitchName",
+      "type" : "java.lang.String",
+      "defaultValue" : "SimpleSnitch",
+      "description" : "Type of the Cassandra snitch",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.tokenGenerator.class",
+      "type" : "java.lang.Class",
+      "defaultValue" : "class brooklyn.entity.nosql.cassandra.TokenGenerators$PosNeg63TokenGenerator",
+      "description" : "For determining the tokens of nodes",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.tokenShift",
+      "type" : "java.math.BigInteger",
+      "defaultValue" : null,
+      "description" : "Delta applied to all tokens generated for this Cassandra datacenter, useful when configuring multiple datacenters which should be shifted; if not set, a random shift is applied. (Pass 0 to prevent any shift.)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.useVnodes",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : false,
+      "description" : "Determines whether to use vnodes; if doing so, tokens will not be explicitly assigned to nodes in the cluster",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.numTokensPerNode",
+      "type" : "java.lang.Integer",
+      "defaultValue" : 256,
+      "description" : "Number of tokens per node; if using vnodes, should set this to a value like 256; will be overridden to 1 if USE_VNODES==false",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cluster.initial.quorumSize",
+      "type" : "java.lang.Integer",
+      "defaultValue" : -1,
+      "description" : "Initial cluster quorum size - number of initial nodes that must have been successfully started to report success (if < 0, then use value of INITIAL_SIZE)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cluster.initial.size",
+      "type" : "java.lang.Integer",
+      "defaultValue" : 1,
+      "description" : "Initial cluster size",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.availabilityZones",
+      "type" : "java.util.Collection",
+      "defaultValue" : null,
+      "description" : "availability zones to use (if non-null, overrides other configuration)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.customChildFlags",
+      "type" : "java.util.Map",
+      "defaultValue" : { },
+      "description" : "Additional flags to be passed to children when they are being created",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.factory",
+      "type" : "brooklyn.entity.basic.EntityFactory",
+      "defaultValue" : null,
+      "description" : "factory for creating new cluster members",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.memberspec",
+      "type" : "brooklyn.entity.proxying.EntitySpec",
+      "defaultValue" : null,
+      "description" : "entity spec for creating new cluster members",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.numAvailabilityZones",
+      "type" : "java.lang.Integer",
+      "defaultValue" : null,
+      "description" : "number of availability zones to use (will attempt to auto-discover this number)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.quarantineFailedEntities",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : true,
+      "description" : "If true, will quarantine entities that fail to start; if false, will get rid of them (i.e. delete them)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.removalstrategy",
+      "type" : "com.google.common.base.Function",
+      "defaultValue" : null,
+      "description" : "strategy for deciding what to remove when down-sizing",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.zone.enable",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : false,
+      "description" : "Whether to use availability zones, or just deploy everything into the generic location",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.zone.failureDetector",
+      "type" : "brooklyn.entity.group.DynamicCluster$ZoneFailureDetector",
+      "defaultValue" : "brooklyn.entity.group.zoneaware.ProportionalZoneFailureDetector@b7193fc",
+      "description" : "Zone failure detector",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.zone.placementStrategy",
+      "type" : "brooklyn.entity.group.DynamicCluster$NodePlacementStrategy",
+      "defaultValue" : "brooklyn.entity.group.zoneaware.BalancingNodePlacementStrategy@37f02eaa",
+      "description" : "Node placement strategy",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "enricher.service_state.children_and_members.quorum.running",
+      "type" : "brooklyn.entity.basic.QuorumCheck",
+      "defaultValue" : "QuorumCheck[require=0,100.0%]",
+      "description" : "Problems check from children actual states (lifecycle), applied by default to members and children, not checking upness, but requiring by default that none are on-fire",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "enricher.service_state.children_and_members.quorum.up",
+      "type" : "brooklyn.entity.basic.QuorumCheck",
+      "defaultValue" : "QuorumCheck[require=1,0.0%]",
+      "description" : "Up check, applied by default to members, requiring at least one present and up",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "group.members.delegate",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : false,
+      "description" : "Add delegate child entities for members of the group",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "group.members.delegate.nameFormat",
+      "type" : "java.lang.String",
+      "defaultValue" : "%s",
+      "description" : "Delegate members name format string (Use %s for the original entity display name)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    } ],
+    "sensors" : [ {
+      "name" : "cassandra.cluster.datacenterUsages",
+      "type" : "com.google.common.collect.Multimap",
+      "description" : "Current set of datacenters in use, with nodes in each",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.datacenters",
+      "type" : "java.util.Set",
+      "description" : "Current set of datacenters in use",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.first.node.started.utc",
+      "type" : "java.lang.Long",
+      "description" : "Time (UTC) when the first node was started",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.hostname",
+      "type" : "java.lang.String",
+      "description" : "Hostname to connect to cluster with",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.metrics.processCpuTime.fraction.perNode",
+      "type" : "java.lang.Double",
+      "description" : "Fraction of CPU time used (percentage reported by JMX), averaged over all nodes",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.metrics.processCpuTime.fraction.windowed",
+      "type" : "java.lang.Double",
+      "description" : "Fraction of CPU time used (percentage, over time window), averaged over all nodes",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.name",
+      "type" : "java.lang.String",
+      "description" : "Name of the Cassandra cluster",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.nodes",
+      "type" : "java.util.List",
+      "description" : "List of host:port of all active nodes in the cluster (thrift port, and public hostname/IP)",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.read.active",
+      "type" : "java.lang.Integer",
+      "description" : "Current active ReadStage tasks",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.read.pending",
+      "type" : "java.lang.Long",
+      "description" : "Current pending ReadStage tasks",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.schema.versions.count",
+      "type" : "java.lang.Integer",
+      "description" : "Number of different schema versions in the cluster; should be 1 for a healthy cluster, 0 when off; 2 and above indicats a Schema Disagreement Error (and keyspace access may fail)",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.seeds.current",
+      "type" : "java.util.Set",
+      "description" : "Current set of seeds to use to bootstrap the cluster",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.seeds.hasPublished",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether we have published any seeds",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.start.nodes.queued",
+      "type" : "java.util.List",
+      "description" : "Nodes queued for starting (for sequential start)",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.thrift.latency.perNode",
+      "type" : "java.lang.Long",
+      "description" : "Latency for thrift port connection  averaged over all nodes (ms)",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.thrift.port",
+      "type" : "java.lang.Integer",
+      "description" : "Cassandra Thrift RPC port to connect to cluster with",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.write.active",
+      "type" : "java.lang.Integer",
+      "description" : "Current active MutationStage tasks",
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.write.pending",
+      "type" : "java.lang.Long",
+      "description" : "Current pending MutationStage tasks",
+      "links" : null
+    }, {
+      "name" : "cassandra.reads.perSec.last.perNode",
+      "type" : "java.lang.Double",
+      "description" : "Reads/sec (last datapoint) averaged over all nodes",
+      "links" : null
+    }, {
+      "name" : "cassandra.reads.perSec.windowed.perNode",
+      "type" : "java.lang.Double",
+      "description" : "Reads/sec (over time window) averaged over all nodes",
+      "links" : null
+    }, {
+      "name" : "cassandra.thrift.latency.windowed.perNode",
+      "type" : "java.lang.Double",
+      "description" : "Latency for thrift port (ms, over time window) averaged over all nodes",
+      "links" : null
+    }, {
+      "name" : "cassandra.write.perSec.last.perNode",
+      "type" : "java.lang.Double",
+      "description" : "Writes/sec (last datapoint) averaged over all nodes",
+      "links" : null
+    }, {
+      "name" : "cassandra.writes.perSec.windowed.perNode",
+      "type" : "java.lang.Double",
+      "description" : "Writes/sec (over time window) averaged over all nodes",
+      "links" : null
+    }, {
+      "name" : "cluster.entity",
+      "type" : "brooklyn.entity.Entity",
+      "description" : "The cluster an entity is a member of",
+      "links" : null
+    }, {
+      "name" : "cluster.first",
+      "type" : "java.lang.Boolean",
+      "description" : "Set on an entity if it is the first member of a cluster",
+      "links" : null
+    }, {
+      "name" : "cluster.first.entity",
+      "type" : "brooklyn.entity.Entity",
+      "description" : "The first member of the cluster",
+      "links" : null
+    }, {
+      "name" : "cluster.member",
+      "type" : "java.lang.Boolean",
+      "description" : "Set on an entity if it is a member of a cluster",
+      "links" : null
+    }, {
+      "name" : "datastore.url",
+      "type" : "java.lang.String",
+      "description" : "Primary contact URL for a datastore (e.g. mysql://localhost:3306/)",
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.entityQuarantined",
+      "type" : "brooklyn.entity.Entity",
+      "description" : "Entity failed to start, and has been quarantined",
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.failedSubLocations",
+      "type" : "java.util.Set",
+      "description" : "Sub locations that seem to have failed",
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.quarantineGroup",
+      "type" : "brooklyn.entity.group.QuarantineGroup",
+      "description" : "Group of quarantined entities that failed to start",
+      "links" : null
+    }, {
+      "name" : "dynamiccluster.subLocations",
+      "type" : "java.util.List",
+      "description" : "Locations for each availability zone to use",
+      "links" : null
+    }, {
+      "name" : "group.members",
+      "type" : "java.util.Collection",
+      "description" : "Members of the group",
+      "links" : null
+    }, {
+      "name" : "group.members.added",
+      "type" : "brooklyn.entity.Entity",
+      "description" : "Entity added to group members",
+      "links" : null
+    }, {
+      "name" : "group.members.count",
+      "type" : "java.lang.Integer",
+      "description" : "Number of members",
+      "links" : null
+    }, {
+      "name" : "group.members.removed",
+      "type" : "brooklyn.entity.Entity",
+      "description" : "Entity removed from group members",
+      "links" : null
+    }, {
+      "name" : "service.isUp",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether the service is active and availability (confirmed and monitored)",
+      "links" : null
+    }, {
+      "name" : "service.state",
+      "type" : "brooklyn.entity.basic.Lifecycle",
+      "description" : "Actual lifecycle state of the service",
+      "links" : null
+    } ],
+    "effectors" : [ {
+      "name" : "executeScript",
+      "returnType" : "java.lang.String",
+      "parameters" : [ {
+        "name" : "commands",
+        "type" : "java.lang.String",
+        "description" : null,
+        "defaultValue" : null
+      } ],
+      "description" : "executes the given script contents using cassandra-cli",
+      "links" : null
+    }, {
+      "name" : "replaceMember",
+      "returnType" : "java.lang.String",
+      "parameters" : [ {
+        "name" : "memberId",
+        "type" : "java.lang.String",
+        "description" : "The entity id of a member to be replaced",
+        "defaultValue" : null
+      } ],
+      "description" : "Replaces the entity with the given ID, if it is a member; first adds a new member, then removes this one. Returns id of the new entity; or throws exception if couldn't be replaced.",
+      "links" : null
+    }, {
+      "name" : "resize",
+      "returnType" : "java.lang.Integer",
+      "parameters" : [ {
+        "name" : "desiredSize",
+        "type" : "java.lang.Integer",
+        "description" : "The new size of the cluster",
+        "defaultValue" : null
+      } ],
+      "description" : "Changes the size of the entity (e.g. the number of nodes in a cluster)",
+      "links" : null
+    }, {
+      "name" : "resizeByDelta",
+      "returnType" : "java.util.Collection",
+      "parameters" : [ {
+        "name" : "delta",
+        "type" : "int",
+        "description" : "The change in number of nodes",
+        "defaultValue" : null
+      } ],
+      "description" : "Changes the size of the cluster.",
+      "links" : null
+    }, {
+      "name" : "restart",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Restart the process/service represented by an entity",
+      "links" : null
+    }, {
+      "name" : "start",
+      "returnType" : "void",
+      "parameters" : [ {
+        "name" : "locations",
+        "type" : "java.lang.Object",
+        "description" : "The location or locations to start in, as a string, a location object, a list of strings, or a list of location objects",
+        "defaultValue" : null
+      } ],
+      "description" : "Start the process/service represented by an entity",
+      "links" : null
+    }, {
+      "name" : "stop",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Stop the process/service represented by an entity",
+      "links" : null
+    }, {
+      "name" : "update",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Updates the cluster members",
+      "links" : null
+    } ]
+  }, {
+    "type" : "brooklyn.entity.nosql.cassandra.CassandraNode",
+    "defaultVersion" : "1.2.16",
+    "name" : "Apache Cassandra Node",
+    "description" : "Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store which provides a ColumnFamily-based data model richer than typical key/value systems",
+    "iconUrl" : "classpath:///cassandra-logo.jpeg",
+    "config" : [ {
+      "name" : "cassandra.broadcastAddressSensor",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "sensor name from which to take the broadcast address; default (null) is a smart lookup",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.name",
+      "type" : "java.lang.String",
+      "defaultValue" : "BrooklynCluster",
+      "description" : "Name of the Cassandra cluster",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.seeds.initial",
+      "type" : "java.util.Set",
+      "defaultValue" : null,
+      "description" : "List of cluster nodes to seed this node",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.cluster.snitchName",
+      "type" : "java.lang.String",
+      "defaultValue" : "SimpleSnitch",
+      "description" : "Type of the Cassandra snitch",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.config.customSnitchUrl",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "URL for a jar file to be uploaded (e.g. \"classpath://brooklyn/entity/nosql/cassandra/cassandra-multicloud-snitch.jar\"); defaults to null which means nothing to upload",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.config.fileName",
+      "type" : "java.lang.String",
+      "defaultValue" : "cassandra.yaml",
+      "description" : "Name for the copied config file",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.config.rackdc.fileName",
+      "type" : "java.lang.String",
+      "defaultValue" : "cassandra-rackdc.properties",
+      "description" : "Name for the copied rackdc config file (used for configuring replication, when a suitable snitch is used)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.config.rackdc.templateUrl",
+      "type" : "java.lang.String",
+      "defaultValue" : "classpath://brooklyn/entity/nosql/cassandra/cassandra-rackdc.properties",
+      "description" : "Template file (in freemarker format) for the cassandra-rackdc.properties config file",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.config.templateUrl",
+      "type" : "java.lang.String",
+      "defaultValue" : "classpath://brooklyn/entity/nosql/cassandra/cassandra-${entity.majorMinorVersion}.yaml",
+      "description" : "A URL (in freemarker format) for a cassandra.yaml config file (in freemarker format)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.gossip.port",
+      "type" : "brooklyn.location.PortRange",
+      "defaultValue" : "7000-65535",
+      "description" : "Cassandra Gossip communications port",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.install.mirror.url",
+      "type" : "java.lang.String",
+      "defaultValue" : "http://www.mirrorservice.org/sites/ftp.apache.org/cassandra",
+      "description" : "URL of mirror",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.install.tgzUrl",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "URL of TGZ download file",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.listenAddressSensor",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "sensor name from which to take the listen address; default (null) is a smart lookup",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.native.port",
+      "type" : "brooklyn.location.PortRange",
+      "defaultValue" : "9042-65535",
+      "description" : "Cassandra Native Transport port",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.numTokensPerNode",
+      "type" : "java.lang.Integer",
+      "defaultValue" : 1,
+      "description" : "Number of tokens per node; if using vnodes, should set this to a value like 256",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.replication.datacenterName",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Datacenter name (used for configuring replication, when a suitable snitch is used)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.replication.rackName",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Rack name (used for configuring replication, when a suitable snitch is used)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.rpcAddressSensor",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "sensor name from which to take the RPC address; default (null) is 0.0.0.0",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.ssl-gossip.port",
+      "type" : "brooklyn.location.PortRange",
+      "defaultValue" : "7001-65535",
+      "description" : "Cassandra Gossip SSL communications port",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.thrift.port",
+      "type" : "brooklyn.location.PortRange",
+      "defaultValue" : "9160-65535",
+      "description" : "Cassandra Thrift RPC port",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.token",
+      "type" : "java.math.BigInteger",
+      "defaultValue" : null,
+      "description" : "Cassandra Token",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "cassandra.tokens",
+      "type" : "java.util.Set",
+      "defaultValue" : null,
+      "description" : "Cassandra Tokens",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "children.startable.mode",
+      "type" : "java.lang.Enum",
+      "defaultValue" : null,
+      "description" : "children.startable.mode",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : [ {
+        "value" : "NONE",
+        "description" : "NONE"
+      }, {
+        "value" : "FOREGROUND",
+        "description" : "FOREGROUND"
+      }, {
+        "value" : "FOREGROUND_LATE",
+        "description" : "FOREGROUND_LATE"
+      }, {
+        "value" : "BACKGROUND",
+        "description" : "BACKGROUND"
+      }, {
+        "value" : "BACKGROUND_LATE",
+        "description" : "BACKGROUND_LATE"
+      } ],
+      "links" : null
+    }, {
+      "name" : "customize.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking customize until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "datastore.creation.script.contents",
+      "type" : "java.lang.String",
+      "defaultValue" : "",
+      "description" : "Contensts of creation script to initialize the datastore",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "datastore.creation.script.url",
+      "type" : "java.lang.String",
+      "defaultValue" : "",
+      "description" : "URL of creation script to use to initialize the datastore (ignored if contents are specified)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "download.addon.urls",
+      "type" : "java.util.Map",
+      "defaultValue" : null,
+      "description" : "URL patterns for downloading named add-ons (will substitute things like ${version} automatically)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "download.url",
+      "type" : "java.lang.String",
+      "defaultValue" : "${driver.mirrorUrl}/${version}/apache-cassandra-${version}-bin.tar.gz",
+      "description" : "URL pattern for downloading the installer (will substitute things like ${version} automatically)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "expandedinstall.dir",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Directory for installed artifacts (e.g. expanded dir after unpacking .tgz)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "files.runtime",
+      "type" : "java.util.Map",
+      "defaultValue" : null,
+      "description" : "Map of files to be copied, keyed by destination name relative to runDir",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "install.dir",
+      "type" : "java.lang.String",
+      "defaultValue" : "${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/installs/${(config['install.unique_label']??)?string(config['install.unique_label']!'X',(entity.entityType.simpleName)+((config['install.version']??)?string('_'+(config['install.version']!'X'),'')))}",
+      "description" : "Directory for this software to be installed in",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "install.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking install until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "install.skip",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : false,
+      "description" : "Skip the driver install commands entirely, for pre-installed software",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "install.unique_label",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Provides a label which uniquely identifies an installation, used in the computation of the install dir; this should include something readable, and must include a hash of all data which differentiates an installation (e.g. version, plugins, etc), but should be the same where install dirs can be shared to allow for re-use",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "install.version",
+      "type" : "java.lang.String",
+      "defaultValue" : "1.2.16",
+      "description" : "Suggested version",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "java.check.hostname.bug",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : true,
+      "description" : "Check whether hostname is too long and will likely crash Javadue to bug 7089443",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "java.metrics.mxbeanStatsEnabled",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : true,
+      "description" : "Enables collection of JVM stats from the MXBeans, such as memory and thread usage (default is true)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "java.opts",
+      "type" : "java.util.Set",
+      "defaultValue" : [ ],
+      "description" : "Java command line options",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "java.sysprops",
+      "type" : "java.util.Map",
+      "defaultValue" : { },
+      "description" : "Java command line system properties",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.agent.mode",
+      "type" : "java.lang.Enum",
+      "defaultValue" : "JMXMP_AND_RMI",
+      "description" : "What type of JMX agent to use; defaults to null (autodetect) which means JMXMP_AND_RMI allowing firewall access through a single port as well as local access supporting jconsole (unless JMX_SSL_ENABLED is set, in which case it is JMXMP only)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : [ {
+        "value" : "AUTODETECT",
+        "description" : "AUTODETECT"
+      }, {
+        "value" : "JMXMP",
+        "description" : "JMXMP"
+      }, {
+        "value" : "JMXMP_AND_RMI",
+        "description" : "JMXMP_AND_RMI"
+      }, {
+        "value" : "JMX_RMI_CUSTOM_AGENT",
+        "description" : "JMX_RMI_CUSTOM_AGENT"
+      }, {
+        "value" : "JMX_RMI",
+        "description" : "JMX_RMI"
+      }, {
+        "value" : "NONE",
+        "description" : "NONE"
+      } ],
+      "links" : null
+    }, {
+      "name" : "jmx.context",
+      "type" : "java.lang.String",
+      "defaultValue" : "jmxrmi",
+      "description" : "JMX context path",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.direct.port",
+      "type" : "brooklyn.location.PortRange",
+      "defaultValue" : "31001-65535",
+      "description" : "JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.enabled",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : true,
+      "description" : "JMX enabled",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.password",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "JMX password",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.ssl.access.cert",
+      "type" : "java.security.cert.Certificate",
+      "defaultValue" : null,
+      "description" : "certificate of key used to access a JMX agent",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.ssl.access.key",
+      "type" : "java.security.PrivateKey",
+      "defaultValue" : null,
+      "description" : "key used to access a JMX agent (typically per entity, embedded in the managed JVM)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.ssl.enabled",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : false,
+      "description" : "JMX over JMXMP enabled with SSL/TLS",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "jmx.user",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "JMX username",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "launch.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking launch until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "post.install.command",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Command to be run after the install method being called on the driver",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "post.launch.command",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Command to be run after the launch method being called on the driver",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "pre.install.command",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Command to be run prior to the install method being called on the driver",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "pre.launch.command",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Command to be run prior to the launch method being called on the driver",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "provisioning.properties",
+      "type" : "java.util.Map",
+      "defaultValue" : { },
+      "description" : "Custom properties to be passed in when provisioning a new machine",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "resources.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking resources until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "rmi.registry.port",
+      "type" : "brooklyn.location.PortRange",
+      "defaultValue" : "7199",
+      "description" : "RMI registry port, used for discovering JMX (private) port",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "run.dir",
+      "type" : "java.lang.String",
+      "defaultValue" : "${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/apps/${entity.applicationId}/entities/${entity.entityType.simpleName}_${entity.id}",
+      "description" : "Directory for this software to be run from",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "setup.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking setup until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "shell.env",
+      "type" : "java.util.Map",
+      "defaultValue" : { },
+      "description" : "Map of environment variables to pass to the runtime shell",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "softwareProcess.maxSensorRebindDelay",
+      "type" : "brooklyn.util.time.Duration",
+      "defaultValue" : "10s",
+      "description" : "The maximum delay to apply when reconnecting sensors when rebinding to this entity. Brooklyn will wait a random amount of time, up to the value of this config key, to avoid a thundering herd problem when the entity shares its machine with several others. Set to null or to 0 to disable any delay.",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "start.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking start until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "start.timeout",
+      "type" : "brooklyn.util.time.Duration",
+      "defaultValue" : "5m",
+      "description" : "Time to wait for process and for SERVICE_UP before failing (in seconds, default 2m)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "templates.runtime",
+      "type" : "java.util.Map",
+      "defaultValue" : null,
+      "description" : "Map of templates to be filled in and copied, keyed by destination name relative to runDir",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    } ],
+    "sensors" : [ {
+      "name" : "cassandra.cluster.name",
+      "type" : "java.lang.String",
+      "description" : "Name of the Cassandra cluster",
+      "links" : null
+    }, {
+      "name" : "cassandra.gossip.port",
+      "type" : "java.lang.Integer",
+      "description" : "Cassandra Gossip communications port",
+      "links" : null
+    }, {
+      "name" : "cassandra.liveNodeCount",
+      "type" : "java.lang.Integer",
+      "description" : "Number of live nodes in cluster",
+      "links" : null
+    }, {
+      "name" : "cassandra.native.port",
+      "type" : "java.lang.Integer",
+      "description" : "Cassandra Native Transport port",
+      "links" : null
+    }, {
+      "name" : "cassandra.peers",
+      "type" : "java.lang.Integer",
+      "description" : "Number of peers in cluster",
+      "links" : null
+    }, {
+      "name" : "cassandra.read.active",
+      "type" : "java.lang.Integer",
+      "description" : "Current active ReadStage tasks",
+      "links" : null
+    }, {
+      "name" : "cassandra.read.completed",
+      "type" : "java.lang.Long",
+      "description" : "Total completed ReadStage tasks",
+      "links" : null
+    }, {
+      "name" : "cassandra.read.pending",
+      "type" : "java.lang.Long",
+      "description" : "Current pending ReadStage tasks",
+      "links" : null
+    }, {
+      "name" : "cassandra.reads.perSec.last",
+      "type" : "java.lang.Double",
+      "description" : "Reads/sec (last datapoint)",
+      "links" : null
+    }, {
+      "name" : "cassandra.reads.perSec.windowed",
+      "type" : "java.lang.Double",
+      "description" : "Reads/sec (over time window)",
+      "links" : null
+    }, {
+      "name" : "cassandra.replication.datacenterName",
+      "type" : "java.lang.String",
+      "description" : "Datacenter name (used for configuring replication, when a suitable snitch is used)",
+      "links" : null
+    }, {
+      "name" : "cassandra.replication.rackName",
+      "type" : "java.lang.String",
+      "description" : "Rack name (used for configuring replication, when a suitable snitch is used)",
+      "links" : null
+    }, {
+      "name" : "cassandra.service.jmx.up",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether JMX is up for this service",
+      "links" : null
+    }, {
+      "name" : "cassandra.ssl-gossip.port",
+      "type" : "java.lang.Integer",
+      "description" : "Cassandra Gossip SSL communications port",
+      "links" : null
+    }, {
+      "name" : "cassandra.thrift.latency",
+      "type" : "java.lang.Long",
+      "description" : "Latency for thrift port connection (ms) or null if down",
+      "links" : null
+    }, {
+      "name" : "cassandra.thrift.latency.windowed",
+      "type" : "java.lang.Double",
+      "description" : "Latency for thrift port (ms, averaged over time window)",
+      "links" : null
+    }, {
+      "name" : "cassandra.thrift.port",
+      "type" : "java.lang.Integer",
+      "description" : "Cassandra Thrift RPC port",
+      "links" : null
+    }, {
+      "name" : "cassandra.token",
+      "type" : "java.math.BigInteger",
+      "description" : "Cassandra Token",
+      "links" : null
+    }, {
+      "name" : "cassandra.tokens",
+      "type" : "java.util.Set",
+      "description" : "Cassandra Tokens",
+      "links" : null
+    }, {
+      "name" : "cassandra.write.active",
+      "type" : "java.lang.Integer",
+      "description" : "Current active MutationStage tasks",
+      "links" : null
+    }, {
+      "name" : "cassandra.write.completed",
+      "type" : "java.lang.Long",
+      "description" : "Total completed MutationStage tasks",
+      "links" : null
+    }, {
+      "name" : "cassandra.write.pending",
+      "type" : "java.lang.Long",
+      "description" : "Current pending MutationStage tasks",
+      "links" : null
+    }, {
+      "name" : "cassandra.write.perSec.last",
+      "type" : "java.lang.Double",
+      "description" : "Writes/sec (last datapoint)",
+      "links" : null
+    }, {
+      "name" : "cassandra.writes.perSec.windowed",
+      "type" : "java.lang.Double",
+      "description" : "Writes/sec (over time window)",
+      "links" : null
+    }, {
+      "name" : "datastore.url",
+      "type" : "java.lang.String",
+      "description" : "Primary contact URL for a datastore (e.g. mysql://localhost:3306/)",
+      "links" : null
+    }, {
+      "name" : "download.addon.urls",
+      "type" : "java.util.Map",
+      "description" : "URL patterns for downloading named add-ons (will substitute things like ${version} automatically)",
+      "links" : null
+    }, {
+      "name" : "download.url",
+      "type" : "java.lang.String",
+      "description" : "URL pattern for downloading the installer (will substitute things like ${version} automatically)",
+      "links" : null
+    }, {
+      "name" : "expandedinstall.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for installed artifacts (e.g. expanded dir after unpacking .tgz)",
+      "links" : null
+    }, {
+      "name" : "host.address",
+      "type" : "java.lang.String",
+      "description" : "Host IP address",
+      "links" : null
+    }, {
+      "name" : "host.name",
+      "type" : "java.lang.String",
+      "description" : "Host name",
+      "links" : null
+    }, {
+      "name" : "host.subnet.address",
+      "type" : "java.lang.String",
+      "description" : "Host address as known internally in the subnet where it is running (if different to host.name)",
+      "links" : null
+    }, {
+      "name" : "host.subnet.hostname",
+      "type" : "java.lang.String",
+      "description" : "Host name as known internally in the subnet where it is running (if different to host.name)",
+      "links" : null
+    }, {
+      "name" : "install.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for this software to be installed in",
+      "links" : null
+    }, {
+      "name" : "java.metrics.gc.time",
+      "type" : "java.util.Map",
+      "description" : "garbage collection time",
+      "links" : null
+    }, {
+      "name" : "java.metrics.heap.committed",
+      "type" : "java.lang.Long",
+      "description" : "Commited heap size (bytes)",
+      "links" : null
+    }, {
+      "name" : "java.metrics.heap.init",
+      "type" : "java.lang.Long",
+      "description" : "Initial heap size (bytes)",
+      "links" : null
+    }, {
+      "name" : "java.metrics.heap.max",
+      "type" : "java.lang.Long",
+      "description" : "Max heap size (bytes)",
+      "links" : null
+    }, {
+      "name" : "java.metrics.heap.used",
+      "type" : "java.lang.Long",
+      "description" : "Current heap size (bytes)",
+      "links" : null
+    }, {
+      "name" : "java.metrics.nonheap.used",
+      "type" : "java.lang.Long",
+      "description" : "Current non-heap size (bytes)",
+      "links" : null
+    }, {
+      "name" : "java.metrics.physicalmemory.free",
+      "type" : "java.lang.Long",
+      "description" : "The free memory available to the operating system",
+      "links" : null
+    }, {
+      "name" : "java.metrics.physicalmemory.total",
+      "type" : "java.lang.Long",
+      "description" : "The physical memory available to the operating system",
+      "links" : null
+    }, {
+      "name" : "java.metrics.processCpuTime.fraction.last",
+      "type" : "java.lang.Double",
+      "description" : "Fraction of CPU time used, reported by JVM (percentage, last datapoint)",
+      "links" : null
+    }, {
+      "name" : "java.metrics.processCpuTime.fraction.windowed",
+      "type" : "java.lang.Double",
+      "description" : "Fraction of CPU time used, reported by JVM (percentage, over time window)",
+      "links" : null
+    }, {
+      "name" : "java.metrics.processCpuTime.total",
+      "type" : "java.lang.Double",
+      "description" : "Process CPU time (total millis since start)",
+      "links" : null
+    }, {
+      "name" : "java.metrics.processors.available",
+      "type" : "java.lang.Integer",
+      "description" : "number of processors available to the Java virtual machine",
+      "links" : null
+    }, {
+      "name" : "java.metrics.starttime",
+      "type" : "java.lang.Long",
+      "description" : "Start time of Java process (UTC)",
+      "links" : null
+    }, {
+      "name" : "java.metrics.systemload.average",
+      "type" : "java.lang.Double",
+      "description" : "average system load",
+      "links" : null
+    }, {
+      "name" : "java.metrics.threads.current",
+      "type" : "java.lang.Integer",
+      "description" : "Current number of threads",
+      "links" : null
+    }, {
+      "name" : "java.metrics.threads.max",
+      "type" : "java.lang.Integer",
+      "description" : "Peak number of threads",
+      "links" : null
+    }, {
+      "name" : "java.metrics.uptime",
+      "type" : "java.lang.Long",
+      "description" : "Uptime of Java process (millis, elapsed since start)",
+      "links" : null
+    }, {
+      "name" : "jmx.context",
+      "type" : "java.lang.String",
+      "description" : "JMX context path",
+      "links" : null
+    }, {
+      "name" : "jmx.direct.port",
+      "type" : "java.lang.Integer",
+      "description" : "JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)",
+      "links" : null
+    }, {
+      "name" : "jmx.password",
+      "type" : "java.lang.String",
+      "description" : "JMX password",
+      "links" : null
+    }, {
+      "name" : "jmx.service.url",
+      "type" : "java.lang.String",
+      "description" : "The URL for connecting to the MBean Server",
+      "links" : null
+    }, {
+      "name" : "jmx.user",
+      "type" : "java.lang.String",
+      "description" : "JMX username",
+      "links" : null
+    }, {
+      "name" : "rmi.registry.port",
+      "type" : "java.lang.Integer",
+      "description" : "RMI registry port, used for discovering JMX (private) port",
+      "links" : null
+    }, {
+      "name" : "run.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for this software to be run from",
+      "links" : null
+    }, {
+      "name" : "service.isUp",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether the service is active and availability (confirmed and monitored)",
+      "links" : null
+    }, {
+      "name" : "service.process.isRunning",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether the process for the service is confirmed as running",
+      "links" : null
+    }, {
+      "name" : "service.state",
+      "type" : "brooklyn.entity.basic.Lifecycle",
+      "description" : "Actual lifecycle state of the service",
+      "links" : null
+    }, {
+      "name" : "softwareprocess.pid.file",
+      "type" : "java.lang.String",
+      "description" : "PID file",
+      "links" : null
+    }, {
+      "name" : "softwareservice.provisioningLocation",
+      "type" : "brooklyn.location.MachineProvisioningLocation",
+      "description" : "Location used to provision a machine where this is running",
+      "links" : null
+    } ],
+    "effectors" : [ {
+      "name" : "executeScript",
+      "returnType" : "java.lang.String",
+      "parameters" : [ {
+        "name" : "commands",
+        "type" : "java.lang.String",
+        "description" : null,
+        "defaultValue" : null
+      } ],
+      "description" : "executes the given script contents using cassandra-cli",
+      "links" : null
+    }, {
+      "name" : "restart",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Restart the process/service represented by an entity",
+      "links" : null
+    }, {
+      "name" : "start",
+      "returnType" : "void",
+      "parameters" : [ {
+        "name" : "locations",
+        "type" : "java.lang.Object",
+        "description" : "The location or locations to start in, as a string, a location object, a list of strings, or a list of location objects",
+        "defaultValue" : null
+      } ],
+      "description" : "Start the process/service represented by an entity",
+      "links" : null
+    }, {
+      "name" : "stop",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Stop the process/service represented by an entity",
+      "links" : null
+    } ]
+  }, {
+    "type" : "brooklyn.entity.nosql.solr.SolrServer",
+    "defaultVersion" : "4.7.0",
+    "name" : "Apache Solr Node",
+    "description" : "Solr is the popular, blazing fast open source enterprise search platform from the Apache Lucene project.",
+    "iconUrl" : "classpath:///solr-logo.jpeg",
+    "config" : [ {
+      "name" : "children.startable.mode",
+      "type" : "java.lang.Enum",
+      "defaultValue" : null,
+      "description" : "children.startable.mode",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : [ {
+        "value" : "NONE",
+        "description" : "NONE"
+      }, {
+        "value" : "FOREGROUND",
+        "description" : "FOREGROUND"
+      }, {
+        "value" : "FOREGROUND_LATE",
+        "description" : "FOREGROUND_LATE"
+      }, {
+        "value" : "BACKGROUND",
+        "description" : "BACKGROUND"
+      }, {
+        "value" : "BACKGROUND_LATE",
+        "description" : "BACKGROUND_LATE"
+      } ],
+      "links" : null
+    }, {
+      "name" : "customize.latch",
+      "type" : "java.lang.Boolean",
+      "defaultValue" : null,
+      "description" : "Latch for blocking customize until ready",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "download.addon.urls",
+      "type" : "java.util.Map",
+      "defaultValue" : null,
+      "description" : "URL patterns for downloading named add-ons (will substitute things like ${version} automatically)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "download.url",
+      "type" : "java.lang.String",
+      "defaultValue" : "${driver.mirrorUrl}/${version}/solr-${version}.tgz",
+      "description" : "URL pattern for downloading the installer (will substitute things like ${version} automatically)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "expandedinstall.dir",
+      "type" : "java.lang.String",
+      "defaultValue" : null,
+      "description" : "Directory for installed artifacts (e.g. expanded dir after unpacking .tgz)",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "files.runtime",
+      "type" : "java.util.Map",
+      "defaultValue" : null,
+      "description" : "Map of files to be copied, keyed by destination name relative to runDir",
+      "reconfigurable" : false,
+      "label" : null,
+      "priority" : null,
+      "possibleValues" : null,
+      "links" : null
+    }, {
+      "name" : "install.dir",
+      "type" : "java.lang.String",
+      "defaultValue" : "${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/installs/${(config['install.unique_label']??)?string(config['install.unique_label']!'X',(entity.entityType.simpleName)+((config['install.version']??)?string('_'+(config['install.version']!'X'),'')))}",
+      "description" : "Directory

<TRUNCATED>

[07/50] [abbrv] incubator-brooklyn git commit: move version-specific things to "guide"

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/creating-yaml.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/creating-yaml.md b/docs/guide/use/guide/defining-applications/creating-yaml.md
new file mode 100644
index 0000000..fab8426
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/creating-yaml.md
@@ -0,0 +1,417 @@
+---
+title: Writing YAML Blueprints
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide, defining-applications]
+---
+
+## A First Blueprint
+
+The easiest way to write a blueprint is as a YAML file.
+This follows the  <a href="https://www.oasis-open.org/committees/camp/">OASIS CAMP</a> plan specification, 
+with some extensions described below.
+(A [YAML reference](yaml-reference.html) has more information,
+and if the YAML doesn't yet do what you want,
+it's easy to add new extensions using your favorite JVM language.)
+
+### The Basic Structure
+
+Here's a very simple YAML blueprint plan, to explain the structure:
+
+{% highlight yaml %}
+{% readj example_yaml/simple-appserver.yaml %}
+{% endhighlight %}
+
+* The `name` is just for the benefit of us humans.
+
+* The `location` specifies where this should be deployed.
+  If you've [set up passwordless localhost SSH access]({{ site.url }}/use/guide/locations/) 
+  you can use `localhost` as above, but if not, just wait ten seconds for the next example.
+  
+* The `services` block takes a list of the typed services we want to deploy.
+  This is the meat of the blueprint plan, as you'll see below.
+
+Finally, that clipboard in the corner lets you easily copy-and-paste into the web-console:
+simply [download and launch]({{ site.url }}/use/guide/quickstart/) Brooklyn,
+then in the "Add Application" dialog at the web console
+(usually [http://127.0.0.1:8081/](http://127.0.0.1:8081/). 
+There are several other ways to deploy, including `curl` and via the command-line,
+and you can configure https and security, and much more, as described [here](deploying-yaml.html).
+
+[![Web Console](web-console-yaml-700.png "YAML via Web Console")](web-console-yaml.png)
+
+
+### Setting Locations
+
+Brooklyn supports a very wide range of target locations -- localhost is mainly a convenience for testing.
+With deep integration to [Apache jclouds](http://jclouds.org), most well-known clouds and cloud platforms are supported.
+The following example is for Amazon EC2:
+
+{% highlight yaml %}
+{% readj example_yaml/simple-appserver-with-location.yaml %}
+{% endhighlight %}
+
+(You'll need to replace the `identity` and `credential` with the 
+"Access Key ID" and "Secret Access Key" for your account,
+as configured in the [AWS Console](https://console.aws.amazon.com/iam/home?#security_credential).)
+
+Other popular public clouds include `softlayer`, `google-compute-engine`, and `rackspace-cloudservers-us`.
+Private cloud systems including `openstack-nova` and `cloudstack` are also supported,
+although for these you'll supply an `endpoint: https://9.9.9.9:9999/v2.0/` 
+(or `client/api/` in the case of CloudStack) instead of the `region`.
+
+You can also specify pre-existing servers to use -- "bring-your-own-nodes".
+These can be a global pool or specific to a service.
+Both styles are shown here (though normally only one will be selected,
+<!-- TODO see #1377, currently it is *parent* location which is preferred typically --> 
+depending on the blueprint):
+
+{% highlight yaml %}
+{% readj example_yaml/simple-appserver-with-location-byon.yaml %}
+{% endhighlight %}
+
+You'll also note in this example that we've used JSON-style notation in the second `location` block.
+YAML supports this, and sometimes that makes more readable plans.
+(Although in this case a simple `location: localhost` is equivalent and even more succinct, but this is a tutorial.)
+
+For more information see the Locations section of the [YAML reference](yaml-reference.html) 
+and in the [User's Guide]({{ site.url }}/use/guide/locations/).
+Another good reference is the [template brooklyn.properties](/use/guide/quickstart/brooklyn.properties),
+which if you install in `~/.brooklyn/brooklyn.properties` and edit with your credentials,  
+allows you to refer to clouds simply as `location: jclouds:aws-ec2:eu-west-1` or
+set up "named locations" you can use as `location: named:my_cloudstack`.
+
+
+## Configuring VMs
+
+Another simple blueprint will just create a VM which you can use, without any software installed upon it:
+
+{% highlight yaml %}
+{% readj example_yaml/simple-vm.yaml %}
+{% endhighlight %}
+
+
+*We've omitted the `location` section here and in many of the examples below;
+add the appropriate choice when you paste your YAML. Note that the `provisioning.properties` will be
+ignored if deploying to `localhost` or `byon` fixed-IP machines.* 
+
+This will create a VM with the specified parameters in your choice of cloud.
+In the GUI (and in the REST API), the entity is called "VM",
+and the hostname and IP address(es) are reported as [sensors]({{ site.url }}/use/guide/defining-applications/basic-concepts.html).
+There are many more `provisioning.properties` supported here,
+including:
+
+* a `user` to create (if not specified it creates the same username as `brooklyn` is running under) 
+* a `password` for him or a `publicKeyFile` and `privateKeyFile` (defaulting to keys in `~/.ssh/id_rsa{.pub,}` and no password,
+  so if you have keys set up you can immediately ssh in!)
+* `machineCreateAttempts` (for dodgy clouds, and they nearly all fail occasionally!) 
+* and things like `imageId` and `userMetadata` and disk and networking options (e.g. `autoAssignFloatingIp` for private clouds)
+
+For more information, see the javadoc on `JcloudsLocationConfig`.
+
+
+### Clusters, Specs, and Composition
+
+What if you want multiple machines?
+
+One way is just to repeat the `- type: brooklyn.entity.basic.EmptySoftwareProcess` block,
+but there's another way which will keep your powder [DRY](http://en.wikipedia.org/wiki/Don't_repeat_yourself):
+
+{% highlight yaml %}
+{% readj example_yaml/cluster-vm.yaml %}
+{% endhighlight %}
+
+Here we've composed the previous blueprint introducing some new important concepts, the `DynamicCluster`
+the `$brooklyn` DSL, and the "entity-spec".  Let's unpack these. 
+
+The `DynamicCluster` creates a set of homogeneous instances.
+At design-time, you specify an initial size and the specification for the entity it should create.
+At runtime you can restart and stop these instances as a group (on the `DynamicCluster`) or refer to them
+individually. You can resize the cluster, attach enrichers which aggregate sensors across the cluster, 
+and attach policies which, for example, replace failed members or resize the cluster dynamically.
+
+The specification is defined in the `memberSpec` key.  As you can see it looks very much like the
+previous blueprint, with one extra line.  Entries in the blueprint which start with `$brooklyn:`
+refer to the Brooklyn DSL and allow a small amount of logic to be embedded
+(if there's a lot of logic, it's recommended to write a blueprint YAML plugin or write the blueprint itself
+as a plugin, in Java or a JVM-supported language).  
+
+In this case we want to indicate that the parameter to `memberSpec` is an entity specification
+(`EntitySpec` in the underlying type system); the `entitySpec` DSL command will do this for us.
+The example above thus gives us 5 VMs identical to the one we created in the previous section.
+
+
+## A Bigger Blueprint
+
+We've seen the configuration of machines and how to build up clusters.
+Now let's return to our app-server example and explore how more interesting
+services can be configured, composed, and combined.
+
+Also note there are some good overview materials [here]({{site.url}}//use/guide/defining-applications/basic-concepts.html)
+covering clusters, sensors, effectors and more, 
+if you're the kind of person who likes to learn more about concepts before seeing them in action.
+
+
+### Service Configuration
+
+We'll begin by using more key-value pairs to configure the JBoss server to run a real app:
+
+{% highlight yaml %}
+{% readj example_yaml/appserver-configured.yaml %}
+{% endhighlight %}
+
+(As before, you'll need to add the `location` info; `localhost` will work for these and subsequent examples.)
+
+When this is deployed, you can see management information in the Brooklyn Web Console,
+including a link to the deployed application (downloaded to the target machine from the `hello-world` URL),
+running on port 8080.
+
+**Top tip**:  If port 8080 might be in use, you can specify `8080+` to take the first available port >= 8080;
+the actual port will be reported as a sensor by Brooklyn.
+
+It's also worth indicating an alternate, more formal syntax.
+Not all configuration on entities is supported at the top level of the service specification
+(only those which are defined as "flags" in the underlying blueprint,
+e.g. the `@SetFromFlag("war")` in the `WebAppServiceConstants` parent of `JBoss7Server`).
+All configuration has a formal qualified name, and this can be supplied even where flags or config keys are not
+explicitly defined, by placing it into a `brooklyn.config` section:
+
+{% highlight yaml %}
+{% readj example_yaml/appserver-configured-in-config.yaml %}
+{% endhighlight %}
+
+
+
+### Multiple Services and Dependency Injection
+
+If you explored the `hello-world-sql` application we just deployed, 
+you'll have noticed it tries to access a database.
+And it fails, because we have not set one up.  Let's do that now:
+
+{% highlight yaml %}
+{% readj example_yaml/appserver-w-db.yaml %}
+{% endhighlight %}
+
+Here there are a few things going on:
+
+* We've added a second service, which will be the database;
+  you'll note the database has been configured to run a custom setup script
+* We've injected the URL of the second service into the appserver as a Java system property
+  (so our app knows where to find the database) 
+
+**Caution: Be careful if you write your YAML in an editor which attempts to put "smart-quotes" in.
+All quote characters must be plain ASCII, not fancy left-double-quotes and right-double-quotes!**
+
+There are as many ways to do dependency injection as there are developers,
+it sometimes seems; our aim in Brooklyn is not to say this has to be done one way,
+but to support the various mechanisms people might need to do, for whatever reasons.
+(We each have our opinions about what works well, of course;
+the one thing we do want to call out is that being able to dynamically update
+the injection is useful in a modern agile application -- so we are definitively **not**
+recommending this Java system property approach ... but it is an easy one to demo!)
+
+The way the dependency injection works is again by using the `$brooklyn:` DSL,
+this time referring to the `component("db")` (looked up by the `id` field on our DB component),
+and then to a sensor emitted by that component.
+All the database entities emit a `database.url` sensor when they are up and running;
+the `attributeWhenReady` DSL method will store a pointer to that sensor (a Java Future under the covers)
+in the Java system properties map which the JBoss entity reads at launch time, blocking if needed.
+
+This means that the deployment occurs in parallel, and if the database comes up first,
+there is no blocking; but if the JBoss entity completes its installation and 
+downloading the WAR, it will wait for the database before it launches.
+At that point the URL is injected, first passing it through `formatString`
+to include the credentials for the database (which are defined in the database creation script).
+
+
+
+### An Aside: Substitutability
+
+Don't like JBoss?  Is there something about Maria?
+One of the modular principles we follow in Brooklyn is substitutability:
+in many cases, the config keys, sensors, and effectors are defined
+in superclasses and are portable across multiple implementations.
+
+Here's an example deploying the same application but with different flavors of the components:
+
+{% highlight yaml %}
+{% readj example_yaml/appserver-w-db-other-flavor.yaml %}
+{% endhighlight %}
+
+We've also brought in the `provisioning.properties` from the VM example earlier
+so our database has 8GB RAM.
+Any of those properties, including `imageId` and `user`, can be defined on a per-entity basis.
+
+
+### Clusters and Policies
+
+Now let's bring the concept of the "cluster" back in.
+We could wrap our appserver in the same `DynamicCluster` we used earlier,
+although then we'd need to define and configure the load balancer.
+But another blueprint, the `ControlledDynamicWebAppCluster`, does this for us.
+It takes the same `memberSpec`, so we can build a fully functional elastic 3-tier
+deployment of our `hello-world-sql` application as follows:
+
+{% highlight yaml %}
+{% readj example_yaml/appserver-clustered-w-db.yaml %}
+{% endhighlight %}
+
+This sets up Nginx as the controller by default, but that can be configured
+using the `controllerSpec` key. In fact, JBoss is the default appserver,
+and because configuration in Brooklyn is inherited by default,
+the same blueprint can be expressed more concisely as:
+
+{% highlight yaml %}
+{% readj example_yaml/appserver-clustered-w-db-concise.yaml %}
+{% endhighlight %}
+ 
+The other nicety supplied by the `ControlledDynamicWebAppCluster` blueprint is that
+it aggregates sensors from the appserver, so we have access to things like
+`webapp.reqs.perSec.windowed.perNode`.
+These are convenient for plugging in to policies!
+We can set up our blueprint to do autoscaling based on requests per second
+(keeping it in the range 10..100, with a maximum of 5 appserver nodes)
+as follows: 
+
+{% highlight yaml %}
+{% readj example_yaml/appserver-w-policy.yaml %}
+{% endhighlight %}
+
+Use your favorite load-generation tool (`jmeter` is one good example) to send a huge
+volume of requests against the server and see the policies kick in to resize it.
+
+
+## New Custom Entities
+
+So far we've covered how to configure and compose entities.
+There's a large library of blueprints available, but
+there are also times when you'll want to write your own.
+
+For complex use cases, you can write JVM, but for many common situations,
+some of the highly-configurable blueprints make it easy to write in YAML,
+including `bash` and Chef.
+ 
+
+### Vanilla Software using `bash`
+
+The following blueprint shows how a simple script can be embedded in the YAML
+(the `|` character is special YAML which makes it easier to insert multi-line text):
+
+{% highlight yaml %}
+{% readj example_yaml/vanilla-bash-netcat.yaml %}
+{% endhighlight %}
+
+This starts a simple `nc` listener on port 4321 which will respond `hello` to the first
+session which connects to it. Test it by running `telnet localhost 4321`.  
+
+This is just a simple script, but it shows how any script can be easily embedded here,
+including a script to download and run other artifacts.
+Many artifacts are already packaged such that they can be downloaded and launched 
+with a simple script, and `VanillaSoftwareProcess` can also be used for them. 
+We can specify a `download.url` which downloads artifacts (unpacking TAR, TGZ, and ZIP archives)
+before running `launch.command` relative to where that file is installed (or unpacked),
+with `./start.sh` being the default `launch.command`.
+
+So if we create a file `/tmp/netcat-server.tgz` containing just `start.sh` in the root
+which consists of the two lines in the previous example,
+we can instead write our example as: 
+
+{% highlight yaml %}
+{% readj example_yaml/vanilla-bash-netcat-file.yaml %}
+{% endhighlight %}
+
+The one requirement of the script is that it store the process ID (PID) in the file
+pointed to by `$PID_FILE`, hence the second line of the script.
+This is because Brooklyn wants to monitor the services under management. 
+(There are other options; you can set `checkRunning.command` and `stop.command` instead,
+as documented on the Javadoc of the `VanillaSoftwareProcess` class,
+and those scripts will be used instead of checking and stopping the process whose PID is in `$PID_FILE`.)
+
+And indeed, once you've run one `telnet` to the server, you'll see that the 
+service has gone "on fire" in Brooklyn -- because the `nc` process has stopped. 
+Besides detecting this failure, Brooklyn policies can be added to the YAML to take appropriate 
+action. A simple recovery here might just be to restart the process:
+
+{% highlight yaml %}
+{% readj example_yaml/vanilla-bash-netcat-restarter.yaml %}
+{% endhighlight %}
+
+Autonomic management in Brooklyn often follows the principle that complex behaviours emerge
+from composing simple policies.
+The blueprint above uses one policy to triggering a failure sensor when the service is down,
+and another responds to such failures by restarting the service.
+This makes it easy to configure various aspects, such as to delay to see if the service itself recovers
+(which here we've set to 15 seconds) or to bail out on multiple failures within a time window (which again we are not doing).
+Running with this blueprint, you'll see that the service shows as on fire for 15s after a `telnet`,
+before the policy restarts it. 
+
+For an even more interesting way to test it, look at the blueprint defining
+[a netcat server and client](example_yaml/vanilla-bash-netcat-w-client.yaml).
+This uses `initializers` to define an effector to `sayHiNetcat` on the `Simple Pinger` client,
+using `env` variables to inject the `netcat-server` location and 
+`parameters` to pass in per-effector data:
+
+      env:
+        TARGET_HOSTNAME: $brooklyn:component("netcat-server").attributeWhenReady("host.name")
+      brooklyn.initializers:
+      - type: brooklyn.entity.software.ssh.SshCommandEffector
+        brooklyn.config:
+          name: sayHiNetcat
+          description: Echo a small hello string to the netcat entity
+          command: |
+            echo $message | nc $TARGET_HOSTNAME 4321
+          parameters:
+            message:
+              description: The string to pass to netcat
+              defaultValue: hi netcat
+
+This blueprint also uses initializers to define sensors on the `netcat-server` entity
+so that the `$message` we passed above gets logged and reported back:
+
+      launch.command: |
+        echo hello | nc -l 4321 >> server-input &
+        echo $! > $PID_FILE
+      brooklyn.initializers:
+      - type: brooklyn.entity.software.ssh.SshCommandSensor
+        brooklyn.config:
+          name: output.last
+          command: tail -1 server-input
+
+This is still a simple example, but worth going through carefully.
+It shows many of the building blocks used in real-world blueprints,
+and how they can often be easily described and combined in Brooklyn YAML blueprints.
+Next, if you need to drive off-piste, or you want to write tests against these blueprints,
+have a look at, for example, `VanillaBashNetcatYamlTest.java` in the Brooklyn codebase,
+or follow the other references below.
+
+<!--
+TODO building up children entities
+
+-->
+
+<!--
+
+### Using Chef Recipes
+
+TODO
+
+-->
+
+
+### More Information
+
+Plenty of examples of blueprints exist in the Brooklyn codebase,
+so a good starting point is to [`git clone`]({{ site.url }}/dev/code/index.html) it
+and search for `*.yaml` files therein.
+
+Brooklyn lived as a Java framework for many years before we felt confident
+to make a declarative front-end, so you can do pretty much anything you want to
+by dropping to the JVM. Information on that is available:
+* in the [user guide]({{site.url}}/use/guide/entities/index.html),
+* through a [Maven archetype]({{site.url}}/use/guide/defining-applications/archetype.html),
+* in the [codebase](https://github.com/brooklyncentral/brooklyn),
+* and in plenty of [examples]({{site.url}}/use/examples/index.html).
+
+You can also come talk to us, on IRC (#brooklyncentral on Freenode) or
+any of the usual [hailing frequencies]({{site.url}}/meta/contact.html),
+as these documents are a work in progress.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/deploying-yaml.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/deploying-yaml.md b/docs/guide/use/guide/defining-applications/deploying-yaml.md
new file mode 100644
index 0000000..d448cb1
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/deploying-yaml.md
@@ -0,0 +1,37 @@
+---
+title: Deploying YAML Blueprints
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide, defining-applications]
+---
+
+Once you've [written a YAML blueprint](creating-yaml.md), there are several ways to deploy it.
+These insructions assume you have [installed]({{ site.url }}/use/guide/quickstart/) Brooklyn.
+You can then:
+
+- Supply the YAML blueprint file on the CLI when launching the server:
+
+{% highlight bash %}
+$ brooklyn launch --app ./blueprint.yaml
+{% endhighlight %}
+
+
+Or, assuming you've launched a server already 
+(usually on [http://127.0.0.1/](http://127.0.0.1/) unless you've 
+configured security in [`brooklyn.properties`](/use/guide/quickstart/brooklyn.properties)),
+you can:
+
+- Curl it to the Brooklyn REST API:
+
+{% highlight bash %}
+$ curl -T ./blueprint.yaml -X POST http://localhost:8081/v1/applications
+{% endhighlight %}
+
+
+- In the web-console, select the "YAML" tab in the "Add Application" wizard:
+
+[![Web Console](web-console-yaml-700.png "YAML via Web Console")](web-console-yaml.png)
+
+
+- The web-console also has an interactive "REST API" page,
+  where you can paste the YAML for uploading into the `POST` to `/v1/applications`.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_files/tomcat_multi-location.java
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_files/tomcat_multi-location.java b/docs/guide/use/guide/defining-applications/example_files/tomcat_multi-location.java
new file mode 100644
index 0000000..cb92766
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_files/tomcat_multi-location.java
@@ -0,0 +1,15 @@
+// TODO Untested code; see brooklyn-example for better maintained examples!
+public class TomcatFabricApp extends AbstractApplication {
+    @Override
+    public void init() {
+        addChild(EntitySpec.create(DynamicFabric.class)
+                .configure("displayName", "WebFabric")
+                .configure("displayNamePrefix", "")
+                .configure("displayNameSuffix", " web cluster")
+                .configure("memberSpec", EntitySpec.create(ControlledDynamicWebAppCluster.class)
+                        .configure("initialSize", 2)
+                        .configure("memberSpec", : EntitySpec.create(TomcatServer.class)
+                                .configure("httpPort", "8080+")
+                                .configure("war", "/path/to/booking-mvc.war"))));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_files/tomcat_nginx.java
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_files/tomcat_nginx.java b/docs/guide/use/guide/defining-applications/example_files/tomcat_nginx.java
new file mode 100644
index 0000000..20db33d
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_files/tomcat_nginx.java
@@ -0,0 +1,17 @@
+// TODO Untested code; see brooklyn-example for better maintained examples!
+public class TomcatClusterWithNginxApp extends AbstractApplication {
+    @Override
+    public void init() {
+        addChild(EntitySpec.create(NginxController.class)
+                .configure("domain", "brooklyn.geopaas.org")
+                .configure("port", "8000+")
+                .configure("portNumberSensor", Attributes.HTTP_PORT));
+        
+        addChild(EntitySpec.create(ControlledDynamicWebAppCluster.class)
+                .configure("controller", nginxController)
+                .configure("memberSpec", : EntitySpec.create(TomcatServer.class)
+                        .configure("httpPort", "8080+")
+                        .configure("war", "/path/to/booking-mvc.war"))
+                .configure("initialSize", 2));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_files/tomcat_simple.java
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_files/tomcat_simple.java b/docs/guide/use/guide/defining-applications/example_files/tomcat_simple.java
new file mode 100644
index 0000000..480a333
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_files/tomcat_simple.java
@@ -0,0 +1,9 @@
+// TODO Untested code; see brooklyn-example for better maintained examples!
+public class TomcatServerApp extends AbstractApplication {
+    @Override
+    public void init() {
+        addChild(EntitySpec.create(TomcatServer.class)
+                .configure("httpPort", "8080+")
+                .configure("war", "/path/to/booking-mvc.war")));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml b/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml
new file mode 100644
index 0000000..062c09f
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml
@@ -0,0 +1,15 @@
+name: appserver-clustered-w-db-concise
+services:
+- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster
+  initialSize: 2
+  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+
+    java.sysprops: 
+      brooklyn.example.db.url: $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
+           component("db").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")
+- type: brooklyn.entity.database.mysql.MySqlNode
+  id: db
+  name: DB HelloWorld Visitors
+  brooklyn.config:
+    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml b/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml
new file mode 100644
index 0000000..a7b3c57
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml
@@ -0,0 +1,18 @@
+name: appserver-clustered-w-db
+services:
+- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster
+  initialSize: 2
+  memberSpec:
+    $brooklyn:entitySpec:
+      type: 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+
+        java.sysprops: 
+          brooklyn.example.db.url: $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
+              component("db").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")
+- type: brooklyn.entity.database.mysql.MySqlNode
+  id: db
+  name: DB HelloWorld Visitors
+  brooklyn.config:
+    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/appserver-configured-in-config.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/appserver-configured-in-config.yaml b/docs/guide/use/guide/defining-applications/example_yaml/appserver-configured-in-config.yaml
new file mode 100644
index 0000000..50c1873
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/appserver-configured-in-config.yaml
@@ -0,0 +1,6 @@
+name: appserver-configured-in-config
+services:
+- type: 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/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/appserver-configured.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/appserver-configured.yaml b/docs/guide/use/guide/defining-applications/example_yaml/appserver-configured.yaml
new file mode 100644
index 0000000..04ec858
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/appserver-configured.yaml
@@ -0,0 +1,5 @@
+name: appserver-configured
+services:
+- type: 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/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml b/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml
new file mode 100644
index 0000000..784f7fd
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml
@@ -0,0 +1,17 @@
+name: appserver-w-db-other-flavor
+services:
+- type: 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.port: 8080+
+    java.sysprops: 
+      brooklyn.example.db.url: $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
+         component("db").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")
+- type: brooklyn.entity.database.mariadb.MariaDbNode
+  id: db
+  name: DB HelloWorld Visitors
+  brooklyn.config:
+    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql
+    provisioning.properties:
+      minRam: 8192

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db.yaml b/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db.yaml
new file mode 100644
index 0000000..5a16c0d
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db.yaml
@@ -0,0 +1,15 @@
+name: appserver-w-db
+services:
+- type: 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.port: 8080+
+    java.sysprops: 
+      brooklyn.example.db.url: $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
+         component("db").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")
+- type: brooklyn.entity.database.mysql.MySqlNode
+  id: db
+  name: DB HelloWorld Visitors
+  brooklyn.config:
+    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml b/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml
new file mode 100644
index 0000000..757157e
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml
@@ -0,0 +1,26 @@
+name: appserver-w-policy
+services:
+- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster
+  initialSize: 1
+  memberSpec:
+    $brooklyn:entitySpec:
+      type: 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+
+        java.sysprops: 
+          brooklyn.example.db.url: $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
+              component("db").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")
+  brooklyn.policies:
+  - policyType: brooklyn.policy.autoscaling.AutoScalerPolicy
+    brooklyn.config:
+      metric: $brooklyn:sensor("brooklyn.entity.webapp.DynamicWebAppCluster", "webapp.reqs.perSec.windowed.perNode")
+      metricLowerBound: 10
+      metricUpperBound: 100
+      minPoolSize: 1
+      maxPoolSize: 5
+- type: brooklyn.entity.database.mysql.MySqlNode
+  id: db
+  name: DB HelloWorld Visitors
+  brooklyn.config:
+    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/cluster-vm.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/cluster-vm.yaml b/docs/guide/use/guide/defining-applications/example_yaml/cluster-vm.yaml
new file mode 100644
index 0000000..a0a50da
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/cluster-vm.yaml
@@ -0,0 +1,12 @@
+name: cluster-vm
+services:
+- type: brooklyn.entity.group.DynamicCluster
+  initialSize: 5
+  memberSpec:
+    $brooklyn:entitySpec:
+      type: brooklyn.entity.basic.EmptySoftwareProcess
+      name: VM
+      provisioning.properties:
+        minRam: 8g
+        minCores: 4
+        minDisk: 100g

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/mysql-chef-1.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/mysql-chef-1.yaml b/docs/guide/use/guide/defining-applications/example_yaml/mysql-chef-1.yaml
new file mode 100644
index 0000000..bdac530
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/mysql-chef-1.yaml
@@ -0,0 +1,24 @@
+name: chef-mysql-sample
+services:
+- type: chef:mysql
+  
+  cookbook_urls:
+    # only needed for chef solo; URL can be local to brooklyn, or github, etc...
+    mysql: https://github.com/opscode-cookbooks/mysql/archive/v4.0.12.tar.gz
+    openssl: https://github.com/opscode-cookbooks/openssl/archive/v1.1.0.tar.gz
+    build-essential: https://github.com/opscode-cookbooks/build-essential/archive/v1.4.4.tar.gz
+  
+  launch_run_list: [ "mysql::server" ]
+  launch_attributes:
+    mysql:
+      # these attrs are required by the mysql cookbook under node['mysql']
+      server_root_password: p4ssw0rd
+      server_repl_password: p4ssw0rd
+      server_debian_password: p4ssw0rd
+      # many others are attrs are supported by the cookbook and can be passed here...
+      
+  # how to determine if the process is running and how to kill it
+  # (supported options are `service_name` and `pid_file`; normally you should just pick one.
+  # here we use the pid_file because the service_name varies, mysql on centos, mysqld on ubuntu!)
+  #service_name: mysqld
+  pid_file: /var/run/mysqld/mysqld.pid

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/mysql-chef-2.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/mysql-chef-2.yaml b/docs/guide/use/guide/defining-applications/example_yaml/mysql-chef-2.yaml
new file mode 100644
index 0000000..ced2dbe
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/mysql-chef-2.yaml
@@ -0,0 +1,28 @@
+name: chef-mysql-sample
+services:
+- type: chef:mysql
+  id: db
+  
+  cookbook_urls:
+    # only needed for chef solo; URL can be local to brooklyn, or github, etc...
+    mysql: https://github.com/opscode-cookbooks/mysql/archive/v4.0.12.tar.gz
+    openssl: https://github.com/opscode-cookbooks/openssl/archive/v1.1.0.tar.gz
+    build-essential: https://github.com/opscode-cookbooks/build-essential/archive/v1.4.4.tar.gz
+  
+  launch_run_list: [ "mysql::server" ]
+  launch_attributes:
+    mysql:
+      # these attrs are required by the mysql cookbook under node['mysql']
+      server_root_password: $brooklyn:component("db").config("mysql.password")
+      server_repl_password: $brooklyn:component("db").config("mysql.password")
+      server_debian_password: $brooklyn:component("db").config("mysql.password")
+      # many others are attrs are supported by the cookbook and can be passed here...
+      
+  # how to determine if the process is running and how to kill it
+  # (supported options are `service_name` and `pid_file`; normally you should just pick one.
+  # here we use the pid_file because the service_name varies, mysql on centos, mysqld on ubuntu!)
+  #service_name: mysqld
+  pid_file: /var/run/mysqld/mysqld.pid
+    
+brooklyn.config:
+  mysql.password: p4ssw0rd

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/simple-appserver-with-location-byon.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/simple-appserver-with-location-byon.yaml b/docs/guide/use/guide/defining-applications/example_yaml/simple-appserver-with-location-byon.yaml
new file mode 100644
index 0000000..7ba5b0c
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/simple-appserver-with-location-byon.yaml
@@ -0,0 +1,12 @@
+name: simple-appserver-with-location-byon
+location:
+  byon:
+    user: brooklyn
+    privateKeyFile: ~/.ssh/brooklyn.pem
+    hosts:
+    - 192.168.0.18
+    - 192.168.0.19
+services:
+- type: brooklyn.entity.webapp.jboss.JBoss7Server
+  location:
+    byon: { hosts: [ 127.0.0.1 ] }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/simple-appserver-with-location.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/simple-appserver-with-location.yaml b/docs/guide/use/guide/defining-applications/example_yaml/simple-appserver-with-location.yaml
new file mode 100644
index 0000000..c241ab2
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/simple-appserver-with-location.yaml
@@ -0,0 +1,8 @@
+name: simple-appserver-with-location
+location:
+  jclouds:aws-ec2:
+    region: us-east-1
+    identity: AKA_YOUR_ACCESS_KEY_ID
+    credential: <access-key-hex-digits>
+services:
+- type: brooklyn.entity.webapp.jboss.JBoss7Server

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/simple-appserver.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/simple-appserver.yaml b/docs/guide/use/guide/defining-applications/example_yaml/simple-appserver.yaml
new file mode 100644
index 0000000..3850b26
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/simple-appserver.yaml
@@ -0,0 +1,4 @@
+name: simple-appserver
+location: localhost
+services:
+- type: brooklyn.entity.webapp.jboss.JBoss7Server

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/simple-vm.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/simple-vm.yaml b/docs/guide/use/guide/defining-applications/example_yaml/simple-vm.yaml
new file mode 100644
index 0000000..149a1b9
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/simple-vm.yaml
@@ -0,0 +1,8 @@
+name: simple-vm
+services:
+- type: brooklyn.entity.basic.EmptySoftwareProcess
+  name: VM
+  provisioning.properties:
+    minRam: 8192mb
+    minCores: 4
+    minDisk: 100gb

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-file.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-file.yaml b/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-file.yaml
new file mode 100644
index 0000000..7950b8c
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-file.yaml
@@ -0,0 +1,6 @@
+name: Simple Netcat Example From File
+location: localhost
+services:
+- type: brooklyn.entity.basic.VanillaSoftwareProcess
+  name: Simple Netcat Server
+  download.url: file:///tmp/netcat-server.tgz

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-restarter.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-restarter.yaml b/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-restarter.yaml
new file mode 100644
index 0000000..1fd70c3
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-restarter.yaml
@@ -0,0 +1,20 @@
+name: Simple Netcat Example with Restarter Policy
+location: localhost
+services:
+- type: brooklyn.entity.basic.VanillaSoftwareProcess
+  id: netcat-server
+  name: Simple Netcat Server
+  launch.command: |
+    echo hello | nc -l 4321 &
+    echo $! > $PID_FILE
+  brooklyn.enrichers:
+  - type: brooklyn.policy.ha.ServiceFailureDetector
+    brooklyn.config:
+      # wait 15s after service fails before propagating failure
+      serviceFailedStabilizationDelay: 15s
+  brooklyn.policies:
+  - type: brooklyn.policy.ha.ServiceRestarter
+    brooklyn.config:
+      # repeated failures in a time window can cause the restarter to abort,
+      # propagating the failure; a time window of 0 will mean it always restarts!
+      failOnRecurringFailuresInThisDuration: 0

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-w-client.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-w-client.yaml b/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-w-client.yaml
new file mode 100644
index 0000000..50051db
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-w-client.yaml
@@ -0,0 +1,72 @@
+name: Simple Netcat with Client
+
+location: localhost
+
+services:
+
+# the netcat server instance, running in listener mode (-l)
+- type: brooklyn.entity.basic.VanillaSoftwareProcess
+  id: netcat-server
+  name: Simple Netcat Server
+  launch.command: |
+    echo hello | nc -l 4321 >> server-input &
+    echo $! > $PID_FILE
+
+  brooklyn.policies:
+  # restarter and 
+  - policyType: brooklyn.policy.ha.ServiceFailureDetector
+    brooklyn.config:
+      # wait 15s after service fails before propagating failure
+      serviceFailedStabilizationDelay: 15s
+  - policyType: brooklyn.policy.ha.ServiceRestarter
+    brooklyn.config:
+      # repeated failures in a time window can cause the restarter to abort,
+      # propagating the failure; a time window of 0 will mean it always restarts!
+      failOnRecurringFailuresInThisDuration: 0
+      
+  brooklyn.initializers:
+  # two sensors, recording the data sent to this netcat server:
+  
+  - type: brooklyn.entity.software.ssh.SshCommandSensor
+    brooklyn.config:
+      name: output.last
+      command: tail -1 server-input
+      
+  - type: brooklyn.entity.software.ssh.SshCommandSensor
+    brooklyn.config:
+      name: output.all
+      command: cat server-input
+
+# a client to hit netcat
+- type: brooklyn.entity.basic.VanillaSoftwareProcess
+  name: Simple Pinger
+  
+  # set the hostname of the netcat instance as an env var for the scripts 
+  env:
+    TARGET_HOSTNAME: $brooklyn:component("netcat-server").attributeWhenReady("host.name")
+    
+  # start/check/stop are no-op
+  launch.command: ""
+  checkRunning.command: ""
+  stop.command: ""
+  
+  brooklyn.initializers:
+  # but there is a sample effector which runs nc in client mode
+  
+  - type: brooklyn.entity.software.ssh.SshCommandEffector
+    brooklyn.config:
+      name: sayHiNetcat
+      description: Echo a small hello string to the netcat entity
+      command: |
+        echo $message | nc $TARGET_HOSTNAME 4321
+      parameters:
+        message:
+          description: The string to pass to netcat
+          defaultValue: hi netcat
+
+# and add an enricher at the root so all sensors from netcat-server are visible on the root
+brooklyn.enrichers:
+- enricherType: brooklyn.enricher.basic.Propagator
+  brooklyn.config:
+    enricher.producer: $brooklyn:component("netcat-server")
+    enricher.propagating.propagatingAll: true

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat.yaml b/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat.yaml
new file mode 100644
index 0000000..d4cb37b
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/example_yaml/vanilla-bash-netcat.yaml
@@ -0,0 +1,18 @@
+name: Simple Netcat Server Example
+location: localhost
+services:
+- type: brooklyn.entity.basic.VanillaSoftwareProcess
+  name: Simple Netcat Server
+  launch.command: |
+    echo hello | nc -l 4321 &
+    echo $! > $PID_FILE
+
+  # The following overrides demonstrate the use of a custom shell environment as well as
+  # check-running and stop commands. These are optional; default behavior will "do the
+  # right thing" with the pid file automatically.
+
+  env:                  { CHECK_MARKER: "checkRunning", STOP_MARKER: "stop" }
+  checkRunning.command: echo $CHECK_MARKER >> DATE && test -f "$PID_FILE" && ps -p `cat $PID_FILE` >/dev/null
+  stop.command:         echo $STOP_MARKER  >> DATE && test -f "$PID_FILE" && { kill -9 `cat $PID_FILE`; rm /tmp/vanilla.pid; }
+
+# can also define download.url, in which case the launch command defaults to ./start.sh in that (archive) file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/examples.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/examples.md b/docs/guide/use/guide/defining-applications/examples.md
new file mode 100644
index 0000000..a208bd7
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/examples.md
@@ -0,0 +1,120 @@
+---
+title: Examples
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide, defining-applications]
+---
+
+** TODO: this examples page is deprecated;
+code is out-of-date, and better examples are described on the web site.
+need to figure out if this page should be kept at all
+(indeed if the "guide" is even still relevant)**
+
+
+### Integrating with a Maven project
+
+If you have a Maven-based project, integrate this XML fragment with your pom.xml:
+
+<!-- TODO this should import from the downloads page -->
+
+{% highlight xml %}
+<dependencies>
+	<dependency>
+		<groupId>io.brooklyn</groupId>
+		<artifactId>brooklyn-all</artifactId>
+		<version>0.7.0-SNAPSHOT</version>  <!-- BROOKLYN_VERSION -->
+	</dependency>
+</dependencies>
+ 
+<repository>
+    <id>cloudsoft-releases</id>
+    <url>http://developers.cloudsoftcorp.com/download/maven2/</url>
+</repository>
+<repository>
+    <id>libs-snapshot-local</id>
+    <url>http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/</url>
+    <snapshots>
+        <enabled>true</enabled>
+        <updatePolicy>never</updatePolicy>
+        <checksumPolicy>fail</checksumPolicy>
+    </snapshots>
+</repository>
+{% endhighlight %}
+
+
+### Starting a Tomcat Server
+
+The code below starts a Tomcat server on the local machine.
+
+The ``main`` method defines the application, and passes it to the ``BrooklynLauncher`` to be managed. 
+It is then started in a localhost location (other locations are shown in the next section).
+
+The Tomcat's configuration indicates that the given WAR should be deployed to the Tomcat server when it is started.
+
+{% highlight java %}
+{% readj example_files/tomcat_simple.java %}
+{% endhighlight %}
+
+The ``wars`` config is also supported (with config keys ``ROOT_WAR`` and ``NAMED_WARS`` the long-hand syntax);
+they accept EARs and other common archives, and can be described as files or as URLs (as Strings), 
+with URLs supporting an optional ``classpath://org/acme/resources/xxx.war`` syntax.
+
+
+### Starting Tomcat in Amazon EC2
+
+To start a tomcat node or cluster in Amazon EC2, the application is identical to that for localhost. 
+The only difference is the location supplied.
+
+The Brooklyn CLI can be used to launch the application in your choice of location, such as:
+
+{% highlight bash %}
+brooklyn launch --app TomcatServerApp --location localhost
+brooklyn launch --app TomcatServerApp --location aws-ec2:eu-west-1
+{% endhighlight %}
+
+ 
+### Starting a Tomcat Cluster with Nginx
+
+The code below starts a Tomcat cluster along with an Nginx instance, where each Tomcat server in the cluster is registered with the Nginx instance.
+
+{% highlight java %}
+{% readj example_files/tomcat_nginx.java %}
+{% endhighlight %}
+
+This creates a cluster that of Tomcat servers, along with an Nginx instance. The ``NginxController`` instance
+is notified whenever a member of the cluster joins or leaves; the entity is configured to look at the ``HTTP_PORT``
+attribute of that instance so that the Nginx configuration can be updated with the ip:port of the cluster member.
+
+<!---
+TODO things may need tidying (paragraphs, and/or eliminating any extra setConfig calls, though looks like these have gone)
+-->
+
+
+Starting a Multi-location Tomcat Fabric
+---------------------------------------
+
+<!---
+TODO this example should use several cloud providers, including Openshift, and use GeoDNS, 
+and maybe a data store and/or messaging service; it is the last "most advanced" example
+-->
+
+<!---
+FIXME Discuss above comment with Aled/Alex as it is contentious
+-->
+
+The ``ControlledDynamicWebAppCluster`` entity used above can also be used with a DynamicFabric to start
+a web-cluster in each location.
+
+{% highlight java %}
+{% readj example_files/tomcat_multi-location.java %}
+{% endhighlight %}
+
+
+Examples Source
+---------------
+
+Source code for (more up-to-date!) examples is available for download from GitHub. To retrieve the source, execute the following command:
+
+    git clone git@github.com:brooklyncentral/brooklyn-examples.git
+
+You can also [browse the code](https://github.com/brooklyncentral/brooklyn-examples) on the web.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/service-state.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/service-state.md b/docs/guide/use/guide/defining-applications/service-state.md
new file mode 100644
index 0000000..32212bc
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/service-state.md
@@ -0,0 +1,73 @@
+---
+title: Service State
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide, defining-applications]
+---
+
+Any entity can use the standard "service-up" and "service-state" 
+sensors to inform other entities and the GUI about its status.
+
+In normal operation, entities should publish at least one "service not-up indicator",
+using the `ServiceNotUpLogic.updateNotUpIndicator` method.  Each such indicator should have
+a unique name or input sensor.  `Attributes.SERVICE_UP` will then be updated automatically
+when there are no not-up indicators.
+
+When there are transient problems that can be detected, to trigger `ON_FIRE` status
+entity code can similarly set `ServiceProblemsLogic.updateProblemsIndicator` with a unique namespace,
+and subsequently clear it when the problem goes away.
+These problems are reflected at runtime in the `SERVICE_PROBLEMS` sensor,
+allowing multiple problems to be tracked independently.
+
+When an entity is changing the expected state, e.g. starting or stopping,
+the expected state can be set using `ServiceStateLogic.setExpectedState`;
+this expected lifecycle state is considered together with `SERVICE_UP` and `SERVICE_PROBLEMS`
+to compute the actual state.  By default the logic in `ComputeServiceState` is applied.
+
+For common entities, good out-of-the-box logic is applied, as follows:
+
+* For `SoftwareProcess` entities, lifecycle service state is updated by the framework
+  and a service not-up indicator is linked to the driver `isRunning()` check.
+  
+* For common parents, including `AbstractApplication` and `AbstractGroup` subclasses (including clusters, fabrics, etc),
+  the default enrichers analyse children and members to set a not-up indicator
+  (requiring at least one child or member who is up) and a problem indicator
+  (if any children or members are on-fire).
+  In some cases other quorum checks are preferable; this can be set e.g. by overriding 
+  the `UP_QUORUM_CHECK` or the `RUNNING_QUORUM_CHECK`, as follows:
+  
+      public static final ConfigKey<QuorumCheck> UP_QUORUM_CHECK = ConfigKeys.newConfigKeyWithDefault(AbstractGroup.UP_QUORUM_CHECK, 
+          "Require all children and members to be up for this node to be up",
+          QuorumChecks.all());
+
+  Alternatively the `initEnrichers()` method can be overridden to specify a custom-configured
+  enricher or set custom config key values (as done e.g. in `DynamicClusterImpl` so that
+  zero children is permitted provided when the initial size is configured to be 0).
+
+
+For sample code to set and more information on these methods' behaviours,
+see javadoc in `ServiceStateLogic`,
+overrides of `AbstractEntity.initEnrichers()`
+and tests in `ServiceStateLogicTests`.
+
+<!-- TODO include more documentation, sample code (ideally extracted on the fly from test cases so we know it works!) -->
+
+
+## Notes on Advanced Use
+
+The enricher to derive `SERVICE_UP` and `SERVICE_STATE_ACTUAL` from the maps and expected state values discussed above
+is added by the `AbstractEntity.initEnrichers()` method.
+This method can be overridden -- or excluded altogether by by overriding `init()` --
+and can add enrichers created using the `ServiceStateLogic.newEnricherFromChildren()` method
+suitably customized using methods on the returned spec object, for instance to look only at members
+or specify a quorum function (from `QuorumChecks`). 
+If different logic is required for computing `SERVICE_UP` and `SERVICE_STATE_ACTUAL`,
+use `ServiceStateLogic.newEnricherFromChildrenState()` and `ServiceStateLogic.newEnricherFromChildrenUp()`,
+noting that the first of these will replace the enricher added by the default `initEnrichers()`,
+whereas the second one runs with a different namespace (unique tag).
+For more information consult the javadoc on those classes.
+
+Entities can set `SERVICE_UP` and `SERVICE_STATE_ACTUAL` directly.
+Provided these entities never use the `SERVICE_NOT_UP_INDICATORS` and `SERVICE_PROBLEMS` map,
+the default enrichers will not override these values.
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/toc.json b/docs/guide/use/guide/defining-applications/toc.json
new file mode 100644
index 0000000..08940a8
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/toc.json
@@ -0,0 +1,19 @@
+[{ "title": "Basic Concepts",
+  "file":  "{{ site.url }}/use/guide/defining-applications/basic-concepts.html" }, 
+{ "title": "Advanced Concepts",
+  "file":  "{{ site.url }}/use/guide/defining-applications/advanced-concepts.html" }, 
+{ "title": "Common Usage",
+  "file":  "{{ site.url }}/use/guide/defining-applications/common-usage.html" },
+{ "title": "YAML Blueprints",
+  "file":  "{{ site.url }}/use/guide/defining-applications/creating-yaml.html" },
+{ "title": "Chef Blueprints",
+  "file":  "{{ site.url }}/use/guide/defining-applications/chef-blueprints.html" },
+{ "title": "Deploying YAML",
+  "file":  "{{ site.url }}/use/guide/defining-applications/deploying-yaml.html" },
+{ "title": "YAML Reference",
+  "file":  "{{ site.url }}/use/guide/defining-applications/yaml-reference.html" },
+{ "title": "Service State",
+  "file":  "{{ site.url }}/use/guide/defining-applications/service-state.html" },
+{ "title": "Maven Archetype",
+  "file":  "{{ site.url }}/use/guide/defining-applications/archetype.html" }
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/web-console-yaml-700.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/web-console-yaml-700.png b/docs/guide/use/guide/defining-applications/web-console-yaml-700.png
new file mode 100644
index 0000000..d6a2249
Binary files /dev/null and b/docs/guide/use/guide/defining-applications/web-console-yaml-700.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/web-console-yaml.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/web-console-yaml.png b/docs/guide/use/guide/defining-applications/web-console-yaml.png
new file mode 100644
index 0000000..3d65a99
Binary files /dev/null and b/docs/guide/use/guide/defining-applications/web-console-yaml.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/yaml-reference.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/yaml-reference.md b/docs/guide/use/guide/defining-applications/yaml-reference.md
new file mode 100644
index 0000000..df19dd3
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/yaml-reference.md
@@ -0,0 +1,183 @@
+---
+title: Broooklyn YAML Blueprint Reference
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide, defining-applications]
+---
+
+## Root Elements
+
+* `name`: human readable names
+* `services`: a list of `ServiceSpecification` elements
+* `location` (or `locations` taking a list): a `LocationSpecification` element as a string or a map
+
+
+## `ServiceSpecification` Elements
+
+Within the `services` block, a list of maps should be supplied, with each map
+defining a `ServiceSpecification`.  Each `ServiceSpecification` should declare the
+service `type` (synonyms `serviceType` and `service_type`), indicating what type of 
+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 -->
+
+A reference of some of the common service `type` instances used is included in a section below.
+
+Within the `ServiceSpecification`, other key-value pairs can be supplied to customize
+the entity being defined, with these being the most common:
+
+* `id`: an ID string, used to refer to this service
+
+* `location` (or `locations`): as defined in the root element 
+  
+* `brooklyn.config`: configuration key-value pairs passed to the service entity being created
+
+* `brooklyn.children`: a list of `ServiceSpecifications` which will be configured as children of this entity
+
+* `brooklyn.policies`: a list of policies, each as a map described with their `type` and their `brooklyn.config` as keys
+
+* `brooklyn.enrichers`: a list of enrichers, each as a map described with their `type` and their `brooklyn.config` as keys
+
+* `brooklyn.initializers`: a list of `EntityInitializer` instances to be constructed and run against the entity, 
+  each as a map described with their `type` and their `brooklyn.config` as keys.
+  An `EntityInitiailzer` can perform arbitrary customization to an entity whilst it is being constructed,
+  such as adding dynamic sensors and effectors. These classes must expose a public constructor taking
+  a single `Map` where the `brooklyn.config` is passed in.
+  Some common initializers are:
+  
+  * `brooklyn.entity.software.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`,
+    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) 
+
+Entities, policies, and initializers may accept additional key-value pairs, 
+usually documented in their documentation (e.g. javadoc), or in the case of Java
+often as static fields in the underlying Java class.
+Often there are config keys or flags (indicated by `@SetFromFlag`) declared on the class; 
+these declared flags and config keys may be passed in at the root of the `ServiceSpecification` or in `brooklyn.config`.
+(Undeclared config is only accepted in the `brooklyn.config` map.)
+
+
+## `LocationSpecification` Elements
+
+<!-- TODO - expand this, currently it's concise notes -->
+
+In brief, location specs are supplied as follows, either for the entire application (at the root)
+or for a specific `ServiceSpecification`:
+
+    location:
+      jclouds:aws-ec2:
+        region: us-east-1
+        identity: AKA_YOUR_ACCESS_KEY_ID
+        credential: <access-key-hex-digits>
+
+Or in many cases it can be in-lined:
+
+    location: localhost
+    location: named:my_openstack
+    location: aws-ec2:us-west-1
+
+For the first immediately, you'll need password-less ssh access to localhost.
+For the second, you'll need to define a named location in `brooklyn.properties`,
+using `brooklyn.location.named.my_openstack....` properties.
+For the third, you'll need to have the identity and credentials defined in
+`brooklyn.properties`, using `brooklyn.location.jclouds.aws-ec2....` properties.
+
+If specifying multiple locations, e.g. for a fabric:
+
+    locations:
+    - localhost
+    - named:my_openstack
+    - aws-ec2:us-east-2   # if credentials defined in `brooklyn.properties
+    - jclouds:aws-ec2:
+        region: us-east-1
+        identity: AKA_YOUR_ACCESS_KEY_ID
+        credential: <access-key-hex-digits>
+
+If you have pre-existing nodes, you can use the `byon` provider, either in this format:
+
+    location:
+      byon:
+        user: root
+        privateKeyFile: ~/.ssh/key.pem
+        hosts:
+        - 81.95.144.58
+        - 81.95.144.59
+        - brooklyn@159.253.144.139
+        - brooklyn@159.253.144.140
+
+or:
+
+    location:
+      byon:
+        user: root
+        privateKeyFile: ~/.ssh/key.pem
+        hosts: "{81.95.144.{58,59},brooklyn@159.253.144.{139-140}"
+
+You cannot use glob expansions with the list notation, nor can you specify per-host
+information apart from user within a single `byon` declaration.
+However you can combine locations using `multi`:
+
+    location:
+      multi:
+        targets:
+        - byon:
+            user: root
+            privateKeyFile: ~/.ssh/key.pem
+            hosts:
+            - 81.95.144.58
+            - 81.95.144.59
+        - byon:
+            privateKeyFile: ~/.ssh/brooklyn_key.pem
+            hosts: brooklyn@159.253.144{139-140}
+
+
+## DSL Commands
+
+Dependency injection other powerful references and types can be built up within the YAML using the
+concise DSL defined here:
+ 
+* `$brooklyn:component("ID")` refers to a Brooklyn component with the given ID; you can then access the following subfields:
+  * `.attributeWhenReady("sensor")` will store a future which will be blocked when it is accessed,
+    until the given `sensor` from the component `ID` has a "truthy" (i.e. non-trivial, non-empty, non-zero) value
+  * `.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:component("scope", "ID")` is also supported, to limit scope to any of
+  * `global`: looks for the `ID` anywhere in the plan
+  * `child`: looks for the `ID` anywhere in the child only
+  * `descendant`: looks for the `ID` anywhere in children or their descendants
+  * `sibling`: looks for the `ID` anywhere among children of the parent entity
+  * `parent`: returns the parent entity (ignores the `ID`)
+  * `this`: returns this entity (ignores the `ID`)
+* `$brooklyn:formatString("pattern e.g. %s %s", "field 1", "field 2")` returns a future which creates the formatted string
+  with the given parameters, where parameters may be strings *or* other tasks such as `attributeWhenReady`
+* `$brooklyn:literal("string")` returns the given string as a literal (suppressing any `$brooklyn:` expansion)
+* `$brooklyn:sensor("io.brooklyn.ContainingEntityClass", "sensor.name")` returns the strongly typed sensor defined in the given class
+* `$brooklyn:entitySpec(Map)` returns a new `ServiceSpecification` as defined by the given `Map`,
+  but as an `EntitySpec` suitable for setting as the value of `ConfigKey<EntitySpec>` config items
+  (such as `memberSpec` in `DynamicCluster`)
+
+These can be supplied either as strings or as lists and maps in YAML. 
+
+
+## Some Powerful YAML Entities
+
+All entities support configuration via YAML, but these entities in particular 
+have been designed for general purpose use from YAML.  Consult the Javadoc for these
+elements for more information:
+
+* **Vanilla Software** in `VanillaSoftwareProcess`: makes it very easy to build entities
+  which use `bash` commands to install and the PID to stop and restart
+* **Chef** in `ChefSoftwareProcess`: makes it easy to use Chef cookbooks to build entities,
+  either with recipes following conventions or with configuration in the `ServiceSpecification`
+  to use artibitrary recipes 
+* `DynamicCluster`: provides resizable clusters given a `memberSpec` set with `$brooklyn.entitySpec(Map)` as described above 
+* `DynamicFabric`: provides a set of homogeneous instances started in different locations,
+  with an effector to `addLocation`, i.e. add a new instance in a given location, at runtime

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/entities/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/entities/index.md b/docs/guide/use/guide/entities/index.md
new file mode 100644
index 0000000..dc7df88
--- /dev/null
+++ b/docs/guide/use/guide/entities/index.md
@@ -0,0 +1,133 @@
+---
+title: Custom Entity Development
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide, entities]
+---
+
+This section details how to create new custom application components or groups as brooklyn entities.
+
+<a name="entity-lifestyle"></a>
+The Entity Lifecycle
+--------------------
+
+- Importance of serialization, ref to How mananagement works
+- Parents and Membership (groups)
+
+<a name="implementation-classes"></a>
+What to Extend -- Implementation Classes
+----------------------------------------
+
+- entity implementation class hierarchy
+
+  - ``SoftwareProcess`` as the main starting point for base entities (corresponding to software processes),
+    and subclasses such as ``VanillaJavaApp``
+  - ``DynamicCluster`` (multiple instances of the same entity in a location) and 
+    ``DynamicFabric`` (clusters in multiple location) for automatically creating many instances,
+    supplied with an ``EntityFactory`` (e.g. ``BaseEntityFactory``) in the ``factory`` flag
+  - abstract ``Group`` for collecting entities which are parented elsewhere in the hierachy
+  - ``AbstractEntity`` if nothing else fits
+  
+- traits (mixins, otherwise known as interfaces with statics) to define available config keys, sensors, and effectors;
+    and conveniences e.g. ``StartableMethods.{start,stop}`` is useful for entities which implement ``Startable``
+
+- the ``Entities`` class provides some generic convenience methods; worth looking at it for any work you do
+
+A common lifecycle pattern is that the ``start`` effector (see more on effectors below) is invoked, 
+often delegating either to a driver (for software processes) or children entities (for clusters etc).
+
+See ``JBoss7Server`` and ``MySqlNode`` for exemplars.
+
+
+<a name="configuration"></a>
+Configuration
+-------------
+<!---
+TODO: why to use config?
+-->
+
+- AttributeSensorAndConfigKey fields can be automatically converted for ``SoftwareProcess``. 
+  This is done in ``preStart()``. This must be done manually if required for other entities,
+  often with ``ConfigToAttributes.apply(this)``.
+
+- Setting ports is a special challenge, and one which the ``AttributeSensorAndConfigKey`` is particularly helpful for,
+  cf ``PortAttributeSensorAndConfigKey`` (a subclass),
+  causing ports automatically get assigned from a range and compared with the target ``PortSupplied`` location.
+  
+  Syntax is as described in the PortRange interface. For example, "8080-8099,8800+" will try port 8080, try sequentially through 8099, then try from 8800 until all ports are exhausted.
+  
+  This is particularly useful on a contended machine (localhost!). Like ordinary configuration, the config is done by the user, and the actual port used is reported back as a sensor on the entity.
+ 
+<a name="implementing-sensors"></a>
+Implementing Sensors
+--------------------
+
+- e.g. HTTP, JMX
+
+Sensors at base entities are often retrieved by feeds which poll the entity's corresponding instance in the real world.
+The ``SoftwareProcess`` provides a good example; by subclassing it and overriding the ``connectSensors()`` method
+you could wire some example sensors using the following: 
+
+{% highlight java %}
+public void connectSensors() {
+	super.connectSensors()
+	
+    httpFeed = HttpFeed.builder()
+            .entity(this)
+            .period(200)
+            .baseUri(mgmtUrl)
+            .poll(new HttpPollConfig<Boolean>(SERVICE_UP)
+                    .onSuccess(HttpValueFunctions.responseCodeEquals(200))
+                    .onError(Functions.constant(false)))
+            .poll(new HttpPollConfig<Integer>(REQUEST_COUNT)
+                    .onSuccess(HttpValueFunctions.jsonContents("requestCount", Integer.class)))
+            .build();
+}
+    
+@Override
+protected void disconnectSensors() {
+    super.disconnectSensors();
+    if (httpFeed != null) httpFeed.stop();
+}
+{% endhighlight %}
+
+In this example (a simplified version of ``JBoss7Server``), the url returns metrics in JSON. 
+We report the entity as up if we get back an http response code of 200, or down if any other response code or exception.
+We retrieve the request count from the response body, and convert it to an integer.
+
+Note the first line (``super.connectSensors()``); as one descends into specific convenience subclasses (such as for Java web-apps), the work done by the parent class's overridden methods may be relevant, and will want to be invoked or even added to a resulting list.
+
+For some sensors, and often at compound entities, the values are obtained by monitoring values of other sensors on the same (in the case of a rolling average) or different (in the case of the average of children nodes) entities. This is achieved by policies, described below.
+
+<a name="implementing-effectors"></a>
+Implementing Effectors
+----------------------
+
+The ``Entity`` interface defines the sensors and effectors available. The entity class provides 
+wiring for the sensors, and the effector implementations. In simple cases it may be straightforward 
+to capture the behaviour of the effectors in a simple methods.
+For example deploying a WAR to a cluster can be done as follows:
+
+*This section is not complete. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
+
+<!---
+TODO show an effector which recurses across children
+-->
+
+For some entities, specifically base entities, the implementation of effectors might need other tools (such as SSH), and may vary by location, so having a single implementation is not appropriate.
+
+The problem of multiple inheritance (e.g. SSH functionality and entity inheritance) and multiple implementations (e.g. SSH versus Windows) is handled in brooklyn using delegates called _drivers_. 
+
+In the implementations of ``JavaWebApp`` entities, the behaviour which the entity always does is captured in the entity class (for example, breaking deployment of multiple WARs into atomic actions), whereas implementations which is specific to a particular entity and driver (e.g. using scp to copy the WARs to the right place and install them, which of course is different among appservers, or using an HTTP or JMX management API, again where details vary between appservers) is captured in a driver class.
+
+Routines which are convenient for specific drivers can then be inherited in the driver class hierarchy. For example, when passing JMX environment variables to Java over SSH, ``JavaSoftwareProcessSshDriver`` extends ``AbstractSoftwareProcessSshDriver`` and parents ``JBoss7SshDriver``.
+
+<!---
+TODO more drivers such as jmx, etc are planned
+-->
+
+<a name="testing"></a>
+Testing
+-------
+
+* Run in a mock ``SimulatedLocation``, defining new metaclass methods to be able to start there and assert the correct behaviour when that is invoked

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/entities/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/entities/toc.json b/docs/guide/use/guide/entities/toc.json
new file mode 100644
index 0000000..c6c68dd
--- /dev/null
+++ b/docs/guide/use/guide/entities/toc.json
@@ -0,0 +1,12 @@
+[{ "title": "Entity Lifecycle",
+  "file":  "{{ site.url }}/use/guide/entities/index.html#entity-lifestyle" }, 
+{ "title": "What to Extend",
+  "file":  "{{ site.url }}/use/guide/entities/index.html#implementation-classes" }, 
+{ "title": "Configuration",
+  "file":  "{{ site.url }}/use/guide/entities/index.html#configuration" }, 
+{ "title": "Implementing Sensors",
+  "file":  "{{ site.url }}/use/guide/entities/index.html#implementing-sensors" }, 
+{ "title": "Implementing Effectors",
+  "file":  "{{ site.url }}/use/guide/entities/index.html#implementing-effectors" },
+{ "title": "Testing",
+  "file":  "{{ site.url }}/use/guide/entities/index.html#testing" }]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/extras/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/extras/index.md b/docs/guide/use/guide/extras/index.md
new file mode 100644
index 0000000..7136dd1
--- /dev/null
+++ b/docs/guide/use/guide/extras/index.md
@@ -0,0 +1,160 @@
+---
+title: Systems Available Out-of-the-Box
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide]
+---
+
+brooklyn comes bundled with support for a large number of systems and entities.
+
+*Some entities are in an early-access state, and documentation is incomplete. Please contact the Brooklyn Project for assistance and clarification.*
+<!---
+.. TODO fix
+.. TODO name entities
+.. TODO include the fully qualified name of the entity
+-->
+
+<a name="web"></a>
+Web
+---
+
+### Clusters and Interfaces
+
+The class ``ControlledDynamicWebAppCluster`` creates a load-balanced cluster of web servers.
+It defaults to Nginx and JBoss 7, but this is configurable with the ``controller`` or ``controllerSpec``, and 
+the ``memberSpec`` configuration options.
+
+Most web app server processes, and some clusters and PaaS implementations,
+support the interface ``WebAppService`` which defines many sensors including requests per second.
+This allows app server metrics to interoperable across implementations in many cases.
+
+
+### JBoss Application Server
+
+Brooklyn supports JBoss 7 in the calss ``JBoss7Server``, with a wide range of
+monitoring.
+
+JBoss 6 is also supported using the different class ``JBoss6Server``.
+(The different implementation is needed due to major differences between 6 and 7,
+including switching from JMX to HTTP/JSON as the preferred metrics mechanism.)
+
+
+### Apache Tomcat
+
+Apache Tomcat is supported in the class ``TomcatServer``.
+(Note that this currently uses a legacy Brooklyn class hierarchy,
+and could benefit from being ported to the ``JavaSoftwareProcessSshDriver`` implementation.)
+
+
+### Nginx Load Balancer
+
+Nginx provides clustering support for several web/app servers.
+
+The install process downloads the sources for both the service and the sticky session module, configures them using GNI
+autoconf and compiles them. This requires gcc and autoconf to be installed. The install script also uses the yum package manager (if available) to install openssl-devel which is required to build the service. This will only work on RHEL or CentOS Linux systems, but the install process should proceed on a vanilla system with development tools available.
+
+On debian/ubuntu to build nginx you can get the required libraries with: 
+``apt-get install zlib1g-dev libdigest-sha-perl libssl-dev``.
+(The entity install script will attempt to do this with sudo, 
+but that may fail if sudo access is not available.) 
+
+
+<a name="database"></a>
+Database
+--------
+
+### MySQL
+
+MySQL is one of the most popular relational databases.
+Brooklyn supports setting up individual MySQL nodes with arbitrary configuration,
+which may be used to create multiple nodes using back-up and synchronization processes as desired.
+(If certain patterns for configuring multiple nodes become popular, these could be
+added as Brooklyn entities.)  
+
+
+### Apache Derby
+
+*This entity is in the sandbox.* 
+
+Brooklyn supports Apache Derby, a pure-Java SQL database. For setting up an instance of a server see ``DerbySetup``.
+
+
+<a name="nosql"></a>
+NoSQL
+-----
+
+*The NoSQL entities may not be complete.* 
+
+### Redis
+
+Redis is a distributed key-value store, supporting master/slave replication of a store as a clustered cache. This gives
+a series of read-only slaves and a single read-write master, which propagates to the slaves with eventual consistency.
+
+
+### MongoDB
+
+
+### Cassandra
+
+
+### CouchBase
+
+
+<a name="messaging"></a>
+Messaging
+---------
+
+### Qpid
+
+
+Qpid support provides a JMS broker, running over AMQP. This exposes JMS queues and topics as entities as well.
+See ``QpidSetup`` for instantiating a broker.
+
+### ActiveMQ
+
+
+ActiveMQ support provides a JMS broker. This exposes JMS queues and topics as entities as well. See ``ActiveMQSetup`` for
+instantiating a broker.
+
+### RabbitMQ
+
+
+<a name="downstream-projects"></a>
+Downstream Projects
+-------------------
+
+Downstream projects include those below.
+
+### Apache Whirr
+
+https://github.com/brooklyncentral/brooklyn-whirr
+
+Whirr allows running a variety of services on cloud providers and on localhost. This is done by providing a ``recipe`` which describes what services to launch. You can find an example of how Brooklyn integrates with Whirr [here](/use/examples/whirrhadoop/index.html#custom-whirr-recipe).
+
+### OpenShift
+
+https://github.com/cloudsoft/brooklyn-openshift
+
+### CloudFoundry
+
+https://github.com/cloudsoft/brooklyn-cloudfoundry and https://github.com/cloudsoft/brooklyn-cloudfoundry
+
+### MPI
+
+https://github.com/cloudsoft/brooklyn-openmpi
+
+### Waratek
+
+https://github.com/cloudsoft/brooklyn-waratek
+
+### MapR
+
+https://github.com/cloudsoft/brooklyn-mapr
+
+### Cloudera CDH
+
+https://github.com/cloudsoft/brooklyn-cdh
+
+### Drupal and Wordpress
+
+https://github.com/cloudsoft/brooklyn-social-apps

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/extras/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/extras/toc.json b/docs/guide/use/guide/extras/toc.json
new file mode 100644
index 0000000..edf5cc7
--- /dev/null
+++ b/docs/guide/use/guide/extras/toc.json
@@ -0,0 +1,11 @@
+[{ "title": "Web",
+  "file":  "{{ site.url }}/use/guide/extras/index.html#web" }, 
+{ "title": "Database",
+  "file":  "{{ site.url }}/use/guide/extras/index.html#database" }, 
+{ "title": "NoSQL",
+  "file":  "{{ site.url }}/use/guide/extras/index.html#nosql" }, 
+{ "title": "Messaging",
+  "file":  "{{ site.url }}/use/guide/extras/index.html#messaging" },
+{ "title": "Provisioning",
+  "file":  "{{ site.url }}/use/guide/extras/index.html#provisioning" }  
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/guide_toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/guide_toc.json b/docs/guide/use/guide/guide_toc.json
new file mode 100644
index 0000000..a7cfff6
--- /dev/null
+++ b/docs/guide/use/guide/guide_toc.json
@@ -0,0 +1,25 @@
+[
+{ "title": "Start",
+  "file":  "{{ site.url }}/start/index.html" },
+
+{ "title": "User Guide",
+  "file": "{{ site.url }}/use/guide/index.html",
+  "children": {% readj ./toc.json %} },
+{ "title": "Elsewhere",
+  "file":  "{{ site.url }}/start/index.html",
+  "children": [
+
+{ "title": "Examples",
+  "file":  "{{ site.url }}/use/examples/index.html", 
+  "children": {% readj /use/examples/toc.json %} },
+{ "title": "API Reference",
+  "file": "{{ site.url }}/use/api/index.html" },
+  
+{ "title": "Contributing",
+  "file": "{{ site.url }}/dev/code/index.html",
+  "children": {% readj /dev/toc.json %} },
+{ "title": "License",
+  "file": "{{ site.url }}/license/index.html" }  
+]}
+
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/index.md b/docs/guide/use/guide/index.md
new file mode 100644
index 0000000..655d401
--- /dev/null
+++ b/docs/guide/use/guide/index.md
@@ -0,0 +1,33 @@
+---
+layout: guide-normal
+title: User Guide
+toc: guide_toc.json
+categories: use
+---
+
+## Table of Contents
+
+{% capture ugtocs %}{% readj toc.json %}{% endcapture %}
+{% jsonball ugtoc from var ugtocs %}
+
+<div id="ug_toc_lists">
+<ul>
+{% for x in ugtoc %}
+	<li><a class='toc' href="{{ x.file }}">{{ x.title }}</a></li>
+	{% if x.children %}
+		<ul>
+		{% for x2 in x.children %}
+			<li><a class='toc' href="{{ x2.file }}">{{ x2.title }}</a></li>
+			{% if x2.children %}
+				<ul>
+				{% for x3 in x2.children %}
+					<li><a class='toc' href="{{ x3.file }}">{{ x3.title }}</a></li>
+				{% endfor %}
+				</ul>
+			{% endif %}
+		{% endfor %}
+		</ul>
+	{% endif %}
+{% endfor %} 
+</ul>
+</div>


[30/50] [abbrv] incubator-brooklyn git commit: serve static content from `_site` using the new `--serve` option

Posted by he...@apache.org.
serve static content from `_site` using the new `--serve` option

experimented with using file urls so files could be read directly in the browser
(as @rdowner had done with `build-preview` in the original website),
but the `url` and `baseurl` are not inserted everywhere (and since we prefer relative links
we probably don't want them everywhere, and filesystem doesn't work nicely in `<base>`)),
so that doesn't work too well; serving is a nice and simple option


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

Branch: refs/heads/master
Commit: d6cfde4060e9ff06d62bbb5bc4378ac72c980d1b
Parents: 0806821
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Dec 16 19:03:39 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:57 2014 +0000

----------------------------------------------------------------------
 docs/README.md            | 12 ++++++-
 docs/_build/build.sh      | 79 +++++++++++++++++++++++++++++-------------
 docs/_build/serve-site.sh |  1 +
 docs/index.md             |  7 ++++
 4 files changed, 73 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d6cfde40/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
index ece1396..9a0aad4 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -143,12 +143,22 @@ There are a number of different builds possible; to list these, run:
 
     _build/build.sh help
 
-The normal build outputs to `_site/`.  The three builds which are relevant to updating the live site are:
+The normal build outputs to `_site/`.  The three builds which are most relevant to updating the live site are:
 
 * **website-root**: to build the website only, in the root
 * **guide-latest**: to build the guide only, in `/v/latest/`
 * **guide-version**: to build the guide only, in the versioned namespace e.g. `/v/<version>/`
 
+There are some others, including `test-both`, which apply slightly different configurations
+useful for testing.
+Supported options beyond that include `--serve`, to start a web browser serving the content of `_site/`,
+and `--skip-javadoc`, to speed up the build significantly by skipping javadoc generation.
+A handy command for testing the live files, analogous to `jekyll serve` 
+but with the correct file structure, is:
+
+    _build/build.sh test-both --skip-javadoc --serve
+
+
 Publishing the Website and Guide
 --------------------------------
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d6cfde40/docs/_build/build.sh
----------------------------------------------------------------------
diff --git a/docs/_build/build.sh b/docs/_build/build.sh
index c3f9068..ac10b73 100755
--- a/docs/_build/build.sh
+++ b/docs/_build/build.sh
@@ -22,24 +22,24 @@ function help() {
   echo "* original : to build the files in their original location (website it /website and guide in /guide/, for testing)"
   echo "and supported ARGS are:"
   echo "* --skip-javadoc : to skip javadoc build"
+  echo "* --serve : serve files from _site after building (for testing)"
   echo 'with any remaining ARGS passed to jekyll as `jekyll build --config ... ARGS`.'
 }
 
-function deduce_config() {
-  DIRS_TO_MOVE=( )
+function parse_command() {
   case $1 in
   help)
     help
     exit 0 ;;
   website-root)
-    CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-guide.yml,_build/config-website-root.yml
+    JEKYLL_CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-guide.yml,_build/config-website-root.yml
     DIRS_TO_MOVE[0]=website
     DIRS_TO_MOVE_TARGET[0]=""
     SKIP_JAVADOC=true
     SUMMARY="website files in the root"
     ;;
   guide-latest)
-    CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-all-but-guide.yml,_build/config-guide-latest.yml,_build/config-style-latest.yml
+    JEKYLL_CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-all-but-guide.yml,_build/config-guide-latest.yml,_build/config-style-latest.yml
     DIRS_TO_MOVE[0]=guide
     DIRS_TO_MOVE_TARGET[0]=v/latest
     DIRS_TO_MOVE[1]=style
@@ -48,7 +48,7 @@ function deduce_config() {
     SUMMARY="user guide files in /${DIRS_TO_MOVE_TARGET[0]}"
     ;;
   guide-version)
-    CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-all-but-guide.yml,_build/config-guide-version.yml
+    JEKYLL_CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-all-but-guide.yml,_build/config-guide-version.yml
     # Mac bash defaults to v3 not v4, so can't use assoc arrays :(
     DIRS_TO_MOVE[0]=guide
     # BROOKLYN_VERSION_BELOW
@@ -59,14 +59,14 @@ function deduce_config() {
     SUMMARY="user guide files in /${DIRS_TO_MOVE_TARGET[0]}"
     ;;
   test-guide-root)
-    CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-all-but-guide.yml,_build/config-guide-root.yml
+    JEKYLL_CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-all-but-guide.yml,_build/config-guide-root.yml
     DIRS_TO_MOVE[0]=guide
     DIRS_TO_MOVE_TARGET[0]=""
     JAVADOC_TARGET=_site/use/api/
     SUMMARY="user guide files in the root"
     ;;
   test-both)
-    CONFIG=_config.yml,_build/config-production.yml,_build/config-website-root.yml,_build/config-guide-latest.yml
+    JEKYLL_CONFIG=_config.yml,_build/config-production.yml,_build/config-website-root.yml,_build/config-guide-latest.yml
     DIRS_TO_MOVE[0]=guide
     DIRS_TO_MOVE_TARGET[0]=v/latest
     DIRS_TO_MOVE[1]=website
@@ -75,7 +75,7 @@ function deduce_config() {
     SUMMARY="all files, website in root and guide in /${DIRS_TO_MOVE_TARGET[0]}"
     ;;
   test-both-sub)
-    CONFIG=_config.yml,_build/config-production.yml,_build/config-subpath-brooklyn.yml
+    JEKYLL_CONFIG=_config.yml,_build/config-production.yml,_build/config-subpath-brooklyn.yml
     DIRS_TO_MOVE[0]=guide
     DIRS_TO_MOVE_TARGET[0]=brooklyn/v/latest
     DIRS_TO_MOVE[1]=website
@@ -86,7 +86,7 @@ function deduce_config() {
     SUMMARY="all files in /brooklyn"
     ;;
   original)
-    CONFIG=_config.yml,_build/config-production.yml
+    JEKYLL_CONFIG=_config.yml,_build/config-production.yml
     SUMMARY="all files in their original place"
     ;;
   "")
@@ -98,9 +98,32 @@ function deduce_config() {
   esac
 }
 
+function parse_arguments() {
+  while (( "$#" )); do
+    case $1 in
+    "--serve")
+      SERVE_AFTERWARDS=true
+      shift
+      ;;
+    "--skip-javadoc")
+      SKIP_JAVADOC=true
+      shift
+      ;;
+    "--")
+      shift
+      break
+      ;;
+    *)
+      break
+      ;;
+    esac
+  done
+  JEKYLL_ARGS="$@"
+}
+
 function make_jekyll() {
-  echo JEKYLL running with: jekyll build $CONFIG $@
-  jekyll build --config $CONFIG $@ || return 1
+  echo JEKYLL running with: jekyll build $JEKYLL_CONFIG $JEKYLL_ARGS
+  jekyll build --config $JEKYLL_CONFIG $JEKYLL_ARGS || return 1
   echo JEKYLL completed
   for DI in "${!DIRS_TO_MOVE[@]}"; do
     D=${DIRS_TO_MOVE[$DI]}
@@ -111,22 +134,14 @@ function make_jekyll() {
     cp -r _site/$D/* _site/$DT
     rm -rf _site/$D
   done
+  # normally we exclude things but we can also set TARGET as long_grass and it will get destroyed
   rm -rf _site/long_grass
 }
 
-rm -rf _site
-
-deduce_config $@
-shift
-
-if [ "$1" = "--skip-javadoc" ]; then
-  SKIP_JAVADOC=true
-  shift
-fi
-
-make_jekyll || { echo ERROR: could not build docs in `pwd` ; exit 1 ; }
-
-if [ "$SKIP_JAVADOC" != "true" ]; then
+function make_javadoc() {
+  if [ "$SKIP_JAVADOC" == "true" ]; then
+    return
+  fi
   pushd _build > /dev/null
   rm -rf target/apidocs
   ./make-javadoc.sh || { echo ERROR: failed javadoc build ; exit 1 ; }
@@ -134,8 +149,22 @@ if [ "$SKIP_JAVADOC" != "true" ]; then
   if [ ! -z "$JAVADOC_TARGET" ]; then
     mv _build/target/apidocs/* $JAVADOC_TARGET
   fi
-fi
+}
+
+rm -rf _site
+
+parse_command $@
+shift
+parse_arguments $@
+
+make_jekyll || { echo ERROR: failed jekyll docs build in `pwd` ; exit 1 ; }
+
+make_javadoc || { echo ERROR: failed javadoc build ; exit 1 ; }
 
 # TODO build catalog
 
 echo FINISHED: $SUMMARY of `pwd`/_site 
+
+if [ $SERVE_AFTERWARDS == "true" ]; then
+  _build/serve-site.sh
+fi

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d6cfde40/docs/_build/serve-site.sh
----------------------------------------------------------------------
diff --git a/docs/_build/serve-site.sh b/docs/_build/serve-site.sh
new file mode 100755
index 0000000..69cf70d
--- /dev/null
+++ b/docs/_build/serve-site.sh
@@ -0,0 +1 @@
+ruby -run -e httpd _site/ -p 4000

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d6cfde40/docs/index.md
----------------------------------------------------------------------
diff --git a/docs/index.md b/docs/index.md
index 86a0883..5e9c805 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -11,3 +11,10 @@ Consider looking at:
 * <a href="{{ site.path.guide }}/">the brooklyn user guide (version 0.7.0-SNAPSHOT <!-- BROOKLYN_VERSION --></a>
 
 Also see the file <code>README.md</code> in this directory.
+
+For reference, this build uses the following variables:
+
+* url:  `{{ site.url }}`
+* baseurl: `{{ site.baseurl }}`
+* path map: `{{ site.path }}`
+


[44/50] [abbrv] incubator-brooklyn git commit: add support for previewing the public site

Posted by he...@apache.org.
add support for previewing the public site


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

Branch: refs/heads/master
Commit: a2d916091f2b277f355913c009df2c01b7c50862
Parents: ef59447
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 12:36:45 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 12:36:45 2014 +0000

----------------------------------------------------------------------
 docs/README.md                   | 8 ++++++--
 docs/_build/serve-public-site.sh | 1 +
 2 files changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2d91609/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
index f5a2d73..6293eec 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -60,12 +60,12 @@ Seeing the Website and Docs
 
 To build and see the documentation, run this command in your `docs` folder:
 
-    jekyll serve --watch
+    jekyll serve
     
 This will start up a local web server. The URL is printed by Jekyll when the server starts,
 e.g. http://localhost:4000/ . The server will continue to run until you press Ctrl+C.
 Modified files will be detected and regenerated (but that might take up to 1m).
-Leave off the `--watch` argument to turn off regeneration, or use `jekyll build` instead
+Add `--no-watch` argument to turn off regeneration, or use `jekyll build` instead
 to generate a site in `_site` without a server.
 
 
@@ -201,6 +201,10 @@ copied to `${BROOKLYN_SITE_DIR-../../incubator-brooklyn-site-public}`:
     # versioned guide, relative to /v/<version>/
     _build/build.sh guide-version --install
 
+You can then preview the public site of [localhost:4000](http://localhost:4000) with:
+
+    _build/serve-public-site.sh
+
 Next it is recommended to go to the SVN dir and 
 review the changes using the usual `svn` commands -- `status`, `diff`, `add`, `rm`, etc:
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2d91609/docs/_build/serve-public-site.sh
----------------------------------------------------------------------
diff --git a/docs/_build/serve-public-site.sh b/docs/_build/serve-public-site.sh
new file mode 100755
index 0000000..70c6470
--- /dev/null
+++ b/docs/_build/serve-public-site.sh
@@ -0,0 +1 @@
+ruby -run -e httpd ${BROOKLYN_SITE_DIR-../../incubator-brooklyn-site-public} -p 4000


[05/50] [abbrv] incubator-brooklyn git commit: move version-specific things to "guide"

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/policies-and-catalogs.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/policies-and-catalogs.md b/docs/guide/use/guide/quickstart/policies-and-catalogs.md
new file mode 100644
index 0000000..2df32e4
--- /dev/null
+++ b/docs/guide/use/guide/quickstart/policies-and-catalogs.md
@@ -0,0 +1,66 @@
+---
+title: Getting Started - Policies and Catalogs
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide]
+---
+
+{% include fields.md %}
+
+In the [previous step](index.html) we downloaded Brooklyn and used it to deploy an application to a cloud, but at its heart Brooklyn is a policy driven *management* plane.
+
+Here we will introduce Polices using a simple demo app, which we will load from a Service Catalog.
+
+## Service Catalogs
+
+Download the template [catalog.xml](catalog.xml) to your `~/.brooklyn/` folder, and relaunch Brooklyn.
+
+{% highlight bash %}
+$ cd ~/.brooklyn
+$ wget {{site.url}}/use/guide/quickstart/catalog.xml
+
+$ brooklyn launch
+{% endhighlight %}
+
+Now when we open the web console, two applications are displayed from the catalog.
+
+Select the 'Demo Web Cluster with DB' and click 'Next'.
+
+[![Viewing Catalog entries in Add Application dialog.](images/add-application-catalog-web-cluster-with-db.png)](add-application-catalog-web-cluster-with-db-large.png)
+
+Select the Location that Brooklyn should deploy to, and name your application:
+
+[![Selecting a location and application name.](images/add-application-catalog-web-cluster-with-db-location.png)](images/add-application-catalog-web-cluster-with-db-location-large.png)
+
+Click 'Finish' to launch the application as before.
+
+
+### Exploring and Testing Policies
+
+The Demo Web Cluster with DB application is pre-configured with two polices.
+
+The app server cluster has an `AutoScalerPolicy`, and the loadbalancer has a `targets` policy.
+
+Use the Applications tab in the web console to drill down into the Policies section of the ControlledDynamicWebAppCluster's Cluster of JBoss7Servers.
+
+You will see that the `AutoScalerPolicy` is running.
+
+[![Inspecting the jboss7 cluster policies.](images/jboss7-cluster-policies.png)](images/jboss7-cluster-policies-large.png)
+
+
+This policy automatically scales the cluster up or down to be the right size for the cluster's current load. (One server is the minimum size allowed by the policy.)
+
+The loadbalancer's `targets` policy ensures that the loadbalancer is updated as the cluster size changes.
+
+Sitting idle, this cluster will only contain one server, but you can use a tool like [jmeter](http://jmeter.apache.org/) pointed at the nginx endpoint to create load on the cluster. (Download a [jmeter test plan](https://github.com/brooklyncentral/brooklyn/blob/master/examples/simple-web-cluster/resources/jmeter-test-plan.jmx).)
+
+As load is added, Brooklyn requests a new cloud machine, creates a new app server, and adds it to the cluster. As load is removed, servers are removed from the cluster, and the infrastructure is handed back to the cloud.
+
+### Next
+
+The [Elastic Web Cluster Example]({{site.url}}use/examples/webcluster/index.html) page
+details how to build this demo application from scratch in Java. It shows in more detail how Brooklyn can
+complement your application with policy driven management, and how applications can be
+run from the command line.
+
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/quickstart/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/toc.json b/docs/guide/use/guide/quickstart/toc.json
new file mode 100644
index 0000000..d65eddb
--- /dev/null
+++ b/docs/guide/use/guide/quickstart/toc.json
@@ -0,0 +1,4 @@
+[{ "title": "Download & Deploy",
+  "file":  "{{ site.url }}/use/guide/quickstart/index.html" },
+{ "title": "Policies & Catalogs",
+  "file":  "{{ site.url }}/use/guide/quickstart/policies-and-catalogs.html" }]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/toc.json b/docs/guide/use/guide/toc.json
new file mode 100644
index 0000000..9a59b2a
--- /dev/null
+++ b/docs/guide/use/guide/toc.json
@@ -0,0 +1,25 @@
+[
+{ "title": "Quick Start",
+  "file":  "{{ site.url }}/use/guide/quickstart/index.html",
+   "children": {% readj ./quickstart/toc.json %} },
+{ "title": "Defining Applications",
+  "file":  "{{ site.url }}/use/guide/defining-applications/basic-concepts.html", 
+  "children": {% readj ./defining-applications/toc.json %} },
+{ "title": "Management",
+  "file":  "{{ site.url }}/use/guide/management/index.html" ,
+  "children": {% readj ./management/toc.json %} },
+{ "title": "Persistence",
+  "file":  "{{ site.url }}/use/guide/persistence/index.html" ,
+  "children": {% readj ./persistence/toc.json %} },
+{ "title": "Locations",
+  "file":  "{{ site.url }}/use/guide/locations/index.html" },
+{ "title": "Policies",
+  "file":  "{{ site.url }}/use/guide/policies/index.html",
+  "children": {% readj ./policies/toc.json %} },
+{ "title": "Custom Entities",
+  "file":  "{{ site.url }}/use/guide/entities/index.html",
+  "children": {% readj ./entities/toc.json %} },
+{ "title": "Extras",
+  "file":  "{{ site.url }}/use/guide/extras/index.html",
+  "children": {% readj ./extras/toc.json %}  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/index.md b/docs/guide/use/index.md
new file mode 100644
index 0000000..143ef80
--- /dev/null
+++ b/docs/guide/use/index.md
@@ -0,0 +1,9 @@
+---
+layout: guide-normal
+title: Using Brooklyn
+toc: ../toc.json
+---
+
+{% readj /start/docs-summary.include.md %}
+
+Beyond this, [just come chat to us](contact.html).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/toc.json b/docs/guide/use/toc.json
new file mode 100644
index 0000000..1a5e3c9
--- /dev/null
+++ b/docs/guide/use/toc.json
@@ -0,0 +1,12 @@
+[
+{ "title": "User Guide",
+  "file":  "{{ site.url }}/use/guide/index.html",
+  "children": {% readj ./guide/toc.json %} },
+{ "title": "Examples",
+  "file":  "{{ site.url }}/use/examples/index.html", 
+  "children": {% readj ./examples/toc.json %} },
+{ "title": "API Reference (javadoc)",
+  "file": "{{ site.url }}/use/api/index.html" },
+{ "title": "Discuss",
+  "file": "{{ site.url }}/use/contact.html" }
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/index.md
----------------------------------------------------------------------
diff --git a/docs/index.md b/docs/index.md
deleted file mode 100644
index 8665cdf..0000000
--- a/docs/index.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-layout: guide-normal
-title: Overview
-toc: /toc.json
-categories: [start]
----
-
-{% readj start/index.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/license/index.md
----------------------------------------------------------------------
diff --git a/docs/license/index.md b/docs/license/index.md
deleted file mode 100644
index aed028d..0000000
--- a/docs/license/index.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: guide-normal
-title: Brooklyn Licenses
-toc: /toc.json
----
-
-## License
-
-Apache Brooklyn is released to the public as open source under the 
-terms of the [Apache License, v2.0](license.html).
-
-Apache Brooklyn is currently undergoing Incubation at the Apache Software Foundation.
-
-
-## Trademark
-
-The Brooklyn name and logo are trademarks owned by the Apache Software Foundation.
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/license/license.md
----------------------------------------------------------------------
diff --git a/docs/license/license.md b/docs/license/license.md
deleted file mode 100644
index 75cceac..0000000
--- a/docs/license/license.md
+++ /dev/null
@@ -1,194 +0,0 @@
----
-layout: guide-normal
-title: License
-toc: /toc.json
----
-
-Brooklyn is licensed to the public as open source under the 
-terms of the [Apache License, v2.0](http://www.apache.org/licenses/LICENSE-2.0).
-You may not use this content except in compliance with the License.
-
-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.
-
-
-{% highlight text %}
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-{% endhighlight %} 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/license/toc.json
----------------------------------------------------------------------
diff --git a/docs/license/toc.json b/docs/license/toc.json
deleted file mode 100644
index 8194f80..0000000
--- a/docs/license/toc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-[
-{ "title": "Apache License v2.0",
-  "file":  "{{ site.url }}/license/license.html" }
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/meta/brooklyn-gpg-public-key.asc
----------------------------------------------------------------------
diff --git a/docs/meta/brooklyn-gpg-public-key.asc b/docs/meta/brooklyn-gpg-public-key.asc
deleted file mode 100644
index 3b515a4..0000000
--- a/docs/meta/brooklyn-gpg-public-key.asc
+++ /dev/null
@@ -1,21 +0,0 @@
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
-Comment: GPGTools - http://gpgtools.org
-
-mQENBFDsSLEBCAC2JxQHeXpL3oGN2IickcG9C49gkxIsws4hpasQModVipezrQi0
-9pLq4lkB01GgC2sfPH+XXE8rCpA9EL0e4wVA7JICz5AsLZAAJH91tKksL20tLMeU
-Yrbufaq1ga7ifk3JWhF4iwvkDMBKyCjrF173nI+2TwX2XfNTQpzoQGOL1bNvS4NZ
-AD9JeXGW2D996zHdSK+x3wVdY3cDECvVMuw61+5ytZrGNnyvaaWTl3lJUyydPXHQ
-5TXVtbQH5WgYCLPr4E95axJ0BoY8H+fEaG1Uax1a+xLumVWhiWNp7rMvmgcZXuJO
-fx+wXAIbRNlAHoJcdZ4NCReRxDIBQ+2HsU1zABEBAAG0bUJyb29rbHluIFByb2pl
-Y3QgKGJyb29rbHluLmlvKSAoS2V5IHVzZWQgdG8gYXV0aGVudGljYXRlIEJyb29r
-bHluIGFydGlmYWN0cykgPGJyb29rbHluLWRldkBncm91cHMuZ29vZ2xlLmNvbT6J
-AT8EEwECACkFAlDsSLECGy8FCQeGH4AHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIX
-gAAKCRANhinnSRLCsOdIB/4tUVShup2NHXJ9acCah8TuEN4GmN9dBiD9YsGW66SR
-/ptY0Gn9XExl2wbmQW+7TQg3QUGv8uffwYLtnMwnmCp/WwgE+uSnRmcENxa9GuTu
-PLlURKKGK0C9ljTAHwXtPcIYxPNN3BT4VB56ME1DTBRCgEvudaNSANs8/kT88kE2
-eMC7x0Uo3/P38Ob8XSOfR8c6G6nSz6jILcRBXZTPNNK4svyqF5XHIru65d3/0+mr
-bpfcDLcUQYms0MpPmO1RCHLZWwJLsPUIxNwGGnKJc8/RNEvQinK+Ap0cf+PGUQSX
-PhB6Z81ROFIVToEVZslgSiL+u4Tc7zXDfDQDY4HeLY2t
-=w/CG
------END PGP PUBLIC KEY BLOCK-----

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/meta/contact.include.md
----------------------------------------------------------------------
diff --git a/docs/meta/contact.include.md b/docs/meta/contact.include.md
deleted file mode 100644
index e0d1e4b..0000000
--- a/docs/meta/contact.include.md
+++ /dev/null
@@ -1,9 +0,0 @@
-
-Contact us on the [brooklyn mailing list](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/).
-
-Additionally look for us on:
-
-* **IRC**: #brooklyncentral ([IRC??](/meta/irc.html))
-* **Twitter**: @brooklyncentral #brooklyncentral
-
-We'd love to hear from you!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/meta/contact.md
----------------------------------------------------------------------
diff --git a/docs/meta/contact.md b/docs/meta/contact.md
deleted file mode 100644
index 937e763..0000000
--- a/docs/meta/contact.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-layout: guide-normal
-title: Contact
-toc: /toc.json
----
-
-{% readj contact.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/meta/irc.md
----------------------------------------------------------------------
diff --git a/docs/meta/irc.md b/docs/meta/irc.md
deleted file mode 100644
index 5827818..0000000
--- a/docs/meta/irc.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-layout: guide-normal
-title: IRC
-toc: /toc.json
----
-
-IRC is a basic group chat system used by many open source projects to enable developers to 
-collaborate and to help users communicate and support each other. Brooklyn has an IRC 
-channel where users and developers hang out.
-
-## Getting Help On IRC
-
-When you connect to the Brooklyn IRC channel, say Hi and then ask your question. It may 
-take a little while for someone to see and respond to your question. (Be 
-patient if you don't get an instant answer - unless there's already a conversation 
-happening folk will probably not have their eyes on the channel.) 
-
-You may want to do other things while you wait, like reviewing the [brooklyn mailing list](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/)
-lists to see if anyone has had the same issue before.
-
-## Brooklyn IRC Channel
-
-* **IRC Server:** irc.freenode.net 
-* **Channel/Room:** #brooklyncentral
-* **Port:** 6667 (Default)
-
-If you are new to IRC, there is a web interface at [webchat.freenode.net](http://webchat.freenode.net/?channels=brooklyncentral) 
-but you may prefer to checkout the [Wikipedia IRC article](http://en.wikipedia.org/wiki/IRC#Client_software) 
-for an IRC application.
-
-You can find more information about using IRC at [irchelp.org](http://www.irchelp.org/).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/meta/toc.json
----------------------------------------------------------------------
diff --git a/docs/meta/toc.json b/docs/meta/toc.json
deleted file mode 100644
index 694eaea..0000000
--- a/docs/meta/toc.json
+++ /dev/null
@@ -1,8 +0,0 @@
-[
-{ "title": "Versions",
-  "file":  "{{ site.url }}/meta/versions.html" },
-{ "title": "Verify",
-  "file":  "{{ site.url }}/meta/verify.html" },
-{ "title": "Contact",
-  "file":  "{{ site.url }}/meta/contact.html" }
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/meta/verify.md
----------------------------------------------------------------------
diff --git a/docs/meta/verify.md b/docs/meta/verify.md
deleted file mode 100644
index 889e5bd..0000000
--- a/docs/meta/verify.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-layout: guide-normal
-title: Verify the Integrity of Downloads
-toc: /toc.json
----
-{% include fields.md %}
-
-It is essential for security that you verify the integrity of the downloaded files using their PGP signatures or SHA-1 checksums.
-
-### Verifying PGP signatures using PGP or GPG
-
-Download the [brooklyn-gpg-public-key.asc](brooklyn-gpg-public-key.asc)
-file and the `.asc` PGP signature file for the relevant artefact.
-
-(Make sure you get these files from the main {% if SNAPSHOT %}[Maven Central]({{ mavencentral_repo_groupid_url }}){% else %}[Sonatype]({{ sonatype_repo_groupid_url }}){% endif %} repository rather than from a mirror.)
-
-Verify the signatures using one of the following commands:
-
-	pgpk -a brooklyn-gpg-public-key.asc
-	pgpv brooklyn-{{ site.brooklyn-version }}-dist.tar.gz.asc
-
-or
-
-	pgp -ka brooklyn-gpg-public-key.asc
-	pgp brooklyn-{{ site.brooklyn-version }}-dist.zip.asc
-
-or
-
-	gpg --import brooklyn-gpg-public-key.asc	
-	gpg --verify brooklyn-{{ site.brooklyn-version }}-dist.tar.gz.asc
-
-You can also verify the SHA-1 checksum of the files.
-
-A program called `sha1` or `sha1sum` is included in most Linux distributions and OSx. For Windows users, `fsum` supports SHA-1. 
-
-Ensure the generated checksum string matches the contents of the `.sha1` file for the relevant artefact (and again download from {% if SNAPSHOT %}[Maven Central]({{ mavencentral_repo_groupid_url }}){% else %}[Sonatype]({{ sonatype_repo_groupid_url }}){% endif %} repository, rather than from a mirror).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/meta/versions.md
----------------------------------------------------------------------
diff --git a/docs/meta/versions.md b/docs/meta/versions.md
deleted file mode 100644
index 53a6a0d..0000000
--- a/docs/meta/versions.md
+++ /dev/null
@@ -1,110 +0,0 @@
----
-layout: guide-normal
-title: Versions
-toc: /toc.json
----
-
-<!--- display which version we are using, based on where it is written -->
-
-### Brooklyn v{{ site.brooklyn-version }}
-
-
-{% if site.server %} 
-> **Server (debug) mode detected.**
-
-> *Links to other versions on this page and others will likely not work when running in server/debug mode.
-Files must be copied to the brooklyncentral.github.com repo for these links to resolve correctly.*
-
-> *Debug page generated {{ site.time }}*
-{% endif %}
-
-
-{% if site.brooklyn-version contains 'SNAPSHOT' %}
-<!--- snapshot version -->
-
-  {% if site.url == '' %}
-
-<!--- current version (served off root of site) is snapshot (unusual) -->
-
-This is the documentation for the current snapshot version of Brooklyn,
-generated {{ site.time | date_to_string }}.
-
-  {% else %}
-
-<!--- archive docs -->
-
-This is the documentation for a snapshot version of Brooklyn,
-generated {{ site.time | date_to_string }}.
-
-[View current documentation here.](/meta/versions.html)
-
-
-  {% endif %}
-
-NB: "Snapshot" means it is the code at a point in time,
-and that a reference to this version {{ site.brooklyn-version }}
-may resolve to different code at a different point in time.
-Where possible it is preferable to develop against a GA version
-rather than a shapshot.  
-
-{% else %}
-<!--- not snapshot -->
-
-  {% if site.url == '' %}
-   
-<!--- current version (served off root of site) -->
-
-This is the documentation for the latest stable version of Brooklyn,
-generated {{ site.time | date_to_string }}.
-Other versions with documentation available are listed below.
-
-  {% else %}
-
-<!--- archive version -->
-
-This is the archived documentation for Brooklyn {{ site.brooklyn-version }}
-(generated {{ site.time }}, archived under {{ site.url }}).
-
-[View current documentation here.](/meta/versions.html)
-
-  {% endif %}  
-{% endif %}
-
-
-### Version History
-
-* **[0.7.0-SNAPSHOT (master)](/v/0.7.0-SNAPSHOT)**: since 0.6.0, lots of work on yaml, persistence, policies, and more supported systems
-
-* **[0.7.0](/v/0.7.0-M1/)**: most recent milestone release
-
-* **[0.6.0](/v/0.6.0/)**: use of spec objects, chef and windows support, more clouds (Nov 2013)
-
-* **[0.5.0](/v/0.5.0/)**: includes new JS GUI and REST API, rebind/persistence support, cleaner model and naming conventions, more entities (May 2013)
-
-* **[0.4.0](/v/0.4.0/)**: initial public GA release of Brooklyn to Maven Central, supporting wide range of entities and examples (Jan 2013)
-
-Note: To prevent accidentally referring to out-of-date information,
-a banner is displayed when accessing specific versions from the archive.
-You may 
-<a href="#" onclick="set_user_versions_all();">disable all warnings</a> or
-<a href="#" onclick="clear_user_versions();">re-enable all warnings</a>.
-
-
-### Versioning
-
-Brooklyn uses the [semantic versioning](http://semver.org/) guidelines. Releases will be numbered with the following format:
-
-`Brooklyn <major>.<minor>.<patch>`
-
-Breaking backward compatibility increments the `<major>` version.
-New additions without breaking backward compatibility ups the `<minor>` version.
-Bug fixes and misc changes bumps the `<patch>` version.
-New major and minor releases zero the less significant counters.
-
-Additionally, Brooklyn's release process include Snapshots, Milestones and Release Candidates.
-
-A Snapshot (`-SNAPSHOT`) is the bleeding edge. This will not be stable.
-
-Milestone versions (`-Mn`) are frozen snapshots. Some code features may be stable, but the documentation and examples may not be complete.
-
-A Release Candidate (`-rc.n`) is a just-about-ready version. Release candidates are tested against our acceptance criteria, and qualifying builds are promoted as final.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/docs-summary.include.md
----------------------------------------------------------------------
diff --git a/docs/start/docs-summary.include.md b/docs/start/docs-summary.include.md
deleted file mode 100644
index c08c06f..0000000
--- a/docs/start/docs-summary.include.md
+++ /dev/null
@@ -1,7 +0,0 @@
-To learn about Brooklyn, here are some recommended starting points:
-
-* [Developer's Walkthrough]({{site.url}}/start/walkthrough/index.html) 
-* [Examples]({{site.url}}/use/examples/)
-* [User Guide]({{site.url}}/use/guide/) 
-* [Code Overview]({{site.url}}/dev/code/)
-* [Code on Github](http://github.com/brooklyncentral/brooklyn/)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/docs-summary.md
----------------------------------------------------------------------
diff --git a/docs/start/docs-summary.md b/docs/start/docs-summary.md
deleted file mode 100644
index 4e993fa..0000000
--- a/docs/start/docs-summary.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: guide-normal
-title: Documentation
-toc: ../toc.json
----
-
-{% readj docs-summary.include.md %}
-
-Beyond this, [just come chat to us]({{site.url}}/meta/contact.html).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/download.md
----------------------------------------------------------------------
diff --git a/docs/start/download.md b/docs/start/download.md
deleted file mode 100644
index 0e82a84..0000000
--- a/docs/start/download.md
+++ /dev/null
@@ -1,185 +0,0 @@
----
-layout: guide-normal
-title: Downloads
-toc: ../toc.json
----
-{% include fields.md %}
-
-First time user? The [getting started]({{ site.url }}/use/guide/quickstart/index.html) guide will walk you through downloading Brooklyn, setup of your `brooklyn.properties` and `catalog.xml` files, and then trying the [examples](#examples). 
-
-## Download Version {{ site.brooklyn-version }}
-
-<table>
-<tr>
-	<th style='text-align:left'>Download</th>
-	<th style='text-align:left'>File/Format</th>
-	<th>checksums <small><a href="/meta/verify.html" title='Instructions on verifying the integrity of your downloads.'>(?)</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>
-</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>
-</tr>
-<tr>
-	<td style='text-align:left'>Release notes</td>
-	<td style='text-align:left'><a href='{{ site.url }}/start/release-notes.html'>{{ site.brooklyn-version }}</a></td>
-	<td> - </td>
-</tr>
-</table>
-{% if SNAPSHOT %}
-<span style='float:right'><small>Source: <a href='{{ this_anything_url_search }}'>Sonatype</a></small></span>
-{% else %}
-<span style='float:right'><small>Source: <a href='{{ this_anything_url_search }}'>Maven Central</a></small></span>
-{% endif %}
-
-<a name="distro"></a>
-## The Distro
-
-The distribution archive contains Brooklyn as a standalone executable package.
-
-* previous stable versions: [Maven Central]({{ mavencentral_repo_groupid_url }}brooklyn-dist/)
-* previous snapshot versions: [Sonatype]({{ sonatype_repo_groupid_url }}brooklyn-dist/)
-
-{% 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.
-{% 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. Just download your preferred flavour and add it to your classpath.
-
-{% if SNAPSHOT %}{% else %}
-* [Version {{ site.brooklyn-version }}](http://search.maven.org/#artifactdetails|io.brooklyn|brooklyn-all|{{ site.brooklyn-version }}|jar) 
-{% endif %}
-* previous stable versions: [Maven Central]({{ mavencentral_repo_groupid_url }}brooklyn-all/)
-* previous snapshot versions: [Sonatype]({{ sonatype_repo_groupid_url }}brooklyn-all/)
-
-{% 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.url }}/start/release-notes.html).
-
-<a name="examples"></a>
-## Examples
-
-{% if SNAPSHOT %}
-As this is a snapshot version of Brooklyn, please find the examples in the main Brooklyn codebase (in the `/examples` directory).
-
-When this version is released, the [brooklyn-examples git repository](http://github.com/brooklyncentral/brooklyn-examples) will be updated and instructions for use will be included here. 
-
-{% else %}
-
-You can checkout the examples from the [brooklyn-examples git repository](http://github.com/brooklyncentral/brooklyn-examples).
-
-Maven (v3) is required to build them, as described [here]({{ site.url }}/dev/build/).
-The examples for this version ({{ site.brooklyn-version }}) are in the branch 
-`{% if SNAPSHOT %}{{ site.brooklyn-snapshot-git-branch }}{% else %}{{ site.brooklyn-version }}{% endif %}`, so if you have `git` and `mvn` already, you can simply:
-
-{% highlight bash %}
-% git clone https://github.com/brooklyncentral/brooklyn-examples.git
-% cd brooklyn-examples
-{% if brooklyn_examples_branch == 'master' %}{% else %}% git checkout {{ brooklyn_examples_branch }}
-{% endif %}% mvn clean install
-{% endhighlight %}
- 
-
-If you don't use `git`, you can download the projects as a tarball instead
-from [this link](https://github.com/brooklyncentral/brooklyn-examples/tarball/{{ brooklyn_examples_branch }}). 
-These commands should do the trick:
-
-{% highlight bash %}
-% curl -L -o brooklyn-examples-{{ brooklyn_examples_branch }}.tgz \
-     https://github.com/brooklyncentral/brooklyn-examples/tarball/{{ brooklyn_examples_branch }}
-% tar xvfz brooklyn-examples-{{ brooklyn_examples_branch }}.tgz
-% mv brooklyncentral-brooklyn-examples-* brooklyn-examples-{{ brooklyn_examples_branch }} \
-     # change the strange name which github assigns in the tarball
-% mvn clean install
-{% endhighlight %}
-
-
-A good example to start with is the [Elastic Web Cluster]({{site.url}}/use/examples/webcluster.html).
-
-{% endif %} 
-
-
-<a name="maven"></a>
-## Maven
-
-If you use Maven, you can add Brooklyn with the following in your pom:
-
-{% highlight xml %}
-    <dependencies>
-        <dependency>
-            <groupId>io.brooklyn</groupId>
-            <artifactId>brooklyn-all</artifactId>
-            <version>{{ site.brooklyn-version }}</version>
-        </dependency>
-    </dependencies>
-{% endhighlight %}
-
-`brooklyn-all` (used above) 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 }})).
-
-If you wish to use the Apache and/or Cloudsoft repositories (particularly for snapshots),
-you can add some of the following sections:
-
-{% highlight xml %}
-    <repositories>
-        <repository>
-            <id>cloudsoft-cloudfront-releases-repo</id>
-            <url>http://developers.cloudsoftcorp.com/maven/releases/</url>
-        </repository>
-        <!-- optional for snapshot versions -->
-        <repository>
-            <id>apache-nexus-snapshots</id>
-            <name>Apache Nexus Snapshots</name>
-            <url>https://repository.apache.org/content/repositories/snapshots</url>
-            <releases> <enabled>false</enabled> </releases>
-            <snapshots> <enabled>true</enabled> </snapshots>
-        </repository>
-        <repository>
-            <id>cloudsoft-cloudfront-snapshots-repo</id>
-            <url>http://developers.cloudsoftcorp.com/maven/snapshots/</url>
-            <snapshots>
-                <enabled>true</enabled>
-                <updatePolicy>never</updatePolicy>
-                <checksumPolicy>fail</checksumPolicy>
-           </snapshots>
-         </repository>
-    </repositories>
-{% 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.
-{% endif %}
-
-
-<a name="source"></a>
-## Source Code
-
-Full source is at [github.com/brooklyncentral/brooklyn](http://github.com/brooklyncentral/brooklyn).
-Information on working with the source is [here]({{ site.url }}/dev/code).
-
-Alternatively you can download archives of the source directly:
-
-<a href="https://github.com/brooklyncentral/brooklyn/tarball/master"><img border="0" width="90" src="https://github.com/images/modules/download/tar.png"></a>
-<a href="https://github.com/brooklyncentral/brooklyn/zipball/master"><img border="0" width="90" src="https://github.com/images/modules/download/zip.png"></a>
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/index.include.md
----------------------------------------------------------------------
diff --git a/docs/start/index.include.md b/docs/start/index.include.md
deleted file mode 100644
index 1406337..0000000
--- a/docs/start/index.include.md
+++ /dev/null
@@ -1,50 +0,0 @@
-## What is Brooklyn?
-
-**brooklyn** is a library that simplifies application deployment and management.
-
-For **deployment**, it is designed to tie in with other tools, 
-giving single-click deploy and adding the concepts of 
-manageable clusters and fabrics:
-
-* many common software entities available out-of-the-box
-* integrates with [Apache Whirr](http://whirr.apache.org) 
-  to deploy well-known services such as Hadoop and elasticsearch
-  (or use POBS, plain-old-bash-scripts)
-* use PaaS's such as OpenShift, alongside self-built clusters, for maximum flexibility
-
-Brooklyn makes roll-out an integral part of the DevOps chain,
-as code which can be version-controlled and programmatically tested,
-and portable across many clouds or fixed IP machines,
-using [jclouds](http://jclouds.org) -- 
-or just hitting ``localhost`` for quick dev/test.
-
-Brooklyn's main emphasis is post-deployment, **managing** an application once it is live:
-management policies are an integral part of the deployment descriptor,
-and at runtime policies have access to all aspects of the deployment.
-They are aware of the deployment topology (hierarchical) and
-locations (machines, PaaSes, and jurisdictions), 
-as well as scripts, instrumentation, and operational goals and constraints.
-This means they're all set, once the application is launched, 
-to keep the application running optimally,
-based on whatever *optimally* means in that context.
-
-These deployment patterns and management policies are expressed as Java (and Groovy) classes,
-open-sourced here and giving you full control over what you want to happen.
-More importantly, however, this code can be shared, improved, and extended.
-
-We're still near the beginning of figuring this out: 
-[join us to make it better]({{site.url}}/meta/contact.html).
-
-
-## To Get Started
-
-* See the [developer's walkthrough]({{site.url}}/start/walkthrough/index.html) for a quick tour
-* Check out the [examples]({{site.url}}/use/examples/), from a global web fabric with geo-DNS to a movable PaaS target
-* Jump in to the [user guide]({{site.url}}/use/guide/) describing the 
-  [concepts]({{site.url}}/use/guide/defining-applications/basic-concepts.html)
-  and including a [tutorial]({{site.url}}/use/guide/quickstart/)
-* Or dive straight in to the code, either [reading]({{site.url}}/dev/code/) about it
-  or [gitting](http://github.com/brooklyncentral/brooklyn/) it
-
-If you like it, or if you have ideas how it could be better,
-[join the discussion]({{site.url}}/meta/contact.html).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/index.md
----------------------------------------------------------------------
diff --git a/docs/start/index.md b/docs/start/index.md
deleted file mode 100644
index b3e9983..0000000
--- a/docs/start/index.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-layout: guide-normal
-title: Overview
-toc: /toc.json
-categories: [start]
----
-
-{% readj index.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/known-issues.md
----------------------------------------------------------------------
diff --git a/docs/start/known-issues.md b/docs/start/known-issues.md
deleted file mode 100644
index 65c4986..0000000
--- a/docs/start/known-issues.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-layout: guide-normal
-title: Known Issues
-toc: ../toc.json
----
-
-## Unable to Provision certain types of Debian VMs
-
-*Symptom*: Brooklyn fails to provision Debian VMs (e.g. in aws-ec2).
-
-*Cause*: `sudo` is not available on path, causing Brooklyn to fail to confirm that the VM is ssh'able.
-
-*Workaround*: Choose an image that does have sudo (see [wiki.debian.org/Cloud/AmazonEC2Image](http://wiki.debian.org/Cloud/AmazonEC2Image)).
-
-*Fix*: is [Pull #600](https://github.com/brooklyncentral/brooklyn/pull/600); you may also want to run with `brooklyn.location.jclouds.aws-ec2.user=root` if subsequent commands give permission errors.
-
-*Versions Affected*: 0.5.0-M2
-
-
-### Unable to Provision Ubuntu 8 VMs
-
-*Symptom: Brooklyn fails to provision Ubuntu 8 VMs (e.g. in aws-ec2) with the following error 'Cannot insert the iptables rule for port 22. Error: sudo: illegal option `-n''.
-
-*Cause: Ubuntu 8 is too old; the sudo command doesn't support the -n setting.
-
-*Workaround: Choose Ubuntu 10 or higher.
-
-*Versions Affected*: 0.5.0-M2

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/release-notes.md
----------------------------------------------------------------------
diff --git a/docs/start/release-notes.md b/docs/start/release-notes.md
deleted file mode 100644
index 1f2fa4e..0000000
--- a/docs/start/release-notes.md
+++ /dev/null
@@ -1,56 +0,0 @@
----
-layout: guide-normal
-title: Release Notes
-toc: ../toc.json
----
-
-## Brooklyn Version (Version)
-
-You are viewing a SNAPSHOT release (master branch), so this is a template for the release notes.
-
-* Introduction
-* New Features
-* Backwards Compatibility
-* Community Activity
-
-### Introduction
-
-This milestone release includes many big features, and brings us much closer to NEXT VERSION.
-
-It incorporates a lot of improvements and feedback from our community. Thank you!
-
-Thanks also go to Brooklyn's commercial users. Already Brooklyn has been adopted into some very exciting projects including 
-
-For more information, please checkout [brooklyncentral.github.io](http://brooklyncentral.github.io), and our
-[mailing list at Apache](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/).
-
-### New Features
-
-The major changes between M1 and M2 are:
-
-1. Entry
-
-2. Entry
-	* With sublist
-	* list item
-	* list item
-3. [Links](#) formatting. (Example.)
-
-4. List of new providers
-
-5. List of new entities
-
-
-### Backwards Compatibility
-
-For upgrading from OLD to NEW version.
-
-1. Entry
-
-1. Lists can use 1. 1. 1. 1. 
-
-1. (Jekyll counts for you.)
-
-### Community Activity
-
-Any activity related to Brooklyn, but not part of Brooklyn itself.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/toc.json
----------------------------------------------------------------------
diff --git a/docs/start/toc.json b/docs/start/toc.json
deleted file mode 100644
index 43d79d7..0000000
--- a/docs/start/toc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-[
-{ "title": "Overview",
-  "file":  "{{ site.url }}/index.html" },
-{ "title": "Walkthrough",
-  "file": "{{ site.url }}/start/walkthrough/index.html" },
-{ "title": "Download",
-  "file": "{{ site.url }}/start/download.html" },
-{ "title": "Documentation",
-  "file": "{{ site.url }}/start/docs-summary.html" }
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/video.md
----------------------------------------------------------------------
diff --git a/docs/start/video.md b/docs/start/video.md
deleted file mode 100644
index c45dd4c..0000000
--- a/docs/start/video.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-layout: guide-normal
-title: Video
-toc: ../toc.json
----
-
-TODO

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/walkthrough/index.md
----------------------------------------------------------------------
diff --git a/docs/start/walkthrough/index.md b/docs/start/walkthrough/index.md
deleted file mode 100644
index de29f5c..0000000
--- a/docs/start/walkthrough/index.md
+++ /dev/null
@@ -1,240 +0,0 @@
----
-layout: guide-normal
-title: Walkthrough
-toc: /toc.json
----
-{% include fields.md %}
-
-## Intro
-
-Brooklyn makes it easy to describe the structure and management of sophisticated distributed applications, 
-and then it makes it easy to launch them in a cloud, with on-going automated management.
-
-This walkthrough will set up a sample application which you can use as foundation for creating your own applications.
-
-The sample application is a three tier web service, composed of:
-
-* an Nginx load-balancer
-* a cluster of JBoss appservers
-* a MySQL database
-
-
-## Download the Sample Project
-
-If you'd like to follow these steps on your machine, you can use Maven to 
-download the Brooklyn quickstart archetype and setup a `brooklyn-sample` directory and project. 
-Maven will automatically download Brooklyn and all dependencies.
-You can of course follow this walkthrough without installing it on your machine ... yet!
-
-{% if SNAPSHOT %}
-
-{% highlight bash %}
-$ export BROOKLYN_VERSION=0.7.0-SNAPSHOT
-$ mvn archetype:generate \
-    -DarchetypeGroupId=io.brooklyn \
-    -DarchetypeArtifactId=brooklyn-archetype-quickstart \
-    -DarchetypeVersion=${BROOKLYN_VERSION} \
-    -DarchetypeCatalog=https://oss.sonatype.org/content/repositories/snapshots/archetype-catalog.xml \
-    -DgroupId=com.acme.sample \
-    -DartifactId=brooklyn-sample \
-    -Dversion=0.1.0-SNAPSHOT \
-    -Dpackage=com.acme.sample.brooklyn \
-    --batch-mode
-$ cd brooklyn-sample
-{% endhighlight %}
-
-*Note*: As this is a snapshot version of Brooklyn, the code above includes a `-DarchetypeCatalog` specification.
-This can be omitted for release versions, or if you already have a local `mvn install` of Brooklyn installed as described [here]({{site.url}}/dev/code/index.html).
-
-{% else %}
-
-{% highlight bash %}
-$ export BROOKLYN_VERSION=0.7.0-SNAPSHOT
-$ mvn archetype:generate \
-    -DarchetypeGroupId=io.brooklyn \
-    -DarchetypeArtifactId=brooklyn-archetype-quickstart \
-    -DarchetypeVersion=${BROOKLYN_VERSION} \
-    -DgroupId=com.acme.sample \
-    -DartifactId=brooklyn-sample \
-    -Dversion=0.1.0-SNAPSHOT \
-    -Dpackage=com.acme.sample.brooklyn
-$ cd brooklyn-sample
-{% endhighlight %}
-
-{% endif %}
-
-## Define your Application Blueprint
-
-An application blueprint is defined as a Java class, as follows:
-
-{% highlight java %}
-public class ClusterWebServerDatabaseSample extends AbstractApplication {
-    @Override
-    public void init() {
-        MySqlNode mysql = addChild(EntitySpec.create(MySqlNode.class));
-        ControlledDynamicWebAppCluster web = addChild(EntitySpec.create(ControlledDynamicWebAppCluster.class));
-    }
-}
-{% endhighlight %}
-
-The file `ClusterWebServerDatabaseSample.java` in `src/main/java/com/acme/sample/brooklyn/sample/app/` 
-provides a template to follow.
-
-
-## Deploying the Application
-
-If you have not already done so, follow the section in the 
-[Getting Started Guide]({{site.url}}/use/guide/quickstart/index.html) to create a `brooklyn.properties` 
-file containing credentials for your preferred cloud provider. 
-
-To launch this application, build the project and run the `start.sh` script in the resulting assembly:
-
-{% highlight bash %}
-$ mvn clean assembly:assembly
-
-$ cd target/brooklyn-sample-0.1.0-SNAPSHOT-dist/brooklyn-sample-0.1.0-SNAPSHOT/
-
-$ ./start.sh launch \
-    --app com.acme.sample.brooklyn.sample.app.ClusterWebServerDatabaseSample \
-    --location jclouds:aws-ec2:eu-west-1
-{% endhighlight %}
-
-(Amazon is used in this walkthrough, but lots of targets are supported,
-including `--location localhost`, fixed IP addresses, and 
-everything supported by [jclouds](http://jclouds.org), from OpenStack to Google Compute.)
-
-Your console will inform you that it has started a Brooklyn console at [http://localhost:8081](http://localhost:8081)
-
-[![Web Console](wt-starting-700.png "Web Console")](wt-starting.png) 
-
-The management console provides a view on to the entities that launched,
-including the hierarchy (appservers grouped into a cluster) and their locations. 
-
-Brooklyn collects information from these entities ("sensors"), 
-aggregates these for clusters and other groups (using "enrichers"),
-and exposes operations ("effectors") that can be performed on entities.
-
-[![Web Console Details](wt-tree-jboss-sensors-700.png "Web Console Details")](wt-tree-jboss-sensors.png) 
-
-
-## Topology, Dependencies, and Management Policies
-
-Of course in the real world, application deployments are more interesting;
-they do things and need configuration.  For instance you might need to:
-
-* specify a WAR file
-* initialize the database
-* tell the webapp servers where to find the database
-
-Let's show how these are done using Brooklyn.
-We assume the WAR file and the database init script are accessible
-on the classpath, but a range of URL formats is supported.
-The "dependent inter-process configuration" -- giving the database's URL
-to the webapps -- we'll do here with a JVM system property,
-but you're free to use any mechanism you wish.
-
-Under the covers, ``attributeWhenReady`` is monitoring a sensor from MySQL
-and generating a string to pass to the webapp software processes; ``formatString``
-is a similar utility that returns a string once all of its parts have been resolved.
-Due to the use of futures, the Brooklyn webapp entities will automatically
-block "at the last moment" when the value is needed
-(but after e.g. the VMs have been provisioned, to speed things up).
-
-{% highlight java %}
-public class ClusterWebServerDatabaseSample extends AbstractApplication {
-    @Override
-    public void init() {
-        MySqlNode mysql = addChild(EntitySpec.create(MySqlNode.class)
-                .configure(MySqlNode.CREATION_SCRIPT_URL, "classpath://visitors-database-setup.sql"));
-        
-        ControlledDynamicWebAppCluster web = addChild(EntitySpec.create(ControlledDynamicWebAppCluster.class)
-                .configure("memberSpec", EntitySpec.create(JBoss7Server.class)
-                        .configure("httpPort", "8080+")
-                        .configure("war", WAR_PATH)
-                        .configure(JavaEntityMethods.javaSysProp("brooklyn.example.db.url"), 
-                                formatString("jdbc:%s%s?user=%s\\&password=%s", 
-                                        attributeWhenReady(mysql, MySqlNode.MYSQL_URL), DB_TABLE, DB_USERNAME, DB_PASSWORD))));
-    }
-}
-{% endhighlight %}
-
-We now see our app at the Nginx URL:
-
-[![Our Web App](wt-deployed-application-700.png "Screenshot of our Web App")](wt-deployed-application.png) 
-
-Finally, we'll bring in some active management: we're going to monitor requests per second,
-and scale out if this exceeds 100 up to a maximum of 5 servers.
-This is a naively simple policy, but it shows Brooklyn's real metier,
-running management policies for applications whose topology it knows. 
-
-{% highlight java %}
-        web.getCluster().addPolicy(AutoScalerPolicy.builder().
-                        metric(DynamicWebAppCluster.AVERAGE_REQUESTS_PER_SECOND).
-                        sizeRange(1, 5).
-                        metricRange(10, 100).
-                        build());
-{% endhighlight %}
-        
-*Policies* in Brooklyn typically subscribe to sensors,  perform some computation, and if necessary invoke effectors on entities.  This is where the ability to group entities
-becomes very useful -- policies can be attached to group entities, and groups themselves can be hierarchical. It's also handy that often Brooklyn creates the entities,
-so it knows what the hierarchy is.
-
-Under the covers, this ``AutoScalerPolicy`` attaches to any ``Resizable`` entity (exposing a ``resize`` effector), and monitors a specified sensor (or function) attempting to keep it within healthy limits. A separate policy operates at the ``Controlled`` cluster to ensure the load-balancer is updated as the pool of web servers expands and contracts.
-
-Fire up a JMeter session (or other load testing tool) and blast the Nginx address. The auto-scaler policy will scale up the cluster.
-
-## What Next?
- 
-In addition to the sample project created by the archetype, with its README and
-`assembly` build, you can find additional code related to this example included with Brooklyn as the ``simple-web-cluster`` example,
-described [in detail here]({{site.url}}/use/examples/webcluster).
-
-For your applications, you might want to mix in other data stores, messaging systems, or on-line services including PaaS.
-Brooklyn supports some of these out-of-the-box, including a wide-range of tools which it can use Whirr to provision, such as Hadoop.
-But if you have something you don't see, 
-[let us know]({{site.url}}/meta/contact.html) -- 
-we want to work with you to 
-[write a new entity]({{site.url}}/dev/code/entity.html) or
-[policy]({{site.url}}/dev/code/policy.html) 
-and [contribute it]({{site.url}}/dev/how-to-contrib.html).
-
-
-<!--
-
-Alternatively you can just add a ``main`` method to the application class as follows:
-
-{% highlight java %}
-    public static void main(String[] argv) {
-        List<String> args = Lists.newArrayList(argv);
-        String port =  CommandLineUtil.getCommandLineOption(args, "--port", "8081+");
-        String location = CommandLineUtil.getCommandLineOption(args, "--location", DEFAULT_LOCATION);
-
-        BrooklynServerDetails server = BrooklynLauncher.newLauncher()
-                .webconsolePort(port)
-                .launch();
-
-        Location loc = server.getManagementContext().getLocationRegistry().resolve(location);
-
-        StartableApplication app = new WebClusterDatabaseExample()
-                .appDisplayName("Brooklyn WebApp Cluster with Database example")
-                .manage(server.getManagementContext());
-        
-        app.start(ImmutableList.of(loc));
-        
-        Entities.dumpInfo(app);
-    }
-{% endhighlight %}
-
-Compile and run this with the [``brooklyn-all`` jar]({{site.url}}/start/download.html) on the classpath,
-pointing at your favourite WAR on your filesystem. 
-(If the ``import`` packages aren't picked up correctly,
-you can cheat by looking at [the file in Github](https://github.com/brooklyncentral/brooklyn/blob/master/examples/simple-web-cluster/src/main/java/brooklyn/demo/WebClusterDatabaseExample.java);
-and you'll find a sample WAR which uses the database as configured above 
-[here](https://http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/io/brooklyn/).)
- TODO example webapp url 
- 
-If you want to adventure beyond ``localhost`` (the default),
-simply supply the your favourite cloud (e.g. ``aws-ec2:eu-west-1``)
-with credentials set up as described [here]({{ site.url }}/use/guide/management/index.html#startup-config).
-
--->

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/walkthrough/wt-deployed-application-700.png
----------------------------------------------------------------------
diff --git a/docs/start/walkthrough/wt-deployed-application-700.png b/docs/start/walkthrough/wt-deployed-application-700.png
deleted file mode 100644
index 7ef90d9..0000000
Binary files a/docs/start/walkthrough/wt-deployed-application-700.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/walkthrough/wt-deployed-application.png
----------------------------------------------------------------------
diff --git a/docs/start/walkthrough/wt-deployed-application.png b/docs/start/walkthrough/wt-deployed-application.png
deleted file mode 100644
index 751402e..0000000
Binary files a/docs/start/walkthrough/wt-deployed-application.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/walkthrough/wt-starting-700.png
----------------------------------------------------------------------
diff --git a/docs/start/walkthrough/wt-starting-700.png b/docs/start/walkthrough/wt-starting-700.png
deleted file mode 100644
index c87a539..0000000
Binary files a/docs/start/walkthrough/wt-starting-700.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/walkthrough/wt-starting.png
----------------------------------------------------------------------
diff --git a/docs/start/walkthrough/wt-starting.png b/docs/start/walkthrough/wt-starting.png
deleted file mode 100644
index 970805f..0000000
Binary files a/docs/start/walkthrough/wt-starting.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/walkthrough/wt-tree-jboss-sensors-700.png
----------------------------------------------------------------------
diff --git a/docs/start/walkthrough/wt-tree-jboss-sensors-700.png b/docs/start/walkthrough/wt-tree-jboss-sensors-700.png
deleted file mode 100644
index 3dfc7f2..0000000
Binary files a/docs/start/walkthrough/wt-tree-jboss-sensors-700.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/start/walkthrough/wt-tree-jboss-sensors.png
----------------------------------------------------------------------
diff --git a/docs/start/walkthrough/wt-tree-jboss-sensors.png b/docs/start/walkthrough/wt-tree-jboss-sensors.png
deleted file mode 100644
index 4c44ea9..0000000
Binary files a/docs/start/walkthrough/wt-tree-jboss-sensors.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/toc-menu.json
----------------------------------------------------------------------
diff --git a/docs/toc-menu.json b/docs/toc-menu.json
deleted file mode 100644
index 824bbbe..0000000
--- a/docs/toc-menu.json
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-{ "title": "Overview",
-  "file":  "{{ site.url }}/index.html" },
-{ "title": "Download",
-  "file": "{{ site.url }}/start/download.html" },
-{ "title": "Getting Started",
-  "file": "{{ site.url }}/use/guide/quickstart/index.html" },
-{ "title": "Walkthrough",
-  "file": "{{ site.url }}/start/walkthrough/index.html" },
-{ "title": "User Guide",
-  "file":  "{{ site.url }}/use/guide/index.html",
-  "children": {% readj ./use/guide/toc.json %} },
-{ "title": "Examples",
-  "file":  "{{ site.url }}/use/examples/index.html", 
-  "children": {% readj ./use/examples/toc.json %} },
-{ "title": "Contributing",
-  "file": "{{ site.url }}/dev/code/index.html",
-  "exclude": true,
-  "children": {% readj /dev/toc.json %} }
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/toc.json
----------------------------------------------------------------------
diff --git a/docs/toc.json b/docs/toc.json
deleted file mode 100644
index 79f9e5d..0000000
--- a/docs/toc.json
+++ /dev/null
@@ -1,21 +0,0 @@
-[
-{ "title": "Start",
-  "file":  "{{ site.url }}/start/index.html",
-  "exclude": true,
-  "children": {% readj /start/toc.json %} },
-{ "title": "Using brooklyn",
-  "file":  "{{ site.url }}/use/index.html",
-  "children": {% readj /use/toc.json %} },
-{ "title": "Contributing",
-  "file": "{{ site.url }}/dev/code/index.html",
-  "exclude": true,
-  "children": {% readj /dev/toc.json %} },
-{ "title": "License",
-  "file": "{{ site.url }}/license/index.html",
-  "exclude": true,
-  "children": {% readj /license/toc.json %} },
-{ "title": "Meta",
-  "file": "{{ site.url }}/meta/versions.html",
-  "exclude": true,
-  "children": {% readj /meta/toc.json %} }
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/api/index.md
----------------------------------------------------------------------
diff --git a/docs/use/api/index.md b/docs/use/api/index.md
deleted file mode 100644
index 143c345..0000000
--- a/docs/use/api/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-layout: guide-normal
-title: API Reference
-toc: ../../toc.json
----
-
-*Javadoc is not available as part of this build.*
-
-Please see the [source code]({{site.url}}/dev/code) to view javadoc.
-
-<!-- This page is normally overwritten by generated javadoc. -->

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/contact.md
----------------------------------------------------------------------
diff --git a/docs/use/contact.md b/docs/use/contact.md
deleted file mode 100644
index 008a5a1..0000000
--- a/docs/use/contact.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-layout: guide-normal
-title: Contact
-toc: ../toc.json
----
-
-{% readj /meta/contact.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/before-begin.include.md
----------------------------------------------------------------------
diff --git a/docs/use/examples/before-begin.include.md b/docs/use/examples/before-begin.include.md
deleted file mode 100644
index ad9bc19..0000000
--- a/docs/use/examples/before-begin.include.md
+++ /dev/null
@@ -1,57 +0,0 @@
-{% include fields.md %}
-
-## Before You Begin
-
-To use the examples, you'll need ``curl``, ``git``, ``java`` (1.6+), and ``maven`` (v3) installed.
-
-### Installing Brooklyn
-
-(If you followed the [Getting Started](/use/guide/quickstart/index.html) instructions, you can skip to Installing the Examples.)
-
-{% 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/)
-(or build it yourself following instructions [here]({{ site.url }}/dev/build/)),
-unpack it to your favourite location (e.g. `$(pwd)`), 
-and export `BROOKLYN_HOME`:
-
-{% highlight bash %}
-% curl -L -o brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz "{{ this_dist_url_tgz }}"
-% tar xvzf brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz
-% export BROOKLYN_HOME=$(pwd)/brooklyn-{{ site.brooklyn-version }}/
-{% endhighlight %}
-
-{% else %}
-
-Grab a copy of the Brooklyn distribution and set up `BROOKLYN_HOME`:
-
-{% highlight bash %}
-% curl -LO "{{ this_dist_url_tgz }}"
-% tar xvzf brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz
-% export BROOKLYN_HOME=$(pwd)/brooklyn-{{ site.brooklyn-version }}/
-{% endhighlight %}
-
-{% endif %}
-
-### Installing the Examples 
-
-Grab a copy of the brooklyn-examples source code and build it with Maven:
-
-{% highlight bash %}
-% git clone https://github.com/brooklyncentral/brooklyn-examples.git
-% cd brooklyn-examples
-{% if brooklyn_examples_branch == 'master' %}{% else %}% git checkout {{ brooklyn_examples_branch }}
-{% endif %}% mvn clean install
-{% endhighlight %}
-
-{% if SNAPSHOT %}
-Please note, these instructions are for a SNAPSHOT release of Brooklyn,
-so proceed with caution. 
-For the latest stable version, go [here](/meta/versions.html). 
-{% endif %}
-
-For more information on ways to download Brooklyn please
-see the [download page]({{site.url}}/start/download.html).
-For more information on the Brooklyn CLI and launching apps,
-please visit [this section of the user guide]({{site.url}}/use/guide/management/index.html#cli).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/global-web-fabric/console-geoscaling-details-w700.png
----------------------------------------------------------------------
diff --git a/docs/use/examples/global-web-fabric/console-geoscaling-details-w700.png b/docs/use/examples/global-web-fabric/console-geoscaling-details-w700.png
deleted file mode 100644
index c34217f..0000000
Binary files a/docs/use/examples/global-web-fabric/console-geoscaling-details-w700.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/global-web-fabric/console-geoscaling-details.png
----------------------------------------------------------------------
diff --git a/docs/use/examples/global-web-fabric/console-geoscaling-details.png b/docs/use/examples/global-web-fabric/console-geoscaling-details.png
deleted file mode 100644
index f47226a..0000000
Binary files a/docs/use/examples/global-web-fabric/console-geoscaling-details.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/global-web-fabric/console-map-w700.png
----------------------------------------------------------------------
diff --git a/docs/use/examples/global-web-fabric/console-map-w700.png b/docs/use/examples/global-web-fabric/console-map-w700.png
deleted file mode 100644
index af353a9..0000000
Binary files a/docs/use/examples/global-web-fabric/console-map-w700.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/global-web-fabric/console-map.png
----------------------------------------------------------------------
diff --git a/docs/use/examples/global-web-fabric/console-map.png b/docs/use/examples/global-web-fabric/console-map.png
deleted file mode 100644
index cd0f811..0000000
Binary files a/docs/use/examples/global-web-fabric/console-map.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/global-web-fabric/geopaas-deployed-app-w700.png
----------------------------------------------------------------------
diff --git a/docs/use/examples/global-web-fabric/geopaas-deployed-app-w700.png b/docs/use/examples/global-web-fabric/geopaas-deployed-app-w700.png
deleted file mode 100644
index 33c811d..0000000
Binary files a/docs/use/examples/global-web-fabric/geopaas-deployed-app-w700.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/global-web-fabric/geopaas-deployed-app.png
----------------------------------------------------------------------
diff --git a/docs/use/examples/global-web-fabric/geopaas-deployed-app.png b/docs/use/examples/global-web-fabric/geopaas-deployed-app.png
deleted file mode 100644
index 4e743e3..0000000
Binary files a/docs/use/examples/global-web-fabric/geopaas-deployed-app.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/global-web-fabric/index.md
----------------------------------------------------------------------
diff --git a/docs/use/examples/global-web-fabric/index.md b/docs/use/examples/global-web-fabric/index.md
deleted file mode 100644
index 7231cda..0000000
--- a/docs/use/examples/global-web-fabric/index.md
+++ /dev/null
@@ -1,378 +0,0 @@
----
-layout: guide-normal
-title: Global Web Fabric
-toc: /toc.json
----
-
-This example shows how to build a multi-site web application *fabric*
-with DNS configured on the front-end to combine the sites,
-routing users to the location closest to them.
-
-It can combine with the [Simple Web Cluster](../webcluster) example
-or the [Portable Cloud Foundry](https://github.com/cloudsoft/brooklyn-cloudfoundry) example,
-but does not assume knowledge of either of these.
-
-{% readj ../before-begin.include.md %}
-
-Now, go to this particular example's directory:
-
-{% highlight bash %}
-% cd global-web-fabric
-{% endhighlight %}
-
-The CLI needs to know where to find your compiled examples. You can set this up by exporting
-the ``BROOKLYN_CLASSPATH`` environment variable in the following way:
-
-{% highlight bash %}
-% export BROOKLYN_CLASSPATH=$(pwd)/target/classes
-{% endhighlight %}
-
-The project ``global-web-fabric`` contains the code used
-in this example under ``src/main/java``.
-
-
-### Setting Up Geographic DNS
-
-This example uses [geoscaling.com](http://www.geoscaling.com) to provide **free** geographic-dependent DNS services.
-This will forward a domain name of your choice to various IPs depending on a script,
-e.g. computing the nearest IP based on latitude and longitude of the requester and the targets.
-Brooklyn will automatically generate and update this script, but you do need to 
-create and configure a Geoscaling account:
-
- 1. Create the free account [here](https://www.geoscaling.com/dns2/?module=register).
- 1. Click the link in the email you receive.
- 1. Enter the domain name you wish to use into geoscaling (see below).
-
-The simplest domain name to choose is something unique under `geopaas.org`, e.g. `yourname.geopaas.org`,
-which we have already configured for Geoscaling to manage.
-If you are using your own domain name, 
-set its nameservers as advised by geoscaling (e.g. `ns{1,2,3,4}.geoscaling.com`).
-
-Next we need to supply this information to Brooklyn at runtime.
-The simplest way is to create or add the following fields to `~/.brooklyn/brooklyn.properties`:
-
-{% highlight bash %}
-brooklyn.geoscaling.username=yourname
-brooklyn.geoscaling.password=s3cr3t
-brooklyn.geoscaling.primaryDomain=yourname.geopaas.org
-{% endhighlight %}
-
-Replace the values of these fields as appropriate, of course!
-You can, if you prefer, supply (or override) these values in your Brooklyn application.
-
-
-### Setting Up the Locations Database
-
-In order to generate the "closest-IP" script,
-Brooklyn needs a way to find out the latitude and longitude of the
-servers you are using.
-The simplest way to do this is do download the free GeoCityLite binary flatfile 
-from [MaxMind](http://dev.maxmind.com/geoip/geoip2/geolite2/#Downloads),
-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=brooklyn.location.geo.UtraceHostGeoLookup`;
-but note this has a cap of 100 per day.
-
-This information is also used to display locations on the map
-in the Brooklyn dashboard.
-Note however that these free services are not 100% accurate;
-they are handy for dev/test but in a production system
-you may wish to specify the geographical information manually in your application,
-or purchase a commercial locations-database subscription.
-
-
-## The Code
-
-Now let's start writing our application.
-The heavy lifting will be done by off-the-shelf Brooklyn classes:
-
- * `DynamicFabric` will create the entity specified by `factory` in each location it is given
- * `GeoscalingDnsService` monitors children of a specified entity (the `DynamicFabric`) 
-   and adds them as DNS targets for the region they are in  
-
-First, however, let's create the Java class -- call it `GlobalWebFabricExample`.
-This will extend the Brooklyn `AbstractApplication`:
-
-{% highlight java %}
-package brooklyn.demo;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import brooklyn.entity.basic.AbstractApplication;
-
-public class GlobalWebFabricExample extends AbstractApplication {
-    @Override
-    public void init() {
-         // TODO create our app!
-    }
-}
-{% endhighlight %}
-
-### The Fabric
-
-The `DynamicFabric` by default has no knowledge of what it will build,
-other than the `factory` it is given to create an entity in each region.
-We'll use the class `ElasticJavaWebAppService.Factory` which creates
-an elastic Java Web App service,
-such as the `ControlledDynamicWebAppCluster` used in the
-[Simple Web Cluster](../webcluster) example, if deploying to VMs,
-or perhaps a `CloudFoundryJavaWebAppCluster` if deploying to a Cloud Foundry location
-(see [brooklyn-cloudfoundry repo](https://github.com/cloudsoft/brooklyn-cloudfoundry)).
-
-{% highlight java %}
-        DynamicFabric webFabric = addChild(EntitySpec.create(DynamicFabric.class)
-                .displayName("Web Fabric")
-                .configure(DynamicFabric.FACTORY, new ElasticJavaWebAppService.Factory())
-                .configure(ElasticJavaWebAppService.ROOT_WAR, WAR_PATH));
-{% endhighlight %}
-
-Here we have specified the WAR to use with `configure(ElasticJavaWebAppService.ROOT_WAR, WAR_PATH)`.
-The war configuration used in the previous example is only available on web-aware entities;
-configuration specified with a ConfigKey can be done on any entity,
-and is inherited at runtime, so this provides a useful way to specify the WAR to use
-even though the web-aware entities are only constructed at runtime.
-
-
-### Stitching the Fabric together with DNS
-
-To stitch these together seamlessly, another entity will run a policy
-which collects the public-facing IP address of each cluster created by the fabric,
-as it comes online, by watching for `SERVICE_UP` sensors.
-First, however, let's make sure any load-balancer proxies (e.g. nginx) in these clusters
-are listening on port 80:
-
-{% highlight java %}
-        DynamicFabric webFabric = addChild(EntitySpec.create(DynamicFabric.class)
-                .displayName("Web Fabric")
-                .configure(DynamicFabric.FACTORY, new ElasticJavaWebAppService.Factory())
-                .configure(ElasticJavaWebAppService.ROOT_WAR, WAR_PATH)
-                .configure(AbstractController.PROXY_HTTP_PORT, PortRanges.fromInteger(80)));
-{% endhighlight %}
-
-Let's now define the Geoscaling entity which does the stitching.
-We need to supply the username, password, and primaryDomainName for Geoscaling;
-we'll take this from the `brooklyn.properties` file mentioned above.
-We'll also specify a `smartSubdomainName`, to use Geoscaling's facility for
-lightweight sub-domains to prevent DNS caching and multiple instances of our application
-from confusing us -- e.g. `brooklyn-1234.yourname.geopaas.org`.
-
-{% highlight java %}
-        StringConfigMap config = getManagementContext().getConfig();
-        
-        GeoscalingDnsService geoDns = addChild(EntitySpec.create(GeoscalingDnsService.class)
-                .displayName("GeoScaling DNS")
-                .configure("username", checkNotNull(config.getFirst("brooklyn.geoscaling.username"), "username"))
-                .configure("password", checkNotNull(config.getFirst("brooklyn.geoscaling.password"), "password"))
-                .configure("primaryDomainName", checkNotNull(config.getFirst("brooklyn.geoscaling.primaryDomain"), "primaryDomain")) 
-                .configure("smartSubdomainName", "brooklyn"));
-{% endhighlight %}
-
-Lastly we need to tell this instance what entity it should monitor
-for children to include as targets:
-
-{% highlight java %}
-        geoDns.setTargetEntityProvider(webFabric);
-{% endhighlight %}
-
-
-
-### Cloud Foundry and other PaaS Targets
-
-At this point our core application is ready, and can be deployed to AWS or another VM cloud.
-This may take between 15 and 30 minutes to run,
-mainly spent downloading software
-(unless of course you specify a pre-configured `imageId` which contains the software).
-
-A quicker alternative is to deploy to a Java Web App platform-as-a-service
-such as Cloud Foundry.  A major advantage here is that they can provision very quickly,
-in a matter of seconds.  Code for this can be found in the 
-[brooklyn-cloudfoundry repo](https://github.com/cloudsoft/brooklyn-cloudfoundry), 
-along with an example global-web-fabric app.
-
-
-### Imports
-
-Your imports should look as follows:
-
-{% highlight java %}
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import brooklyn.config.StringConfigMap;
-import brooklyn.entity.basic.AbstractApplication;
-import brooklyn.entity.basic.Attributes;
-import brooklyn.entity.dns.geoscaling.GeoscalingDnsService;
-import brooklyn.entity.group.DynamicFabric;
-import brooklyn.entity.proxy.AbstractController;
-import brooklyn.entity.proxying.EntitySpec;
-import brooklyn.entity.webapp.ElasticJavaWebAppService;
-import brooklyn.location.basic.PortRanges;
-{% endhighlight %}
-
-
-### Use of main method (optional)
-
-In this example, we will use the brooklyn CLI launcher. However, it is possible to write your own main method.
-
-The following static constants are assumed (most of these as in the [Simple Web Cluster](../webcluster) example and others): 
-
- * `WAR_PATH`, pointing to the webapp to deploy (a default supplied as part of the Brooklyn examples is used here)
- * `DEFAULT_LOCATIONS`, containing a string spec of the locations to deploy to if none are supplied on the command-line;
-   for this example `localhost` will frequently not work unless Geoscaling can see it 
-   (i.e. it has a public IP and appropriate firewall settings)
-
-The code (which can safely be omitted) is as follows:
-
-{% highlight java %}
-import brooklyn.launcher.BrooklynLauncher;
-import brooklyn.util.CommandLineUtil;
-
-import com.google.common.base.Joiner;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-
-// class definition, and rest of class goes here...
-
-    public static final Logger log = LoggerFactory.getLogger(GlobalWebFabricExample.class);
-    
-    // points to the webapp to deploy (a default supplied as part of the Brooklyn examples is used here)
-    public static final String WAR_PATH = "classpath://hello-world-webapp.war";
-    
-    // locations to deploy to if none are supplied on the command-line; for this example `localhost` will 
-    // frequently not work unless Geoscaling can see it (i.e. it has a public IP and appropriate firewall settings)
-    static final List<String> DEFAULT_LOCATIONS = ImmutableList.of(
-            "aws-ec2:eu-west-1",
-            "aws-ec2:ap-southeast-1",
-            "aws-ec2:us-west-1" );
-        
-    public static void main(String[] argv) {
-        List<String> args = Lists.newArrayList(argv);
-        String port =  CommandLineUtil.getCommandLineOption(args, "--port", "8081+");
-        String locations = CommandLineUtil.getCommandLineOption(args, "--locations", Joiner.on(",").join(DEFAULT_LOCATIONS));
-
-        BrooklynLauncher launcher = BrooklynLauncher.newInstance()
-                .application(EntitySpec.create(StartableApplication.class, GlobalWebFabricExample.class).displayName("Brooklyn Global Web Fabric Example"))
-                .webconsolePort(port)
-                .locations(Arrays.asList(locations))
-                .start();
-        
-        Entities.dumpInfo(app);
-    }
-{% endhighlight %}
-
-
-
-## Running the Example
-
-Now let's run this example.
-
-{% highlight bash %}
-${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.GlobalWebFabricExample \
---location jclouds:aws-ec2:eu-west-1,jclouds:aws-ec2:ap-southeast-1,jclouds:aws-ec2:us-west-1 
-{% endhighlight %}
-
-The management web console will start,
-followed by the web-app services in the locations specified
-creating the VM's as needed.
-Let's look at the management web console, on port 8081:
-
-[![Web Console Map](console-map-w700.png "Web Console Map")](console-map.png) 
-
-This shows the targets (e.g. Ireland (AWS eu-west-1),  Singapore (AWS ap-southeast-1),  and California (AWS us-west-1)).
-This also shows the current status of the application.
-
-Navigating to the "applications" tab, we can view sensors, invoke effectors, control policies,
-and track activity, 
-for instance if a cluster is slow to start and you want to find out what is going on
-(you'll find additional information in the `brooklyn.log` file).
-Let's drill down on the Geoscaling DNS entity's sensors:
-
-[![Web Console Geoscaling Details](console-geoscaling-details-w700.png "Web Console Geoscaling Details")](console-geoscaling-details.png)
-
-Here we see it has chosen `brooklyn-vOZ7b4BL.martincloudsoft.geopaas.org` as the geo-load-balanced domain name.
-(Yours will be under `yourname.geopaas.org`, unless you chose a different domain earlier.)
-We can also see the hosts it is forwarding to, one for each cluster, corresponding to the
-children of the Web Fabric (propagated from the nginx hostnames, in the case of the ControlledDynamicWebAppCluster instances).
-
-
-### Checking the Web App
-
-Once Geoscaling reports at least one target, you should be able to access it on the geo-load-balanced domain name:
-
-[![Our Deployed Application](geopaas-deployed-app-w700.png "Our Deployed Application")](geopaas-deployed-app.png)
-
-Under the covers you are being routed to one of the clusters that has been deployed --
-whichever one is closest to you.
-(Due to DNS caching, at your machine or your ISP, clusters which come online after your first lookup
-will not be picked up until TTL expires, typically 10m, although often more if DNS services don't respect TTL.)
-
-
-### Checking DNS Information
-
-Let's find out exactly where we were routed:
-
-{% highlight bash %}
-% dig brooklyn-csgFCzTm.geopaas.org
-
-; <<>> DiG 9.4.3-P3 <<>> brooklyn-csgFCzTm.geopaas.org
-
-;; QUESTION SECTION:
-;brooklyn-csgFCzTm.geopaas.org. IN      A
-
-;; ANSWER SECTION:
-brooklyn-csgFCzTm.geopaas.org. 120 IN   CNAME   ec2-46-137-138-4.eu-west-1.compute.amazonaws.com.
-ec2-46-137-138-4.eu-west-1.compute.amazonaws.com. 215 IN A 46.137.138.4
-{% endhighlight %}
-
-This was run from Scotland so it seems a sensible choice.
-(Some portions of the output from `dig` have been removed for readability.)
-
-We can get more information by looking at the TXT records: 
-
-{% highlight bash %}
-% dig +trace @ns1.geoscaling.com TXT brooklyn-csgFCzTm.geopaas.org
-
-; <<>> DiG 9.4.3-P3 <<>> +trace @ns1.geoscaling.com TXT brooklyn-csgFCzTm.geopaas.org
-
-...
-
-geopaas.org.            86400   IN      NS      ns1.geoscaling.com.
-geopaas.org.            86400   IN      NS      ns2.geoscaling.com.
-geopaas.org.            86400   IN      NS      ns3.geoscaling.com.
-geopaas.org.            86400   IN      NS      ns4.geoscaling.com.
-;; Received 133 bytes from 199.249.112.1#53(a2.org.afilias-nst.info) in 45 ms
-
-brooklyn-csgFCzTm.geopaas.org. 300 IN   TXT     "Request from [54,-2]-(GB) directed to Ireland (IE)"
-brooklyn-csgFCzTm.geopaas.org. 300 IN   TXT     "GeoScaling config auto-updated by Brooklyn 2012-04-26 12:27:25 UTC"
-;; Received 189 bytes from 80.87.128.195#53(ns3.geoscaling.com) in 60 ms
-{% endhighlight %}
-
-
-## Next Steps
-
-This example has shown how to create a multi-region fabric, using the abstractions from
-[jclouds](http://jclouds.org) under the covers to make it easy to access different hosting providers
-simultaneously, and using higher-level abstractions in Brooklyn to mix PaaS systems with
-bare-VM (or even bare-metal, if you specify fixed IPs).
-
-This is meant as just the beginning however.  
-Here are some questions to think about and code challenges to give you a steer for what to explore next.
-
-
- 1. The routines used at Geoscaling optimize for latency between the user and the location of the web-cluster.
-    What other strategies might be used?  Cost?  Compliance?  How would you code these?
-    
- 2. This example ignores data, but you clearly can't do that in the real world.
-    When big-data is involved, does this introduce other considerations for optimizing geo-location?
-    
- 3. Add a data tier to this system, such as MySQL or Mongo, or even Hadoop.
-    You might start with a single instance or cluster,
-    but the real fun starts with a fabric, and defining the synchronization/replication strategies
-    between the different clusters.
-    This isn't for the faint-hearted, but whatever you create will certainly be of interest
-    to people in the Brooklyn community.
-    Please [let us know]({{ site.url }}/meta/contact.html) what you've built!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/index.md
----------------------------------------------------------------------
diff --git a/docs/use/examples/index.md b/docs/use/examples/index.md
deleted file mode 100644
index 15e89dc..0000000
--- a/docs/use/examples/index.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: guide-normal
-title: Examples
-toc: /toc.json
----
-
-We currently have the following examples on the site:
-
-{% capture ltocs %}{% readj toc.json %}{% endcapture %}
-{% jsonball ltoc from var ltocs %}
-
-{% for x in ltoc %}
-* <a href="{{ x.file }}">{{ x.title }}</a>
-{% endfor %} 
-
-There are examples in the code also, just check out the examples/ project.
-
-**Have one of your own?**  [Add it here!]({{site.url}}/dev/tips/update-docs.html)


[19/50] [abbrv] incubator-brooklyn git commit: install javadoc to the right place

Posted by he...@apache.org.
install javadoc to the right place


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

Branch: refs/heads/master
Commit: 09b7b58e6ed5d9cd3e9b7c95e720309285e73f89
Parents: b86cbf0
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Dec 16 10:52:52 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:56 2014 +0000

----------------------------------------------------------------------
 docs/_build/build.sh | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/09b7b58e/docs/_build/build.sh
----------------------------------------------------------------------
diff --git a/docs/_build/build.sh b/docs/_build/build.sh
index b1a4032..4dfe7cd 100755
--- a/docs/_build/build.sh
+++ b/docs/_build/build.sh
@@ -33,7 +33,7 @@ function deduce_config() {
     CONFIG=_config.yml,_build/config-production.yml,_build/config-website-root.yml
     DIRS_TO_MOVE[0]=website
     DIRS_TO_MOVE_TARGET[0]=""
-    SKIP_JAVADOC=true
+    JAVADOC_TARGET=_site/guide/use/api/
     SUMMARY="root production files, website in root and guide in /guide/"
     ;;
   website-root)
@@ -42,6 +42,7 @@ function deduce_config() {
     DIRS_TO_MOVE_TARGET[0]=""
     DIRS_TO_MOVE[1]=guide
     DIRS_TO_MOVE_TARGET[1]=long_grass
+    SKIP_JAVADOC=true
     SUMMARY="user guide files in the root"
     ;;
   guide-root)
@@ -50,6 +51,7 @@ function deduce_config() {
     DIRS_TO_MOVE_TARGET[0]=""
     DIRS_TO_MOVE[1]=website
     DIRS_TO_MOVE_TARGET[1]=long_grass
+    JAVADOC_TARGET=_site/use/api/
     SUMMARY="user guide files in the root"
     ;;
   guide-version)
@@ -62,6 +64,7 @@ function deduce_config() {
     DIRS_TO_MOVE_TARGET[1]=${DIRS_TO_MOVE_TARGET[0]}/style
     DIRS_TO_MOVE[2]=website
     DIRS_TO_MOVE_TARGET[2]=long_grass
+    JAVADOC_TARGET=_site/${DIRS_TO_MOVE_TARGET[1]}/use/api/
     SUMMARY="user guide files in /${DIRS_TO_MOVE_TARGET[0]}"
     ;;
   original)
@@ -107,8 +110,12 @@ make_jekyll || { echo ERROR: could not build docs in `pwd` ; exit 1 ; }
 
 if [ "$SKIP_JAVADOC" != "true" ]; then
   pushd _build > /dev/null
+  rm -rf target/apidocs
   ./make-javadoc.sh || { echo ERROR: failed javadoc build ; exit 1 ; }
   popd > /dev/null
+  if [ ! -z "$JAVADOC_TARGET" ]; then
+    mv _build/target/apidocs/* $JAVADOC_TARGET
+  fi
 fi
 
 # TODO build catalog


[32/50] [abbrv] incubator-brooklyn git commit: update Gemfile and move to root

Posted by he...@apache.org.
update Gemfile and move to root


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

Branch: refs/heads/master
Commit: 19d29158103598eb029bd7fb0bfa5b8f485545d0
Parents: be3bdd7
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 00:37:45 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:57 2014 +0000

----------------------------------------------------------------------
 docs/Gemfile                                 |  9 +++
 docs/Gemfile.lock                            | 91 +++++++++++++++++++++++
 docs/README.md                               | 43 +++++------
 docs/_build/Gemfile                          | 26 -------
 docs/_build/Gemfile.lock                     | 32 --------
 docs/_build/config-exclude-all-but-guide.yml |  2 +-
 docs/_build/config-exclude-guide.yml         |  2 +-
 docs/_config.yml                             | 10 +--
 8 files changed, 129 insertions(+), 86 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/19d29158/docs/Gemfile
----------------------------------------------------------------------
diff --git a/docs/Gemfile b/docs/Gemfile
new file mode 100644
index 0000000..aacd3c9
--- /dev/null
+++ b/docs/Gemfile
@@ -0,0 +1,9 @@
+#ruby=ruby-2.1.2
+#ruby-gemset=incubator-brooklyn-site
+
+source 'https://rubygems.org'
+
+gem 'jekyll'
+gem 'therubyracer'
+gem 'link-checker'
+gem 'json'

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/19d29158/docs/Gemfile.lock
----------------------------------------------------------------------
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
new file mode 100644
index 0000000..ada2724
--- /dev/null
+++ b/docs/Gemfile.lock
@@ -0,0 +1,91 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    anemone (0.7.2)
+      nokogiri (>= 1.3.0)
+      robotex (>= 1.0.0)
+    blankslate (2.1.2.4)
+    celluloid (0.16.0)
+      timers (~> 4.0.0)
+    classifier-reborn (2.0.2)
+      fast-stemmer (~> 1.0)
+    coffee-script (2.3.0)
+      coffee-script-source
+      execjs
+    coffee-script-source (1.8.0)
+    colorator (0.1)
+    colorize (0.5.8)
+    execjs (2.2.2)
+    fast-stemmer (1.0.2)
+    ffi (1.9.6)
+    hitimes (1.2.2)
+    jekyll (2.5.2)
+      classifier-reborn (~> 2.0)
+      colorator (~> 0.1)
+      jekyll-coffeescript (~> 1.0)
+      jekyll-gist (~> 1.0)
+      jekyll-paginate (~> 1.0)
+      jekyll-sass-converter (~> 1.0)
+      jekyll-watch (~> 1.1)
+      kramdown (~> 1.3)
+      liquid (~> 2.6.1)
+      mercenary (~> 0.3.3)
+      pygments.rb (~> 0.6.0)
+      redcarpet (~> 3.1)
+      safe_yaml (~> 1.0)
+      toml (~> 0.1.0)
+    jekyll-coffeescript (1.0.1)
+      coffee-script (~> 2.2)
+    jekyll-gist (1.1.0)
+    jekyll-paginate (1.1.0)
+    jekyll-sass-converter (1.3.0)
+      sass (~> 3.2)
+    jekyll-watch (1.2.0)
+      listen (~> 2.7)
+    json (1.8.1)
+    kramdown (1.5.0)
+    libv8 (3.16.14.7)
+    link-checker (0.7.2)
+      anemone (~> 0.7.2)
+      colorize (~> 0.5.8)
+      nokogiri (~> 1.5.5)
+      trollop (~> 2.0)
+    liquid (2.6.1)
+    listen (2.8.3)
+      celluloid (>= 0.15.2)
+      rb-fsevent (>= 0.9.3)
+      rb-inotify (>= 0.9)
+    mercenary (0.3.5)
+    nokogiri (1.5.11)
+    parslet (1.5.0)
+      blankslate (~> 2.0)
+    posix-spawn (0.3.8)
+    pygments.rb (0.6.0)
+      posix-spawn (~> 0.3.6)
+      yajl-ruby (~> 1.1.0)
+    rb-fsevent (0.9.4)
+    rb-inotify (0.9.5)
+      ffi (>= 0.5.0)
+    redcarpet (3.2.2)
+    ref (1.0.5)
+    robotex (1.0.0)
+    safe_yaml (1.0.4)
+    sass (3.4.9)
+    therubyracer (0.12.1)
+      libv8 (~> 3.16.14.0)
+      ref
+    timers (4.0.1)
+      hitimes
+    toml (0.1.2)
+      parslet (~> 1.5.0)
+    trollop (2.0)
+    yajl-ruby (1.1.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  jekyll
+  json
+  link-checker
+  therubyracer

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/19d29158/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
index b7ab49b..b090785 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -21,43 +21,44 @@ Workstation Setup
 First, if you have not already done so, clone the `incubator-brooklyn` repository 
 and set up the remotes as described in [Guide for committers][COMMIT].
 
-Install [RVM](http://rvm.io/); this manages Ruby installations and sets of Ruby
-gems.
+The Brooklyn documentation uses Markdown notation (what this file is written in)
+and the Jekyll process. This in turn requires Ruby and gems as described in the `Gemfile`:
+install [RVM](http://rvm.io/) to manage Ruby installations and sets of Ruby gems.
 
     \curl -sSL https://get.rvm.io | bash -s stable
 
-At this point, close your shell session and start a new one, to get the new
-environment that RVM has configured. Now change directory to the location where
-you checked out your repository, and then to the `docs/_build` subdirectory.
+Close your shell session and start a new one, to get the new
+environment that RVM has configured. Change directory to the location where
+you checked out your repository and then to the `docs/` subdirectory (where this file is located).
 
 RVM should detect its configuration inside `Gemfile` and try to configure itself. 
-Most likely it will report that the required version of Ruby is not installed; 
-it will show the command that you need to run to install the correct version. 
-Follow these instructions.
+Most likely it will report that the required version of Ruby is not installed,
+and it will show the command that you need to run to install the correct version. 
+Follow the instructions it shows.
 
 Once the correct version of Ruby is installed, change to your home directory
-(`cd ~`) and then change back to the `_build` dir again (`cd -`). This will cause
-RVM to re-load configuration from `Gemfile` with the correct version of Ruby.
+and then change back (`cd ~ ; cd -`).
+This will cause RVM to re-load configuration from `Gemfile` with the correct version of Ruby.
 
-If you are running Ubuntu, there is a further dependency that is required:
-
-    sudo apt-get install libxslt-dev libxml2-dev
-
-Finally, run this command inside `_build` to install all the required Gems 
+Finally, run this command to install all the required Gems 
 at the correct versions:
 
     bundle install
 
-Any time you need to reset your Ruby environment for jekyll to run correctly,
+Any time you need to reset your Ruby environment for `jekyll` to run correctly,
 return to the `_build` directory and re-run the above command.
 
+On some platforms there may be some fiddling required before `jekyll` runs without errors,
+but the ecosystem is fairly mature and most problems can be resolved with a bit of googling.
+For instance on Ubuntu, there may be additional dependencies required:
+
+    sudo apt-get install libxslt-dev libxml2-dev
 
-Building and Previewing the Website
------------------------------------
 
-### Using Jekyll's in-built server
+Seeing the Website and Docs
+---------------------------
 
-In the `docs` directory, run the command:
+To build and see the documentation, run this command in your `docs` folder:
 
     jekyll serve --watch
     
@@ -65,7 +66,7 @@ This will start up a local web server. The URL is printed by Jekyll when the ser
 e.g. http://localhost:4000/ . The server will continue to run until you press Ctrl+C.
 Modified files will be detected and regenerated (but that might take up to 1m).
 Leave off the `--watch` argument to turn off regeneration, or use `jekyll build` instead
-to generate a site in `_site` without a server, for instance if your browser supports running from disk.
+to generate a site in `_site` without a server.
 
 
 Project Structure

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/19d29158/docs/_build/Gemfile
----------------------------------------------------------------------
diff --git a/docs/_build/Gemfile b/docs/_build/Gemfile
deleted file mode 100644
index 99a2d5a..0000000
--- a/docs/_build/Gemfile
+++ /dev/null
@@ -1,26 +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.
-#
-
-#ruby=ruby-2.1.2
-#ruby-gemset=brooklyn-docs
-
-source 'https://rubygems.org'
-gem 'jekyll', '~>0'
-gem 'json'
-gem 'rdiscount'

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/19d29158/docs/_build/Gemfile.lock
----------------------------------------------------------------------
diff --git a/docs/_build/Gemfile.lock b/docs/_build/Gemfile.lock
deleted file mode 100644
index f5fd450..0000000
--- a/docs/_build/Gemfile.lock
+++ /dev/null
@@ -1,32 +0,0 @@
-GEM
-  remote: https://rubygems.org/
-  specs:
-    classifier (1.3.4)
-      fast-stemmer (>= 1.0.0)
-    directory_watcher (1.5.1)
-    fast-stemmer (1.0.2)
-    jekyll (0.12.1)
-      classifier (~> 1.3)
-      directory_watcher (~> 1.1)
-      kramdown (~> 0.14)
-      liquid (~> 2.3)
-      maruku (~> 0.5)
-      pygments.rb (~> 0.3.2)
-    json (1.8.1)
-    kramdown (0.14.2)
-    liquid (2.6.1)
-    maruku (0.7.1)
-    posix-spawn (0.3.8)
-    pygments.rb (0.3.7)
-      posix-spawn (~> 0.3.6)
-      yajl-ruby (~> 1.1.0)
-    rdiscount (2.1.7.1)
-    yajl-ruby (1.1.0)
-
-PLATFORMS
-  ruby
-
-DEPENDENCIES
-  jekyll (~> 0)
-  json
-  rdiscount

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/19d29158/docs/_build/config-exclude-all-but-guide.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-exclude-all-but-guide.yml b/docs/_build/config-exclude-all-but-guide.yml
index 7ed3c5a..8acf536 100644
--- a/docs/_build/config-exclude-all-but-guide.yml
+++ b/docs/_build/config-exclude-all-but-guide.yml
@@ -1 +1 @@
-exclude: ['/LICENSE.txt','/README.md','/index.md','/favicon.ico','/website']
\ No newline at end of file
+exclude: ['/Gemfile*','/README.md','/index.md','/website']

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/19d29158/docs/_build/config-exclude-guide.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-exclude-guide.yml b/docs/_build/config-exclude-guide.yml
index 373dc76..a4ad1c9 100644
--- a/docs/_build/config-exclude-guide.yml
+++ b/docs/_build/config-exclude-guide.yml
@@ -1 +1 @@
-exclude: ['/LICENSE.txt','/README.md','/guide']
\ No newline at end of file
+exclude: ['/Gemfile*','/README.md','/guide']

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/19d29158/docs/_config.yml
----------------------------------------------------------------------
diff --git a/docs/_config.yml b/docs/_config.yml
index ec8af31..7086d35 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -16,11 +16,8 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-exclude: [ LICENSE.txt ]
-encoding: utf-8
 
-brooklyn-version: 0.7.0-SNAPSHOT # BROOKLYN_VERSION
-brooklyn-snapshot-git-branch: master   # if line above is SNAPSHOT this should point to corresponding git branch (e.g. master, 0.4)
+encoding: utf-8
 
 # where this will publish
 url_root: http://0.0.0.0:4000
@@ -40,5 +37,8 @@ dependency_urls:
   jquery.js: https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
 
 # These files should not be included in the final build (in addition to _* contents)
-exclude: ['/LICENSE.txt','/README.md']
+exclude: ['/Gemfile*','/README.md']
+
+brooklyn-version: 0.7.0-SNAPSHOT # BROOKLYN_VERSION
+brooklyn-snapshot-git-branch: master   # if line above is SNAPSHOT this should point to corresponding git branch (e.g. master, 0.4)
 


[35/50] [abbrv] incubator-brooklyn git commit: fix "edit this page" link

Posted by he...@apache.org.
fix "edit this page" link


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

Branch: refs/heads/master
Commit: e8c107385974b9a06eb7f4b68d85ac4727f59524
Parents: 4fc2076
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 00:59:57 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:58 2014 +0000

----------------------------------------------------------------------
 docs/_layouts/website-landing.html | 2 +-
 docs/_layouts/website-normal.html  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e8c10738/docs/_layouts/website-landing.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/website-landing.html b/docs/_layouts/website-landing.html
index 6049fb0..4b9878d 100644
--- a/docs/_layouts/website-landing.html
+++ b/docs/_layouts/website-landing.html
@@ -20,7 +20,7 @@ layout: website-base
             <div class="col-md-3">
                 <p><img src="https://incubator.apache.org/images/egg-logo.png" alt="Apache Incubator" /></p>
                 <p>
-                    <a class="btn btn-sm btn-default" href="https://github.com/apache/incubator-brooklyn-site/edit/master/{{ page.path }}">Edit This Page</a>
+                    <a class="btn btn-sm btn-default" href="https://github.com/apache/incubator-brooklyn/edit/master/docs/{{ page.path }}">Edit This Page</a>
                     <br />
                     <a href="https://brooklyn.incubator.apache.org/community/how-to-contribute-docs.html">help with editing</a>
                 </p>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e8c10738/docs/_layouts/website-normal.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/website-normal.html b/docs/_layouts/website-normal.html
index 2fb7110..130819d 100644
--- a/docs/_layouts/website-normal.html
+++ b/docs/_layouts/website-normal.html
@@ -32,7 +32,7 @@ layout: website-base
                 Foundation.
             </div>
             <div class="col-md-2">
-                <a class="btn btn-sm btn-default" href="https://github.com/apache/incubator-brooklyn-site/edit/master/{{ page.path }}">Edit This Page</a>
+                <a class="btn btn-sm btn-default" href="https://github.com/apache/incubator-brooklyn/edit/master/docs/{{ page.path }}">Edit This Page</a>
                 <br />
                 <a href="{{ site.url_root }}{{ site.path.website }}/community/how-to-contribute-docs.html">help with editing</a>
             </div>


[26/50] [abbrv] incubator-brooklyn git commit: add website files, and update the build.sh script appropriately

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/style/js/underscore-min.map
----------------------------------------------------------------------
diff --git a/docs/style/js/underscore-min.map b/docs/style/js/underscore-min.map
new file mode 100644
index 0000000..73c951e
--- /dev/null
+++ b/docs/style/js/underscore-min.map
@@ -0,0 +1 @@
+{"version":3,"file":"underscore-min.js","sources":["underscore.js"],"names":["root","this","previousUnderscore","_","ArrayProto","Array","prototype","ObjProto","Object","FuncProto","Function","push","slice","concat","toString","hasOwnProperty","nativeIsArray","isArray","nativeKeys","keys","nativeBind","bind","obj","_wrapped","exports","module","VERSION","createCallback","func","context","argCount","value","call","other","index","collection","accumulator","apply","arguments","iteratee","identity","isFunction","isObject","matches","property","each","forEach","i","length","map","collect","currentKey","results","reduceError","reduce","foldl","inject","memo","TypeError","reduceRight","foldr","find","detect","predicate","result","some","list","filter","select","reject","negate","every","all","any","contains","include","target","values","indexOf","invoke","method","args","isFunc","pluck","key","where","attrs","findWhere","max","computed","Infinity","lastComputed","min","shuffle","rand","se
 t","shuffled","random","sample","n","guard","Math","sortBy","criteria","sort","left","right","a","b","group","behavior","groupBy","has","indexBy","countBy","sortedIndex","array","low","high","mid","toArray","size","partition","pass","fail","first","head","take","initial","last","rest","tail","drop","compact","flatten","input","shallow","strict","output","isArguments","without","difference","uniq","unique","isSorted","isBoolean","seen","union","intersection","argsLength","item","j","zip","object","lastIndexOf","from","idx","range","start","stop","step","ceil","Ctor","bound","self","partial","boundArgs","position","bindAll","Error","memoize","hasher","cache","address","delay","wait","setTimeout","defer","throttle","options","timeout","previous","later","leading","now","remaining","clearTimeout","trailing","debounce","immediate","timestamp","callNow","wrap","wrapper","compose","after","times","before","once","pairs","invert","functions","methods","names","extend","source","prop","pick"
 ,"omit","String","defaults","clone","tap","interceptor","eq","aStack","bStack","className","aCtor","constructor","bCtor","pop","isEqual","isEmpty","isString","isElement","nodeType","type","name","isFinite","isNaN","parseFloat","isNumber","isNull","isUndefined","noConflict","constant","noop","pair","accum","floor","Date","getTime","escapeMap","&","<",">","\"","'","`","unescapeMap","createEscaper","escaper","match","join","testRegexp","RegExp","replaceRegexp","string","test","replace","escape","unescape","idCounter","uniqueId","prefix","id","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","
","
","escapeChar","template","text","settings","oldSettings","matcher","offset","variable","render","e","data","argument","chain","instance","_chain","mixin","define","amd"],"mappings":";;;;CAKC,WAMC,GAAIA,GAAOC,KAGPC,EAAqBF,EAAKG,EAG1BC,EAAaC,MAAMC,UAAWC,EAAWC,OAAOF,UAAWG,EAAYC,SAASJ,UAIlFK,EAAmBP,EAAWO,KAC9BC,EAAmBR,EAAWQ,MAC9BC,EAAmBT,EAAWS,OAC9BC,EAAmBP,EAASO,
 SAC5BC,EAAmBR,EAASQ,eAK5BC,EAAqBX,MAAMY,QAC3BC,EAAqBV,OAAOW,KAC5BC,EAAqBX,EAAUY,KAG7BlB,EAAI,SAASmB,GACf,MAAIA,aAAenB,GAAUmB,EACvBrB,eAAgBE,QACtBF,KAAKsB,SAAWD,GADiB,GAAInB,GAAEmB,GAOlB,oBAAZE,UACa,mBAAXC,SAA0BA,OAAOD,UAC1CA,QAAUC,OAAOD,QAAUrB,GAE7BqB,QAAQrB,EAAIA,GAEZH,EAAKG,EAAIA,EAIXA,EAAEuB,QAAU,OAKZ,IAAIC,GAAiB,SAASC,EAAMC,EAASC,GAC3C,GAAID,QAAiB,GAAG,MAAOD,EAC/B,QAAoB,MAAZE,EAAmB,EAAIA,GAC7B,IAAK,GAAG,MAAO,UAASC,GACtB,MAAOH,GAAKI,KAAKH,EAASE,GAE5B,KAAK,GAAG,MAAO,UAASA,EAAOE,GAC7B,MAAOL,GAAKI,KAAKH,EAASE,EAAOE,GAEnC,KAAK,GAAG,MAAO,UAASF,EAAOG,EAAOC,GACpC,MAAOP,GAAKI,KAAKH,EAASE,EAAOG,EAAOC,GAE1C,KAAK,GAAG,MAAO,UAASC,EAAaL,EAAOG,EAAOC,GACjD,MAAOP,GAAKI,KAAKH,EAASO,EAAaL,EAAOG,EAAOC,IAGzD,MAAO,YACL,MAAOP,GAAKS,MAAMR,EAASS,YAO/BnC,GAAEoC,SAAW,SAASR,EAAOF,EAASC,GACpC,MAAa,OAATC,EAAsB5B,EAAEqC,SACxBrC,EAAEsC,WAAWV,GAAeJ,EAAeI,EAAOF,EAASC,GAC3D3B,EAAEuC,SAASX,GAAe5B,EAAEwC,QAAQZ,GACjC5B,EAAEyC,SAASb,IASpB5B,EAAE0C,KAAO1C,EAAE2C,QAAU,SAASxB,EAAKiB,EAAUV,GAC3C,GAAW,MAAPP,EAAa,MAAOA,EAC
 xBiB,GAAWZ,EAAeY,EAAUV,EACpC,IAAIkB,GAAGC,EAAS1B,EAAI0B,MACpB,IAAIA,KAAYA,EACd,IAAKD,EAAI,EAAOC,EAAJD,EAAYA,IACtBR,EAASjB,EAAIyB,GAAIA,EAAGzB,OAEjB,CACL,GAAIH,GAAOhB,EAAEgB,KAAKG,EAClB,KAAKyB,EAAI,EAAGC,EAAS7B,EAAK6B,OAAYA,EAAJD,EAAYA,IAC5CR,EAASjB,EAAIH,EAAK4B,IAAK5B,EAAK4B,GAAIzB,GAGpC,MAAOA,IAITnB,EAAE8C,IAAM9C,EAAE+C,QAAU,SAAS5B,EAAKiB,EAAUV,GAC1C,GAAW,MAAPP,EAAa,QACjBiB,GAAWpC,EAAEoC,SAASA,EAAUV,EAKhC,KAAK,GADDsB,GAHAhC,EAAOG,EAAI0B,UAAY1B,EAAI0B,QAAU7C,EAAEgB,KAAKG,GAC5C0B,GAAU7B,GAAQG,GAAK0B,OACvBI,EAAU/C,MAAM2C,GAEXd,EAAQ,EAAWc,EAARd,EAAgBA,IAClCiB,EAAahC,EAAOA,EAAKe,GAASA,EAClCkB,EAAQlB,GAASK,EAASjB,EAAI6B,GAAaA,EAAY7B,EAEzD,OAAO8B,GAGT,IAAIC,GAAc,6CAIlBlD,GAAEmD,OAASnD,EAAEoD,MAAQpD,EAAEqD,OAAS,SAASlC,EAAKiB,EAAUkB,EAAM5B,GACjD,MAAPP,IAAaA,MACjBiB,EAAWZ,EAAeY,EAAUV,EAAS,EAC7C,IAEesB,GAFXhC,EAAOG,EAAI0B,UAAY1B,EAAI0B,QAAU7C,EAAEgB,KAAKG,GAC5C0B,GAAU7B,GAAQG,GAAK0B,OACvBd,EAAQ,CACZ,IAAII,UAAUU,OAAS,EAAG,CACxB,IAAKA,EAAQ,KAAM,IAAIU,WAAUL,EACjCI,GAAOnC,EAAIH,EAAOA,EAAKe,KAAWA,
 KAEpC,KAAec,EAARd,EAAgBA,IACrBiB,EAAahC,EAAOA,EAAKe,GAASA,EAClCuB,EAAOlB,EAASkB,EAAMnC,EAAI6B,GAAaA,EAAY7B,EAErD,OAAOmC,IAITtD,EAAEwD,YAAcxD,EAAEyD,MAAQ,SAAStC,EAAKiB,EAAUkB,EAAM5B,GAC3C,MAAPP,IAAaA,MACjBiB,EAAWZ,EAAeY,EAAUV,EAAS,EAC7C,IAEIsB,GAFAhC,EAAOG,EAAI0B,UAAa1B,EAAI0B,QAAU7C,EAAEgB,KAAKG,GAC7CY,GAASf,GAAQG,GAAK0B,MAE1B,IAAIV,UAAUU,OAAS,EAAG,CACxB,IAAKd,EAAO,KAAM,IAAIwB,WAAUL,EAChCI,GAAOnC,EAAIH,EAAOA,IAAOe,KAAWA,GAEtC,KAAOA,KACLiB,EAAahC,EAAOA,EAAKe,GAASA,EAClCuB,EAAOlB,EAASkB,EAAMnC,EAAI6B,GAAaA,EAAY7B,EAErD,OAAOmC,IAITtD,EAAE0D,KAAO1D,EAAE2D,OAAS,SAASxC,EAAKyC,EAAWlC,GAC3C,GAAImC,EAQJ,OAPAD,GAAY5D,EAAEoC,SAASwB,EAAWlC,GAClC1B,EAAE8D,KAAK3C,EAAK,SAASS,EAAOG,EAAOgC,GACjC,MAAIH,GAAUhC,EAAOG,EAAOgC,IAC1BF,EAASjC,GACF,GAFT,SAKKiC,GAKT7D,EAAEgE,OAAShE,EAAEiE,OAAS,SAAS9C,EAAKyC,EAAWlC,GAC7C,GAAIuB,KACJ,OAAW,OAAP9B,EAAoB8B,GACxBW,EAAY5D,EAAEoC,SAASwB,EAAWlC,GAClC1B,EAAE0C,KAAKvB,EAAK,SAASS,EAAOG,EAAOgC,GAC7BH,EAAUhC,EAAOG,EAAOgC,IAAOd,EAAQzC,KAAKoB,KAE3CqB,IAITjD,EAAEkE,OAAS,SAAS/
 C,EAAKyC,EAAWlC,GAClC,MAAO1B,GAAEgE,OAAO7C,EAAKnB,EAAEmE,OAAOnE,EAAEoC,SAASwB,IAAalC,IAKxD1B,EAAEoE,MAAQpE,EAAEqE,IAAM,SAASlD,EAAKyC,EAAWlC,GACzC,GAAW,MAAPP,EAAa,OAAO,CACxByC,GAAY5D,EAAEoC,SAASwB,EAAWlC,EAClC,IAEIK,GAAOiB,EAFPhC,EAAOG,EAAI0B,UAAY1B,EAAI0B,QAAU7C,EAAEgB,KAAKG,GAC5C0B,GAAU7B,GAAQG,GAAK0B,MAE3B,KAAKd,EAAQ,EAAWc,EAARd,EAAgBA,IAE9B,GADAiB,EAAahC,EAAOA,EAAKe,GAASA,GAC7B6B,EAAUzC,EAAI6B,GAAaA,EAAY7B,GAAM,OAAO,CAE3D,QAAO,GAKTnB,EAAE8D,KAAO9D,EAAEsE,IAAM,SAASnD,EAAKyC,EAAWlC,GACxC,GAAW,MAAPP,EAAa,OAAO,CACxByC,GAAY5D,EAAEoC,SAASwB,EAAWlC,EAClC,IAEIK,GAAOiB,EAFPhC,EAAOG,EAAI0B,UAAY1B,EAAI0B,QAAU7C,EAAEgB,KAAKG,GAC5C0B,GAAU7B,GAAQG,GAAK0B,MAE3B,KAAKd,EAAQ,EAAWc,EAARd,EAAgBA,IAE9B,GADAiB,EAAahC,EAAOA,EAAKe,GAASA,EAC9B6B,EAAUzC,EAAI6B,GAAaA,EAAY7B,GAAM,OAAO,CAE1D,QAAO,GAKTnB,EAAEuE,SAAWvE,EAAEwE,QAAU,SAASrD,EAAKsD,GACrC,MAAW,OAAPtD,GAAoB,GACpBA,EAAI0B,UAAY1B,EAAI0B,SAAQ1B,EAAMnB,EAAE0E,OAAOvD,IACxCnB,EAAE2E,QAAQxD,EAAKsD,IAAW,IAInCzE,EAAE4E,OAAS,SAASzD,EAAK0D,GACvB,GAAIC,GAAOrE,E
 AAMoB,KAAKM,UAAW,GAC7B4C,EAAS/E,EAAEsC,WAAWuC,EAC1B,OAAO7E,GAAE8C,IAAI3B,EAAK,SAASS,GACzB,OAAQmD,EAASF,EAASjD,EAAMiD,IAAS3C,MAAMN,EAAOkD,MAK1D9E,EAAEgF,MAAQ,SAAS7D,EAAK8D,GACtB,MAAOjF,GAAE8C,IAAI3B,EAAKnB,EAAEyC,SAASwC,KAK/BjF,EAAEkF,MAAQ,SAAS/D,EAAKgE,GACtB,MAAOnF,GAAEgE,OAAO7C,EAAKnB,EAAEwC,QAAQ2C,KAKjCnF,EAAEoF,UAAY,SAASjE,EAAKgE,GAC1B,MAAOnF,GAAE0D,KAAKvC,EAAKnB,EAAEwC,QAAQ2C,KAI/BnF,EAAEqF,IAAM,SAASlE,EAAKiB,EAAUV,GAC9B,GACIE,GAAO0D,EADPzB,GAAU0B,IAAUC,GAAgBD,GAExC,IAAgB,MAAZnD,GAA2B,MAAPjB,EAAa,CACnCA,EAAMA,EAAI0B,UAAY1B,EAAI0B,OAAS1B,EAAMnB,EAAE0E,OAAOvD,EAClD,KAAK,GAAIyB,GAAI,EAAGC,EAAS1B,EAAI0B,OAAYA,EAAJD,EAAYA,IAC/ChB,EAAQT,EAAIyB,GACRhB,EAAQiC,IACVA,EAASjC,OAIbQ,GAAWpC,EAAEoC,SAASA,EAAUV,GAChC1B,EAAE0C,KAAKvB,EAAK,SAASS,EAAOG,EAAOgC,GACjCuB,EAAWlD,EAASR,EAAOG,EAAOgC,IAC9BuB,EAAWE,GAAgBF,KAAcC,KAAY1B,KAAY0B,OACnE1B,EAASjC,EACT4D,EAAeF,IAIrB,OAAOzB,IAIT7D,EAAEyF,IAAM,SAAStE,EAAKiB,EAAUV,GAC9B,GACIE,GAAO0D,EADPzB,EAAS0B,IAAUC,EAAeD,GAEtC,IAAgB,MAAZnD,GAA2B,MAAPjB,EAAa,CACnC
 A,EAAMA,EAAI0B,UAAY1B,EAAI0B,OAAS1B,EAAMnB,EAAE0E,OAAOvD,EAClD,KAAK,GAAIyB,GAAI,EAAGC,EAAS1B,EAAI0B,OAAYA,EAAJD,EAAYA,IAC/ChB,EAAQT,EAAIyB,GACAiB,EAARjC,IACFiC,EAASjC,OAIbQ,GAAWpC,EAAEoC,SAASA,EAAUV,GAChC1B,EAAE0C,KAAKvB,EAAK,SAASS,EAAOG,EAAOgC,GACjCuB,EAAWlD,EAASR,EAAOG,EAAOgC,IACnByB,EAAXF,GAAwCC,MAAbD,GAAoCC,MAAX1B,KACtDA,EAASjC,EACT4D,EAAeF,IAIrB,OAAOzB,IAKT7D,EAAE0F,QAAU,SAASvE,GAInB,IAAK,GAAewE,GAHhBC,EAAMzE,GAAOA,EAAI0B,UAAY1B,EAAI0B,OAAS1B,EAAMnB,EAAE0E,OAAOvD,GACzD0B,EAAS+C,EAAI/C,OACbgD,EAAW3F,MAAM2C,GACZd,EAAQ,EAAiBc,EAARd,EAAgBA,IACxC4D,EAAO3F,EAAE8F,OAAO,EAAG/D,GACf4D,IAAS5D,IAAO8D,EAAS9D,GAAS8D,EAASF,IAC/CE,EAASF,GAAQC,EAAI7D,EAEvB,OAAO8D,IAMT7F,EAAE+F,OAAS,SAAS5E,EAAK6E,EAAGC,GAC1B,MAAS,OAALD,GAAaC,GACX9E,EAAI0B,UAAY1B,EAAI0B,SAAQ1B,EAAMnB,EAAE0E,OAAOvD,IACxCA,EAAInB,EAAE8F,OAAO3E,EAAI0B,OAAS,KAE5B7C,EAAE0F,QAAQvE,GAAKV,MAAM,EAAGyF,KAAKb,IAAI,EAAGW,KAI7ChG,EAAEmG,OAAS,SAAShF,EAAKiB,EAAUV,GAEjC,MADAU,GAAWpC,EAAEoC,SAASA,EAAUV,GACzB1B,EAAEgF,MAAMhF,EAAE8C,IAAI3B,EAAK,SA
 ASS,EAAOG,EAAOgC,GAC/C,OACEnC,MAAOA,EACPG,MAAOA,EACPqE,SAAUhE,EAASR,EAAOG,EAAOgC,MAElCsC,KAAK,SAASC,EAAMC,GACrB,GAAIC,GAAIF,EAAKF,SACTK,EAAIF,EAAMH,QACd,IAAII,IAAMC,EAAG,CACX,GAAID,EAAIC,GAAKD,QAAW,GAAG,MAAO,EAClC,IAAQC,EAAJD,GAASC,QAAW,GAAG,OAAQ,EAErC,MAAOH,GAAKvE,MAAQwE,EAAMxE,QACxB,SAIN,IAAI2E,GAAQ,SAASC,GACnB,MAAO,UAASxF,EAAKiB,EAAUV,GAC7B,GAAImC,KAMJ,OALAzB,GAAWpC,EAAEoC,SAASA,EAAUV,GAChC1B,EAAE0C,KAAKvB,EAAK,SAASS,EAAOG,GAC1B,GAAIkD,GAAM7C,EAASR,EAAOG,EAAOZ,EACjCwF,GAAS9C,EAAQjC,EAAOqD,KAEnBpB,GAMX7D,GAAE4G,QAAUF,EAAM,SAAS7C,EAAQjC,EAAOqD,GACpCjF,EAAE6G,IAAIhD,EAAQoB,GAAMpB,EAAOoB,GAAKzE,KAAKoB,GAAaiC,EAAOoB,IAAQrD,KAKvE5B,EAAE8G,QAAUJ,EAAM,SAAS7C,EAAQjC,EAAOqD,GACxCpB,EAAOoB,GAAOrD,IAMhB5B,EAAE+G,QAAUL,EAAM,SAAS7C,EAAQjC,EAAOqD,GACpCjF,EAAE6G,IAAIhD,EAAQoB,GAAMpB,EAAOoB,KAAapB,EAAOoB,GAAO,IAK5DjF,EAAEgH,YAAc,SAASC,EAAO9F,EAAKiB,EAAUV,GAC7CU,EAAWpC,EAAEoC,SAASA,EAAUV,EAAS,EAGzC,KAFA,GAAIE,GAAQQ,EAASjB,GACjB+F,EAAM,EAAGC,EAAOF,EAAMpE,OACbsE,EAAND,GAAY,CACjB,GAAIE,GAAMF,EAAMC,IA
 AS,CACrB/E,GAAS6E,EAAMG,IAAQxF,EAAOsF,EAAME,EAAM,EAAQD,EAAOC,EAE/D,MAAOF,IAITlH,EAAEqH,QAAU,SAASlG,GACnB,MAAKA,GACDnB,EAAEc,QAAQK,GAAaV,EAAMoB,KAAKV,GAClCA,EAAI0B,UAAY1B,EAAI0B,OAAe7C,EAAE8C,IAAI3B,EAAKnB,EAAEqC,UAC7CrC,EAAE0E,OAAOvD,OAIlBnB,EAAEsH,KAAO,SAASnG,GAChB,MAAW,OAAPA,EAAoB,EACjBA,EAAI0B,UAAY1B,EAAI0B,OAAS1B,EAAI0B,OAAS7C,EAAEgB,KAAKG,GAAK0B,QAK/D7C,EAAEuH,UAAY,SAASpG,EAAKyC,EAAWlC,GACrCkC,EAAY5D,EAAEoC,SAASwB,EAAWlC,EAClC,IAAI8F,MAAWC,IAIf,OAHAzH,GAAE0C,KAAKvB,EAAK,SAASS,EAAOqD,EAAK9D,IAC9ByC,EAAUhC,EAAOqD,EAAK9D,GAAOqG,EAAOC,GAAMjH,KAAKoB,MAE1C4F,EAAMC,IAShBzH,EAAE0H,MAAQ1H,EAAE2H,KAAO3H,EAAE4H,KAAO,SAASX,EAAOjB,EAAGC,GAC7C,MAAa,OAATgB,MAA2B,GACtB,MAALjB,GAAaC,EAAcgB,EAAM,GAC7B,EAAJjB,KACGvF,EAAMoB,KAAKoF,EAAO,EAAGjB,IAO9BhG,EAAE6H,QAAU,SAASZ,EAAOjB,EAAGC,GAC7B,MAAOxF,GAAMoB,KAAKoF,EAAO,EAAGf,KAAKb,IAAI,EAAG4B,EAAMpE,QAAe,MAALmD,GAAaC,EAAQ,EAAID,MAKnFhG,EAAE8H,KAAO,SAASb,EAAOjB,EAAGC,GAC1B,MAAa,OAATgB,MAA2B,GACtB,MAALjB,GAAaC,EAAcgB,EAAMA,EAAMpE,OAAS,GAC7CpC,EAAMoB,KAAKoF
 ,EAAOf,KAAKb,IAAI4B,EAAMpE,OAASmD,EAAG,KAOtDhG,EAAE+H,KAAO/H,EAAEgI,KAAOhI,EAAEiI,KAAO,SAAShB,EAAOjB,EAAGC,GAC5C,MAAOxF,GAAMoB,KAAKoF,EAAY,MAALjB,GAAaC,EAAQ,EAAID,IAIpDhG,EAAEkI,QAAU,SAASjB,GACnB,MAAOjH,GAAEgE,OAAOiD,EAAOjH,EAAEqC,UAI3B,IAAI8F,GAAU,SAASC,EAAOC,EAASC,EAAQC,GAC7C,GAAIF,GAAWrI,EAAEoE,MAAMgE,EAAOpI,EAAEc,SAC9B,MAAOJ,GAAOwB,MAAMqG,EAAQH,EAE9B,KAAK,GAAIxF,GAAI,EAAGC,EAASuF,EAAMvF,OAAYA,EAAJD,EAAYA,IAAK,CACtD,GAAIhB,GAAQwG,EAAMxF,EACb5C,GAAEc,QAAQc,IAAW5B,EAAEwI,YAAY5G,GAE7ByG,EACT7H,EAAK0B,MAAMqG,EAAQ3G,GAEnBuG,EAAQvG,EAAOyG,EAASC,EAAQC,GAJ3BD,GAAQC,EAAO/H,KAAKoB,GAO7B,MAAO2G,GAITvI,GAAEmI,QAAU,SAASlB,EAAOoB,GAC1B,MAAOF,GAAQlB,EAAOoB,GAAS,OAIjCrI,EAAEyI,QAAU,SAASxB,GACnB,MAAOjH,GAAE0I,WAAWzB,EAAOxG,EAAMoB,KAAKM,UAAW,KAMnDnC,EAAE2I,KAAO3I,EAAE4I,OAAS,SAAS3B,EAAO4B,EAAUzG,EAAUV,GACtD,GAAa,MAATuF,EAAe,QACdjH,GAAE8I,UAAUD,KACfnH,EAAUU,EACVA,EAAWyG,EACXA,GAAW,GAEG,MAAZzG,IAAkBA,EAAWpC,EAAEoC,SAASA,EAAUV,GAGtD,KAAK,GAFDmC,MACAkF,KACKnG,EAAI,EAAGC,EAASoE,EAAMpE,OAAYA,EAAJD,EAAYA
 ,IAAK,CACtD,GAAIhB,GAAQqF,EAAMrE,EAClB,IAAIiG,EACGjG,GAAKmG,IAASnH,GAAOiC,EAAOrD,KAAKoB,GACtCmH,EAAOnH,MACF,IAAIQ,EAAU,CACnB,GAAIkD,GAAWlD,EAASR,EAAOgB,EAAGqE,EAC9BjH,GAAE2E,QAAQoE,EAAMzD,GAAY,IAC9ByD,EAAKvI,KAAK8E,GACVzB,EAAOrD,KAAKoB,QAEL5B,GAAE2E,QAAQd,EAAQjC,GAAS,GACpCiC,EAAOrD,KAAKoB,GAGhB,MAAOiC,IAKT7D,EAAEgJ,MAAQ,WACR,MAAOhJ,GAAE2I,KAAKR,EAAQhG,WAAW,GAAM,QAKzCnC,EAAEiJ,aAAe,SAAShC,GACxB,GAAa,MAATA,EAAe,QAGnB,KAAK,GAFDpD,MACAqF,EAAa/G,UAAUU,OAClBD,EAAI,EAAGC,EAASoE,EAAMpE,OAAYA,EAAJD,EAAYA,IAAK,CACtD,GAAIuG,GAAOlC,EAAMrE,EACjB,KAAI5C,EAAEuE,SAASV,EAAQsF,GAAvB,CACA,IAAK,GAAIC,GAAI,EAAOF,EAAJE,GACTpJ,EAAEuE,SAASpC,UAAUiH,GAAID,GADAC,KAG5BA,IAAMF,GAAYrF,EAAOrD,KAAK2I,IAEpC,MAAOtF,IAKT7D,EAAE0I,WAAa,SAASzB,GACtB,GAAIc,GAAOI,EAAQ1H,EAAMoB,KAAKM,UAAW,IAAI,GAAM,KACnD,OAAOnC,GAAEgE,OAAOiD,EAAO,SAASrF,GAC9B,OAAQ5B,EAAEuE,SAASwD,EAAMnG,MAM7B5B,EAAEqJ,IAAM,SAASpC,GACf,GAAa,MAATA,EAAe,QAGnB,KAAK,GAFDpE,GAAS7C,EAAEqF,IAAIlD,UAAW,UAAUU,OACpCI,EAAU/C,MAAM2C,GACXD,EAAI,EAAOC,EAAJD,EAAYA,IAC1B
 K,EAAQL,GAAK5C,EAAEgF,MAAM7C,UAAWS,EAElC,OAAOK,IAMTjD,EAAEsJ,OAAS,SAASvF,EAAMW,GACxB,GAAY,MAARX,EAAc,QAElB,KAAK,GADDF,MACKjB,EAAI,EAAGC,EAASkB,EAAKlB,OAAYA,EAAJD,EAAYA,IAC5C8B,EACFb,EAAOE,EAAKnB,IAAM8B,EAAO9B,GAEzBiB,EAAOE,EAAKnB,GAAG,IAAMmB,EAAKnB,GAAG,EAGjC,OAAOiB,IAOT7D,EAAE2E,QAAU,SAASsC,EAAOkC,EAAMN,GAChC,GAAa,MAAT5B,EAAe,OAAQ,CAC3B,IAAIrE,GAAI,EAAGC,EAASoE,EAAMpE,MAC1B,IAAIgG,EAAU,CACZ,GAAuB,gBAAZA,GAIT,MADAjG,GAAI5C,EAAEgH,YAAYC,EAAOkC,GAClBlC,EAAMrE,KAAOuG,EAAOvG,GAAK,CAHhCA,GAAe,EAAXiG,EAAe3C,KAAKb,IAAI,EAAGxC,EAASgG,GAAYA,EAMxD,KAAWhG,EAAJD,EAAYA,IAAK,GAAIqE,EAAMrE,KAAOuG,EAAM,MAAOvG,EACtD,QAAQ,GAGV5C,EAAEuJ,YAAc,SAAStC,EAAOkC,EAAMK,GACpC,GAAa,MAATvC,EAAe,OAAQ,CAC3B,IAAIwC,GAAMxC,EAAMpE,MAIhB,KAHmB,gBAAR2G,KACTC,EAAa,EAAPD,EAAWC,EAAMD,EAAO,EAAItD,KAAKT,IAAIgE,EAAKD,EAAO,MAEhDC,GAAO,GAAG,GAAIxC,EAAMwC,KAASN,EAAM,MAAOM,EACnD,QAAQ,GAMVzJ,EAAE0J,MAAQ,SAASC,EAAOC,EAAMC,GAC1B1H,UAAUU,QAAU,IACtB+G,EAAOD,GAAS,EAChBA,EAAQ,GAEVE,EAAOA,GAAQ,CAKf,KAAK,GAHDhH,GAASqD,KAAKb,IAAIa,KAAK4D,
 MAAMF,EAAOD,GAASE,GAAO,GACpDH,EAAQxJ,MAAM2C,GAET4G,EAAM,EAAS5G,EAAN4G,EAAcA,IAAOE,GAASE,EAC9CH,EAAMD,GAAOE,CAGf,OAAOD,GAOT,IAAIK,GAAO,YAKX/J,GAAEkB,KAAO,SAASO,EAAMC,GACtB,GAAIoD,GAAMkF,CACV,IAAI/I,GAAcQ,EAAKP,OAASD,EAAY,MAAOA,GAAWiB,MAAMT,EAAMhB,EAAMoB,KAAKM,UAAW,GAChG,KAAKnC,EAAEsC,WAAWb,GAAO,KAAM,IAAI8B,WAAU,oCAW7C,OAVAuB,GAAOrE,EAAMoB,KAAKM,UAAW,GAC7B6H,EAAQ,WACN,KAAMlK,eAAgBkK,IAAQ,MAAOvI,GAAKS,MAAMR,EAASoD,EAAKpE,OAAOD,EAAMoB,KAAKM,YAChF4H,GAAK5J,UAAYsB,EAAKtB,SACtB,IAAI8J,GAAO,GAAIF,EACfA,GAAK5J,UAAY,IACjB,IAAI0D,GAASpC,EAAKS,MAAM+H,EAAMnF,EAAKpE,OAAOD,EAAMoB,KAAKM,YACrD,OAAInC,GAAEuC,SAASsB,GAAgBA,EACxBoG,IAQXjK,EAAEkK,QAAU,SAASzI,GACnB,GAAI0I,GAAY1J,EAAMoB,KAAKM,UAAW,EACtC,OAAO,YAGL,IAAK,GAFDiI,GAAW,EACXtF,EAAOqF,EAAU1J,QACZmC,EAAI,EAAGC,EAASiC,EAAKjC,OAAYA,EAAJD,EAAYA,IAC5CkC,EAAKlC,KAAO5C,IAAG8E,EAAKlC,GAAKT,UAAUiI,KAEzC,MAAOA,EAAWjI,UAAUU,QAAQiC,EAAKtE,KAAK2B,UAAUiI,KACxD,OAAO3I,GAAKS,MAAMpC,KAAMgF,KAO5B9E,EAAEqK,QAAU,SAASlJ,GACnB,GAAIyB,GAA8BqC,EAA3BpC,EAASV,UAAUU,MAC1B,
 IAAc,GAAVA,EAAa,KAAM,IAAIyH,OAAM,wCACjC,KAAK1H,EAAI,EAAOC,EAAJD,EAAYA,IACtBqC,EAAM9C,UAAUS,GAChBzB,EAAI8D,GAAOjF,EAAEkB,KAAKC,EAAI8D,GAAM9D,EAE9B,OAAOA,IAITnB,EAAEuK,QAAU,SAAS9I,EAAM+I,GACzB,GAAID,GAAU,SAAStF,GACrB,GAAIwF,GAAQF,EAAQE,MAChBC,EAAUF,EAASA,EAAOtI,MAAMpC,KAAMqC,WAAa8C,CAEvD,OADKjF,GAAE6G,IAAI4D,EAAOC,KAAUD,EAAMC,GAAWjJ,EAAKS,MAAMpC,KAAMqC,YACvDsI,EAAMC,GAGf,OADAH,GAAQE,SACDF,GAKTvK,EAAE2K,MAAQ,SAASlJ,EAAMmJ,GACvB,GAAI9F,GAAOrE,EAAMoB,KAAKM,UAAW,EACjC,OAAO0I,YAAW,WAChB,MAAOpJ,GAAKS,MAAM,KAAM4C,IACvB8F,IAKL5K,EAAE8K,MAAQ,SAASrJ,GACjB,MAAOzB,GAAE2K,MAAMzI,MAAMlC,GAAIyB,EAAM,GAAGf,OAAOD,EAAMoB,KAAKM,UAAW,MAQjEnC,EAAE+K,SAAW,SAAStJ,EAAMmJ,EAAMI,GAChC,GAAItJ,GAASoD,EAAMjB,EACfoH,EAAU,KACVC,EAAW,CACVF,KAASA,KACd,IAAIG,GAAQ,WACVD,EAAWF,EAAQI,WAAY,EAAQ,EAAIpL,EAAEqL,MAC7CJ,EAAU,KACVpH,EAASpC,EAAKS,MAAMR,EAASoD,GACxBmG,IAASvJ,EAAUoD,EAAO,MAEjC,OAAO,YACL,GAAIuG,GAAMrL,EAAEqL,KACPH,IAAYF,EAAQI,WAAY,IAAOF,EAAWG,EACvD,IAAIC,GAAYV,GAAQS,EAAMH,EAY9B,OAXAxJ,GAAU5B,KACVgF,EAAO3C,UACU,GAAb
 mJ,GAAkBA,EAAYV,GAChCW,aAAaN,GACbA,EAAU,KACVC,EAAWG,EACXxH,EAASpC,EAAKS,MAAMR,EAASoD,GACxBmG,IAASvJ,EAAUoD,EAAO,OACrBmG,GAAWD,EAAQQ,YAAa,IAC1CP,EAAUJ,WAAWM,EAAOG,IAEvBzH,IAQX7D,EAAEyL,SAAW,SAAShK,EAAMmJ,EAAMc,GAChC,GAAIT,GAASnG,EAAMpD,EAASiK,EAAW9H,EAEnCsH,EAAQ,WACV,GAAIrD,GAAO9H,EAAEqL,MAAQM,CAEVf,GAAP9C,GAAeA,EAAO,EACxBmD,EAAUJ,WAAWM,EAAOP,EAAO9C,IAEnCmD,EAAU,KACLS,IACH7H,EAASpC,EAAKS,MAAMR,EAASoD,GACxBmG,IAASvJ,EAAUoD,EAAO,QAKrC,OAAO,YACLpD,EAAU5B,KACVgF,EAAO3C,UACPwJ,EAAY3L,EAAEqL,KACd,IAAIO,GAAUF,IAAcT,CAO5B,OANKA,KAASA,EAAUJ,WAAWM,EAAOP,IACtCgB,IACF/H,EAASpC,EAAKS,MAAMR,EAASoD,GAC7BpD,EAAUoD,EAAO,MAGZjB,IAOX7D,EAAE6L,KAAO,SAASpK,EAAMqK,GACtB,MAAO9L,GAAEkK,QAAQ4B,EAASrK,IAI5BzB,EAAEmE,OAAS,SAASP,GAClB,MAAO,YACL,OAAQA,EAAU1B,MAAMpC,KAAMqC,aAMlCnC,EAAE+L,QAAU,WACV,GAAIjH,GAAO3C,UACPwH,EAAQ7E,EAAKjC,OAAS,CAC1B,OAAO,YAGL,IAFA,GAAID,GAAI+G,EACJ9F,EAASiB,EAAK6E,GAAOzH,MAAMpC,KAAMqC,WAC9BS,KAAKiB,EAASiB,EAAKlC,GAAGf,KAAK/B,KAAM+D,EACxC,OAAOA,KAKX7D,EAAEgM,MAAQ,SAASC,EAAOxK,GACxB,MAAO,
 YACL,QAAMwK,EAAQ,EACLxK,EAAKS,MAAMpC,KAAMqC,WAD1B,SAOJnC,EAAEkM,OAAS,SAASD,EAAOxK,GACzB,GAAI6B,EACJ,OAAO,YAML,QALM2I,EAAQ,EACZ3I,EAAO7B,EAAKS,MAAMpC,KAAMqC,WAExBV,EAAO,KAEF6B,IAMXtD,EAAEmM,KAAOnM,EAAEkK,QAAQlK,EAAEkM,OAAQ,GAO7BlM,EAAEgB,KAAO,SAASG,GAChB,IAAKnB,EAAEuC,SAASpB,GAAM,QACtB,IAAIJ,EAAY,MAAOA,GAAWI,EAClC,IAAIH,KACJ,KAAK,GAAIiE,KAAO9D,GAASnB,EAAE6G,IAAI1F,EAAK8D,IAAMjE,EAAKR,KAAKyE,EACpD,OAAOjE,IAIThB,EAAE0E,OAAS,SAASvD,GAIlB,IAAK,GAHDH,GAAOhB,EAAEgB,KAAKG,GACd0B,EAAS7B,EAAK6B,OACd6B,EAASxE,MAAM2C,GACVD,EAAI,EAAOC,EAAJD,EAAYA,IAC1B8B,EAAO9B,GAAKzB,EAAIH,EAAK4B,GAEvB,OAAO8B,IAIT1E,EAAEoM,MAAQ,SAASjL,GAIjB,IAAK,GAHDH,GAAOhB,EAAEgB,KAAKG,GACd0B,EAAS7B,EAAK6B,OACduJ,EAAQlM,MAAM2C,GACTD,EAAI,EAAOC,EAAJD,EAAYA,IAC1BwJ,EAAMxJ,IAAM5B,EAAK4B,GAAIzB,EAAIH,EAAK4B,IAEhC,OAAOwJ,IAITpM,EAAEqM,OAAS,SAASlL,GAGlB,IAAK,GAFD0C,MACA7C,EAAOhB,EAAEgB,KAAKG,GACTyB,EAAI,EAAGC,EAAS7B,EAAK6B,OAAYA,EAAJD,EAAYA,IAChDiB,EAAO1C,EAAIH,EAAK4B,KAAO5B,EAAK4B,EAE9B,OAAOiB,IAKT7D,EAAEsM,UAAYtM,EAAEuM,QAAU,SAAS
 pL,GACjC,GAAIqL,KACJ,KAAK,GAAIvH,KAAO9D,GACVnB,EAAEsC,WAAWnB,EAAI8D,KAAOuH,EAAMhM,KAAKyE,EAEzC,OAAOuH,GAAMnG,QAIfrG,EAAEyM,OAAS,SAAStL,GAClB,IAAKnB,EAAEuC,SAASpB,GAAM,MAAOA,EAE7B,KAAK,GADDuL,GAAQC,EACH/J,EAAI,EAAGC,EAASV,UAAUU,OAAYA,EAAJD,EAAYA,IAAK,CAC1D8J,EAASvK,UAAUS,EACnB,KAAK+J,IAAQD,GACP9L,EAAeiB,KAAK6K,EAAQC,KAC5BxL,EAAIwL,GAAQD,EAAOC,IAI3B,MAAOxL,IAITnB,EAAE4M,KAAO,SAASzL,EAAKiB,EAAUV,GAC/B,GAAiBuD,GAAbpB,IACJ,IAAW,MAAP1C,EAAa,MAAO0C,EACxB,IAAI7D,EAAEsC,WAAWF,GAAW,CAC1BA,EAAWZ,EAAeY,EAAUV,EACpC,KAAKuD,IAAO9D,GAAK,CACf,GAAIS,GAAQT,EAAI8D,EACZ7C,GAASR,EAAOqD,EAAK9D,KAAM0C,EAAOoB,GAAOrD,QAE1C,CACL,GAAIZ,GAAON,EAAOwB,SAAUzB,EAAMoB,KAAKM,UAAW,GAClDhB,GAAM,GAAId,QAAOc,EACjB,KAAK,GAAIyB,GAAI,EAAGC,EAAS7B,EAAK6B,OAAYA,EAAJD,EAAYA,IAChDqC,EAAMjE,EAAK4B,GACPqC,IAAO9D,KAAK0C,EAAOoB,GAAO9D,EAAI8D,IAGtC,MAAOpB,IAIT7D,EAAE6M,KAAO,SAAS1L,EAAKiB,EAAUV,GAC/B,GAAI1B,EAAEsC,WAAWF,GACfA,EAAWpC,EAAEmE,OAAO/B,OACf,CACL,GAAIpB,GAAOhB,EAAE8C,IAAIpC,EAAOwB,SAAUzB,EAAMoB,KAAKM,UAAW,IAAK2K,OAC7D1K,GAA
 W,SAASR,EAAOqD,GACzB,OAAQjF,EAAEuE,SAASvD,EAAMiE,IAG7B,MAAOjF,GAAE4M,KAAKzL,EAAKiB,EAAUV,IAI/B1B,EAAE+M,SAAW,SAAS5L,GACpB,IAAKnB,EAAEuC,SAASpB,GAAM,MAAOA,EAC7B,KAAK,GAAIyB,GAAI,EAAGC,EAASV,UAAUU,OAAYA,EAAJD,EAAYA,IAAK,CAC1D,GAAI8J,GAASvK,UAAUS,EACvB,KAAK,GAAI+J,KAAQD,GACXvL,EAAIwL,SAAe,KAAGxL,EAAIwL,GAAQD,EAAOC,IAGjD,MAAOxL,IAITnB,EAAEgN,MAAQ,SAAS7L,GACjB,MAAKnB,GAAEuC,SAASpB,GACTnB,EAAEc,QAAQK,GAAOA,EAAIV,QAAUT,EAAEyM,UAAWtL,GADtBA,GAO/BnB,EAAEiN,IAAM,SAAS9L,EAAK+L,GAEpB,MADAA,GAAY/L,GACLA,EAIT,IAAIgM,GAAK,SAAS3G,EAAGC,EAAG2G,EAAQC,GAG9B,GAAI7G,IAAMC,EAAG,MAAa,KAAND,GAAW,EAAIA,IAAM,EAAIC,CAE7C,IAAS,MAALD,GAAkB,MAALC,EAAW,MAAOD,KAAMC,CAErCD,aAAaxG,KAAGwG,EAAIA,EAAEpF,UACtBqF,YAAazG,KAAGyG,EAAIA,EAAErF,SAE1B,IAAIkM,GAAY3M,EAASkB,KAAK2E,EAC9B,IAAI8G,IAAc3M,EAASkB,KAAK4E,GAAI,OAAO,CAC3C,QAAQ6G,GAEN,IAAK,kBAEL,IAAK,kBAGH,MAAO,GAAK9G,GAAM,GAAKC,CACzB,KAAK,kBAGH,OAAKD,KAAOA,GAAWC,KAAOA,EAEhB,KAAND,EAAU,GAAKA,IAAM,EAAIC,GAAKD,KAAOC,CAC/C,KAAK,gBACL,IAAK,mBAIH,OAAQD,KAAOC,EAEnB,GAAgB,gBAALD
 ,IAA6B,gBAALC,GAAe,OAAO,CAIzD,KADA,GAAI5D,GAASuK,EAAOvK,OACbA,KAGL,GAAIuK,EAAOvK,KAAY2D,EAAG,MAAO6G,GAAOxK,KAAY4D,CAItD,IAAI8G,GAAQ/G,EAAEgH,YAAaC,EAAQhH,EAAE+G,WACrC,IACED,IAAUE,GAEV,eAAiBjH,IAAK,eAAiBC,MACrCzG,EAAEsC,WAAWiL,IAAUA,YAAiBA,IACxCvN,EAAEsC,WAAWmL,IAAUA,YAAiBA,IAE1C,OAAO,CAGTL,GAAO5M,KAAKgG,GACZ6G,EAAO7M,KAAKiG,EACZ,IAAIa,GAAMzD,CAEV,IAAkB,mBAAdyJ,GAIF,GAFAhG,EAAOd,EAAE3D,OACTgB,EAASyD,IAASb,EAAE5D,OAGlB,KAAOyE,MACCzD,EAASsJ,EAAG3G,EAAEc,GAAOb,EAAEa,GAAO8F,EAAQC,WAG3C,CAEL,GAAsBpI,GAAlBjE,EAAOhB,EAAEgB,KAAKwF,EAIlB,IAHAc,EAAOtG,EAAK6B,OAEZgB,EAAS7D,EAAEgB,KAAKyF,GAAG5D,SAAWyE,EAE5B,KAAOA,MAELrC,EAAMjE,EAAKsG,GACLzD,EAAS7D,EAAE6G,IAAIJ,EAAGxB,IAAQkI,EAAG3G,EAAEvB,GAAMwB,EAAExB,GAAMmI,EAAQC,OAOjE,MAFAD,GAAOM,MACPL,EAAOK,MACA7J,EAIT7D,GAAE2N,QAAU,SAASnH,EAAGC,GACtB,MAAO0G,GAAG3G,EAAGC,UAKfzG,EAAE4N,QAAU,SAASzM,GACnB,GAAW,MAAPA,EAAa,OAAO,CACxB,IAAInB,EAAEc,QAAQK,IAAQnB,EAAE6N,SAAS1M,IAAQnB,EAAEwI,YAAYrH,GAAM,MAAsB,KAAfA,EAAI0B,MACxE,KAAK,GAAIoC,KAAO9D,GAAK,GAAInB,EAAE6G,IAA
 I1F,EAAK8D,GAAM,OAAO,CACjD,QAAO,GAITjF,EAAE8N,UAAY,SAAS3M,GACrB,SAAUA,GAAwB,IAAjBA,EAAI4M,WAKvB/N,EAAEc,QAAUD,GAAiB,SAASM,GACpC,MAA8B,mBAAvBR,EAASkB,KAAKV,IAIvBnB,EAAEuC,SAAW,SAASpB,GACpB,GAAI6M,SAAc7M,EAClB,OAAgB,aAAT6M,GAAgC,WAATA,KAAuB7M,GAIvDnB,EAAE0C,MAAM,YAAa,WAAY,SAAU,SAAU,OAAQ,UAAW,SAASuL,GAC/EjO,EAAE,KAAOiO,GAAQ,SAAS9M,GACxB,MAAOR,GAASkB,KAAKV,KAAS,WAAa8M,EAAO,OAMjDjO,EAAEwI,YAAYrG,aACjBnC,EAAEwI,YAAc,SAASrH,GACvB,MAAOnB,GAAE6G,IAAI1F,EAAK,YAKH,kBAAR,MACTnB,EAAEsC,WAAa,SAASnB,GACtB,MAAqB,kBAAPA,KAAqB,IAKvCnB,EAAEkO,SAAW,SAAS/M,GACpB,MAAO+M,UAAS/M,KAASgN,MAAMC,WAAWjN,KAI5CnB,EAAEmO,MAAQ,SAAShN,GACjB,MAAOnB,GAAEqO,SAASlN,IAAQA,KAASA,GAIrCnB,EAAE8I,UAAY,SAAS3H,GACrB,MAAOA,MAAQ,GAAQA,KAAQ,GAAgC,qBAAvBR,EAASkB,KAAKV,IAIxDnB,EAAEsO,OAAS,SAASnN,GAClB,MAAe,QAARA,GAITnB,EAAEuO,YAAc,SAASpN,GACvB,MAAOA,SAAa,IAKtBnB,EAAE6G,IAAM,SAAS1F,EAAK8D,GACpB,MAAc,OAAP9D,GAAeP,EAAeiB,KAAKV,EAAK8D,IAQjDjF,EAAEwO,WAAa,WAEb,MADA3O,GAAKG,EAAID,EACFD,MAITE,EAAEqC,SAAW,SAAST,GACpB,MAAOA,IAGT5B,EAAEyO,SA
 AW,SAAS7M,GACpB,MAAO,YACL,MAAOA,KAIX5B,EAAE0O,KAAO,aAET1O,EAAEyC,SAAW,SAASwC,GACpB,MAAO,UAAS9D,GACd,MAAOA,GAAI8D,KAKfjF,EAAEwC,QAAU,SAAS2C,GACnB,GAAIiH,GAAQpM,EAAEoM,MAAMjH,GAAQtC,EAASuJ,EAAMvJ,MAC3C,OAAO,UAAS1B,GACd,GAAW,MAAPA,EAAa,OAAQ0B,CACzB1B,GAAM,GAAId,QAAOc,EACjB,KAAK,GAAIyB,GAAI,EAAOC,EAAJD,EAAYA,IAAK,CAC/B,GAAI+L,GAAOvC,EAAMxJ,GAAIqC,EAAM0J,EAAK,EAChC,IAAIA,EAAK,KAAOxN,EAAI8D,MAAUA,IAAO9D,IAAM,OAAO,EAEpD,OAAO,IAKXnB,EAAEiM,MAAQ,SAASjG,EAAG5D,EAAUV,GAC9B,GAAIkN,GAAQ1O,MAAMgG,KAAKb,IAAI,EAAGW,GAC9B5D,GAAWZ,EAAeY,EAAUV,EAAS,EAC7C,KAAK,GAAIkB,GAAI,EAAOoD,EAAJpD,EAAOA,IAAKgM,EAAMhM,GAAKR,EAASQ,EAChD,OAAOgM,IAIT5O,EAAE8F,OAAS,SAASL,EAAKJ,GAKvB,MAJW,OAAPA,IACFA,EAAMI,EACNA,EAAM,GAEDA,EAAMS,KAAK2I,MAAM3I,KAAKJ,UAAYT,EAAMI,EAAM,KAIvDzF,EAAEqL,IAAMyD,KAAKzD,KAAO,WAClB,OAAO,GAAIyD,OAAOC,UAIpB,IAAIC,IACFC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,UAEHC,EAAcvP,EAAEqM,OAAO2C,GAGvBQ,EAAgB,SAAS1M,GAC3B,GAAI2M,GAAU,SAASC,GACrB,MAAO5M,GAAI4M,IAGThD,EAAS,MAAQ1M,EAAEgB,KAAK8B
 ,GAAK6M,KAAK,KAAO,IACzCC,EAAaC,OAAOnD,GACpBoD,EAAgBD,OAAOnD,EAAQ,IACnC,OAAO,UAASqD,GAEd,MADAA,GAAmB,MAAVA,EAAiB,GAAK,GAAKA,EAC7BH,EAAWI,KAAKD,GAAUA,EAAOE,QAAQH,EAAeL,GAAWM,GAG9E/P,GAAEkQ,OAASV,EAAcR,GACzBhP,EAAEmQ,SAAWX,EAAcD,GAI3BvP,EAAE6D,OAAS,SAASyF,EAAQ7G,GAC1B,GAAc,MAAV6G,EAAgB,WAAY,EAChC,IAAI1H,GAAQ0H,EAAO7G,EACnB,OAAOzC,GAAEsC,WAAWV,GAAS0H,EAAO7G,KAAcb,EAKpD,IAAIwO,GAAY,CAChBpQ,GAAEqQ,SAAW,SAASC,GACpB,GAAIC,KAAOH,EAAY,EACvB,OAAOE,GAASA,EAASC,EAAKA,GAKhCvQ,EAAEwQ,kBACAC,SAAc,kBACdC,YAAc,mBACdR,OAAc,mBAMhB,IAAIS,GAAU,OAIVC,GACFvB,IAAU,IACVwB,KAAU,KACVC,KAAU,IACVC,KAAU,IACVC,SAAU,QACVC,SAAU,SAGRxB,EAAU,4BAEVyB,EAAa,SAASxB,GACxB,MAAO,KAAOkB,EAAQlB,GAOxB1P,GAAEmR,SAAW,SAASC,EAAMC,EAAUC,IAC/BD,GAAYC,IAAaD,EAAWC,GACzCD,EAAWrR,EAAE+M,YAAasE,EAAUrR,EAAEwQ,iBAGtC,IAAIe,GAAU1B,SACXwB,EAASnB,QAAUS,GAASjE,QAC5B2E,EAASX,aAAeC,GAASjE,QACjC2E,EAASZ,UAAYE,GAASjE,QAC/BiD,KAAK,KAAO,KAAM,KAGhB5N,EAAQ,EACR2K,EAAS,QACb0E,GAAKnB,QAAQsB,EAAS,SAAS7B,EAAOQ,EAAQQ,EAAaD,EAAUe,GAanE,MAZA9E,IAAU0E,EAAK3Q,
 MAAMsB,EAAOyP,GAAQvB,QAAQR,EAASyB,GACrDnP,EAAQyP,EAAS9B,EAAM7M,OAEnBqN,EACFxD,GAAU,cAAgBwD,EAAS,iCAC1BQ,EACThE,GAAU,cAAgBgE,EAAc,uBAC/BD,IACT/D,GAAU,OAAS+D,EAAW,YAIzBf,IAEThD,GAAU,OAGL2E,EAASI,WAAU/E,EAAS,mBAAqBA,EAAS,OAE/DA,EAAS,2CACP,oDACAA,EAAS,eAEX,KACE,GAAIgF,GAAS,GAAInR,UAAS8Q,EAASI,UAAY,MAAO,IAAK/E,GAC3D,MAAOiF,GAEP,KADAA,GAAEjF,OAASA,EACLiF,EAGR,GAAIR,GAAW,SAASS,GACtB,MAAOF,GAAO7P,KAAK/B,KAAM8R,EAAM5R,IAI7B6R,EAAWR,EAASI,UAAY,KAGpC,OAFAN,GAASzE,OAAS,YAAcmF,EAAW,OAASnF,EAAS,IAEtDyE,GAITnR,EAAE8R,MAAQ,SAAS3Q,GACjB,GAAI4Q,GAAW/R,EAAEmB,EAEjB,OADA4Q,GAASC,QAAS,EACXD,EAUT,IAAIlO,GAAS,SAAS1C,GACpB,MAAOrB,MAAKkS,OAAShS,EAAEmB,GAAK2Q,QAAU3Q,EAIxCnB,GAAEiS,MAAQ,SAAS9Q,GACjBnB,EAAE0C,KAAK1C,EAAEsM,UAAUnL,GAAM,SAAS8M,GAChC,GAAIxM,GAAOzB,EAAEiO,GAAQ9M,EAAI8M,EACzBjO,GAAEG,UAAU8N,GAAQ,WAClB,GAAInJ,IAAQhF,KAAKsB,SAEjB,OADAZ,GAAK0B,MAAM4C,EAAM3C,WACV0B,EAAOhC,KAAK/B,KAAM2B,EAAKS,MAAMlC,EAAG8E,QAM7C9E,EAAEiS,MAAMjS,GAGRA,EAAE0C,MAAM,MAAO,OAAQ,UAAW,QAAS,OAAQ,SAAU,WAAY,SAASuL,GAChF,GAAIpJ,GAA
 S5E,EAAWgO,EACxBjO,GAAEG,UAAU8N,GAAQ,WAClB,GAAI9M,GAAMrB,KAAKsB,QAGf,OAFAyD,GAAO3C,MAAMf,EAAKgB,WACJ,UAAT8L,GAA6B,WAATA,GAAqC,IAAf9M,EAAI0B,cAAqB1B,GAAI,GACrE0C,EAAOhC,KAAK/B,KAAMqB,MAK7BnB,EAAE0C,MAAM,SAAU,OAAQ,SAAU,SAASuL,GAC3C,GAAIpJ,GAAS5E,EAAWgO,EACxBjO,GAAEG,UAAU8N,GAAQ,WAClB,MAAOpK,GAAOhC,KAAK/B,KAAM+E,EAAO3C,MAAMpC,KAAKsB,SAAUe,eAKzDnC,EAAEG,UAAUyB,MAAQ,WAClB,MAAO9B,MAAKsB,UAUQ,kBAAX8Q,SAAyBA,OAAOC,KACzCD,OAAO,gBAAkB,WACvB,MAAOlS,OAGX6B,KAAK/B"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/community/committers.md
----------------------------------------------------------------------
diff --git a/docs/website/community/committers.md b/docs/website/community/committers.md
new file mode 100644
index 0000000..944ad0b
--- /dev/null
+++ b/docs/website/community/committers.md
@@ -0,0 +1,119 @@
+---
+layout: website-normal
+title: Committer's Guide
+navgroup: community
+---
+
+The Apache Brooklyn Git repositories are hosted in the ASF infrastructure and mirrored to Github. This is the current
+repository layout:
+
+- [Apache](https://git-wip-us.apache.org/repos/asf?s=incubator-brooklyn) - the main and official repository
+- [GitHub](https://github.com/apache/incubator-brooklyn) - mirror of the ASF repository, used to accept contributions
+  and do code reviews
+
+
+Before
+------
+
+For everything except the most trivial changes, the submitter must have a CLA on file. Check the [list of Apache
+committers, and non-commiters with ICLAs on record](https://people.apache.org/committer-index.html) and prompt the
+contributor to file an appropriate CLA if required.
+
+For all significant changes, there must be a Jira issue. If a Jira issue is not referenced in the PR and/or commit
+messages, prompt the contributor to open a Jira issue.
+
+
+Rules of thumb
+--------------
+
+1. Every contribution is a piece of intellectual property.  This is the precious sustenance that nourishes our
+   project.  Please treat it with respect.
+2. Always give credit where it is due, ensure every merged commit reflects properly the individual who authored that
+   commit.  Preserve both the name and email address.
+3. Ensure your name and email address are there as the committer prior to pushing it to the Apache repositories.
+4. Always strive for linear commit history, avoid merge commits while pulling in contributor's changes.
+
+
+Setting up your repository
+--------------------------
+
+Clone the canonical ASF repo using this command. The `--origin` option tells git to name the remote `apache` instead
+of the default, `origin`; this will reduce ambiguity when we later add a second remote upstream.
+
+    git clone --origin apache https://git-wip-us.apache.org/repos/asf/incubator-brooklyn.git
+
+Add a second remote, for the GitHub repository.
+
+    git remote add github https://github.com/apache/incubator-brooklyn.git
+
+For the GitHub remote, add an additional `fetch` reference which will cause
+every pull request to be made available as a remote branch in your workspace.
+
+    git config --local --add remote.github.fetch '+refs/pull/*/head:refs/remotes/github/pr/*'
+
+Finally, run `git fetch --all` to update from all remote repositories - you will see all the pull requests appear:
+
+    * [new ref]         refs/pull/98/head -> github/pr/98
+    * [new ref]         refs/pull/99/head -> github/pr/99
+
+
+Merging a pull request
+----------------------
+
+Fetch the latest remote branches, which will cause a remote branch for the PR to become available to you.
+
+    git fetch --all
+
+If you want to inspect the PR and/or run tests, check out the branch:
+
+    git checkout github/pr/1234
+
+To perform the merge, first update your master branch to the latest:
+
+    git checkout master
+    git pull --rebase
+
+Then merge and push:
+
+    git merge --no-ff -m 'This closes #1234' github/pr/1234
+    git push apache master
+
+Note that this commit message is important, as this is what will trigger the
+pull request to be automatically closed, and the `--no-ff` means that a merge
+commit will always be created.
+
+
+Alternative options
+-------------------
+
+### Adding the remote reference to the contributor's repository
+
+Fetch the branch of the user you want to merge from
+
+    git fetch https://github.com/user-to-merge-from/incubator-brooklyn.git branch-to-merge-from
+
+If you commonly merge from a particular user, you'll want to add their repo as a remote to make fetching branches easier.
+
+    git remote add user-to-merge-from https://github.com/user-to-merge-from/incubator-brooklyn.git
+    git fetch user-to-merge-from
+
+
+### Merging from a patch file
+
+Save the patch from the Github patch link (just append '.patch' to the pull request link to get it). This patch will
+keep the authorship of the commit, so we should use it instead of the diff.
+
+Apply the patch preserving the original author:
+
+    git am pull-request-9876.patch
+
+
+Additional information
+----------------------
+
+Particularly for new committers, you may find the following information useful:
+
+* [Guide for new project
+  committers](https://www.apache.org/dev/new-committers-guide.html)
+* [Committers FAQ](https://www.apache.org/dev/committers.html)
+* [Git at Apache](https://git-wip-us.apache.org/)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/community/fork-after.png
----------------------------------------------------------------------
diff --git a/docs/website/community/fork-after.png b/docs/website/community/fork-after.png
new file mode 100644
index 0000000..3148ff3
Binary files /dev/null and b/docs/website/community/fork-after.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/community/fork-before.png
----------------------------------------------------------------------
diff --git a/docs/website/community/fork-before.png b/docs/website/community/fork-before.png
new file mode 100644
index 0000000..276eb9d
Binary files /dev/null and b/docs/website/community/fork-before.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/community/fork-new.png
----------------------------------------------------------------------
diff --git a/docs/website/community/fork-new.png b/docs/website/community/fork-new.png
new file mode 100644
index 0000000..34c2053
Binary files /dev/null and b/docs/website/community/fork-new.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/community/how-to-contribute-docs.md
----------------------------------------------------------------------
diff --git a/docs/website/community/how-to-contribute-docs.md b/docs/website/community/how-to-contribute-docs.md
new file mode 100644
index 0000000..3d7a047
--- /dev/null
+++ b/docs/website/community/how-to-contribute-docs.md
@@ -0,0 +1,140 @@
+---
+layout: website-normal
+title: How to contribute documentation
+navgroup: community
+---
+
+Welcome and thank you for your interest in contributing to Apache Brooklyn! This guide will take you through the
+process of making contributions to the Apache Brooklyn website and documentation.
+
+
+Two types of documentation
+--------------------------
+
+The Brooklyn documentation is split into two parts:
+
+- **The main website and shared documentation**. This covers the root website
+  and all pages that are not part of the version-specific user manual. This
+  guide describes how to work with this documentation.
+- **Version-specific user manual**. These pages have a URL with a path that
+  begins /v/*version-number* - for example,
+  https://brooklyn.incubator.apache.org/v/0.7.0-M1. This documentation is part
+  of the main source code, so please refer to the [How to contribute source
+  code](how-to-contribute.html) for help with modifying these pages.
+
+
+Contributor license agreement
+-----------------------------
+
+Apache Brooklyn is licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). All
+contributions will be under this license, so please read and understand this license before contributing.
+
+For all but the most trivial patches, you are required to file a Contributor License Agreement with the Apache
+Software Foundation. Please read the [guide to CLAs](https://www.apache.org/licenses/#clas) to find out how to file a
+CLA with the Foundation.
+
+
+Before you start
+----------------
+
+### Join the community
+
+If it's your first contribution or it's a particularly big or complex contribution, things typically go much more
+smoothly when they start off with a conversation. Visit our [Community](index.html) page to see how you can contact
+us via IRC or email.
+
+### Create an issue in Jira
+
+Your first step is to create or find an issue in [Brooklyn's Jira](https://issues.apache.org/jira/browse/BROOKLYN)
+for your feature request or fix. For small changes this isn't necessary, but it's good to see if your change fixes an
+existing issue anyway.
+
+
+Contributing using *Edit this page*
+-----------------------------------
+
+Most of the pages on the website have an *Edit this page* button at the bottom.
+Clicking this button will take you to the GitHub repository and immediately
+begin editing the file. This approach makes editing easy, as you do not need to
+clone the repository to your workstation and make changes there; they can be
+changed directly on the GitHub website for the repository.
+
+Once you have made your edits, there is a short form titled *Propose file
+change*. Provide a short description of the change in the first box; optionally,
+provide a longer description in the second box. If your change fixes or
+addresses a Jira issue, be sure to mention it. Finally, click the *Propose file
+change* button to prepare a pull request, and then *Create pull request* to
+formally submit your change request and notify the dev team of your proposed
+change.
+
+The website is not a Wiki and your changes will not appear immediately. The
+community mailing list will receive a notification of your proposed change, and
+an Apache Brooklyn committer will review your changes. Once your change has
+passed review, the committer will merge it and re-publish the public website.
+
+While the *Edit this page* button is great for quickly editing a single page, if
+you want to do anything that involves editing multiple pages, you will need to
+fork and clone the repository and make the changes on your own workstation - see
+the next section for information on this.
+
+
+Contributing using GitHub
+-------------------------
+
+Our GitHub repository is located at
+[https://github.com/apache/incubator-brooklyn-site](https://github.com/apache/incubator-brooklyn-site)
+
+Your commit messages must properly describes the changes that have been made and
+their purpose ([here are some
+guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)).
+If your contributions fix a Jira issue, then ensure that you reference the issue
+(like `BROOKLYN-9876`) in the commit message.
+
+Create a pull request (PR) in GitHub for the change you're interested in making.
+The comment section of the PR must contain a link to the Jira issue (if it has
+one).
+
+Some good references for working with GitHub are below.  We ask that you keep
+your change rebased to master as much as possible, and we will ask you to rebase
+again if master has moved before accepting your patch.
+
+- [Setting Up Git with GitHub](https://help.github.com/articles/set-up-git)
+- [Forking a Repository](https://help.github.com/articles/fork-a-repo)
+- [Submitting Pull Requests](https://help.github.com/articles/using-pull-requests)
+- [Rebasing your Branch](https://help.github.com/articles/interactive-rebase)
+
+Finally, add a comment in the Jira issue with a link to the pull request so we
+know the code is ready to be reviewed.
+
+### Reviews
+
+The Apache Brooklyn community will review your pull request before it is merged.
+This process can take a while, so please be patient. If we are slow to respond,
+please feel free to post a reminder to the PR, Jira issue, IRC channel or
+mailing list - see the [Community](index.html) page to see how to contact us.
+
+During the review process you may be asked to make some changes to your
+submission. While working through feedback, it can be beneficial to create new
+commits so the incremental change is obvious.  This can also lead to a complex
+set of commits, and having an atomic change per commit is preferred in the end.
+Use your best judgement and work with your reviewer as to when you should revise
+a commit or create a new one.
+
+A pull request is considered ready to be merged once it gets at lease one +1
+from a committer. Once all the changes have been completed and the pull request
+is accepted, you may be asked to rebase it against the latest code. You may also
+wish to squash some commits together and make other history revisions, to leave
+the commit history clean and easily understood.
+
+
+### Contributing without using GitHub
+
+If you prefer to not use GitHub, then that is fine - we are also happy to accept
+patches attached to a Jira issue.  Our canonical repository is located at
+`https://git-wip-us.apache.org/repos/asf/incubator-brooklyn.git`; for example:
+
+    $ git clone https://git-wip-us.apache.org/repos/asf/incubator-brooklyn.git
+
+When producing patches, please use `git format-patch` or a similar mechanism -
+this will ensure that you are properly attributed as the author of the patch
+when a committer merges it.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/community/how-to-contribute.md
----------------------------------------------------------------------
diff --git a/docs/website/community/how-to-contribute.md b/docs/website/community/how-to-contribute.md
new file mode 100644
index 0000000..d80ae80
--- /dev/null
+++ b/docs/website/community/how-to-contribute.md
@@ -0,0 +1,85 @@
+---
+layout: website-normal
+title: How to contribute
+navgroup: community
+---
+
+Welcome and thank you for your interest in contributing to Apache Brooklyn! This guide will take you through the
+process of making contributions to the Apache Brooklyn code base.
+
+
+Contributor license agreement
+-----------------------------
+
+Apache Brooklyn is licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). All
+contributions will be under this license, so please read and understand this license before contributing.
+
+For all but the most trivial patches, you are required to file a Contributor License Agreement with the Apache
+Software Foundation. Please read the [guide to CLAs](https://www.apache.org/licenses/#clas) to find out how to file a
+CLA with the Foundation.
+
+
+Before you start
+----------------
+
+### Join the community
+
+If it's your first contribution or it's a particularly big or complex contribution, things typically go much more
+smoothly when they start off with a conversation. Visit our [Community](index.html) page to see how you can contact
+us via IRC or email.
+
+### Create an issue in Jira
+
+Your first step is to create or find an issue in [Brooklyn's Jira](https://issues.apache.org/jira/browse/BROOKLYN)
+for your feature request or fix. For small changes this isn't necessary, but it's good to see if your change fixes an
+existing issue anyway.
+
+
+### Contributing using GitHub
+
+This is our preferred way for contributing code. Our GitHub repository is located at
+[https://github.com/apache/incubator-brooklyn](https://github.com/apache/incubator-brooklyn)
+
+Your commit messages must properly describes the changes that have been made and their purpose
+([here are some guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)). If your
+contributions fix a Jira issue, then ensure that you reference the issue (like `BROOKLYN-9876`) in the commit message.
+
+Create a pull request (PR) in GitHub for the change you're interested in making. The comment section of the PR must
+contain a link to the Jira issue (if it has one).
+
+Some good references for working with GitHub are below.  We ask that you keep your change rebased to master as much
+as possible, and we will ask you to rebase again if master has moved before accepting your patch.
+
+- [Setting Up Git with GitHub](https://help.github.com/articles/set-up-git)
+- [Forking a Repository](https://help.github.com/articles/fork-a-repo)
+- [Submitting Pull Requests](https://help.github.com/articles/using-pull-requests)
+- [Rebasing your Branch](https://help.github.com/articles/interactive-rebase)
+
+Finally, add a comment in the Jira issue with a link to the pull request so we know the code is ready to be reviewed.
+
+### Reviews
+
+The Apache Brooklyn community will review your pull request before it is merged. This process can take a while, so
+please be patient. If we are slow to respond, please feel free to post a reminder to the PR, Jira issue, IRC channel
+or mailing list - see the [Community](index.html) page to see how to contact us.
+
+During the review process you may be asked to make some changes to your submission. While working through feedback,
+it can be beneficial to create new commits so the incremental change is obvious.  This can also lead to a complex set
+of commits, and having an atomic change per commit is preferred in the end.  Use your best judgement and work with
+your reviewer as to when you should revise a commit or create a new one.
+
+A pull request is considered ready to be merged once it gets at lease one +1 from a committer. Once all the changes
+have been completed and the pull request is accepted, you may be asked to rebase it against the latest code. You may
+also wish to squash some commits together and make other history revisions, to leave the commit history clean and
+easily understood.
+
+
+### Contributing without using GitHub
+
+If you prefer to not use GitHub, then that is fine - we are also happy to accept patches attached to a Jira issue.
+Our canonical repository is located at `https://git-wip-us.apache.org/repos/asf/incubator-brooklyn.git`; for example:
+
+    $ git clone https://git-wip-us.apache.org/repos/asf/incubator-brooklyn.git
+
+When producing patches, please use `git format-patch` or a similar mechanism - this will ensure that you are properly
+attributed as the author of the patch when a committer merges it.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/community/index.md
----------------------------------------------------------------------
diff --git a/docs/website/community/index.md b/docs/website/community/index.md
new file mode 100644
index 0000000..e998e69
--- /dev/null
+++ b/docs/website/community/index.md
@@ -0,0 +1,86 @@
+---
+layout: website-normal
+title: Community
+children:
+- { path: how-to-contribute.md }
+- { path: migrate-to-apache.md }
+- { path: committers.md }
+- { path: how-to-contribute-docs.md }
+---
+
+<div class="row">
+<div class="col-md-6" markdown="1">
+
+## Mailing lists
+
+Our main discussion list is our *dev* list - here you can ask questions and get
+help with issues, ranging from basic getting started through to detailed
+questions about Brooklyn's internals.
+
+To subscribe, send an email to:
+[dev-subscribe@brooklyn.incubator.apache.org](mailto:dev-subscribe@brooklyn.incubator.apache.org)
+
+You can also [read and search the dev list
+archives](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/) on
+Apache's list archiver.
+
+
+### Other lists
+
+We also have a *commits* list - a read-only list which automatically posts as
+commits are made to our source repositories. Subscribe by sending an email to
+[commits-subscribe@brooklyn.incubator.apache.org](mailto:commits-subscribe@brooklyn.incubator.apache.org),
+and [read the archives here](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-commits/).
+
+
+### Historical lists
+
+Before Brooklyn joined the Apache Incubator, we had lists hosted on Google
+Groups. These lists are now deprecated and it's no longer possible to subscribe
+or post, but you may find useful information in the archives.
+
+- [Old Brooklyn users list archive](https://groups.google.com/forum/#!forum/brooklyn-dev)
+- [Old Brooklyn dev list archive](https://groups.google.com/forum/#!forum/brooklyn-dev)
+
+Once again, these lists are deprecated, so please subscribe to the Apache-hosted
+lists to receive new messages.
+
+</div><!-- col -->
+<div class="col-md-6" markdown="1">
+
+## Issue tracker
+
+We have a [Jira instance at Apache](https://issues.apache.org/jira/browse/BROOKLYN)
+
+
+## Contributing source code
+
+If you have changes or additions to the Brooklyn source code, we would love to
+see them! Please read our guide on [how to contribute](how-to-contribute.html).
+
+If you have used the *brooklyncentral* repository prior to Brooklyn's move to
+Apache, you can read the guide on
+[how to migrate your brooklyncentral fork to Apache](migrate-to-apache.html).
+
+Committers can read the corresponding [guide for committers](committers.html)
+to see how to review and merge contributions.
+
+
+## Contributing to the website and documentation
+
+We would also be very happy to receive contributions to our website and
+documentation. You can read our [How to contribute
+documentation](how-to-contribute-docs.html) guide or, if you are impatient,
+simply click on the *Edit this page* button at the bottom of most pages on this
+site and follow the instructions.
+
+
+## IRC
+
+Join channel `#brooklyncentral` on the [Freenode](https://freenode.net/) IRC
+network. Many of the Brooklyn dev team can be found here. Note that the team
+is predominantly Europe-based, and channel activity is usually centered
+around European daylight hours.
+
+</div><!-- col -->
+</div><!-- row -->

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/community/migrate-to-apache.md
----------------------------------------------------------------------
diff --git a/docs/website/community/migrate-to-apache.md b/docs/website/community/migrate-to-apache.md
new file mode 100644
index 0000000..79e399f
--- /dev/null
+++ b/docs/website/community/migrate-to-apache.md
@@ -0,0 +1,117 @@
+---
+layout: website-normal
+title: How to migrate your brooklyncentral fork to Apache
+---
+
+Prior to our adoption by the Apache Incubator, Brooklyn was developed in a
+GitHub repository at `https://github.com/brooklyncentral/brooklyn`. If you
+already have a fork of this repository, follow this guide to smoothly shift
+your repository references to the new repository at Apache.
+
+If you have not forked or cloned the `brooklyncentral/brooklyn` repository,
+then this is not the right guide for you. Instead, you should refer to the
+[How to contribute](how-to-contribute.html) page, and possibly refer to
+[GitHub Help - Fork A Repo](https://help.github.com/articles/fork-a-repo) for
+further help.
+
+
+Assumptions
+-----------
+
+This guides assumes that you have followed the standard GitHub workflow, as
+describe in [GitHub Help - Fork A Repo](https://help.github.com/articles/fork-a-repo).
+In particular:
+
+- You have forked the `brooklyncentral/brooklyn` repository into your own
+  username:
+
+![Screenshot of GitHub showing a typical fork](fork-before.png)
+
+- You have used `git clone` to clone this fork onto your own computer;
+- You have added an additional remote, `upstream`, to refer to the original
+  `brooklyncentral/brooklyn` repository.
+
+In short, if you can recognise the above screenshot, and the output of the
+`git remote -v` command looks similar to below, then this guide should work
+for you. (Replace `rdowner` with your own GitHub username.)
+
+    origin  https://github.com/rdowner/brooklyn.git (fetch)
+    origin  https://github.com/rdowner/brooklyn.git (push)
+    upstream        https://github.com/brooklyncentral/brooklyn (fetch)
+    upstream        https://github.com/brooklyncentral/brooklyn (push)
+
+Or, if you are using SSH to access your remote repositories, it may look like
+this:
+
+    origin  git@github.com:rdowner/brooklyn.git (fetch)
+    origin  git@github.com:rdowner/brooklyn.git (push)
+    upstream        git@github.com:brooklyncentral/brooklyn.git (fetch)
+    upstream        git@github.com:brooklyncentral/brooklyn (push)
+
+
+
+Procedure
+---------
+
+The new repository has a mirror in GitHub, located at
+[https://github.com/apache/incubator-brooklyn](https://github.com/apache/incubator-brooklyn).
+Go to this page now, and fork it:
+
+![Screenshot of the new repository mirror in GitHub, with fork button](fork-new.png)
+
+This will now create a fork of this repository under your own username:
+
+![Screenshot of the new fork in your workspace](fork-after.png)
+
+So previously you referred to repositories named `brooklyn` under the
+`brooklyncentral` organization and your own username. Now, you will need to
+refer to repositories named `incubator-brooklyn` under the `Apache`
+organization and your own username.
+
+To update the cloned repository on your computer to point to the new
+repositories instead of the old ones, use these commands, replacing `rdowner`
+with your own GitHub username.
+
+    git remote set-url origin https://github.com/rdowner/incubator-brooklyn.git
+    git remote set-url upstream https://github.com/apache/incubator-brooklyn.git
+
+Or, if you would prefer to use SSH to access your remote repositories:
+
+    git remote set-url origin git@github.com:rdowner/incubator-brooklyn.git
+    git remote set-url upstream git@github.com:apache/incubator-brooklyn.git
+
+Finally, fetch everything:
+
+    git fetch --all
+
+
+Existing pull requests
+----------------------
+
+If you have submitted a pull request at `brooklyncentral/brooklyn`, this pull
+request will be closed, unmerged, with a message pointing you to this page. You
+will need to re-submit your pull request against the
+`apache/incubator-brooklyn`.
+
+If you have followed the above procedure, all you will need to do is identify
+the branch in your local repository on your computer that you used to make the
+original pull request, and push this to your new fork:
+
+```
+git push origin my-new-feature-branch
+```
+
+Now, go to your `incubator-brooklyn` fork on the GitHub website, and you should
+see the **Compare &amp; pull request** button; click this, and it will set up a
+pull request against the new repository.
+
+![Screen shot of a pull request against incubator-brooklyn](pull-request.png)
+
+
+Any problems?
+-------------
+
+If you are not sure how to do this, perhaps because you have a slightly
+different arrangement in your repositories, or is something unusual happens,
+please ask our community for help. You can find details of our IRC channel
+and mailing lists on our [Community](index.html) page.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/community/pull-request.png
----------------------------------------------------------------------
diff --git a/docs/website/community/pull-request.png b/docs/website/community/pull-request.png
new file mode 100644
index 0000000..70407f2
Binary files /dev/null and b/docs/website/community/pull-request.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/documentation.md
----------------------------------------------------------------------
diff --git a/docs/website/documentation.md b/docs/website/documentation.md
new file mode 100644
index 0000000..f6454d6
--- /dev/null
+++ b/docs/website/documentation.md
@@ -0,0 +1,19 @@
+---
+layout: website-normal
+title: Documentation
+children:
+- { link: /v/0.7.0-M1, title: User Manual (0.7.0-M1) }
+- { path: glossary.md }
+- { path: documentation/install-on-server.md }
+---
+
+## Official User Manual
+
+Our main user manual is organised by release version. Please pick the version that you are using:
+
+- [0.7.0-M1]({{ site.path.v }}/0.7.0-M1) -
+  Please note that this release was made prior to entering the Apache Incubator,
+  and therefore it is not endorsed by Apache.
+
+## Server install
+Follow this [guide](documentation/install-on-server.html) to install Brooklyn on a production server.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/documentation/increase-entropy.md
----------------------------------------------------------------------
diff --git a/docs/website/documentation/increase-entropy.md b/docs/website/documentation/increase-entropy.md
new file mode 100644
index 0000000..bd0e8ea
--- /dev/null
+++ b/docs/website/documentation/increase-entropy.md
@@ -0,0 +1,31 @@
+---
+title: Increase entropy
+layout: website-normal
+---
+If you are installing AMP on a virtual machine, you may find it useful to increase the Linux kernel entropy to speed up the ssh connections to the managed entities. You can install and configure `rng-tools` or just use /dev/urandom`.
+
+### Installing rng-tool
+if you are using a RHEL-based OS:
+{% highlight bash %}
+yum -y -q install rng-tools
+echo "EXTRAOPTIONS=\"-r /dev/urandom\"" | cat >> /etc/sysconfig/rngd
+/etc/init.d/rngd start
+{% endhighlight %}
+
+if you are using a Debian-based OS:
+{% highlight bash %}
+apt-get -y install rng-tools
+echo "HRNGDEVICE=/dev/urandom" | cat >> /etc/default/rng-tools
+/etc/init.d/rng-tools start
+{% endhighlight %}
+
+The following links contain further [information for RHEL or CentOS](http://my.itwnik.com/how-to-increase-linux-kernel-entropy/), and [Ubuntu](http://www.howtoforge.com/helping-the-random-number-generator-to-gain-enough-entropy-with-rng-tools-debian-lenny).
+
+### Using /dev/urandom
+You can also just mv /dev/random then create it again linked to /dev/urandom, by issuing the following commands:
+
+{% highlight bash %}
+sudo mv /dev/random /dev/random-real
+sudo ln -s /dev/urandom /dev/random
+{% endhighlight %}
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/documentation/install-on-server.md
----------------------------------------------------------------------
diff --git a/docs/website/documentation/install-on-server.md b/docs/website/documentation/install-on-server.md
new file mode 100644
index 0000000..f658c73
--- /dev/null
+++ b/docs/website/documentation/install-on-server.md
@@ -0,0 +1,122 @@
+---
+layout: website-normal
+title: Installing on a server
+---
+Here we present two *alternatives* to install Brooklyn:
+
+- [Running the *installation script*](#script)
+- [Manual installation](#manual)
+
+## <a id="script"></a> Running the installation script
+There is a simple bash script available to help with the installation process. 
+
+#### Script prerequisites
+The script assumes that the server is a recent *RHEL/CentOS 6.x Linux* or *Ubuntu 12.04* installation, but other Linux variants have been tested successfully.
+
+The script will install Java 7 and other required packages if they are not present. You must have root access over [passwordless SSH]({{ site.path.website }}/documentation/passwordless-ssh.html) to install brooklyn, but the service runs as an ordinary user once installed. 
+
+To manage the brooklyn service you must also be able to connect to port 8081 remotely.
+
+Once the above prerequisites are satisfied, you should be able to run successfully:
+{% highlight bash %}
+$ curl -o brooklyn-install.sh -L https://github.com/apache/incubator-brooklyn/raw/master/brooklyn-install.sh
+$ chmod +x ./brooklyn-install.sh
+$ ./brooklyn-install.sh -s -r <your-server-ip>
+{% endhighlight %}
+
+## <a id="manual"></a> Manual installation
+
+1. [Set up the prerequisites](#prerequisites)
+1. [Download Brooklyn](#download)
+1. [Configuring brooklyn.properties](#configuring-properties)
+1. [Configuring catalog.xml](#configuring-catalog)
+1. [Test the installation](#confirm)
+
+### <a id="prerequisites"></a>Set up the prerequisites
+
+Before installing Apache Brooklyn, you will need to configure the host as follows. 
+
+* install Java JRE or SDK (version 6 or later)
+* install [SSH key]({{ site.path.website }}/documentation//ssh-key.html), if not available.
+* enable [passwordless ssh login]({{ site.path.website }}/documentation/passwordless-ssh.html).
+* create a `~/.brooklyn` directory on the host with `$ mkdir ~/.brooklyn`
+* Check your iptables service, and if enabled, make sure that it accepts all incoming connections to 8443+ ports.
+* [optional] Increase [linux kernel entropy]({{ site.path.website }}/documentation//increase-entropy.html) for faster ssh connections.
+
+## <a id="download"></a>Download Brooklyn
+
+Download the [Brooklyn distribution]({{ site.data.brooklyn.url.dist.tgz }}) and expand it to your home directory ( `~/` ), or in a location of your choice. Other [download options]({{site.path.website}}/download.html) are available.
+
+{% if brooklyn_version contains 'SNAPSHOT' %}
+Expand the `tar.gz` archive (note: as this is a -SNAPSHOT version, your filename will be slightly different):
+{% else %}
+Expand the `tar.gz` archive:
+{% endif %}
+
+{% if brooklyn_version contains 'SNAPSHOT' %}
+{% highlight bash %}
+$ tar -zxf brooklyn-dist-{{ site.data.brooklyn.version }}-timestamp-dist.tar.gz
+{% endhighlight %}
+{% else %}
+{% highlight bash %}
+$ tar -zxf brooklyn-dist-{{ site.data.brooklyn.version }}-dist.tar.gz
+{% endhighlight %}
+{% endif %}
+
+This will create a `brooklyn-{{ site.data.brooklyn.version }}` folder.
+
+Let's setup some paths for easy commands.
+
+{% highlight bash %}
+$ cd brooklyn-{{ site.data.brooklyn.version }}
+$ BROOKLYN_DIR="$(pwd)"
+$ export PATH=$PATH:$BROOKLYN_DIR/bin/
+{% endhighlight %}
+
+## <a id="configuring-properties"></a>Configuring brooklyn.properties
+Brooklyn deploys applications to Locations. *Locations* can be clouds, machines with fixed IPs or localhost (for testing).
+
+By default Brooklyn loads configuration parameters (including credentials for any cloud accounts) from 
+
+`~/.brooklyn/brooklyn.properties` 
+
+The `brooklyn.properties` is the main configuration file for deployment locations. Contains the connection details and credentials for all public or on-premises cloud providers, as well as controlling some application startup and security options.
+
+Create a `.brooklyn` folder in your home directory and download the template [brooklyn.properties](../quickstart/brooklyn.properties) to that folder.
+
+{% highlight bash %}
+$ mkdir -p ~/.brooklyn
+$ wget -O ~/.brooklyn/brooklyn.properties {{site.url_root}}{{site.path.website}}/quickstart/brooklyn.properties
+$ chmod 600 ~/.brooklyn/brooklyn.properties
+{% endhighlight %}
+
+You may need to edit `~/.brooklyn/brooklyn.properties` to ensure that brooklyn can access cloud locations for application deployment.
+
+## <a id="configuring-catalog"></a>Configuring catalog.xml
+By default Brooklyn loads the catalog of available application components and services from 
+`~/.brooklyn/catalog.xml`. 
+
+{% highlight bash %}
+$ wget -O ~/.brooklyn/catalog.xml {{site.url_root}}{{site.path.website}}/quickstart/catalog.xml
+{% endhighlight %}
+
+The `catalog.xml` is the application blueprint catalog. The above example file contains some blueprints which will be automatically downloaded from the web if you run them.
+
+You may need to edit `~/.brooklyn/catalog.xml` to update links to any resources for download.
+
+## <a id="confirm"></a>Confirm installation
+We can do a quick test drive by launching Brooklyn:
+
+{% highlight bash %}
+$ brooklyn launch
+{% endhighlight %}
+
+Brooklyn will output the address of the management interface:
+
+{% highlight bash %}
+INFO  Starting brooklyn web-console on loopback interface because no security config is set
+
+INFO  Started Brooklyn console at http://127.0.0.1:8081/, running classpath://brooklyn.war and []
+{% endhighlight %}
+
+Stop Brooklyn with ctrl-c.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/documentation/passwordless-ssh.md
----------------------------------------------------------------------
diff --git a/docs/website/documentation/passwordless-ssh.md b/docs/website/documentation/passwordless-ssh.md
new file mode 100644
index 0000000..6cd3e5a
--- /dev/null
+++ b/docs/website/documentation/passwordless-ssh.md
@@ -0,0 +1,29 @@
+---
+title: Passwordless SSH login
+layout: website-normal
+---
+To enable passwordless SSH login to a *nix server, first you will need a pair of keys. If you don't already have a keypair generated you'll first of all need to create one.
+To generate a new keypair you run the following command:
+
+    your-user@host1:~$ ssh-keygen -t rsa
+
+This will prompt you for a location to save the keys, and a pass-phrase:
+
+    Generating public/private rsa key pair.
+    Enter file in which to save the key (/home/skx/.ssh/id_rsa): 
+    Enter passphrase (empty for no passphrase): 
+    Enter same passphrase again: 
+    Your identification has been saved in /home/skx/.ssh/id_rsa.
+    Your public key has been saved in /home/skx/.ssh/id_rsa.pub.
+
+Then, assuming that you want to enable passwordless SSH login to the `host2` server from `host1` with the `id_rsa` and `id_rsa.pub` files you've just generated you should run the following command:
+
+    your-user@host1:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub username@host2
+
+If `host1` doesn't have `ssh-copy-id` installed, you can either install `ssh-copy-id` or manually copy the `id_rsa.pub` key to the `host2` by issuing the following commands:
+
+    host1# cat ~/.ssh/id_rsa.pub | ssh user@host2 'cat >> .ssh/authorized_keys'
+
+or if you need to make a `.ssh` directory on `host2`
+
+    host1#cat ~/.ssh/id_rsa.pub | ssh user@host2 'mkdir .ssh; chmod 700 .ssh; cat >> .ssh/authorized_keys; chmod 644 .ssh/authorized_keys'

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/documentation/ssh-key.md
----------------------------------------------------------------------
diff --git a/docs/website/documentation/ssh-key.md b/docs/website/documentation/ssh-key.md
new file mode 100644
index 0000000..9082af1
--- /dev/null
+++ b/docs/website/documentation/ssh-key.md
@@ -0,0 +1,9 @@
+---
+title: SSH keys
+layout: website-normal
+---
+Brooklyn requires an SSH key, which will be used to connect to cloud VMs. By default Brooklyn will look for SSH keys named `~/.ssh/id_rsa` or `~/.ssh/id_dsa`. If you do not already have an SSH key installed, create a new key.
+
+{% highlight bash %}
+$ ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/download.md
----------------------------------------------------------------------
diff --git a/docs/website/download.md b/docs/website/download.md
new file mode 100644
index 0000000..20d6410
--- /dev/null
+++ b/docs/website/download.md
@@ -0,0 +1,70 @@
+---
+layout: website-normal
+title: Download
+---
+
+## Download Brooklyn Binary Distributions
+
+**New to Brooklyn**? Download the *Milestone* release below then take a look
+at the [Get Started](quickstart/) page.
+
+<div class="row">
+<div class="col-md-6" markdown="1">
+
+### Milestone
+
+#### 0.7.0-M1
+*Recommended*. A good compromise between stability and features which has undergone live testing.
+
+Download [.tar.gz](http://search.maven.org/remotecontent?filepath=io/brooklyn/brooklyn-dist/0.7.0-M1/brooklyn-dist-0.7.0-M1-dist.tar.gz)
+&bull; [.zip](http://search.maven.org/remotecontent?filepath=io/brooklyn/brooklyn-dist/0.7.0-M1/brooklyn-dist-0.7.0-M1-dist.zip)
+
+Please note that this release was made prior to entering the Apache Incubator, and therefore it is not endorsed by Apache.
+
+</div>
+<div class="col-md-6" markdown="1">
+
+### Stable
+
+#### 0.6.0
+Well-tested releases, but missing the latest features.
+
+Download [.tar.gz](http://search.maven.org/remotecontent?filepath=io/brooklyn/brooklyn-dist/0.6.0/brooklyn-dist-0.6.0-dist.tar.gz)
+&bull; [.zip](http://search.maven.org/remotecontent?filepath=io/brooklyn/brooklyn-dist/0.6.0/brooklyn-dist-0.6.0-dist.zip)
+
+Please note that this release was made prior to entering the Apache Incubator, and therefore it is not endorsed by Apache.
+
+</div>
+</div>
+
+
+## Download Brooklyn source code
+
+<div class="row">
+<div class="col-md-6" markdown="1">
+
+### Milestone
+
+#### 0.7.0-M1
+*Recommended*. A good compromise between stability and features which has undergone live testing.
+
+Download [.tar.gz](https://github.com/apache/incubator-brooklyn/archive/0.7.0-M1.tar.gz)
+&bull; [.zip](https://github.com/apache/incubator-brooklyn/archive/0.7.0-M1.zip)
+
+Please note that this release was made prior to entering the Apache Incubator, and therefore it is not endorsed by Apache.
+
+</div>
+<div class="col-md-6" markdown="1">
+
+### Stable
+
+#### 0.6.0
+Well-tested releases, but missing the latest features.
+
+Download [.tar.gz](https://github.com/apache/incubator-brooklyn/archive/v0.6.0.tar.gz)
+&bull; [.zip](https://github.com/apache/incubator-brooklyn/archive/v0.6.0.zip)
+
+Please note that this release was made prior to entering the Apache Incubator, and therefore it is not endorsed by Apache.
+
+</div>
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/glossary.md
----------------------------------------------------------------------
diff --git a/docs/website/glossary.md b/docs/website/glossary.md
new file mode 100644
index 0000000..0651068
--- /dev/null
+++ b/docs/website/glossary.md
@@ -0,0 +1,92 @@
+---
+layout: website-normal
+title: Glossary
+---
+
+[//]: # (Abusing link groups to write comments that are not rendered in the document..)
+[//]: # (The links below reference the id attributes generated for the headers.)
+[//]: # (For example, the Autonomic section can be referred to with a link to #autonomic.)
+[//]: # (So if you alter any of the headers you should update the relevant link group too.)
+
+[autonomic]: #autonomic
+[blueprint]: #blueprint
+[effector]: #effector
+[entity]: #entity
+[policy]: #policy
+[sensor]: #sensor
+[YAML]: #yaml
+
+[//]: # (Note: Autonomic and blueprint section could link to learnmore page.)
+
+
+#### Autonomic
+
+Refers to the self-managing characteristics of distributed computing resources,
+adapting to unpredictable changes while hiding intrinsic complexity to
+operators and users.
+
+
+#### Blueprint
+
+A description of an application or system, which can be used for its automated
+deployment and runtime management. The blueprint describes a model of the
+application (i.e. its components, their configuration, and their
+relationships), along with policies for runtime management. The blueprint can
+be described in [YAML][].
+
+###### See also
+* [Documentation]({{site.path.website}}/learnmore/catalog/index.html) for the entity,
+  policy and enricher blueprints that Apache Brooklyn supports out-of-the-box.
+
+
+#### Effector
+
+An operation on an [entity][].
+
+
+#### Entity
+
+A component of an application or system. This could be a physical component, a
+service, a grouping of components, or a logical construct describing part of an
+application/system. It is a "managed element" in autonomic computing parlance.
+
+
+#### Policy
+
+Part of an autonomic management system, performing runtime management. A policy
+is associated with an [entity][]; it normally manages the health of that entity
+or an associated group of entities (e.g. HA policies or auto-scaling policies).
+
+
+#### Sensor
+
+An attribute of an [entity][].
+
+
+#### YAML
+
+A human-readable data format.
+
+###### See also
+* [Wikipedia article](http://en.wikipedia.org/wiki/YAML) on YAML
+
+
+#### Apache Jclouds
+
+An open source Java library that provides a consistent interface to many
+clouds. Apache Brooklyn uses Apache Jclouds as its core cloud abstraction.
+
+###### See also
+* [Project homepage](https://jclouds.apache.org/)
+
+
+#### CAMP and TOSCA
+
+OASIS Cloud Application Management for Platforms (CAMP) and OASIS Topology and
+Orchestration Specification for Cloud Applications (TOSCA) are specifications
+that aim to standardise the portability and management of cloud applications.
+
+###### See also
+* [CAMP homepage](https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=camp)
+* [TOSCA homepage](https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=tosca)
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/index.md
----------------------------------------------------------------------
diff --git a/docs/website/index.md b/docs/website/index.md
new file mode 100644
index 0000000..31fa351
--- /dev/null
+++ b/docs/website/index.md
@@ -0,0 +1,71 @@
+---
+layout: website-landing
+title: Home
+navgroup: home
+children:
+- { path: learnmore/index.md }
+- { path: download.md }
+- { path: quickstart/index.md }
+- { path: documentation.md }
+- { path: community/index.md }
+navgroups:
+- { id: learnmore, page: learnmore/index.md, title: learn more }
+- { id: download, page: download.md, title: download }
+- { id: getstarted, page: quickstart/index.md, title: get started, title_in_menu: Get started }
+- { id: documentation, page: documentation.md, title: documentation, title_in_menu: All documentation }
+- { id: website/community, page: community/index.md, title: community, title_in_menu: Community home }
+---
+
+<div class="jumbotron">
+<div id="apachebrooklynbanner">&nbsp;</div>
+
+<div class="row">
+<div class="col-md-4" markdown="1">
+
+### model
+
+*Blueprints* describe your application, stored as *text files* in *version control*
+
+*Compose* from the [*dozens* of supported components](learnmore/catalog/) or your *own components* using *bash, Java, Chef...*
+
+<div class="text-muted" markdown="1">
+#### JBoss &bull; Cassandra &bull; QPid &bull; nginx &bull; [many more](learnmore/catalog/)
+</div>
+
+</div>
+<div class="col-md-4" markdown="1">
+
+### deploy
+
+Components *configured &amp; integrated* across *multiple machines* automatically
+
+*20+ public clouds*, or your *private cloud* or bare servers - and *Docker* containers
+
+<div class="text-muted" markdown="1">
+#### Amazon EC2 &bull; CloudStack &bull; OpenStack &bull; SoftLayer &bull; many more
+</div>
+
+</div>
+<div class="col-md-4" markdown="1">
+
+### manage
+
+*Monitor* key application *metrics*; *scale* to meet demand; *restart* and *replace* failed components
+
+View and modify using the *web console* or automate using the *REST API*
+
+<div class="text-muted" markdown="1">
+#### Metric-based autoscaler &bull; Restarter &amp; replacer &bull; Follow the sun &bull; Load balancing 
+</div>
+
+</div>
+</div><!-- row -->
+
+<div style="text-align: center" markdown="1">
+
+<a class="btn btn-primary btn-lg" role="button" href="learnmore.html">learn more</a>
+<a class="btn btn-primary btn-lg" role="button" href="quickstart/">get started</a>
+
+</div>
+
+</div><!-- jumbotron -->

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/common.js
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/common.js b/docs/website/learnmore/catalog/common.js
new file mode 100644
index 0000000..8e8a45f
--- /dev/null
+++ b/docs/website/learnmore/catalog/common.js
@@ -0,0 +1,94 @@
+/**
+ * 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.
+ */
+
+var brooklyn = (function ($, _) {
+
+    return {
+        findItemOfType: function(items, type) {
+            return _.findWhere(items, { type: type });
+        },
+
+        entityCard: _.template(
+            "<a class='plain' data-type='<%= type %>' href='entities/<%= type %>.html'>" +
+            "<div class='card'>" +
+            "<span class='glyphicon glyphicon-chevron-right'/>" +
+            "<div class='name'><%=name%></div>" +
+            "<div class='type'><%=type%></div>" +
+            "<div class='description'><%=description%></div>" +
+            "</div>" +
+            "</a>"
+        ),
+        policyCard: _.template(
+            "<a class='plain' data-type='<%= type %>' href='policies/<%= type %>.html'>" +
+            "<div class='card'>" +
+            "<span class='glyphicon glyphicon-chevron-right'/>" +
+            "<div class='name'><%=name%></div>" +
+            "<div class='type'><%=type%></div>" +
+            "<div class='description'><%=description%></div>" +
+            "</div>" +
+            "</a>"
+        ),
+        enricherCard: _.template(
+            "<a class='plain' data-type='<%= type %>' href='enrichers/<%= type %>.html'>" +
+            "<div class='card'>" +
+            "<span class='glyphicon glyphicon-chevron-right'/>" +
+            "<div class='name'><%=name%></div>" +
+            "<div class='type'><%=type%></div>" +
+            "<div class='description'><%=description%></div>" +
+            "</div>" +
+            "</a>"
+        ),
+
+        typeSummary: _.template(
+            "<div class='summaryLabel'><%=name%></div>" +
+            "<div class='summaryType'><%=type%></div>" +
+            "<div class='description'><%=description%></div>"
+        ),
+
+        configKeyCard: _.template(
+            "<div class='card configKey'>" +
+            "<div class='name'><%=name%></div>" +
+            "<dl>" +
+            "<dt>description</dt><dd><%=(description||'&nbsp;')%></dd>" +
+            "<dt>value type</dt><dd class='java'><%=(type||'&nbsp;')%></dd>" +
+            "<dt>default value</dt><dd><%=(defaultValue||'&nbsp;')%></dd>" +
+            "</dl>" +
+            "</div>"
+        ),
+        sensorCard: _.template(
+            "<div class='card sensor'>" +
+            "<div class='name'><%=name%></div>" +
+            "<dl>" +
+            "<dt>description</dt><dd><%=(description||'&nbsp;')%></dd>" +
+            "<dt>value type</dt><dd class='java'><%=(type||'&nbsp;')%></dd>" +
+            "</dl>" +
+            "</div>"
+        ),
+        effectorCard: _.template(
+            "<div class='card effector'>" +
+            "<div class='name'><%=name%></div>" +
+            "<dl>" +
+            "<dt>description</dt><dd><%=(description||'&nbsp;')%></dd>" +
+            "<dt>return type</dt><dd class='java'><%=(returnType||'&nbsp;')%></dd>" +
+            "</dl>" +
+            "</div>"
+        )
+    };
+
+}(jQuery, _));

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.DeltaEnricher.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.DeltaEnricher.html b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.DeltaEnricher.html
new file mode 100644
index 0000000..d888b8c
--- /dev/null
+++ b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.DeltaEnricher.html
@@ -0,0 +1,59 @@
+<!--
+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 Enricher - Delta</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.enrichers, "brooklyn.enricher.DeltaEnricher");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.HttpLatencyDetector.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.HttpLatencyDetector.html b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.HttpLatencyDetector.html
new file mode 100644
index 0000000..47b3a54
--- /dev/null
+++ b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.HttpLatencyDetector.html
@@ -0,0 +1,59 @@
+<!--
+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 Enricher - HTTP Latency Detector</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.enrichers, "brooklyn.enricher.HttpLatencyDetector");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.RollingMeanEnricher.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.RollingMeanEnricher.html b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.RollingMeanEnricher.html
new file mode 100644
index 0000000..ba4c179
--- /dev/null
+++ b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.RollingMeanEnricher.html
@@ -0,0 +1,59 @@
+<!--
+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 Enricher - Rolling Mean</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.enrichers, "brooklyn.enricher.RollingMeanEnricher");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.RollingTimeWindowMeanEnricher.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.RollingTimeWindowMeanEnricher.html b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.RollingTimeWindowMeanEnricher.html
new file mode 100644
index 0000000..acc9a84
--- /dev/null
+++ b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.RollingTimeWindowMeanEnricher.html
@@ -0,0 +1,59 @@
+<!--
+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 Enricher - Rolling Mean in Time Window</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.enrichers, "brooklyn.enricher.RollingTimeWindowMeanEnricher");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>


[08/50] [abbrv] incubator-brooklyn git commit: move version-specific things to "guide"

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/messaging/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/messaging/index.md b/docs/guide/use/examples/messaging/index.md
new file mode 100644
index 0000000..51fd0ae
--- /dev/null
+++ b/docs/guide/use/examples/messaging/index.md
@@ -0,0 +1,183 @@
+---
+layout: guide-normal
+title: Publish-Subscribe Messagiung
+toc: /toc.json
+---
+
+This example shows how a simple messaging application can be build
+in brooklyn, starting with configuring and launching a broker. For
+these examples we will use the Apache [Qpid](http://qpid.apache.org/)
+Java AMQP message broker and clients using the
+[JMS](http://docs.oracle.com/javaee/6/tutorial/doc/bnceh.html) API.
+
+{% readj ../before-begin.include.md %}
+
+Now, go to this particular example's directory:
+
+{% highlight bash %}
+% cd simple-messaging-pubsub
+{% endhighlight %}
+
+The CLI needs to know where to find your compiled examples. You can set this up by exporting
+the ``BROOKLYN_CLASSPATH`` environment variable in the following way:
+
+{% highlight bash %}
+% export BROOKLYN_CLASSPATH=$(pwd)/target/classes
+{% endhighlight %}
+
+The project ``simple-messaging-pubsub`` includes a deployment
+descriptor for our example messaging application and simple _Publish_
+and _Subscribe_ JMS test client scripts.
+
+## Single Broker
+
+The first example will include a Qpid broker, which we will customize
+to use the Oracle [BDB](http://www.oracle.com/technetwork/products/berkeleydb/overview/index.html)
+message store as an example of a typical production setup. We will
+also create a queue for use by a pair of test clients.
+
+The ``QpidBroker`` entity is created like this, which uses the
+default configuration, specifying only the AMQP port and creates
+no queues or topics:
+
+{% highlight java %}
+public class StandaloneQpidBrokerExample extends AbstractApplication {
+    @Override
+    public void init() {
+        // Configure the Qpid broker entity
+    	QpidBroker broker = addChild(EntitySpec.create(QpidBroker.class)
+    	        .configure("amqpPort", 5672));
+    }
+}
+{% endhighlight %}
+
+To install the custom configuration files and extra libraries for
+BDB, we specify some files to copy to the broker installation, using
+the ``runtimeFiles`` property. These files should be available in
+the classpath of the application when it is running, usually by
+copying them to the ``src/main/resources`` directory. For example,
+here we copy a custom XML configuration file and a new password
+file:
+
+{% highlight java %}
+        final String CUSTOM_CONFIG_PATH = "classpath://custom-config.xml";
+        final String PASSWD_PATH = "classpath://passwd";
+
+    	QpidBroker broker = addChild(EntitySpec.create(QpidBroker.class)
+    	        .configure("amqpPort", 5672)
+    	        .configure("amqpVersion", AmqpServer.AMQP_0_10)
+    	        .configure("runtimeFiles", ImmutableMap.builder()
+    	                .put(QpidBroker.CONFIG_XML, CUSTOM_CONFIG_PATH)
+    	                .put(QpidBroker.PASSWD, PASSWD_PATH)
+    	                .build()));
+{% endhighlight %}
+
+Finally, we come to the complete configuration of our ``QpidBroker``
+entity using the BDB store. The additional properties here specify
+the AMQP version and that a queue named _testQueue_ should be created
+on startup.
+
+{% highlight java %}
+        final String CUSTOM_CONFIG_PATH = "classpath://custom-config.xml";
+        final String PASSWD_PATH = "classpath://passwd";
+        final String QPID_BDBSTORE_JAR_PATH = "classpath://qpid-bdbstore-0.14.jar";
+        final String BDBSTORE_JAR_PATH = "classpath://je-5.0.34.jar";
+
+    	QpidBroker broker = addChild(EntitySpec.create(QpidBroker.class)
+    	        .configure("amqpPort", 5672)
+    	        .configure("amqpVersion", AmqpServer.AMQP_0_10)
+    	        .configure("runtimeFiles", ImmutableMap.builder()
+    	                .put(QpidBroker.CONFIG_XML, CUSTOM_CONFIG_PATH)
+    	                .put(QpidBroker.PASSWD, PASSWD_PATH)
+    	                .put("lib/opt/qpid-bdbstore-0.14.jar", QPID_BDBSTORE_JAR_PATH)
+    	                .put("lib/opt/je-5.0.34.jar", BDBSTORE_JAR_PATH)
+    	                .build())
+    	        .configure("queue", "testQueue"));
+{% endhighlight %}
+
+
+### Running the Example
+
+You can build and run the example (on *nix or Mac) after checking
+out the Brooklyn [repository](https://www.github.com/brooklyncentral/brooklyn)
+as follows:
+
+{% highlight bash %}
+% ${BROOKLYN_HOME}/bin/brooklyn -v launch --app brooklyn.demo.StandaloneQpidBrokerExample --location localhost
+{% endhighlight %}
+
+Now, visit the Brooklyn web console on port 8081 (for pre 0.6 releases,
+use the credentials admin/password). This allows you to view the Brooklyn 
+entities and their current state for debugging.
+
+Note that the installation may take some time, because the default
+deployment downloads the software from the official repos.  You can
+monitor start-up activity for each entity in the ``Activity`` pane
+in the management console, and see more detail by tailing the log
+file (``tail -f brooklyn.log``).
+
+After starting up, the demo script should display a summary of all
+the Brooklyn managed entities and their attributes. This will show
+both the Qpid broker and its child entity, the queue _testQueue_
+which was created at startup. The queue entity has sensors that
+monitor the depth of unread messages, which you can check while
+running the test client scripts later.
+
+If the ``-v`` flag is passed to the startup command, all configured
+entity and sensor details will be output. This includes the broker URL,
+which is used to configure JMS clients to connect to this broker.
+This URL can also be viewed as a sensor attribute in the web console,
+named _broker.url_.
+
+This sensor is common to _all_ messaging brokers that Brooklyn
+provides, and is usually accessed by applications to allow them to
+provide it as a parameter to other entities, as shown in the code
+fragment below.
+
+{% highlight java %}
+String url = broker.getAttribute(MessageBroker.BROKER_URL)
+{% endhighlight %}
+
+Using the URL the demo script printed, you can run the test ``Subscribe``
+and then ``Publish`` classes, to send messages using the broker. Simply
+run the commands in another window, with the provided URL as the
+only argument. Note that the URLs may be different to those printed
+below, and that any unquoted ``&`` characters *must* be escaped,
+if present.
+
+{% highlight bash %}
+% URL="amqp://guest:guest@/localhost?brokerlist='tcp://localhost:5672'"
+% java -cp "./resources/lib/*:./target/classes" brooklyn.demo.Subscribe ${URL}
+% java -cp "./resources/lib/*:./target/classes" brooklyn.demo.Publish ${URL}
+{% endhighlight %}
+
+In the _Publish_ window you should see a log message every time a
+message is sent, like this:
+
+{% highlight bash %}
+2012-05-02 14:04:38,521 INFO  Sent message 65
+2012-05-02 14:04:39,522 INFO  Sent message 66
+{% endhighlight %}
+
+Similarly, the _Subscribe_ windows should log on reciept of these
+messages, as follows:
+
+{% highlight bash %}
+2012-05-02 14:04:32,522 INFO  got message 41 test message 41
+2012-05-02 14:04:33,523 INFO  got message 42 test message 42
+{% endhighlight %}
+
+### Cloud Deployment
+
+With appropriate setup (as described
+[here]({{ site.url }}/use/guide/management/index.html#startup-config))
+this can also be deployed to your favourite cloud, let's pretend
+it's Amazon Ireland, as follows:
+
+{% highlight bash %}
+% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.StandaloneQpidBrokerExample --location aws-ec2:eu-west-1
+{% endhighlight %}
+
+If you encounter any difficulties, please
+[tell us]({{ site.url }}/meta/contact.html) and we'll do our best
+to help.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/nosql-cassandra/cassandra.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/nosql-cassandra/cassandra.include.md b/docs/guide/use/examples/nosql-cassandra/cassandra.include.md
new file mode 100644
index 0000000..8fd04ae
--- /dev/null
+++ b/docs/guide/use/examples/nosql-cassandra/cassandra.include.md
@@ -0,0 +1,282 @@
+      
+{% readj ../before-begin.include.md %}
+
+## Simple Cassandra Cluster
+
+Go to this particular example's directory:
+
+{% highlight bash %}
+% cd simple-nosql-cluster
+{% endhighlight %}
+
+The CLI needs to know where to find your compiled examples. You can set this up by exporting
+the ``BROOKLYN_CLASSPATH`` environment variable in the following way:
+
+{% highlight bash %}
+% export BROOKLYN_CLASSPATH=$(pwd)/target/classes
+{% endhighlight %}
+
+The project ``simple-nosql-cluster`` includes several deployment descriptors
+for deploying and managing Cassandra, under ``src/main/java``.
+
+The simplest of these, ``SimpleCassandraCluster``, will start a Cassandra cluster. The code is:
+
+{% highlight java %}
+public class SimpleCassandraCluster extends AbstractApplication {
+  public void init() {
+    addChild(EntitySpec.create(CassandraCluster.class)
+        .configure(CassandraCluster.INITIAL_SIZE, 1)
+        .configure(CassandraCluster.CLUSTER_NAME, "Brooklyn"));
+  }
+}
+{% endhighlight %}
+
+To run that example on localhost (on *nix or Mac, assuming `ssh localhost` requires no password or passphrase):
+
+{% highlight bash %}
+% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.SimpleCassandraCluster \
+  --location localhost
+{% endhighlight %}
+
+Then visit the Brooklyn console on ``localhost:8081``.
+Note that the installation may take some time, because the default deployment downloads the software from
+the official repos.  You can monitor start-up activity for each entity in the ``Activity`` pane in the management console,
+and see more detail by tailing the log file (``tail -f brooklyn.log``).
+
+This example runs successfully on a local machine because ``INITIAL_SIZE`` is configured to just one node
+(a limitation of Cassandra is that every node must be on a different machine/VM).
+If you want to run with more than one node in the cluster, you'll need to use a location 
+that either points to multiple existing machines or to a cloud provider where you can 
+provision new machines.
+
+With appropriate setup of credentials (as described [here]({{ site.url }}/use/guide/management/index.html#startup-config)) 
+this example can also be deployed to your favourite cloud. Let's pretend it's Amazon US East, as follows: 
+
+{% highlight bash %}
+% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.SimpleCassandraCluster \
+  --location aws-ec2:us-east-1
+{% endhighlight %}
+
+If you want more nodes in your cluster, you can either modify the deployment descriptor (i.e. change the ``INITIAL_SIZE`` value),
+or dynamically add more nodes by calling the ``resize`` effector through the web-console. 
+To do the latter, select cluster entity in the tree on the left, then click on the "effectors" tab, and invoke ``resize`` 
+with the desired number of nodes.
+
+
+### Testing your Cluster
+
+An easy way to test your cluster is to use the ``cassandra-stress`` command line tool.
+For example, run:
+
+{% highlight bash %}
+# Substitute the id below for your VM
+NODE_IDS=ec2-54-221-69-95.compute-1.amazonaws.com
+/tmp/brooklyn-aled/installs/CassandraNode/1.2.9/apache-cassandra-1.2.9/tools/bin/cassandra-stress \
+	--nodes ${NODE_IDS} \
+    --replication-factor 1 \
+    --progress-interval 1 \
+    --num-keys 10000 \
+    --operation INSERT
+{% endhighlight %}
+
+This command will fire 10000 inserts at the cluster, via the nodes specified in the comma-separated node list. 
+If you change ``INSERT`` to ``READ``, it will read each of those 10000 values.
+
+
+## High Availability Cassandra Cluster
+
+Ready for something more interesting?  Try this:
+
+{% highlight bash %}
+% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.HighAvailabilityCassandraCluster \
+  --location aws-ec2:us-east-1
+{% endhighlight %}
+
+This launches the class ``HighAvailabilityCassandraCluster``,
+which launches a Cassandra cluster configured to replicate across availability zones.
+
+To give some background for that statement, in 
+[AWS](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html)
+(and various other clouds), a region is a 
+separate geographic area, consisting of multiple isolated locations known as availability zones.
+To ensure high availability, the Cassandra cluster and thus the data should be spread across the 
+availability zones. Cassandra should be configured to ensure there is at least one replica in
+each availability zone. In 
+[Cassandra terminology](http://www.datastax.com/docs/1.1/cluster_architecture/replication)
+a region is normally mapped to a "datacenter" and an availability zone to a "rack".
+
+To be properly highly available, we need some automated policies to restart failed servers 
+and to replace unhealthy nodes. Brooklyn has these policies available out-of-the-box.
+To wire them up, the essential code fragment looks like this:
+
+{% highlight java %}
+public class HighAvailabilityCassandraCluster extends AbstractApplication {
+  public void init() {
+    addChild(EntitySpec.create(CassandraCluster.class)
+        .configure(CassandraCluster.CLUSTER_NAME, "Brooklyn")
+        .configure(CassandraCluster.INITIAL_SIZE, 1)
+        .configure(CassandraCluster.ENABLE_AVAILABILITY_ZONES, true)
+        .configure(CassandraCluster.NUM_AVAILABILITY_ZONES, 3)
+        .configure(CassandraCluster.ENDPOINT_SNITCH_NAME, "GossipingPropertyFileSnitch")
+        .configure(CassandraCluster.MEMBER_SPEC, EntitySpec.create(CassandraNode.class)
+            .policy(PolicySpec.create(ServiceFailureDetector.class))
+            .policy(PolicySpec.create(ServiceRestarter.class)
+                .configure(ServiceRestarter.FAILURE_SENSOR_TO_MONITOR, ServiceFailureDetector.ENTITY_FAILED)))
+        .policy(PolicySpec.create(ServiceReplacer.class)
+            .configure(ServiceReplacer.FAILURE_SENSOR_TO_MONITOR, ServiceRestarter.ENTITY_RESTART_FAILED)));
+  }
+}
+{% endhighlight %}
+
+This code is doing a lot and deserves some more detailed explanation:
+
+* The ``MEMBER_SPEC`` describes the configuration of the Cassandra nodes to be created in the cluster.
+  Assuming you're happy to use all the default thrift port etc, then the only configuration to add is
+  a couple of policies.
+* The ``ServiceFailureDetector`` policy watches the node's sensors, and generates
+  an ``ENTITY_FAILED`` event if the node goes down.
+* The ``ServiceRestarter`` policy responds to this failure-event
+  by restarting the node. Its default configuration is that: if a node does not come back up, or if it 
+  fails again within three minutes, then it will emit an ``ENTITY_RESTART_FAILED`` event.
+* Finally, the ``SERVICE_REPLACER`` policy on the cluster responds to this event by replacing the
+  entire VM. It sets up a new VM in the same location, and then tears down the faulty node.
+
+> *Troubleshooting:*
+
+> *In AWS, some availability zones can be constrained for particular instance sizes (see
+  [this bug report](https://github.com/brooklyncentral/brooklyn/issues/973)
+  If you get this error, the workaround is to specify explicitly the availability zones to use. 
+  This requires an additional line of code such as:*
+
+{% highlight java %}
+  .configure(AVAILABILITY_ZONE_NAMES, ImmutableList.of("us-east-1b", "us-east-1c", "us-east-1e"))
+{% endhighlight %}
+
+> *However, this prevents the blueprint from being truly portable. We're looking at fixing this issue.*
+
+
+## Wide Area Cassandra Cluster
+
+For critical enterprise use-cases, you'll want to run your Cassandra cluster across multiple regions, 
+or better yet across multiple cloud providers. This gives the highest level of availability for 
+the service.
+
+Try running:
+
+{% highlight bash %}
+% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.WideAreaCassandraCluster \
+  --location "aws-ec2:us-east-1,aws-ec2:us-west-2"
+{% endhighlight %}
+
+This launches the class ``WideAreaCassandraCluster`` across two AWS regions.
+
+Cassandra provides some great support for this with the 
+[EC2MultiRegionSnitch](http://www.datastax.com/docs/1.1/cluster_architecture/replication)
+The 
+[snitch](http://www.datastax.com/docs/1.1/cluster_architecture/replication#snitches)
+maps IPs to racks and data centers; it defines how the nodes are grouped together within the overall 
+network topology. For wide-area deployments, it must also deal with when to use the private IPs 
+(within a region) and the public IPs (between regions).
+You'll need a more generic snitch if you're going to span different cloud providers.
+Brooklyn has a custom MultiCloudSnitch that we're looking to contribute back to Cassandra.
+
+The important piece of code in ``WideAreaCassandraCluster`` is:
+
+{% highlight java %}
+public class WideAreaCassandraCluster extends AbstractApplication {
+  public void init() {
+    addChild(EntitySpec.create(CassandraFabric.class)
+        .configure(CassandraCluster.CLUSTER_NAME, "Brooklyn")
+        .configure(CassandraCluster.INITIAL_SIZE, 2) // per location
+        .configure(CassandraCluster.ENDPOINT_SNITCH_NAME, "brooklyn.entity.nosql.cassandra.customsnitch.MultiCloudSnitch")
+        .configure(CassandraNode.CUSTOM_SNITCH_JAR_URL, "classpath://brooklyn/entity/nosql/cassandra/cassandra-multicloud-snitch.jar"));
+  }
+}
+{% endhighlight %}
+
+The code below shows the wide-area example with the high-availability policies from the previous section also configured:
+
+{% highlight java %}
+public class WideAreaCassandraCluster extends AbstractApplication {
+  public void init() {
+    addChild(EntitySpec.create(CassandraFabric.class)
+        .configure(CassandraCluster.CLUSTER_NAME, "Brooklyn")
+        .configure(CassandraCluster.INITIAL_SIZE, 2) // per location
+        .configure(CassandraCluster.ENDPOINT_SNITCH_NAME, "brooklyn.entity.nosql.cassandra.customsnitch.MultiCloudSnitch")
+        .configure(CassandraNode.CUSTOM_SNITCH_JAR_URL, "classpath://brooklyn/entity/nosql/cassandra/cassandra-multicloud-snitch.jar")
+        .configure(CassandraFabric.MEMBER_SPEC, EntitySpec.create(CassandraCluster.class)
+            .configure(CassandraCluster.MEMBER_SPEC, EntitySpec.create(CassandraNode.class)
+                .policy(PolicySpec.create(ServiceFailureDetector.class))
+                .policy(PolicySpec.create(ServiceRestarter.class)
+                    .configure(ServiceRestarter.FAILURE_SENSOR_TO_MONITOR, ServiceFailureDetector.ENTITY_FAILED)))
+            .policy(PolicySpec.create(ServiceReplacer.class)
+                 .configure(ServiceReplacer.FAILURE_SENSOR_TO_MONITOR, ServiceRestarter.ENTITY_RESTART_FAILED))));
+  }
+}
+{% endhighlight %}
+
+To run Cassandra across multiple clouds, try running:
+
+{% highlight bash %}
+% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.WideAreaCassandraCluster \
+  --location "aws-ec2:us-east-1,google-compute-engine,rackspace-cloudservers-uk"
+{% endhighlight %}
+
+
+### Testing your Wide-Area Cluster
+
+You can again use the ``cassandra-stress`` command line tool to test the wide-area cluster.
+
+Note that the replication strategy (such as 
+[NetworkTopologyStrategy](http://www.datastax.com/docs/1.0/cluster_architecture/replication#networktopologystrategy)
+is specified when creating a 
+[keyspace](http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/configuration/configStorage_r.html).
+The example below specifies a minimum of 1 replica in each datacenter.
+
+To do updates against a node in a given availability zone:
+
+{% highlight bash %}
+NODE_IDS=<your node hostname>
+/tmp/brooklyn-aled/installs/CassandraNode/1.2.9/apache-cassandra-1.2.9/tools/bin/cassandra-stress \
+    --nodes ${NODE_IDS} \
+    --replication-strategy NetworkTopologyStrategy \
+    --strategy-properties=us-east-1:1,us-west-2:1 \
+    --progress-interval 1 \
+    --num-keys 10000 \
+    --operation INSERT
+{% endhighlight %}
+
+To check that the same data is available from a different region, target the reads
+against an appropriate node:
+
+{% highlight bash %}
+NODE_IDS=<your node hostname>
+/tmp/brooklyn-aled/installs/CassandraNode/1.2.9/apache-cassandra-1.2.9/tools/bin/cassandra-stress \
+    --nodes ${NODE_IDS} \
+    --replication-strategy NetworkTopologyStrategy \
+    --strategy-properties=us-east-1:1,us-west-2:1 \
+    --progress-interval 1 \
+    --num-keys 10000 \
+    --operation READ
+{% endhighlight %}
+
+To really test this, you may want to simulate the failure of a region first.
+You can kill the VMs or ``kill -9`` the processes. But remember that if Brooklyn policies are configured
+they will by default restart the processes automatically! You can disable the Brooklyn policies through 
+the brooklyn web-console (select the entity, go the policies tab, select the policy, and click "disable").
+
+
+## Putting it all together: CumulusRDF
+
+If you want to try this with a real example application using the Cassandra cluster, take a look at
+[CumulusRDF](https://code.google.com/p/cumulusrdf). There is an example Brooklyn application at:
+
+{% highlight bash %}
+% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.CumulusRDFApplication \
+  --location "aws-ec2:us-east-1"
+{% endhighlight %}
+
+
+## Contact us!
+
+If you encounter any difficulties or have any comments, please [tell us]({{ site.url }}/meta/contact.html) and we'll do our best to help.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/nosql-cassandra/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/nosql-cassandra/index.md b/docs/guide/use/examples/nosql-cassandra/index.md
new file mode 100644
index 0000000..13caf53
--- /dev/null
+++ b/docs/guide/use/examples/nosql-cassandra/index.md
@@ -0,0 +1,7 @@
+---
+layout: guide-normal
+title: Cassandra Clusters
+toc: /toc.json
+---
+
+{% readj cassandra.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/simple-web-cluster.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/simple-web-cluster.md b/docs/guide/use/examples/simple-web-cluster.md
new file mode 100644
index 0000000..e9ddac6
--- /dev/null
+++ b/docs/guide/use/examples/simple-web-cluster.md
@@ -0,0 +1,9 @@
+---
+layout: guide-normal
+title: Elastic Web Cluster
+toc: /toc.json
+---
+
+<!-- file kept to preserve old links; remove when link not used -->
+
+{% readj webcluster/webcluster.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/toc.json b/docs/guide/use/examples/toc.json
new file mode 100644
index 0000000..2f36c50
--- /dev/null
+++ b/docs/guide/use/examples/toc.json
@@ -0,0 +1,13 @@
+[
+{ "title": "Elastic Web Cluster",
+  "file":  "{{ site.url }}/use/examples/webcluster/index.html" },
+{ "title": "Global Web Fabric",
+  "file":  "{{ site.url }}/use/examples/global-web-fabric/index.html" },
+{ "title": "Whirr Hadoop Cluster",
+  "file":  "{{ site.url }}/use/examples/whirrhadoop/index.html" },
+{ "title": "Publish-Subscribe Messaging",
+  "file":  "{{ site.url }}/use/examples/messaging/index.html" },
+{ "title": "Cassandra Cluster",
+  "file":  "{{ site.url }}/use/examples/nosql-cassandra/index.html" }
+
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/webcluster.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/webcluster.md b/docs/guide/use/examples/webcluster.md
new file mode 100644
index 0000000..e9ddac6
--- /dev/null
+++ b/docs/guide/use/examples/webcluster.md
@@ -0,0 +1,9 @@
+---
+layout: guide-normal
+title: Elastic Web Cluster
+toc: /toc.json
+---
+
+<!-- file kept to preserve old links; remove when link not used -->
+
+{% readj webcluster/webcluster.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/webcluster/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/webcluster/index.md b/docs/guide/use/examples/webcluster/index.md
new file mode 100644
index 0000000..43ea980
--- /dev/null
+++ b/docs/guide/use/examples/webcluster/index.md
@@ -0,0 +1,7 @@
+---
+layout: guide-normal
+title: Elastic Web Cluster
+toc: /toc.json
+---
+
+{% readj webcluster.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/webcluster/webcluster.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/webcluster/webcluster.include.md b/docs/guide/use/examples/webcluster/webcluster.include.md
new file mode 100644
index 0000000..11e801b
--- /dev/null
+++ b/docs/guide/use/examples/webcluster/webcluster.include.md
@@ -0,0 +1,124 @@
+      
+{% readj ../before-begin.include.md %}
+
+## Simple Web Server
+
+Go to this particular example's directory:
+
+{% highlight bash %}
+% cd simple-web-cluster
+{% endhighlight %}
+
+The CLI needs to know where to find your compiled examples. You can set this up by exporting
+the ``BROOKLYN_CLASSPATH`` environment variable in the following way:
+
+{% highlight bash %}
+% export BROOKLYN_CLASSPATH=$(pwd)/target/classes
+{% endhighlight %}
+
+The project ``simple-web-cluster`` includes several deployment descriptors
+for rolling out a web application, under ``src/main/java``.
+
+
+
+The simplest of these, ``SingleWebServerExample``, starts JBoss on a single machine with a "Hello World" war deployed,
+with a single line:
+
+{% highlight java %}
+public class SingleWebServerExample extends AbstractApplication {
+    private static final String WAR_PATH = "classpath://hello-world-webapp.war";
+
+    @Override
+    public void init() {
+        addChild(EntitySpec.create(JBoss7Server.class)
+                .configure("war", WAR_PATH)
+                .configure("httpPort", 8080));
+    }
+}
+{% endhighlight %}
+
+You can run this as follows (on *nix or Mac, assuming `ssh localhost` requires no password or passphrase):
+
+{% highlight bash %}
+% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.SingleWebServerExample \
+  --location localhost
+{% endhighlight %}
+
+
+Then visit the webapp on port 8080, or the Brooklyn console on localhost:8081.
+Note that the installation may take some time, because the default deployment downloads the software from
+the official repos.  You can monitor start-up activity for each entity in the ``Activity`` pane in the management console,
+and see more detail by tailing the log file (``tail -f brooklyn.log``).
+
+With appropriate setup (as described [here]({{ site.url }}/use/guide/management/index.html#startup-config)) 
+this can also be deployed to your favourite cloud, let's pretend it's Amazon Ireland, as follows: 
+
+{% highlight bash %}
+% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.SingleWebServerExample \
+  --location aws-ec2:eu-west-1
+{% endhighlight %}
+
+
+## Elastic Three-Tier
+
+Ready for something more interesting?  Try this:
+
+{% highlight bash %}
+% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.WebClusterDatabaseExample \
+  --location localhost
+{% endhighlight %}
+
+This launches the class ``WebClusterDatabaseExample`` (also described in the [walkthrough]({{ site.url }}/start/walkthrough/index.html))
+which launches a pool of web-servers -- of size 1 initially,
+but manually configurable (if you stop the policy first, in the GUI, then use the ``resize`` effector) --
+with an Nginx load-balancer set up in front of them, and backed by a MySQL database.
+
+The essential code fragment looks like this:
+
+{% highlight java %}
+public class WebClusterDatabaseExample extends AbstractApplication {
+    public static final String WAR_PATH = "classpath://hello-world-sql-webapp.war";
+    
+    public static final String DB_SETUP_SQL_URL = "classpath://visitors-creation-script.sql";
+    
+    public static final String DB_TABLE = "visitors";
+    public static final String DB_USERNAME = "brooklyn";
+    public static final String DB_PASSWORD = "br00k11n";
+
+    @Override
+    public void init() {
+        MySqlNode mysql = addChild(EntitySpec.create(MySqlNode.class)
+                .configure("creationScriptUrl", DB_SETUP_SQL_URL));
+        
+        ControlledDynamicWebAppCluster web = addChild(EntitySpec.create(ControlledDynamicWebAppCluster.class)
+                .configure("memberSpec", EntitySpec.create(JBoss7Server.class)
+                        .configure("httpPort", "8080+")
+                        .configure("war", WAR_PATH)
+                        .configure(javaSysProp("brooklyn.example.db.url"), 
+                                formatString("jdbc:%s%s?user=%s\\&password=%s", 
+                                        attributeWhenReady(mysql, MySqlNode.MYSQL_URL), DB_TABLE, DB_USERNAME, DB_PASSWORD))));
+        
+        web.getCluster().addPolicy(AutoScalerPolicy.builder().
+                        metric(DynamicWebAppCluster.AVERAGE_REQUESTS_PER_SECOND).
+                        sizeRange(1, 5).
+                        metricRange(10, 100).
+                        build());
+    }
+}
+{% endhighlight %}
+
+You can, of course, try this with your favourite cloud, 
+tweak the database start script, or drop in your favourite WAR.
+
+
+## A Few Other Things
+
+The project includes variants of the examples shown here, 
+including alternative syntax (the `*Alt*` files), 
+and a web-only cluster (no database) in `WebClusterExample``.
+
+The webapp that is used is included under ``examples/hello-world-webapp``.
+
+You may wish to check out the [Global Web Fabric example]({{ site.url }}/use/examples/global-web-fabric/) next.
+
+If you encounter any difficulties, please [tell us]({{ site.url }}/meta/contact.html) and we'll do our best to help.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/Chef.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/Chef.png b/docs/guide/use/guide/defining-applications/Chef.png
new file mode 100644
index 0000000..d899de2
Binary files /dev/null and b/docs/guide/use/guide/defining-applications/Chef.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/advanced-concepts.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/advanced-concepts.md b/docs/guide/use/guide/defining-applications/advanced-concepts.md
new file mode 100644
index 0000000..3b808f2
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/advanced-concepts.md
@@ -0,0 +1,137 @@
+---
+title: Advanced Concepts
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide, defining-applications]
+---
+
+Lifecycle and ManagementContext
+-------------------------------
+
+Under-the-covers, at heart of the brooklyn management plane is the ``ManagementContext``. 
+This is started automatically when using launching an application using the brooklyn CLI. For programmatic use, see 
+``BrooklynLauncher.newLauncher().launch()``.
+
+A Brooklyn deployment consists of many entities in a hierarchical tree, with the privileged *application* entity at the top level.
+
+An application entity (``Application`` class) is responsible for starting the deployment of all its child entities (i.e. the entire entity tree under its ownership).
+
+An ``Application``'s ``start()`` method begins provisioning the child entities of the application (and their entities, recursively). 
+
+Provisioning of entities typically happens in parallel automatically,
+although this can be customized. This is implemented as ***tasks*** which are tracked by the management plane and is visible in the [web-based management console]({{site.url}}/use/guide/management/index.html#console).
+
+Customized provisioning can be useful where two starting entities depend on each other. For example, it is often necessary to delay start of one entity until another entity reaches a certain state, and to supply run-time information about the latter to the former.
+
+<!-- TODO ambiguous language; need a better description of the "manage" lifecycle -->
+When new entities are created, the entity is wired up to an application by giving it a parent. The entity is then explicitly "managed", which allows other entities to discover it.
+
+Typically a Brooklyn deployment has a single management context which records:
+
+*   all entities under management that are reachable by the application(s) via the parent-child relationships,
+*	the state associated with each entity,
+*	subscribers (listeners) to sensor events arising from the entities,
+*	active tasks (jobs) associated with any the entity,
+*	which Brooklyn management node is mastering (managing) each entity.
+
+<!-- TODO Distributed brooklyn not yet supported; needs clarification in docs -->
+
+In a multi-location deployment, management operates in all regions, with brooklyn entity instances being mastered in the relevant region.
+
+When management is distributed a Brooklyn deployment may consist of multiple Brooklyn management nodes each with a ``ManagementContext`` instance.
+
+<!-- TODO - Clarify the following statements.
+The management context entity forms part of the management plane. 
+The management plane is responsible for the distribution of the ``Entity`` instances across multiple machines and multiple locations, 
+tracking the transfer of events (subscriptions) between ``Entity`` instances, and the execution of tasks (often initiated by management policies).
+-->
+
+<a name="dependent"></a>
+Dependent Configuration
+-----------------------
+
+Under the covers Brooklyn has a sophisticated sensor event and subscription model, but conveniences around this model make it very simple to express cross-entity dependencies. Consider the example where Tomcat instances need to know the URL of a database (or a set of URLs to connect to a Monterey processing fabric, or other entities)
+
+{% highlight java %}
+setConfiguration(UsesJava.JAVA_OPTIONS, ImmutableMap.of("mysql.url", 
+	    attributeWhenReady(mysql, MySqlNode.MY_SQL_URL) ))
+{% endhighlight %}
+
+The ``attributeWhenReady(Entity, Sensor)`` call (a static method on the class ``DependentConfiguration``)
+causes the configuration value to be set when that given entity's attribue is ready. 
+In the example, ``attributeWhenReady()`` causes the JVM system property ``mysql.url`` to be set to the value of the ``MySqlNode.MY_SQL_URL`` sensor from ``mysql`` when that value is ready. As soon as the database URL is announced by the MySql entity, the configuration value will be available to the Tomcat cluster. 
+
+By default "ready" means being *set* (non-null) and, if appropriate, *non-empty* (for collections and strings) or *non-zero* (for numbers). Formally the interpretation of ready is that of "Groovy truth" defined by an ``asBoolean()`` method on the class and in the Groovy language extensions. 
+
+You can customize "readiness" by supplying a ``Predicate`` (Google common) or ``Closure`` (Groovy) in a third parameter. 
+This evaluates candidate values reported by the sensor until one is found to be ``true``. 
+For example, passing ``{ it.size()>=3 }`` as the readiness argument would require at least three management plane URLs.
+
+More information on this can be found in the javadoc for ``DependentConfiguration``,
+along with a few other methods such as ``valueWhenAttributeReady`` which allow post-processing of an attribute value.
+
+Note that if the value of ``CONFIG_KEY`` passed to ``Entity.getConfig`` is a Closure or Task (such as returned by ``attributeWhenReady``),
+the first access of ``Entity.getConfig(CONFIG_KEY)`` will block until the task completes.
+Typically this does the right thing, blocking when necessary to generate the right start-up sequence
+without the developer having to think through the order, but it can take some getting used to.
+Be careful not to request config information until really necessary (or to use non-blocking "raw" mechanisms),
+and in complicated situations be ready to attend to circular dependencies.
+The management console gives useful information for understanding what is happening and resolving the cycle.
+
+Location
+--------
+<!-- TODO, Clarify is how geographical location works.
+-->
+
+Entities can be provisioned/started in the location of your choice. Brooklyn transparently uses [jclouds](http://www.jclouds.org) to support different cloud providers and to support BYON (Bring Your Own Nodes). 
+
+The implementation of an entity (e.g. Tomcat) is agnostic about where it will be installed/started. When writing the application definition specify the location or list of possible locations (``Location`` instances) for hosting the entity.
+
+``Location`` instances represent where they run and indicate how that location (resource or service) can be accessed.
+
+For example, a ``JBoss7Server`` will usually be running in an ``SshMachineLocation``, which contains the credentials and address for sshing to the machine. A cluster of such servers may be running in a ``MachineProvisioningLocation``, capable of creating new ``SshMachineLocation`` instances as required.
+
+<!-- TODO, incorporate the following.
+
+The idea is that you could specify the location as AWS and also supply an image id. You could configure the Tomcat entity accordingly: specify the path if the image already has Tomcat installed, or specify that Tomcat must be downloaded/installed. Entities typically use _drivers_ (such as SSH-based) to install, start, and interact with their corresponding real-world instance. 
+-->
+
+Policies
+--------
+Policies perform the active management enabled by Brooklyn. Entities can have zero or more ``Policy`` instances attached to them. 
+
+Policies can subscribe to sensors from entities or run periodically, and
+when they run they can perform calculations, look up other values, and if deemed necessary invoke effectors or emit sensor values from the entity with which they are associated.
+
+Execution
+---------
+
+All processing, whether an effector invocation or a policy cycle, are tracked as ***tasks***. This allows several important capabilities:
+
+*	active and historic processing can be observed by operators
+*	the invocation context is available in the thread, to check entitlement (permissions) and maintain a
+hierarchical causal chain even when operations are run in parallel
+*	processing can be managed across multiple management nodes
+
+Some executions create new entities, which can then have tasks associated with them, and the system will record, for example, that a start efector on the new entity is a task associated with that entity, with that task
+created by a task associated with a different entity.
+
+The execution of a typical overall start-up sequence is shown below:
+
+[![Brooklyn Flow Diagram](brooklyn-flow-websequencediagrams.com-w400.png "Brooklyn Flow Diagram" )](brooklyn-flow-websequencediagrams.com.png)
+
+
+## Integration
+
+One vital aspect of Brooklyn is its ability to communicate with the systems it starts. This is abstracted using a ***driver*** facility in Brooklyn, where a
+driver describes how a process or service can be installed and managed using a particular technology.
+
+For example, a ``TomcatServer`` may implement start and other effectors using a ``TomcatSshDriver`` which inherits from ``JavaSoftwareProcessSshDriver`` (for JVM and JMX start confguration), inheriting from ``AbstractSoftwareProcessSshDriver``
+(for SSH scripting support).
+
+Particularly for sensors, some technologies are used so frequently that they are
+packaged as ***feeds*** which can discover their configuration (including from drivers). These include JMX and HTTP (see ``JmxFeed`` and ``HttpFeed``).
+
+Brooklyn comes with entity implementations for a growing number of commonly used systems, including various web application servers, databases and NoSQL data stores, and messaging systems. See: [Extras]({{site.url}}/use/guide/extras/index.html).
+
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/archetype.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/archetype.md b/docs/guide/use/guide/defining-applications/archetype.md
new file mode 100644
index 0000000..4894af7
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/archetype.md
@@ -0,0 +1,64 @@
+---
+title: Common Usage
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide, defining-applications]
+---
+
+### Maven Archetype
+
+Brooklyn includes a maven archetype, which can be used to create the project structure for a new application.
+
+This can be done interactively using:
+{% highlight bash %}
+$ mvn archetype:generate
+{% endhighlight %}
+
+The user will be prompted for the archetype to use (i.e. group "io.brooklyn" 
+and artifact "brooklyn-archetype-quickstart"), as well as options for the project 
+to be created.
+
+Alternatively, all options can be supplied at the command line. For example, 
+if creating a project named "autobrick" for "com.acme":
+
+{% highlight bash %}
+$ mvn archetype:generate \
+	-DarchetypeGroupId=io.brooklyn \
+	-DarchetypeArtifactId=brooklyn-archetype-quickstart \
+	-DarchetypeVersion={{ site.brooklyn-version }} \
+	-DgroupId=com.acme -DartifactId=autobrick \
+	-Dversion=0.1.0-SNAPSHOT \
+	-DpackageName=com.acme.autobrick \
+	-DinteractiveMode=false
+{% endhighlight %}
+
+This will create a directory with the artifact name (e.g. "autobrick" in the example above).
+Note that if run from a directory containing a pom, it will also modify that pom to add this as a module!
+
+The project will contain an example app. You can run this, and also replace it with your own
+application code.
+
+To build, run the commands:
+
+{% highlight bash %}
+$ cd autobrick
+$ mvn clean install assembly:assembly
+{% endhighlight %}
+
+The assembly command will build a complete standalone distribution archive in `target/autobrick-0.1.0-SNAPSHOT-dist.tar.gz`,
+suitable for redistribution and containing `./start.sh` in the root.
+
+An unpacked equivalent is placed in `target/autobrick-0.1.0-SNAPSHOT-dist`,
+thus you can run the single-node sample locally with:
+
+{% highlight bash %}
+$ cd target/autobrick-0.1.0-SNAPSHOT-dist/autobrick-0.1.0-SNAPSHOT/
+$ ./start.sh launch --single
+{% endhighlight %}
+
+This `start.sh` script has all of the same options as the default `brooklyn` script, 
+including `./start.sh help` and the `--location` argument for `launch`,
+with a couple of extra `launch` options for the sample blueprints in the archetype project:
+
+- `./start.sh launch --single` will launch a single app-server instance
+- `./start.sh launch --cluster` will launch a cluster of app-servers

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/basic-concepts.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/basic-concepts.md b/docs/guide/use/guide/defining-applications/basic-concepts.md
new file mode 100644
index 0000000..51d36a6
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/basic-concepts.md
@@ -0,0 +1,95 @@
+---
+title: Basic Concepts
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide, defining-applications]
+---
+
+This introduces brooklyn and describes how it simplifies the deployment and management of big applications. It is
+intended for people who are using brooklyn-supported application components (such as web/app servers, data stores)
+to be able to use brooklyn to easily start their application in multiple locations with off-the-shelf management
+policies.
+
+Entities
+--------
+
+The central concept in a Brooklyn deployment is that of an ***entity***. 
+An entity represents a resource under management, either *base* entities (individual machines or software processes) 
+or logical collections of these entities.
+
+Fundamental to the processing model is the capability of entities to be the *parent* of other entities (the mechanism by which collections are formed), 
+with every entity having a single parent entity, up to the privileged top-level ***application*** entity.
+
+Entities are code, so they can be extended, overridden, and modified. Entities can have events, operations, and processing logic associated with them, and it is through this mechanism that the active management is delivered.
+
+The main responsibilities of an entity are:
+
+- Provisioning the entity in the given location or locations
+- Holding configuration and state (attributes) for the entity
+- Reporting monitoring data (sensors) about the status of the entity
+- Exposing operations (effectors) that can be performed on the entity
+- Hosting management policies and tasks related to the entity
+
+
+Application, Parent and Membership
+-------------------------------------
+
+All entities have a ***parent*** entity, which creates and manages it, with one important exception: *applications*.
+Application entities are the top-level entities created and managed externally, manually or programmatically.
+
+Applications are typically defined in Brooklyn as an ***application descriptor***. 
+This is a Java class specifying the entities which make up the application,
+by extending the class ``AbstractApplication``, and specifying how these entities should be configured and managed.
+
+All entities, including applications, can be the parent of other entities. 
+This means that the "child" is typically started, configured, and managed by the parent.
+For example, an application may be the parent of a web cluster; that cluster in turn is the parent of web server processes.
+In the management console, this is represented hierarchically in a tree view.
+
+A parallel concept is that of ***membership***: in addition to one fixed parent,
+and entity may be a ***member*** of any number of special entities called ***groups***.
+Membership of a group can be used for whatever purpose is required; 
+for example, it can be used to manage a collection of entities together for one purpose 
+(e.g. wide-area load-balancing between locations) even though they may have been
+created by different parents (e.g. a multi-tier stack within a location).
+
+
+Configuration, Sensors and Effectors
+------------------------------------
+
+### Configuration
+
+All entities contain a map of config information. This can contain arbitrary values, typically keyed under static ``ConfigKey`` fields on the ``Entity`` sub-class. These values are inherited, so setting a configuration value at the
+application level will make it available in all entities underneath unless it is overridden.
+
+Configuration is propagated when an application "goes live" (i.e. it becomes "managed", either explicitly or when its ``start()`` method is invoked), so config values must be set before this occurs. 
+
+Configuration values can be specified in a configuration file (``~/.brooklyn/brooklyn.properties``)
+to apply universally, and/or programmatically to a specific entity and its descendants 
+by calling `.configure(KEY, VALUE)` in the entity spec when creating it.
+There is also an ``entity.setConfig(KEY, VALUE)`` method.
+
+Additionally, many common configuration parameters are available as "flags" which can be supplied as Strings when constructing
+then entity, in the form
+``EntitySpec.create˙(MyEntity.class).configure("config1", "value1").configure("config2", "value2")``. 
+
+Documentation of the flags available for individual entities can normally be found in the javadocs. 
+The ``@SetFromFlag`` annotations on ``ConfigKey`` static field definitions
+in the entity's interface is the recommended mechanism for exposing configuration options.
+
+
+### Sensors and Effectors
+
+***Sensors*** (activity information and notifications) and ***effectors*** (operations that can be invoked on the entity) are defined by entities as static fields on the ``Entity`` subclass.
+
+Sensors can be updated by the entity or associated tasks, and sensors from an entity can be subscribed to by its parent or other entities to track changes in an entity's activity.
+
+Effectors can be invoked by an entity's parent remotely, and the invoker is able to track the execution of that effector. Effectors can be invoked by other entities, but use this functionality with care to prevent too many managers!
+
+An entity consists of a Java interface (used when interacting with the entity) and a Java class. For resilience. it is recommended to store 
+the entity's state in attributes (see `getAttribute(AttributeKey)``). If internal fields can be used then the data will be lost on brooklyn 
+restart, and may cause problems if the entity is to be moved to a different brooklyn management node.
+
+Next: [Advanced Concepts]({{site.url}}/use/guide/defining-applications/advanced-concepts.html).
+See also: [Management > Sensors and Effectors]({{site.url}}/use/guide/management/index.html#sensors-and-effectors).
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com-w400.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com-w400.png b/docs/guide/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com-w400.png
new file mode 100644
index 0000000..c2b48ba
Binary files /dev/null and b/docs/guide/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com-w400.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com.png b/docs/guide/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com.png
new file mode 100644
index 0000000..78eb5c8
Binary files /dev/null and b/docs/guide/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/chef-blueprints.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/chef-blueprints.md b/docs/guide/use/guide/defining-applications/chef-blueprints.md
new file mode 100644
index 0000000..4f9612a
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/chef-blueprints.md
@@ -0,0 +1,277 @@
+---
+title: Using Chef in YAML Blueprints
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide, defining-applications]
+---
+
+This guide describes how Brooklyn entities can be easily created from Chef cookbooks.
+As of this writing (May 2014) some of the integration points are under active development,
+and comments are welcome.
+A plan for the full integration is online [here](https://docs.google.com/a/cloudsoftcorp.com/document/d/18ZwzmncbJgJeQjnSvMapTWg6N526cvGMz5jaqdkxMf8).  
+
+This guide assumes you are familiar with the basics of [creating YAML blueprints](creating-yaml.html).
+
+
+## What you need to know about Chef
+
+Chef works in two different modes, *server* and *solo*. *Server* is where the Chef client talks to a central server
+to retrieve information about its roles, policies and cookbooks (where a cookbook defines how to install and
+configure a particular piece of software). With *solo*, the client works in isolation, therefore its configuration
+and cookbooks must be supplied by another means.
+
+Chef *client* is the Chef agent. This is a Ruby application which is installed on each and every managed host. When
+invoked in server mode, it will contact the Chef server to check for updates to cookbooks and policy; it then "runs"
+the recipes in its run lists, to converge the machine to a known state. In solo mode, it reads the locally-maintained
+cookbooks and policies. The client may be run as a daemon that checks the server regularly, or it could merely be
+run manually when required.
+
+The *policy* is a set of rules on the Chef server. A client starts with a set of *attributes*, which could be as
+simple as its name and a recipe runlist, or which may involve a more complex set of attributes about how it is to be
+configured. The client then augments this with auto-detected metadata - a tool called `ohai` is run that collects
+detailed information about the host. Next, the policy on the server modifies these attributes - overriding some,
+setting defaults for others - to produce a final set of attributes. It is these which are the input to the recipes.
+Finally, the attributes are uploaded to the server where they are stored as metadata for the node, where they can be
+inspected and modified by the system operator.
+
+Also of interest is `knife`, which is the workstation toolkit for Chef. Typically this would be installed on the
+operation engineer's workstation, where it would be used to interact with the Chef server and clients. Of particular
+interest to us is the *bootstrap* operation, which is used for setting up new Chef clients - given a virtual machine,
+it will install the Chef client on it, configure it with enough information to find the Chef server and performs its
+first run, and then kicks off the Chef client for the first time.
+
+There is often a preconception about how a Chef client is bootstrapped; mistakenly, there is the belief that the
+`knife` tool configures the Chef server with information about the client, and the client finds out about itself from
+the server. This is not the case - the bootstrap operation does not involve `knife` talking to the server. Instead,
+`knife` packages up all of the required information and sends it to the client - the client will then introduce
+itself to the server, passing on its configuration.
+
+This diagram summarises the interaction between Brooklyn, the new node, and the various Chef tools. Note that there
+is no interaction between the AMP Server and the Chef Server.
+
+[![Chef Flow Diagram](Chef.png "Chef Flow Diagram" )](Chef.png)
+
+### How Brooklyn interacts with Chef
+
+Brooklyn understands both the *server* and *solo* modes of operation. Server mode utilises the `knife` toolkit, and
+therefore `knife` must be installed onto the AMP server and configured appropriately. Solo mode does not have any
+special requirements; when running in solo mode, Brooklyn will install and configure the Chef client over SSH, just
+like it does most other kinds of entities.
+
+
+## Creating Blueprints from Chef
+
+In a nutshell, a new Chef-based entity can be defined as a service by specifying
+`chef:cookbook_name` as the `service_type`, along with a collection of optional configuration.
+An illustrative example is below:
+
+{% highlight yaml %}
+{% readj example_yaml/mysql-chef-1.yaml %}
+{% endhighlight %}
+
+*This works without any installation: try it now, copying-and-pasting to the Brooklyn console.
+(Don't forget to add your preferred `location: some-cloud` to the spec.)*  
+
+We'll now walk through the important constituent parts,
+and then proceed to describing things which can be done to simplify the deployment.
+
+
+### Cookbook Primary Name
+
+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`) 
+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.
+
+
+### Importing Cookbooks
+
+Next we specify which cookbooks are required and where they can be pulled from:
+
+      cookbook_urls:
+        mysql: https://github.com/opscode-cookbooks/mysql/archive/v4.0.12.tar.gz
+        openssl: https://github.com/opscode-cookbooks/openssl/archive/v1.1.0.tar.gz
+        build-essential: https://github.com/opscode-cookbooks/build-essential/archive/v1.4.4.tar.gz
+
+Here, specific versions are being downloaded from the canonical github repository.
+Any URL can be used, so long as it is resolvable on either the target machine or the
+Brooklyn server; this includes `file:` and `classpath:` URLs.
+
+The archive can be ZIP or TAR or TGZ.
+
+The structure of the archive must be that a single folder is off the root,
+and in that folder contains the usual Chef recipe and auxiliary files.
+For example, the archive might contain `mysql-master/recipes/server.rb`.
+Archives such as those above from github match this format.  
+The name of that folder does not matter, as often they contain version information.
+When deployed, these will be renamed to match the short name (the key in the `cookbooks_url` map,
+for instance `mysql` or `openssl`).
+
+If Chef server is configured (see below), this section can be omitted.
+
+
+### Launch Run List and Attributes
+
+The next part is to specify the Chef run list and attributes to store when launching the entity: 
+
+      launch_run_list:
+      - mysql::server
+      
+      launch_attributes:
+        mysql:
+          server_root_password: p4ssw0rd
+          server_repl_password: p4ssw0rd
+          server_debian_password: p4ssw0rd
+
+For the `launch_run_list`, you can use either the YAML `- recipe` syntax or the JSON `[ "recipe" ]` syntax.
+
+The `launch_attributes` key takes a map which will be stored against the `node` object in Chef.
+Thus in this example, the parameter `node['mysql']['server_root_password']` required by the mysql blueprint
+is set as specified.
+
+You can of course set many other attributes in this manner, in addition to those that are required!  
+
+
+### Simple Monitoring
+
+The final section determines how Brooklyn confirms that the service is up.
+Sophisticated solutions may install monitoring agents as part of the `launch_run_list`,
+with Brooklyn configured to read monitoring information to confirm the launch was successful.
+However for convenience, two common mechanisms are available out of the box:
+
+      #service_name: mysqld
+      pid_file: /var/run/mysqld/mysqld.pid
+
+If `service_name` is supplied, Brooklyn will check the return code of the `status` command
+run against that service, ensuring it is 0.  (Note that this is not universally reliable,
+although it is the same mechanism which Chef typically uses to test status when determining
+whether to start a service. Some services, e.g. postgres, will return 0 even if the service
+is not running.)
+
+If a `pid_file` is supplied, Brooklyn will check whether a process with the PID specified in that
+file is running. This has been selected for mysql because it appears to be more portable:
+the service name varies among OS's:  it is `mysqld` on CentOS but `mysql` on Ubuntu!
+
+
+## Making it Simpler: Writing Chef for Blueprints
+
+The example we've just seen shows how existing Chef cookbooks can be
+used as the basis for entities.  If you're *writing* the Chef recipes, 
+there are a few simple techniques we've established with the Chef community
+which make blueprints literally as simple as:
+
+    - type: chef:mysql
+      brooklyn.config:
+        mysql_password: p4ssw0rd
+        pid_file: /var/run/mysqld/mysqld.pid
+
+
+### Some Basic Conventions
+
+* **A `start` recipe**:
+  The first step is to provide a `start` recipe in `recipes/start.rb`;
+  if no `launch_run_list` is supplied, this is what will be invoked to launch the entity.
+  It can be as simple as a one-line file:
+
+      include_recipe 'mysql::server'
+
+* **Using `brooklyn.config`**:
+  All the `brooklyn.config` is passed to Chef as node attributes in the `node['brooklyn']['config']` namespace.
+  Thus if the required attributes in the mysql recipe are set to take a value set in
+  `node['brooklyn']['config']['mysql_password']`, you can dispense with the `launch_attributes` section.
+
+
+## Using Chef Server
+
+The examples so far have not required Chef Server, so they will work without any external
+Chef dependencies (besides the built-in install from `https://www.opscode.com/chef/install.sh`
+and the explicitly referenced cookbooks).  If you use Chef Server, however, you'll want your
+managed nodes to be integrated with it.  This is easy to set up, with a few options:
+
+If you have `knife` set up in your shell environment, the Brooklyn Chef support will use it
+by default. If the recipes are installed in your Chef server, you can go ahead and remove
+the `cookbooks_url` section!
+
+Use of `solo` or `knife` can be forced by setting the `chef_mode` flag (`brooklyn.chef.mode` config key)
+to either of those values.  (It defaults to `autodetect`, which will use `knife` if it is on the path and satisfies
+sanity checks).
+
+If you want to specify a different configuration, there are a number of config keys you can use:
+
+* `brooklyn.chef.knife.executableFile`: this should be point to the knife binary to use
+* `brooklyn.chef.knife.configFile`: this should point to the knife configuration to use
+* `brooklyn.chef.knife.setupCommands`: an optional set of commands to run prior to invoking knife,
+  for example to run `rvm` to get the right ruby version on the Brooklyn server
+
+If you're interested in seeing the Chef REST API be supported directly (without knife),
+please let us know.  We'd like to see this too, and we'll help you along the way!
+ 
+
+## Tips and Tricks
+
+To help you on your way writing Chef blueprints, here are a handful of pointers
+particularly useful in this context:
+
+* Configuration keys can be inherited from the top-level and accessed using `$brooklyn:component('id').config('key_name')`.
+  An example of this is shown in the `mysql-chef.yaml` sample recipe contained in the Brooklyn code base
+  and [here](example_yaml/mysql-chef-2.yaml) for convenience.
+  Here, `p4ssw0rd` is specified only once and then used for all the attributes required by the stock mysql cookbook.  
+
+* Github tarball downloads! You'll have noticed these in the example already, but they are so useful we thought
+  we'd call them out again. Except when you're developing, we recommend using specific tagged versions rather than master.
+
+* The usual machine `provisioning.properties` are supported with Chef blueprints, 
+  so you can set things like `minRam` and `osFamily`
+
+* To see more configuration options, and understand the ones presented here in more detail, see the javadoc or
+  the code for the class `ChefConfig` in the Brooklyn code base.
+
+
+## Advanced Chef Integration
+
+### Adding Sensors and Effectors
+
+Custom sensors and effectors can be added using an `entity.initializer` section in the YAML blueprint.
+
+One common pattern is to have sensors which extract information from Ohai.
+Another common pattern is to install a monitoring agent as part of the run list,
+configured to talk to a monitoring store, and then to add a sensor feed which reads data from that store.
+
+On the effector side, you can add SSH-based effectors in the usual way.
+You can also describe additional chef converge targets following the pattern set down in
+`ChefLifecycleEffectorTasks`, making use of conveniences in `ChefSoloTasks` and `ChefServerTasks`,
+or provide effectors which invoke network API's of the systems under management
+(for example to supply the common `executeScript` effector as on the standard `MySqlNode`). 
+   
+
+### Next Steps: Simpifying sensors and effectors, transferring files, and configuring ports
+
+The Brooklyn-Chef integration is work in progress, with a few open issues we'd still like to add.
+Much of the thinking for this is set forth in the [Google document](https://docs.google.com/a/cloudsoftcorp.com/document/d/18ZwzmncbJgJeQjnSvMapTWg6N526cvGMz5jaqdkxMf8)
+indicated earlier.  If you'd like to work with us to implement these, please let us know.
+
+
+## Reference
+
+A general schema for the supported YAML is below: 
+
+```
+- type: chef:cookbook_name
+  cookbook_urls:
+    cookbook_name: url://for/cookbook.tgz
+    dependency1: url://for/dependency1.tgz
+  launch_run_list: [ "cookbook_name::start" ]
+  launch_attributes: # map of arguments to set in the chef node
+  service_name: cookbook_service
+  pid_file: /var/run/cookbook.pid
+```
+
+If you are interested in exploring the Java code for creating blueprints,
+start with the `TypedToyMySqlEntiyChef` class, which essentially does what this tutorial has shown;
+and then move on to the `DynamicToyMySqlEntiyChef` which starts to look at more sophisticated constructs.
+(Familiarity with BASH and basic Java blueprints may be useful at that stage.)
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/guide/defining-applications/common-usage.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/common-usage.md b/docs/guide/use/guide/defining-applications/common-usage.md
new file mode 100644
index 0000000..a3beed6
--- /dev/null
+++ b/docs/guide/use/guide/defining-applications/common-usage.md
@@ -0,0 +1,145 @@
+---
+title: Common Usage
+layout: guide-normal
+toc: ../guide_toc.json
+categories: [use, guide, defining-applications]
+---
+
+### Entity Class Hierarchy
+
+By convention in Brooklyn the following words have a particular meaning, both as types (which extend ``Group``, which extends ``Entity``) and when used as words in other entities (such as ``TomcatFabric``):
+
+- *Cluster* - a homogeneous collection of entities
+- *Fabric* - a multi-location collection of entities, with one per location; often used with a cluster per location
+- *Stack* - heterogeneous (mixed types of children)
+- *Application* - user's entry point
+
+<!---
+TODO
+-->
+
+- *entity spec* defines an entity, so that one or more such entities can be created; often used by clusters/groups to define how to instantiate new children.
+- *entity factories* are often used by clusters/groups to define how to instantiate new children.
+- *traits* (mixins) providing certain capabilities, such as Resizable and Balanceable
+- *Resizable* entities can re-sized dynamically, to increase/decrease the number of child entities.
+- *Movable* entities can be migrated between *balanceable containers*.
+- *Balanceable containers* can contain *movable* entities, where each contained entity is normally associated with
+    a piece of work within that container.
+
+### Off-the-Shelf Entities
+
+brooklyn includes a selection of entities already available for use in applications,
+including appropriate sensors and effectors, and in some cases include Cluster and Fabric variants.
+(These are also useful as templates for writing new entities.)
+ 
+These include:
+
+- **Web**: Tomcat, JBoss, Jetty (external), Play (external); nginx; GeoScaling
+- **Data**: MySQL, Redis, MongoDB, Infinispan, GemFire (external)
+- **Containers**: Karaf
+- **Messaging**: ActiveMQ, Qpid, Rabbit MQ
+- **PaaS**: Cloud Foundry, Stackato; OpenShift
+
+
+### <a id="locations"></a> Off-the-Shelf Locations
+
+<a id="locations"></a>
+
+Brooklyn supports deploying to any machine which admits SSH access, as well as to
+a huge variety of external and on-premise clouds.  You can also connect to services,
+or use whatever technique for deployment suits you best (such as Xebia Overthere, in development!).
+
+Configuration is typically set in `~/.brooklyn/brooklyn.properties` using keys such as the following:
+
+{% highlight bash %}
+# use this key for localhost (this is the default, although if you have a passphrase you must set it)
+brooklyn.location.localhost.privateKeyFile=~/.ssh/id_rsa
+
+brooklyn.location.localhost.privateKeyPassphrase=s3cr3tPASSPHRASE
+   
+# use a special key when connecting to public clouds, and a particularly special one for AWS
+brooklyn.location.jclouds.privateKeyFile=~/.ssh/public_clouds/id_rsa
+brooklyn.location.jclouds.aws-ec2.privateKeyFile=~/.ssh/public_clouds/aws_id_rsa
+
+# AWS credentials (when deploying to location jclouds:aws-ec2)
+brooklyn.location.jclouds.aws-ec2.identity=ABCDEFGHIJKLMNOPQRST  
+brooklyn.location.jclouds.aws-ec2.credential=s3cr3tsq1rr3ls3cr3tsq1rr3ls3cr3tsq1rr3l
+
+# credentials for 'geoscaling' service
+brooklyn.geoscaling.username=cloudsoft  
+brooklyn.geoscaling.password=xxx
+{% endhighlight %}
+
+These can also be set as environment variables (in the shell) or system properties (java command line).
+(There are also ``BROOKLYN_JCLOUDS_PRIVATE_KEY_FILE`` variants accepted.)
+
+For any jclouds provider you will typically need to set ``identity`` and ``credential``
+in the ``brooklyn.location.jclouds.provider`` namespace.
+
+To deploy to sets of machines with known IP's, assuming you have the credentials,
+use the syntax ``byon:(hosts="user@10.9.1.1,user@10.9.1.2,user@10.9.1.3")``
+(this requires your default private key to have access; 
+see the ``prod1`` example below for specifying other credentials). 
+
+A wide range of other fields is available, because in the real world sometimes things do get complicated.
+The following is supported from the configuration file (with whatever customization you might want available in code): 
+
+- If there is a passphrase on the key file being used, you must supply it to Brooklyn for it to work, of course!
+  ``privateKeyPassphrase`` does the trick (as in ``brooklyn.location.jclouds.privateKeyPassphrase``, or other places
+  where ``privateKeyFile`` is valid).  If you don't like keys, you can just use a plain old ``password``.
+
+- Hardware requirements such as ``minRam`` and ``minCores`` can be supplied, or a ``hardwareId``  (jclouds only)
+
+- Specific Secury Groups can be specified using `securityGroups`, if you want to reuse set of existing ones (jclouds only)
+
+- Specific KeyPair can be specified using `keyPair`, if you want to reuse an existing keypair (jclouds only).
+
+- Specific VM images can be specified using ``imageId`` or ``imageNameRegex`` (jclouds only)
+
+- User metadata can be attached, using the syntax ``userMetadata=key=value,key2="value 2"`` (jclouds only)
+
+- A ``user`` can be specified, with the property that -- in a jclouds world -- the user will be *created* on the machine,
+  with admin rights, authorizing the relevant public key (corresponding to the private key, or as described below). 
+  Login for the root account will be disabled, as will login by password if a public key is supplied. 
+  (This is skipped if ``user`` is the ``root`` or other initial login user.)
+  
+- You can specify the user account to use to login to jclouds initially with the ``loginUser`` property.
+  Typically this is auto-detected by jclouds
+  (often ``root``, or ``ubuntu`` or ``ec2-user`` for known Ubuntu or Amazon Linux images), 
+  but the strategy isn't foolproof, particularly in some private cloud setups. (jclouds only). In some cases, you may need to specify a `loginUser.privateKeyFile` if the image you are using doesn't allow ssh password login.
+
+- Public keys can be specified using ``publicKeyFile``, 
+  although these can usually be omitted if they follow the common pattern of being
+  the private key file with the suffix ``.pub`` appended.
+  (It is useful in the case of ``loginUser.publicKeyFile``, where you shouldn't need,
+  or might not even have, the private key of the ``root`` user in order to log in.)
+
+- You can specify the number of attempts Brooklyn should make to create
+  machines with ``machineCreateAttempts`` (jclouds only). This is useful for
+  working around the rare occasions in which cloud providers give machines that
+  are dead on arrival.
+
+You can also define named locations for commonly used groups of properties, 
+with the syntax ``brooklyn.location.named.your-group-name.``
+followed by the relevant properties.
+These can be accessed at runtime using the syntax ``named:your-group-name`` as the deployment location.
+
+Some more advanced examples showing the syntax and properties above are as follows:
+
+{% highlight bash %}
+# Production pool of machines for my application (deploy to named:prod1)
+brooklyn.location.named.prod1=byon:(hosts="10.9.1.1,10.9.1.2,produser2@10.9.2.{10,11,20-29}")
+brooklyn.location.named.prod1.user=produser1
+brooklyn.location.named.prod1.privateKeyFile=~/.ssh/produser_id_rsa
+brooklyn.location.named.prod1.privateKeyPassphrase=s3cr3tCOMPANYpassphrase
+
+# AWS using my company's credentials and image standard, then labelling images so others know they're mine
+brooklyn.location.named.company-jungle=jclouds:aws-ec2:us-west-1
+brooklyn.location.named.company-jungle.identity=BCDEFGHIJKLMNOPQRSTU  
+brooklyn.location.named.company-jungle.privateKeyFile=~/.ssh/public_clouds/company_aws_id_rsa
+brooklyn.location.named.company-jungle.imageId=ami-12345
+brooklyn.location.named.company-jungle.minRam=2048
+brooklyn.location.named.company-jungle.userMetadata=application=my-jungle-app,owner="Bob Johnson"
+brooklyn.location.named.company-jungle.machineCreateAttempts=2
+{% endhighlight %}
+


[13/50] [abbrv] incubator-brooklyn git commit: add bootstrap fonts, and point to subdir of deps for clean isolation

Posted by he...@apache.org.
add bootstrap fonts, and point to subdir of deps for clean isolation


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

Branch: refs/heads/master
Commit: 28db336c5721d239ced32204a2af748d03875829
Parents: 3eb9c9f
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Dec 15 11:51:40 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:54 2014 +0000

----------------------------------------------------------------------
 .../glyphicons-halflings-regular.eot            | Bin 0 -> 20335 bytes
 .../glyphicons-halflings-regular.svg            | 229 +++++++++++++++++++
 .../glyphicons-halflings-regular.ttf            | Bin 0 -> 41280 bytes
 .../glyphicons-halflings-regular.woff           | Bin 0 -> 23320 bytes
 docs/style/deps/bootstrap.css                   |   4 +-
 docs/style/deps/bootstrap.min.css               |   2 +-
 6 files changed, 232 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/28db336c/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.eot
----------------------------------------------------------------------
diff --git a/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.eot b/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.eot
new file mode 100644
index 0000000..4a4ca86
Binary files /dev/null and b/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.eot differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/28db336c/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.svg
----------------------------------------------------------------------
diff --git a/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.svg b/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.svg
new file mode 100644
index 0000000..e3e2dc7
--- /dev/null
+++ b/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,229 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
+<font-face units-per-em="1200" ascent="960" descent="-240" />
+<missing-glyph horiz-adv-x="500" />
+<glyph />
+<glyph />
+<glyph unicode="&#xd;" />
+<glyph unicode=" " />
+<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
+<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#x2000;" horiz-adv-x="652" />
+<glyph unicode="&#x2001;" horiz-adv-x="1304" />
+<glyph unicode="&#x2002;" horiz-adv-x="652" />
+<glyph unicode="&#x2003;" horiz-adv-x="1304" />
+<glyph unicode="&#x2004;" horiz-adv-x="434" />
+<glyph unicode="&#x2005;" horiz-adv-x="326" />
+<glyph unicode="&#x2006;" horiz-adv-x="217" />
+<glyph unicode="&#x2007;" horiz-adv-x="217" />
+<glyph unicode="&#x2008;" horiz-adv-x="163" />
+<glyph unicode="&#x2009;" horiz-adv-x="260" />
+<glyph unicode="&#x200a;" horiz-adv-x="72" />
+<glyph unicode="&#x202f;" horiz-adv-x="260" />
+<glyph unicode="&#x205f;" horiz-adv-x="326" />
+<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
+<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
+<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
+<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
+<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
+<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
+<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
+<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
+<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
+<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
+<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
+<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
+<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 
 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
+<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
+<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
+<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
+<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
+<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
+<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
+<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
+<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
+<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
+<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
+<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
+<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
+<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
+<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
+<glyph unicode="&#xe028;" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
+<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
+<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
+<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
+<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
+<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
+<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
+<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
+<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
+<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
+<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
+<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
+<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
+<glyph unicode="&#xe041;" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
+<glyph unicode="&#xe042;" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
+<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
+<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
+<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
+<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
+<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
+<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
+<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
+<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
+<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
+<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
+<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
+<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-10
 0q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
+<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
+<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
+<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
+<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
+<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
+<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
+<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
+<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
+<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />
+<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
+<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
+<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
+<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
+<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
+<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
+<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
+<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
+<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
+<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
+<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
+<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
+<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />
+<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />
+<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
+<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />
+<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
+<glyph unicode="&#xe087;" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />
+<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
+<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
+<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
+<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
+<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
+<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
+<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
+<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
+<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
+<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
+<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
+<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
+<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
+<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
+<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
+<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
+<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
+<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
+<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
+<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
+<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
+<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
+<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
+<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
+<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
+<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
+<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
+<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
+<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
+<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
+<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
+<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
+<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
+<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
+<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
+<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
+<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />
+<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
+<glyph unicode="&#xe130;" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
+<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />
+<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />
+<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
+<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
+<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-5
 6 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />
+<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
+<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
+<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
+<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
+<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
+<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
+<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
+<glyph unicode="&#xe143;" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />
+<glyph unicode="&#xe144;" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
+<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
+<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
+<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
+<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
+<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
+<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
+<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
+<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
+<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
+<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
+<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
+<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
+<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
+<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
+<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
+<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
+<glyph unicode="&#xe162;" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />
+<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
+<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
+<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
+<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
+<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
+<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
+<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
+<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
+<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
+<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
+<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
+<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />
+<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
+<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
+<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
+<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
+<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
+<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
+<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
+<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
+<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
+<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
+<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
+<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
+<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
+<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
+<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
+<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
+<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />
+<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
+<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
+<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
+</font>
+</defs></svg> 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/28db336c/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.ttf
----------------------------------------------------------------------
diff --git a/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.ttf b/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.ttf
new file mode 100644
index 0000000..67fa00b
Binary files /dev/null and b/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.ttf differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/28db336c/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.woff
----------------------------------------------------------------------
diff --git a/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.woff b/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000..8c54182
Binary files /dev/null and b/docs/style/deps/bootstrap-fonts/glyphicons-halflings-regular.woff differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/28db336c/docs/style/deps/bootstrap.css
----------------------------------------------------------------------
diff --git a/docs/style/deps/bootstrap.css b/docs/style/deps/bootstrap.css
index 7f36651..cfe2b90 100644
--- a/docs/style/deps/bootstrap.css
+++ b/docs/style/deps/bootstrap.css
@@ -2376,8 +2376,8 @@ input[type="button"].btn-block {
 @font-face {
   font-family: 'Glyphicons Halflings';
 
-  src: url('../fonts/glyphicons-halflings-regular.eot');
-  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
+  src: url('bootstrap-fonts/glyphicons-halflings-regular.eot');
+  src: url('bootstrap-fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('bootstrap-fonts/glyphicons-halflings-regular.woff') format('woff'), url('bootstrap-fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('bootstrap-fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
 }
 .glyphicon {
   position: relative;


[49/50] [abbrv] incubator-brooklyn git commit: be explicit about which index.md winds up at the root

Posted by he...@apache.org.
be explicit about which index.md winds up at the root


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

Branch: refs/heads/master
Commit: 65ae7dc784e3268b707d086f097ddd68645d42dd
Parents: ebe0002
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 16:15:28 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 16:15:28 2014 +0000

----------------------------------------------------------------------
 docs/_build/build.sh                      | 4 ++--
 docs/_build/config-exclude-guide.yml      | 2 +-
 docs/_build/config-exclude-root-index.yml | 1 +
 3 files changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/65ae7dc7/docs/_build/build.sh
----------------------------------------------------------------------
diff --git a/docs/_build/build.sh b/docs/_build/build.sh
index 097ebe6..ced17a7 100755
--- a/docs/_build/build.sh
+++ b/docs/_build/build.sh
@@ -78,7 +78,7 @@ function parse_mode() {
     SUMMARY="user guide files in the root"
     ;;
   test-both)
-    JEKYLL_CONFIG=_config.yml,_build/config-production.yml,_build/config-website-root.yml,_build/config-guide-latest.yml
+    JEKYLL_CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-root-index.yml,_build/config-website-root.yml,_build/config-guide-latest.yml
     DIRS_TO_MOVE[0]=guide
     DIRS_TO_MOVE_TARGET[0]=v/latest
     DIRS_TO_MOVE[1]=website
@@ -87,7 +87,7 @@ function parse_mode() {
     SUMMARY="all files, website in root and guide in /${DIRS_TO_MOVE_TARGET[0]}"
     ;;
   test-both-sub)
-    JEKYLL_CONFIG=_config.yml,_build/config-production.yml,_build/config-subpath-brooklyn.yml
+    JEKYLL_CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-root-index.yml,_build/config-subpath-brooklyn.yml
     DIRS_TO_MOVE[0]=guide
     DIRS_TO_MOVE_TARGET[0]=brooklyn/v/latest
     DIRS_TO_MOVE[1]=website

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/65ae7dc7/docs/_build/config-exclude-guide.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-exclude-guide.yml b/docs/_build/config-exclude-guide.yml
index a4ad1c9..7f61a6d 100644
--- a/docs/_build/config-exclude-guide.yml
+++ b/docs/_build/config-exclude-guide.yml
@@ -1 +1 @@
-exclude: ['/Gemfile*','/README.md','/guide']
+exclude: ['/Gemfile*','/README.md','/index.md','/guide']

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/65ae7dc7/docs/_build/config-exclude-root-index.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-exclude-root-index.yml b/docs/_build/config-exclude-root-index.yml
new file mode 100644
index 0000000..6eba321
--- /dev/null
+++ b/docs/_build/config-exclude-root-index.yml
@@ -0,0 +1 @@
+exclude: ['/Gemfile*','/README.md','/index.md']


[23/50] [abbrv] incubator-brooklyn git commit: add website files, and update the build.sh script appropriately

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.zookeeper.ZooKeeperEnsemble.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.zookeeper.ZooKeeperEnsemble.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.zookeeper.ZooKeeperEnsemble.html
new file mode 100644
index 0000000..527805d
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.zookeeper.ZooKeeperEnsemble.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - ZooKeeper ensemble</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.zookeeper.ZooKeeperEnsemble");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.zookeeper.ZooKeeperNode.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.zookeeper.ZooKeeperNode.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.zookeeper.ZooKeeperNode.html
new file mode 100644
index 0000000..054d806
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.zookeeper.ZooKeeperNode.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - ZooKeeper Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.zookeeper.ZooKeeperNode");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/index.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/index.html b/docs/website/learnmore/catalog/index.html
new file mode 100644
index 0000000..4487346
--- /dev/null
+++ b/docs/website/learnmore/catalog/index.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<!--
+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 lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <link rel="stylesheet" href="items.css" type="text/css" media="screen"/>
+    <title>Brooklyn Objects</title>
+  </head>
+
+  <body>
+    <div id="container">
+      <div id="header">
+        <div id="identity">
+          <a href="https://brooklyn.incubator.apache.org/" rel="home">Brooklyn</a>
+        </div>
+      </div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="entities">
+          <input class="filter form-control" type="text" placeholder="Filter by type, e.g. webapp or nosql">
+        </div>
+        <div class="tab-pane" id="policies">
+          <input class="filter form-control" type="text" placeholder="Filter by type, e.g. ha">
+        </div>
+        <div class="tab-pane" id="enrichers">
+          <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>
+
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="libs/js/bloodhound.js" type="text/javascript"></script>
+    <script src="common.js" type="text/javascript"></script>
+    <script src="items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        if (!String.prototype.trim) {
+            String.prototype.trim = function () {
+                return this.replace(/^\s+|\s+$/g, '');
+            };
+        }
+        var card = function (collection, cardFunction, target) {
+            var cards = _.map(collection, cardFunction);
+            $(target).append(cards.join(""));
+        };
+        var ESCAPE_KEY = 27;
+
+        var filter = function (element) {
+            var $element = $(element),
+                $tab = $element.parent(),
+                kind = $tab.attr("id"),
+                collection = items[kind];
+            if (!collection) {
+                console.warn("Unable to determine type for input", element);
+                return;
+            }
+
+            // Number.MAX_VALUE configures Bloodhound to return all matches.
+            var bloodhound = new Bloodhound({
+                name: kind,
+                local: collection,
+                limit: Number.MAX_VALUE,
+                datumTokenizer: function (d) {
+                    return Bloodhound.tokenizers.nonword(d.type);
+                },
+                queryTokenizer: Bloodhound.tokenizers.nonword
+            });
+            bloodhound.initialize();
+
+            // Filter items as input changes
+            var allAnchors = $tab.find("a").map(function (index, a) { return $(a); });
+            var hideAnchorsNotMatchingQuery = function () {
+                var query = $element.val();
+                query = query.trim();
+                if (!query) {
+                    $tab.find("a").removeClass("hide");
+                } else {
+                    var matchedTypes = {};
+                    bloodhound.get(query, function (suggestions) {
+                        _.each(suggestions, function (s) {
+                            // approximate a set!
+                            matchedTypes[s.type] = true;
+                        });
+                    });
+                    _.each(allAnchors, function (a) {
+                        if (_.has(matchedTypes, a.data("type"))) {
+                            a.removeClass("hide");
+                        } else {
+                            a.addClass("hide");
+                        }
+                    });
+                }
+            };
+            $element.on("input", hideAnchorsNotMatchingQuery);
+            // In case page is loaded with text in input, e.g. from back button.
+            hideAnchorsNotMatchingQuery();
+
+            $element.on("keydown", function (e) {
+                if (e.keyCode == ESCAPE_KEY) {
+                    $element.val("");
+                    hideAnchorsNotMatchingQuery();
+                }
+            });
+        };
+
+        $(document).ready(function () {
+            card(items.entities, brooklyn.entityCard, "#entities");
+            card(items.policies, brooklyn.policyCard, "#policies");
+            card(items.enrichers, brooklyn.enricherCard, "#enrichers");
+            //transformItemAndAddToElement(items.locations, brooklyn.locationCard, "#locations");
+            //items.locationResolvers.forEach(function (element) { $("#locationResolvers").append("<tr><td>" + element + "</td></tr>"); });
+            $("input.filter").each(function (index, element) {
+                filter(element);
+            });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/items.css
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/items.css b/docs/website/learnmore/catalog/items.css
new file mode 100644
index 0000000..a0bf0f0
--- /dev/null
+++ b/docs/website/learnmore/catalog/items.css
@@ -0,0 +1,153 @@
+/*
+ * 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.
+*/
+/* landing page */
+body {
+  margin: 0px;
+  padding: 10px 0px 20px 0px;
+  font-family: arial, helvetica, sans-serif;
+  background-color: #ffffff;
+  color: #393939;
+  font-size: 15px;
+}
+
+.nav-tabs {
+  clear: both;
+  font-weight: bold;
+  font-size: 12pt;
+}
+.nav-tabs a {
+  color: #4d9d3a;
+}
+.nav-tabs a:hover {
+  color: #4d9d3a;
+}
+
+.tab-content {
+  padding: 20px;
+  padding-bottom: 10px;
+  border: 1px solid #ddd;
+  border-top: none;
+}
+
+a:hover > .card {
+  top: -2px;
+  background-color: #f4f4f4;
+  box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.2);
+}
+.card {
+  position: relative;
+  padding: 12px;
+  background-color: #f8f8f8;
+  color: #333;
+  border: 1px solid #E1E1E8;
+  border-radius: 6px;
+  font-size: 11pt;
+}
+.card,
+.filter {
+    margin-bottom: 10px;
+}
+a .glyphicon {
+  display: block;
+  position: absolute;
+  right: 0;
+  top: 0;
+  padding: 8px;
+  font-size: 16pt;
+  color: #aaa;
+}
+a:hover .glyphicon {
+  color: #888;
+}
+a.plain {
+  text-decoration: none !important;
+}
+.name {
+  font-size: 12pt;
+  font-weight: bold;
+}
+.type {
+  font-family: monospace;
+  color: #888;
+  margin-top: 2px;
+}
+#summary .description {
+  margin: 15px 0 25px 0;
+}
+.card .description {
+  margin: 10px 40px 0 20px;
+}
+
+#summary {
+  clear: both;
+  margin: 10px 0 20px 0;
+}
+.summaryLabel {
+  font-size: 20px;
+  font-weight: bold;
+}
+.summaryType {
+  font-family: monospace;
+  font-size: 12pt;
+  color: #888;
+}
+.java {
+  font-family: monospace;
+}
+
+.card dl {
+  margin-bottom: 0;
+  margin-top: 5px;
+}
+dt {
+  clear: both;
+  float: left;
+  width: 8em;
+  text-align: right;
+  font-weight: normal;
+}
+dd {
+  margin-left: 9em;
+}
+
+#container {
+  width: 980px;
+  padding: 0;
+  margin: 0 auto;
+}
+
+#identity {
+  float: left;
+  margin: 0;
+  padding: 30px 0 15px 10px;
+}
+
+#identity a {
+  text-decoration: none;
+  display: block;
+  margin: 0;
+  color: #4d9d3a;
+  font-size: 2.5em;
+  padding: 0;
+  background: transparent url(images/brooklyn.gif) no-repeat 0 0;
+  width: 206px;
+  height: 44px;
+  text-indent: -1000px;
+  overflow: hidden;
+}


[09/50] [abbrv] incubator-brooklyn git commit: move version-specific things to "guide"

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/tips/update-docs.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/update-docs.md b/docs/guide/dev/tips/update-docs.md
new file mode 100644
index 0000000..5d72e47
--- /dev/null
+++ b/docs/guide/dev/tips/update-docs.md
@@ -0,0 +1,70 @@
+---
+layout: guide-normal
+title: Updating the Docs
+toc: /toc.json
+---
+
+The Brooklyn docs live in the **docs** project in the Brooklyn codebase.
+It's built using standard jekyll/markdown with a few extensions.
+
+
+## Jekyll
+
+Firstly, install Pygments (used for source code highlighting):
+
+    sudo easy_install Pygments
+
+Next, install Jekyll and the other Ruby Gems that we need:
+
+    bundle install
+
+Then, in the `docs/` directory, run:
+
+    ./_scripts/jekyll-debug.sh 
+    
+Visit [http://localhost:4000/](http://localhost:4000/) and you should see the documentation.
+
+
+## Extensions
+
+In addition to the standard pygments plugin for code-highlighting,
+we use some custom Jekyll plugins (in the `_plugins` dir) to:
+
+* include markdown files inside other files 
+  (see, for example, the `*.include.md` files which contain text
+  which is used in multiple other files)
+* parse JSON which we can loop over in our markdown docs
+* trim whitespace of ends of variables
+
+Using JSON table-of-contents files (`toc.json`) is our lightweight solution
+to the problem of making the site structure navigable (the menus at left).
+If you add a page, simply add the file (with full path from project root)
+and a title to the toc.json in that directory, and it will get included
+in the menu.  You can also configure a special toc to show on your page,
+if you wish, by setting the toc variable in the header.
+Most pages declare the "page" layout (`_layouts/page.html`) which builds
+a menu in the left side-bar (`_includes/sidebar.html`) using the JSON --
+and automatically detecting which page is active. 
+ 
+
+## Publishing
+
+Because GitHub don't run plugins (they run with the `--safe` option),
+the site is built off-line and uploaded to github, where the documentation is hosted.
+
+This makes the process a little more tedious, but it does have the advantage 
+that the documentation lives right in the Brooklyn project,
+easy to open alongside the code inside your IDE.
+
+The off-line build can be done using `/docs/_scripts/build.sh`,
+including both jekyll markdown documentation and Brooklyn javadoc,
+with the result of this copied to the `brooklyncentral/brooklyncentral.github.com` 
+github project (as per the GitHub pages documentation).
+[brooklyn.io](http://brooklyn.io) is CNAMEd to [brooklyncentral.github.com](brooklyncentral.github.com)
+for convenience.
+
+The latest stable version typically lives in the root of the `brooklyncentral.github.com` project.
+Archived versions are kept under `/v/*` with logic in the markdown for 
+[meta/versions]({{ site.url }}/meta/versions.html) to link to related versions.  
+Additional instructions and scripts for automating the installs can be found in `/docs/_scripts/`.
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/dev/toc.json b/docs/guide/dev/toc.json
new file mode 100644
index 0000000..f22e840
--- /dev/null
+++ b/docs/guide/dev/toc.json
@@ -0,0 +1,26 @@
+[
+{ "title": "The Code",
+  "file": "{{ site.url }}/dev/code/index.html",
+  "exclude": true,
+  "children": {% readj ./code/toc.json %} },
+{ "title": "Build and Test",
+  "file": "{{ site.url }}/dev/build/index.html",
+  "exclude": true,
+  "children": {% readj ./build/toc.json %} },
+{ "title": "Tips and Tricks",
+  "file": "{{ site.url }}/dev/tips/index.html",
+  "exclude": true,
+  "children": {% readj ./tips/toc.json %} },
+{ "title": "Links",
+  "file": "{{ site.url }}/dev/links.html",
+  "children": [
+    { "title": "Github repo",
+      "file": "https://github.com/brooklyncentral/" },
+    { "title": "Github issues",
+      "file": "https://github.com/brooklyncentral/brooklyn/issues" },
+    { "title": "Maven snapshots",
+      "file": "http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/io/brooklyn/" }      
+  ] },
+{ "title": "How to Contribute",
+  "file": "{{ site.url }}/dev/how-to-contrib.html" }
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/index.md b/docs/guide/index.md
new file mode 100644
index 0000000..8665cdf
--- /dev/null
+++ b/docs/guide/index.md
@@ -0,0 +1,8 @@
+---
+layout: guide-normal
+title: Overview
+toc: /toc.json
+categories: [start]
+---
+
+{% readj start/index.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/license/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/license/index.md b/docs/guide/license/index.md
new file mode 100644
index 0000000..aed028d
--- /dev/null
+++ b/docs/guide/license/index.md
@@ -0,0 +1,18 @@
+---
+layout: guide-normal
+title: Brooklyn Licenses
+toc: /toc.json
+---
+
+## License
+
+Apache Brooklyn is released to the public as open source under the 
+terms of the [Apache License, v2.0](license.html).
+
+Apache Brooklyn is currently undergoing Incubation at the Apache Software Foundation.
+
+
+## Trademark
+
+The Brooklyn name and logo are trademarks owned by the Apache Software Foundation.
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/license/license.md
----------------------------------------------------------------------
diff --git a/docs/guide/license/license.md b/docs/guide/license/license.md
new file mode 100644
index 0000000..75cceac
--- /dev/null
+++ b/docs/guide/license/license.md
@@ -0,0 +1,194 @@
+---
+layout: guide-normal
+title: License
+toc: /toc.json
+---
+
+Brooklyn is licensed to the public as open source under the 
+terms of the [Apache License, v2.0](http://www.apache.org/licenses/LICENSE-2.0).
+You may not use this content except in compliance with the License.
+
+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.
+
+
+{% highlight text %}
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+{% endhighlight %} 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/license/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/license/toc.json b/docs/guide/license/toc.json
new file mode 100644
index 0000000..8194f80
--- /dev/null
+++ b/docs/guide/license/toc.json
@@ -0,0 +1,4 @@
+[
+{ "title": "Apache License v2.0",
+  "file":  "{{ site.url }}/license/license.html" }
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/meta/brooklyn-gpg-public-key.asc
----------------------------------------------------------------------
diff --git a/docs/guide/meta/brooklyn-gpg-public-key.asc b/docs/guide/meta/brooklyn-gpg-public-key.asc
new file mode 100644
index 0000000..3b515a4
--- /dev/null
+++ b/docs/guide/meta/brooklyn-gpg-public-key.asc
@@ -0,0 +1,21 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
+Comment: GPGTools - http://gpgtools.org
+
+mQENBFDsSLEBCAC2JxQHeXpL3oGN2IickcG9C49gkxIsws4hpasQModVipezrQi0
+9pLq4lkB01GgC2sfPH+XXE8rCpA9EL0e4wVA7JICz5AsLZAAJH91tKksL20tLMeU
+Yrbufaq1ga7ifk3JWhF4iwvkDMBKyCjrF173nI+2TwX2XfNTQpzoQGOL1bNvS4NZ
+AD9JeXGW2D996zHdSK+x3wVdY3cDECvVMuw61+5ytZrGNnyvaaWTl3lJUyydPXHQ
+5TXVtbQH5WgYCLPr4E95axJ0BoY8H+fEaG1Uax1a+xLumVWhiWNp7rMvmgcZXuJO
+fx+wXAIbRNlAHoJcdZ4NCReRxDIBQ+2HsU1zABEBAAG0bUJyb29rbHluIFByb2pl
+Y3QgKGJyb29rbHluLmlvKSAoS2V5IHVzZWQgdG8gYXV0aGVudGljYXRlIEJyb29r
+bHluIGFydGlmYWN0cykgPGJyb29rbHluLWRldkBncm91cHMuZ29vZ2xlLmNvbT6J
+AT8EEwECACkFAlDsSLECGy8FCQeGH4AHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIX
+gAAKCRANhinnSRLCsOdIB/4tUVShup2NHXJ9acCah8TuEN4GmN9dBiD9YsGW66SR
+/ptY0Gn9XExl2wbmQW+7TQg3QUGv8uffwYLtnMwnmCp/WwgE+uSnRmcENxa9GuTu
+PLlURKKGK0C9ljTAHwXtPcIYxPNN3BT4VB56ME1DTBRCgEvudaNSANs8/kT88kE2
+eMC7x0Uo3/P38Ob8XSOfR8c6G6nSz6jILcRBXZTPNNK4svyqF5XHIru65d3/0+mr
+bpfcDLcUQYms0MpPmO1RCHLZWwJLsPUIxNwGGnKJc8/RNEvQinK+Ap0cf+PGUQSX
+PhB6Z81ROFIVToEVZslgSiL+u4Tc7zXDfDQDY4HeLY2t
+=w/CG
+-----END PGP PUBLIC KEY BLOCK-----

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/meta/contact.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/meta/contact.include.md b/docs/guide/meta/contact.include.md
new file mode 100644
index 0000000..e0d1e4b
--- /dev/null
+++ b/docs/guide/meta/contact.include.md
@@ -0,0 +1,9 @@
+
+Contact us on the [brooklyn mailing list](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/).
+
+Additionally look for us on:
+
+* **IRC**: #brooklyncentral ([IRC??](/meta/irc.html))
+* **Twitter**: @brooklyncentral #brooklyncentral
+
+We'd love to hear from you!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/meta/contact.md
----------------------------------------------------------------------
diff --git a/docs/guide/meta/contact.md b/docs/guide/meta/contact.md
new file mode 100644
index 0000000..937e763
--- /dev/null
+++ b/docs/guide/meta/contact.md
@@ -0,0 +1,7 @@
+---
+layout: guide-normal
+title: Contact
+toc: /toc.json
+---
+
+{% readj contact.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/meta/irc.md
----------------------------------------------------------------------
diff --git a/docs/guide/meta/irc.md b/docs/guide/meta/irc.md
new file mode 100644
index 0000000..5827818
--- /dev/null
+++ b/docs/guide/meta/irc.md
@@ -0,0 +1,31 @@
+---
+layout: guide-normal
+title: IRC
+toc: /toc.json
+---
+
+IRC is a basic group chat system used by many open source projects to enable developers to 
+collaborate and to help users communicate and support each other. Brooklyn has an IRC 
+channel where users and developers hang out.
+
+## Getting Help On IRC
+
+When you connect to the Brooklyn IRC channel, say Hi and then ask your question. It may 
+take a little while for someone to see and respond to your question. (Be 
+patient if you don't get an instant answer - unless there's already a conversation 
+happening folk will probably not have their eyes on the channel.) 
+
+You may want to do other things while you wait, like reviewing the [brooklyn mailing list](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/)
+lists to see if anyone has had the same issue before.
+
+## Brooklyn IRC Channel
+
+* **IRC Server:** irc.freenode.net 
+* **Channel/Room:** #brooklyncentral
+* **Port:** 6667 (Default)
+
+If you are new to IRC, there is a web interface at [webchat.freenode.net](http://webchat.freenode.net/?channels=brooklyncentral) 
+but you may prefer to checkout the [Wikipedia IRC article](http://en.wikipedia.org/wiki/IRC#Client_software) 
+for an IRC application.
+
+You can find more information about using IRC at [irchelp.org](http://www.irchelp.org/).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/meta/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/meta/toc.json b/docs/guide/meta/toc.json
new file mode 100644
index 0000000..694eaea
--- /dev/null
+++ b/docs/guide/meta/toc.json
@@ -0,0 +1,8 @@
+[
+{ "title": "Versions",
+  "file":  "{{ site.url }}/meta/versions.html" },
+{ "title": "Verify",
+  "file":  "{{ site.url }}/meta/verify.html" },
+{ "title": "Contact",
+  "file":  "{{ site.url }}/meta/contact.html" }
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/meta/verify.md
----------------------------------------------------------------------
diff --git a/docs/guide/meta/verify.md b/docs/guide/meta/verify.md
new file mode 100644
index 0000000..889e5bd
--- /dev/null
+++ b/docs/guide/meta/verify.md
@@ -0,0 +1,36 @@
+---
+layout: guide-normal
+title: Verify the Integrity of Downloads
+toc: /toc.json
+---
+{% include fields.md %}
+
+It is essential for security that you verify the integrity of the downloaded files using their PGP signatures or SHA-1 checksums.
+
+### Verifying PGP signatures using PGP or GPG
+
+Download the [brooklyn-gpg-public-key.asc](brooklyn-gpg-public-key.asc)
+file and the `.asc` PGP signature file for the relevant artefact.
+
+(Make sure you get these files from the main {% if SNAPSHOT %}[Maven Central]({{ mavencentral_repo_groupid_url }}){% else %}[Sonatype]({{ sonatype_repo_groupid_url }}){% endif %} repository rather than from a mirror.)
+
+Verify the signatures using one of the following commands:
+
+	pgpk -a brooklyn-gpg-public-key.asc
+	pgpv brooklyn-{{ site.brooklyn-version }}-dist.tar.gz.asc
+
+or
+
+	pgp -ka brooklyn-gpg-public-key.asc
+	pgp brooklyn-{{ site.brooklyn-version }}-dist.zip.asc
+
+or
+
+	gpg --import brooklyn-gpg-public-key.asc	
+	gpg --verify brooklyn-{{ site.brooklyn-version }}-dist.tar.gz.asc
+
+You can also verify the SHA-1 checksum of the files.
+
+A program called `sha1` or `sha1sum` is included in most Linux distributions and OSx. For Windows users, `fsum` supports SHA-1. 
+
+Ensure the generated checksum string matches the contents of the `.sha1` file for the relevant artefact (and again download from {% if SNAPSHOT %}[Maven Central]({{ mavencentral_repo_groupid_url }}){% else %}[Sonatype]({{ sonatype_repo_groupid_url }}){% endif %} repository, rather than from a mirror).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/meta/versions.md
----------------------------------------------------------------------
diff --git a/docs/guide/meta/versions.md b/docs/guide/meta/versions.md
new file mode 100644
index 0000000..53a6a0d
--- /dev/null
+++ b/docs/guide/meta/versions.md
@@ -0,0 +1,110 @@
+---
+layout: guide-normal
+title: Versions
+toc: /toc.json
+---
+
+<!--- display which version we are using, based on where it is written -->
+
+### Brooklyn v{{ site.brooklyn-version }}
+
+
+{% if site.server %} 
+> **Server (debug) mode detected.**
+
+> *Links to other versions on this page and others will likely not work when running in server/debug mode.
+Files must be copied to the brooklyncentral.github.com repo for these links to resolve correctly.*
+
+> *Debug page generated {{ site.time }}*
+{% endif %}
+
+
+{% if site.brooklyn-version contains 'SNAPSHOT' %}
+<!--- snapshot version -->
+
+  {% if site.url == '' %}
+
+<!--- current version (served off root of site) is snapshot (unusual) -->
+
+This is the documentation for the current snapshot version of Brooklyn,
+generated {{ site.time | date_to_string }}.
+
+  {% else %}
+
+<!--- archive docs -->
+
+This is the documentation for a snapshot version of Brooklyn,
+generated {{ site.time | date_to_string }}.
+
+[View current documentation here.](/meta/versions.html)
+
+
+  {% endif %}
+
+NB: "Snapshot" means it is the code at a point in time,
+and that a reference to this version {{ site.brooklyn-version }}
+may resolve to different code at a different point in time.
+Where possible it is preferable to develop against a GA version
+rather than a shapshot.  
+
+{% else %}
+<!--- not snapshot -->
+
+  {% if site.url == '' %}
+   
+<!--- current version (served off root of site) -->
+
+This is the documentation for the latest stable version of Brooklyn,
+generated {{ site.time | date_to_string }}.
+Other versions with documentation available are listed below.
+
+  {% else %}
+
+<!--- archive version -->
+
+This is the archived documentation for Brooklyn {{ site.brooklyn-version }}
+(generated {{ site.time }}, archived under {{ site.url }}).
+
+[View current documentation here.](/meta/versions.html)
+
+  {% endif %}  
+{% endif %}
+
+
+### Version History
+
+* **[0.7.0-SNAPSHOT (master)](/v/0.7.0-SNAPSHOT)**: since 0.6.0, lots of work on yaml, persistence, policies, and more supported systems
+
+* **[0.7.0](/v/0.7.0-M1/)**: most recent milestone release
+
+* **[0.6.0](/v/0.6.0/)**: use of spec objects, chef and windows support, more clouds (Nov 2013)
+
+* **[0.5.0](/v/0.5.0/)**: includes new JS GUI and REST API, rebind/persistence support, cleaner model and naming conventions, more entities (May 2013)
+
+* **[0.4.0](/v/0.4.0/)**: initial public GA release of Brooklyn to Maven Central, supporting wide range of entities and examples (Jan 2013)
+
+Note: To prevent accidentally referring to out-of-date information,
+a banner is displayed when accessing specific versions from the archive.
+You may 
+<a href="#" onclick="set_user_versions_all();">disable all warnings</a> or
+<a href="#" onclick="clear_user_versions();">re-enable all warnings</a>.
+
+
+### Versioning
+
+Brooklyn uses the [semantic versioning](http://semver.org/) guidelines. Releases will be numbered with the following format:
+
+`Brooklyn <major>.<minor>.<patch>`
+
+Breaking backward compatibility increments the `<major>` version.
+New additions without breaking backward compatibility ups the `<minor>` version.
+Bug fixes and misc changes bumps the `<patch>` version.
+New major and minor releases zero the less significant counters.
+
+Additionally, Brooklyn's release process include Snapshots, Milestones and Release Candidates.
+
+A Snapshot (`-SNAPSHOT`) is the bleeding edge. This will not be stable.
+
+Milestone versions (`-Mn`) are frozen snapshots. Some code features may be stable, but the documentation and examples may not be complete.
+
+A Release Candidate (`-rc.n`) is a just-about-ready version. Release candidates are tested against our acceptance criteria, and qualifying builds are promoted as final.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/docs-summary.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/docs-summary.include.md b/docs/guide/start/docs-summary.include.md
new file mode 100644
index 0000000..c08c06f
--- /dev/null
+++ b/docs/guide/start/docs-summary.include.md
@@ -0,0 +1,7 @@
+To learn about Brooklyn, here are some recommended starting points:
+
+* [Developer's Walkthrough]({{site.url}}/start/walkthrough/index.html) 
+* [Examples]({{site.url}}/use/examples/)
+* [User Guide]({{site.url}}/use/guide/) 
+* [Code Overview]({{site.url}}/dev/code/)
+* [Code on Github](http://github.com/brooklyncentral/brooklyn/)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/docs-summary.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/docs-summary.md b/docs/guide/start/docs-summary.md
new file mode 100644
index 0000000..4e993fa
--- /dev/null
+++ b/docs/guide/start/docs-summary.md
@@ -0,0 +1,9 @@
+---
+layout: guide-normal
+title: Documentation
+toc: ../toc.json
+---
+
+{% readj docs-summary.include.md %}
+
+Beyond this, [just come chat to us]({{site.url}}/meta/contact.html).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/download.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/download.md b/docs/guide/start/download.md
new file mode 100644
index 0000000..0e82a84
--- /dev/null
+++ b/docs/guide/start/download.md
@@ -0,0 +1,185 @@
+---
+layout: guide-normal
+title: Downloads
+toc: ../toc.json
+---
+{% include fields.md %}
+
+First time user? The [getting started]({{ site.url }}/use/guide/quickstart/index.html) guide will walk you through downloading Brooklyn, setup of your `brooklyn.properties` and `catalog.xml` files, and then trying the [examples](#examples). 
+
+## Download Version {{ site.brooklyn-version }}
+
+<table>
+<tr>
+	<th style='text-align:left'>Download</th>
+	<th style='text-align:left'>File/Format</th>
+	<th>checksums <small><a href="/meta/verify.html" title='Instructions on verifying the integrity of your downloads.'>(?)</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>
+</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>
+</tr>
+<tr>
+	<td style='text-align:left'>Release notes</td>
+	<td style='text-align:left'><a href='{{ site.url }}/start/release-notes.html'>{{ site.brooklyn-version }}</a></td>
+	<td> - </td>
+</tr>
+</table>
+{% if SNAPSHOT %}
+<span style='float:right'><small>Source: <a href='{{ this_anything_url_search }}'>Sonatype</a></small></span>
+{% else %}
+<span style='float:right'><small>Source: <a href='{{ this_anything_url_search }}'>Maven Central</a></small></span>
+{% endif %}
+
+<a name="distro"></a>
+## The Distro
+
+The distribution archive contains Brooklyn as a standalone executable package.
+
+* previous stable versions: [Maven Central]({{ mavencentral_repo_groupid_url }}brooklyn-dist/)
+* previous snapshot versions: [Sonatype]({{ sonatype_repo_groupid_url }}brooklyn-dist/)
+
+{% 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.
+{% 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. Just download your preferred flavour and add it to your classpath.
+
+{% if SNAPSHOT %}{% else %}
+* [Version {{ site.brooklyn-version }}](http://search.maven.org/#artifactdetails|io.brooklyn|brooklyn-all|{{ site.brooklyn-version }}|jar) 
+{% endif %}
+* previous stable versions: [Maven Central]({{ mavencentral_repo_groupid_url }}brooklyn-all/)
+* previous snapshot versions: [Sonatype]({{ sonatype_repo_groupid_url }}brooklyn-all/)
+
+{% 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.url }}/start/release-notes.html).
+
+<a name="examples"></a>
+## Examples
+
+{% if SNAPSHOT %}
+As this is a snapshot version of Brooklyn, please find the examples in the main Brooklyn codebase (in the `/examples` directory).
+
+When this version is released, the [brooklyn-examples git repository](http://github.com/brooklyncentral/brooklyn-examples) will be updated and instructions for use will be included here. 
+
+{% else %}
+
+You can checkout the examples from the [brooklyn-examples git repository](http://github.com/brooklyncentral/brooklyn-examples).
+
+Maven (v3) is required to build them, as described [here]({{ site.url }}/dev/build/).
+The examples for this version ({{ site.brooklyn-version }}) are in the branch 
+`{% if SNAPSHOT %}{{ site.brooklyn-snapshot-git-branch }}{% else %}{{ site.brooklyn-version }}{% endif %}`, so if you have `git` and `mvn` already, you can simply:
+
+{% highlight bash %}
+% git clone https://github.com/brooklyncentral/brooklyn-examples.git
+% cd brooklyn-examples
+{% if brooklyn_examples_branch == 'master' %}{% else %}% git checkout {{ brooklyn_examples_branch }}
+{% endif %}% mvn clean install
+{% endhighlight %}
+ 
+
+If you don't use `git`, you can download the projects as a tarball instead
+from [this link](https://github.com/brooklyncentral/brooklyn-examples/tarball/{{ brooklyn_examples_branch }}). 
+These commands should do the trick:
+
+{% highlight bash %}
+% curl -L -o brooklyn-examples-{{ brooklyn_examples_branch }}.tgz \
+     https://github.com/brooklyncentral/brooklyn-examples/tarball/{{ brooklyn_examples_branch }}
+% tar xvfz brooklyn-examples-{{ brooklyn_examples_branch }}.tgz
+% mv brooklyncentral-brooklyn-examples-* brooklyn-examples-{{ brooklyn_examples_branch }} \
+     # change the strange name which github assigns in the tarball
+% mvn clean install
+{% endhighlight %}
+
+
+A good example to start with is the [Elastic Web Cluster]({{site.url}}/use/examples/webcluster.html).
+
+{% endif %} 
+
+
+<a name="maven"></a>
+## Maven
+
+If you use Maven, you can add Brooklyn with the following in your pom:
+
+{% highlight xml %}
+    <dependencies>
+        <dependency>
+            <groupId>io.brooklyn</groupId>
+            <artifactId>brooklyn-all</artifactId>
+            <version>{{ site.brooklyn-version }}</version>
+        </dependency>
+    </dependencies>
+{% endhighlight %}
+
+`brooklyn-all` (used above) 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 }})).
+
+If you wish to use the Apache and/or Cloudsoft repositories (particularly for snapshots),
+you can add some of the following sections:
+
+{% highlight xml %}
+    <repositories>
+        <repository>
+            <id>cloudsoft-cloudfront-releases-repo</id>
+            <url>http://developers.cloudsoftcorp.com/maven/releases/</url>
+        </repository>
+        <!-- optional for snapshot versions -->
+        <repository>
+            <id>apache-nexus-snapshots</id>
+            <name>Apache Nexus Snapshots</name>
+            <url>https://repository.apache.org/content/repositories/snapshots</url>
+            <releases> <enabled>false</enabled> </releases>
+            <snapshots> <enabled>true</enabled> </snapshots>
+        </repository>
+        <repository>
+            <id>cloudsoft-cloudfront-snapshots-repo</id>
+            <url>http://developers.cloudsoftcorp.com/maven/snapshots/</url>
+            <snapshots>
+                <enabled>true</enabled>
+                <updatePolicy>never</updatePolicy>
+                <checksumPolicy>fail</checksumPolicy>
+           </snapshots>
+         </repository>
+    </repositories>
+{% 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.
+{% endif %}
+
+
+<a name="source"></a>
+## Source Code
+
+Full source is at [github.com/brooklyncentral/brooklyn](http://github.com/brooklyncentral/brooklyn).
+Information on working with the source is [here]({{ site.url }}/dev/code).
+
+Alternatively you can download archives of the source directly:
+
+<a href="https://github.com/brooklyncentral/brooklyn/tarball/master"><img border="0" width="90" src="https://github.com/images/modules/download/tar.png"></a>
+<a href="https://github.com/brooklyncentral/brooklyn/zipball/master"><img border="0" width="90" src="https://github.com/images/modules/download/zip.png"></a>
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/index.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/index.include.md b/docs/guide/start/index.include.md
new file mode 100644
index 0000000..1406337
--- /dev/null
+++ b/docs/guide/start/index.include.md
@@ -0,0 +1,50 @@
+## What is Brooklyn?
+
+**brooklyn** is a library that simplifies application deployment and management.
+
+For **deployment**, it is designed to tie in with other tools, 
+giving single-click deploy and adding the concepts of 
+manageable clusters and fabrics:
+
+* many common software entities available out-of-the-box
+* integrates with [Apache Whirr](http://whirr.apache.org) 
+  to deploy well-known services such as Hadoop and elasticsearch
+  (or use POBS, plain-old-bash-scripts)
+* use PaaS's such as OpenShift, alongside self-built clusters, for maximum flexibility
+
+Brooklyn makes roll-out an integral part of the DevOps chain,
+as code which can be version-controlled and programmatically tested,
+and portable across many clouds or fixed IP machines,
+using [jclouds](http://jclouds.org) -- 
+or just hitting ``localhost`` for quick dev/test.
+
+Brooklyn's main emphasis is post-deployment, **managing** an application once it is live:
+management policies are an integral part of the deployment descriptor,
+and at runtime policies have access to all aspects of the deployment.
+They are aware of the deployment topology (hierarchical) and
+locations (machines, PaaSes, and jurisdictions), 
+as well as scripts, instrumentation, and operational goals and constraints.
+This means they're all set, once the application is launched, 
+to keep the application running optimally,
+based on whatever *optimally* means in that context.
+
+These deployment patterns and management policies are expressed as Java (and Groovy) classes,
+open-sourced here and giving you full control over what you want to happen.
+More importantly, however, this code can be shared, improved, and extended.
+
+We're still near the beginning of figuring this out: 
+[join us to make it better]({{site.url}}/meta/contact.html).
+
+
+## To Get Started
+
+* See the [developer's walkthrough]({{site.url}}/start/walkthrough/index.html) for a quick tour
+* Check out the [examples]({{site.url}}/use/examples/), from a global web fabric with geo-DNS to a movable PaaS target
+* Jump in to the [user guide]({{site.url}}/use/guide/) describing the 
+  [concepts]({{site.url}}/use/guide/defining-applications/basic-concepts.html)
+  and including a [tutorial]({{site.url}}/use/guide/quickstart/)
+* Or dive straight in to the code, either [reading]({{site.url}}/dev/code/) about it
+  or [gitting](http://github.com/brooklyncentral/brooklyn/) it
+
+If you like it, or if you have ideas how it could be better,
+[join the discussion]({{site.url}}/meta/contact.html).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/index.md b/docs/guide/start/index.md
new file mode 100644
index 0000000..b3e9983
--- /dev/null
+++ b/docs/guide/start/index.md
@@ -0,0 +1,8 @@
+---
+layout: guide-normal
+title: Overview
+toc: /toc.json
+categories: [start]
+---
+
+{% readj index.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/known-issues.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/known-issues.md b/docs/guide/start/known-issues.md
new file mode 100644
index 0000000..65c4986
--- /dev/null
+++ b/docs/guide/start/known-issues.md
@@ -0,0 +1,28 @@
+---
+layout: guide-normal
+title: Known Issues
+toc: ../toc.json
+---
+
+## Unable to Provision certain types of Debian VMs
+
+*Symptom*: Brooklyn fails to provision Debian VMs (e.g. in aws-ec2).
+
+*Cause*: `sudo` is not available on path, causing Brooklyn to fail to confirm that the VM is ssh'able.
+
+*Workaround*: Choose an image that does have sudo (see [wiki.debian.org/Cloud/AmazonEC2Image](http://wiki.debian.org/Cloud/AmazonEC2Image)).
+
+*Fix*: is [Pull #600](https://github.com/brooklyncentral/brooklyn/pull/600); you may also want to run with `brooklyn.location.jclouds.aws-ec2.user=root` if subsequent commands give permission errors.
+
+*Versions Affected*: 0.5.0-M2
+
+
+### Unable to Provision Ubuntu 8 VMs
+
+*Symptom: Brooklyn fails to provision Ubuntu 8 VMs (e.g. in aws-ec2) with the following error 'Cannot insert the iptables rule for port 22. Error: sudo: illegal option `-n''.
+
+*Cause: Ubuntu 8 is too old; the sudo command doesn't support the -n setting.
+
+*Workaround: Choose Ubuntu 10 or higher.
+
+*Versions Affected*: 0.5.0-M2

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/release-notes.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/release-notes.md b/docs/guide/start/release-notes.md
new file mode 100644
index 0000000..1f2fa4e
--- /dev/null
+++ b/docs/guide/start/release-notes.md
@@ -0,0 +1,56 @@
+---
+layout: guide-normal
+title: Release Notes
+toc: ../toc.json
+---
+
+## Brooklyn Version (Version)
+
+You are viewing a SNAPSHOT release (master branch), so this is a template for the release notes.
+
+* Introduction
+* New Features
+* Backwards Compatibility
+* Community Activity
+
+### Introduction
+
+This milestone release includes many big features, and brings us much closer to NEXT VERSION.
+
+It incorporates a lot of improvements and feedback from our community. Thank you!
+
+Thanks also go to Brooklyn's commercial users. Already Brooklyn has been adopted into some very exciting projects including 
+
+For more information, please checkout [brooklyncentral.github.io](http://brooklyncentral.github.io), and our
+[mailing list at Apache](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/).
+
+### New Features
+
+The major changes between M1 and M2 are:
+
+1. Entry
+
+2. Entry
+	* With sublist
+	* list item
+	* list item
+3. [Links](#) formatting. (Example.)
+
+4. List of new providers
+
+5. List of new entities
+
+
+### Backwards Compatibility
+
+For upgrading from OLD to NEW version.
+
+1. Entry
+
+1. Lists can use 1. 1. 1. 1. 
+
+1. (Jekyll counts for you.)
+
+### Community Activity
+
+Any activity related to Brooklyn, but not part of Brooklyn itself.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/start/toc.json b/docs/guide/start/toc.json
new file mode 100644
index 0000000..43d79d7
--- /dev/null
+++ b/docs/guide/start/toc.json
@@ -0,0 +1,10 @@
+[
+{ "title": "Overview",
+  "file":  "{{ site.url }}/index.html" },
+{ "title": "Walkthrough",
+  "file": "{{ site.url }}/start/walkthrough/index.html" },
+{ "title": "Download",
+  "file": "{{ site.url }}/start/download.html" },
+{ "title": "Documentation",
+  "file": "{{ site.url }}/start/docs-summary.html" }
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/video.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/video.md b/docs/guide/start/video.md
new file mode 100644
index 0000000..c45dd4c
--- /dev/null
+++ b/docs/guide/start/video.md
@@ -0,0 +1,7 @@
+---
+layout: guide-normal
+title: Video
+toc: ../toc.json
+---
+
+TODO

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/walkthrough/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/walkthrough/index.md b/docs/guide/start/walkthrough/index.md
new file mode 100644
index 0000000..de29f5c
--- /dev/null
+++ b/docs/guide/start/walkthrough/index.md
@@ -0,0 +1,240 @@
+---
+layout: guide-normal
+title: Walkthrough
+toc: /toc.json
+---
+{% include fields.md %}
+
+## Intro
+
+Brooklyn makes it easy to describe the structure and management of sophisticated distributed applications, 
+and then it makes it easy to launch them in a cloud, with on-going automated management.
+
+This walkthrough will set up a sample application which you can use as foundation for creating your own applications.
+
+The sample application is a three tier web service, composed of:
+
+* an Nginx load-balancer
+* a cluster of JBoss appservers
+* a MySQL database
+
+
+## Download the Sample Project
+
+If you'd like to follow these steps on your machine, you can use Maven to 
+download the Brooklyn quickstart archetype and setup a `brooklyn-sample` directory and project. 
+Maven will automatically download Brooklyn and all dependencies.
+You can of course follow this walkthrough without installing it on your machine ... yet!
+
+{% if SNAPSHOT %}
+
+{% highlight bash %}
+$ export BROOKLYN_VERSION=0.7.0-SNAPSHOT
+$ mvn archetype:generate \
+    -DarchetypeGroupId=io.brooklyn \
+    -DarchetypeArtifactId=brooklyn-archetype-quickstart \
+    -DarchetypeVersion=${BROOKLYN_VERSION} \
+    -DarchetypeCatalog=https://oss.sonatype.org/content/repositories/snapshots/archetype-catalog.xml \
+    -DgroupId=com.acme.sample \
+    -DartifactId=brooklyn-sample \
+    -Dversion=0.1.0-SNAPSHOT \
+    -Dpackage=com.acme.sample.brooklyn \
+    --batch-mode
+$ cd brooklyn-sample
+{% endhighlight %}
+
+*Note*: As this is a snapshot version of Brooklyn, the code above includes a `-DarchetypeCatalog` specification.
+This can be omitted for release versions, or if you already have a local `mvn install` of Brooklyn installed as described [here]({{site.url}}/dev/code/index.html).
+
+{% else %}
+
+{% highlight bash %}
+$ export BROOKLYN_VERSION=0.7.0-SNAPSHOT
+$ mvn archetype:generate \
+    -DarchetypeGroupId=io.brooklyn \
+    -DarchetypeArtifactId=brooklyn-archetype-quickstart \
+    -DarchetypeVersion=${BROOKLYN_VERSION} \
+    -DgroupId=com.acme.sample \
+    -DartifactId=brooklyn-sample \
+    -Dversion=0.1.0-SNAPSHOT \
+    -Dpackage=com.acme.sample.brooklyn
+$ cd brooklyn-sample
+{% endhighlight %}
+
+{% endif %}
+
+## Define your Application Blueprint
+
+An application blueprint is defined as a Java class, as follows:
+
+{% highlight java %}
+public class ClusterWebServerDatabaseSample extends AbstractApplication {
+    @Override
+    public void init() {
+        MySqlNode mysql = addChild(EntitySpec.create(MySqlNode.class));
+        ControlledDynamicWebAppCluster web = addChild(EntitySpec.create(ControlledDynamicWebAppCluster.class));
+    }
+}
+{% endhighlight %}
+
+The file `ClusterWebServerDatabaseSample.java` in `src/main/java/com/acme/sample/brooklyn/sample/app/` 
+provides a template to follow.
+
+
+## Deploying the Application
+
+If you have not already done so, follow the section in the 
+[Getting Started Guide]({{site.url}}/use/guide/quickstart/index.html) to create a `brooklyn.properties` 
+file containing credentials for your preferred cloud provider. 
+
+To launch this application, build the project and run the `start.sh` script in the resulting assembly:
+
+{% highlight bash %}
+$ mvn clean assembly:assembly
+
+$ cd target/brooklyn-sample-0.1.0-SNAPSHOT-dist/brooklyn-sample-0.1.0-SNAPSHOT/
+
+$ ./start.sh launch \
+    --app com.acme.sample.brooklyn.sample.app.ClusterWebServerDatabaseSample \
+    --location jclouds:aws-ec2:eu-west-1
+{% endhighlight %}
+
+(Amazon is used in this walkthrough, but lots of targets are supported,
+including `--location localhost`, fixed IP addresses, and 
+everything supported by [jclouds](http://jclouds.org), from OpenStack to Google Compute.)
+
+Your console will inform you that it has started a Brooklyn console at [http://localhost:8081](http://localhost:8081)
+
+[![Web Console](wt-starting-700.png "Web Console")](wt-starting.png) 
+
+The management console provides a view on to the entities that launched,
+including the hierarchy (appservers grouped into a cluster) and their locations. 
+
+Brooklyn collects information from these entities ("sensors"), 
+aggregates these for clusters and other groups (using "enrichers"),
+and exposes operations ("effectors") that can be performed on entities.
+
+[![Web Console Details](wt-tree-jboss-sensors-700.png "Web Console Details")](wt-tree-jboss-sensors.png) 
+
+
+## Topology, Dependencies, and Management Policies
+
+Of course in the real world, application deployments are more interesting;
+they do things and need configuration.  For instance you might need to:
+
+* specify a WAR file
+* initialize the database
+* tell the webapp servers where to find the database
+
+Let's show how these are done using Brooklyn.
+We assume the WAR file and the database init script are accessible
+on the classpath, but a range of URL formats is supported.
+The "dependent inter-process configuration" -- giving the database's URL
+to the webapps -- we'll do here with a JVM system property,
+but you're free to use any mechanism you wish.
+
+Under the covers, ``attributeWhenReady`` is monitoring a sensor from MySQL
+and generating a string to pass to the webapp software processes; ``formatString``
+is a similar utility that returns a string once all of its parts have been resolved.
+Due to the use of futures, the Brooklyn webapp entities will automatically
+block "at the last moment" when the value is needed
+(but after e.g. the VMs have been provisioned, to speed things up).
+
+{% highlight java %}
+public class ClusterWebServerDatabaseSample extends AbstractApplication {
+    @Override
+    public void init() {
+        MySqlNode mysql = addChild(EntitySpec.create(MySqlNode.class)
+                .configure(MySqlNode.CREATION_SCRIPT_URL, "classpath://visitors-database-setup.sql"));
+        
+        ControlledDynamicWebAppCluster web = addChild(EntitySpec.create(ControlledDynamicWebAppCluster.class)
+                .configure("memberSpec", EntitySpec.create(JBoss7Server.class)
+                        .configure("httpPort", "8080+")
+                        .configure("war", WAR_PATH)
+                        .configure(JavaEntityMethods.javaSysProp("brooklyn.example.db.url"), 
+                                formatString("jdbc:%s%s?user=%s\\&password=%s", 
+                                        attributeWhenReady(mysql, MySqlNode.MYSQL_URL), DB_TABLE, DB_USERNAME, DB_PASSWORD))));
+    }
+}
+{% endhighlight %}
+
+We now see our app at the Nginx URL:
+
+[![Our Web App](wt-deployed-application-700.png "Screenshot of our Web App")](wt-deployed-application.png) 
+
+Finally, we'll bring in some active management: we're going to monitor requests per second,
+and scale out if this exceeds 100 up to a maximum of 5 servers.
+This is a naively simple policy, but it shows Brooklyn's real metier,
+running management policies for applications whose topology it knows. 
+
+{% highlight java %}
+        web.getCluster().addPolicy(AutoScalerPolicy.builder().
+                        metric(DynamicWebAppCluster.AVERAGE_REQUESTS_PER_SECOND).
+                        sizeRange(1, 5).
+                        metricRange(10, 100).
+                        build());
+{% endhighlight %}
+        
+*Policies* in Brooklyn typically subscribe to sensors,  perform some computation, and if necessary invoke effectors on entities.  This is where the ability to group entities
+becomes very useful -- policies can be attached to group entities, and groups themselves can be hierarchical. It's also handy that often Brooklyn creates the entities,
+so it knows what the hierarchy is.
+
+Under the covers, this ``AutoScalerPolicy`` attaches to any ``Resizable`` entity (exposing a ``resize`` effector), and monitors a specified sensor (or function) attempting to keep it within healthy limits. A separate policy operates at the ``Controlled`` cluster to ensure the load-balancer is updated as the pool of web servers expands and contracts.
+
+Fire up a JMeter session (or other load testing tool) and blast the Nginx address. The auto-scaler policy will scale up the cluster.
+
+## What Next?
+ 
+In addition to the sample project created by the archetype, with its README and
+`assembly` build, you can find additional code related to this example included with Brooklyn as the ``simple-web-cluster`` example,
+described [in detail here]({{site.url}}/use/examples/webcluster).
+
+For your applications, you might want to mix in other data stores, messaging systems, or on-line services including PaaS.
+Brooklyn supports some of these out-of-the-box, including a wide-range of tools which it can use Whirr to provision, such as Hadoop.
+But if you have something you don't see, 
+[let us know]({{site.url}}/meta/contact.html) -- 
+we want to work with you to 
+[write a new entity]({{site.url}}/dev/code/entity.html) or
+[policy]({{site.url}}/dev/code/policy.html) 
+and [contribute it]({{site.url}}/dev/how-to-contrib.html).
+
+
+<!--
+
+Alternatively you can just add a ``main`` method to the application class as follows:
+
+{% highlight java %}
+    public static void main(String[] argv) {
+        List<String> args = Lists.newArrayList(argv);
+        String port =  CommandLineUtil.getCommandLineOption(args, "--port", "8081+");
+        String location = CommandLineUtil.getCommandLineOption(args, "--location", DEFAULT_LOCATION);
+
+        BrooklynServerDetails server = BrooklynLauncher.newLauncher()
+                .webconsolePort(port)
+                .launch();
+
+        Location loc = server.getManagementContext().getLocationRegistry().resolve(location);
+
+        StartableApplication app = new WebClusterDatabaseExample()
+                .appDisplayName("Brooklyn WebApp Cluster with Database example")
+                .manage(server.getManagementContext());
+        
+        app.start(ImmutableList.of(loc));
+        
+        Entities.dumpInfo(app);
+    }
+{% endhighlight %}
+
+Compile and run this with the [``brooklyn-all`` jar]({{site.url}}/start/download.html) on the classpath,
+pointing at your favourite WAR on your filesystem. 
+(If the ``import`` packages aren't picked up correctly,
+you can cheat by looking at [the file in Github](https://github.com/brooklyncentral/brooklyn/blob/master/examples/simple-web-cluster/src/main/java/brooklyn/demo/WebClusterDatabaseExample.java);
+and you'll find a sample WAR which uses the database as configured above 
+[here](https://http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/io/brooklyn/).)
+ TODO example webapp url 
+ 
+If you want to adventure beyond ``localhost`` (the default),
+simply supply the your favourite cloud (e.g. ``aws-ec2:eu-west-1``)
+with credentials set up as described [here]({{ site.url }}/use/guide/management/index.html#startup-config).
+
+-->

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/walkthrough/wt-deployed-application-700.png
----------------------------------------------------------------------
diff --git a/docs/guide/start/walkthrough/wt-deployed-application-700.png b/docs/guide/start/walkthrough/wt-deployed-application-700.png
new file mode 100644
index 0000000..7ef90d9
Binary files /dev/null and b/docs/guide/start/walkthrough/wt-deployed-application-700.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/walkthrough/wt-deployed-application.png
----------------------------------------------------------------------
diff --git a/docs/guide/start/walkthrough/wt-deployed-application.png b/docs/guide/start/walkthrough/wt-deployed-application.png
new file mode 100644
index 0000000..751402e
Binary files /dev/null and b/docs/guide/start/walkthrough/wt-deployed-application.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/walkthrough/wt-starting-700.png
----------------------------------------------------------------------
diff --git a/docs/guide/start/walkthrough/wt-starting-700.png b/docs/guide/start/walkthrough/wt-starting-700.png
new file mode 100644
index 0000000..c87a539
Binary files /dev/null and b/docs/guide/start/walkthrough/wt-starting-700.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/walkthrough/wt-starting.png
----------------------------------------------------------------------
diff --git a/docs/guide/start/walkthrough/wt-starting.png b/docs/guide/start/walkthrough/wt-starting.png
new file mode 100644
index 0000000..970805f
Binary files /dev/null and b/docs/guide/start/walkthrough/wt-starting.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/walkthrough/wt-tree-jboss-sensors-700.png
----------------------------------------------------------------------
diff --git a/docs/guide/start/walkthrough/wt-tree-jboss-sensors-700.png b/docs/guide/start/walkthrough/wt-tree-jboss-sensors-700.png
new file mode 100644
index 0000000..3dfc7f2
Binary files /dev/null and b/docs/guide/start/walkthrough/wt-tree-jboss-sensors-700.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/start/walkthrough/wt-tree-jboss-sensors.png
----------------------------------------------------------------------
diff --git a/docs/guide/start/walkthrough/wt-tree-jboss-sensors.png b/docs/guide/start/walkthrough/wt-tree-jboss-sensors.png
new file mode 100644
index 0000000..4c44ea9
Binary files /dev/null and b/docs/guide/start/walkthrough/wt-tree-jboss-sensors.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/toc-menu.json
----------------------------------------------------------------------
diff --git a/docs/guide/toc-menu.json b/docs/guide/toc-menu.json
new file mode 100644
index 0000000..824bbbe
--- /dev/null
+++ b/docs/guide/toc-menu.json
@@ -0,0 +1,20 @@
+[
+{ "title": "Overview",
+  "file":  "{{ site.url }}/index.html" },
+{ "title": "Download",
+  "file": "{{ site.url }}/start/download.html" },
+{ "title": "Getting Started",
+  "file": "{{ site.url }}/use/guide/quickstart/index.html" },
+{ "title": "Walkthrough",
+  "file": "{{ site.url }}/start/walkthrough/index.html" },
+{ "title": "User Guide",
+  "file":  "{{ site.url }}/use/guide/index.html",
+  "children": {% readj ./use/guide/toc.json %} },
+{ "title": "Examples",
+  "file":  "{{ site.url }}/use/examples/index.html", 
+  "children": {% readj ./use/examples/toc.json %} },
+{ "title": "Contributing",
+  "file": "{{ site.url }}/dev/code/index.html",
+  "exclude": true,
+  "children": {% readj /dev/toc.json %} }
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/toc.json b/docs/guide/toc.json
new file mode 100644
index 0000000..79f9e5d
--- /dev/null
+++ b/docs/guide/toc.json
@@ -0,0 +1,21 @@
+[
+{ "title": "Start",
+  "file":  "{{ site.url }}/start/index.html",
+  "exclude": true,
+  "children": {% readj /start/toc.json %} },
+{ "title": "Using brooklyn",
+  "file":  "{{ site.url }}/use/index.html",
+  "children": {% readj /use/toc.json %} },
+{ "title": "Contributing",
+  "file": "{{ site.url }}/dev/code/index.html",
+  "exclude": true,
+  "children": {% readj /dev/toc.json %} },
+{ "title": "License",
+  "file": "{{ site.url }}/license/index.html",
+  "exclude": true,
+  "children": {% readj /license/toc.json %} },
+{ "title": "Meta",
+  "file": "{{ site.url }}/meta/versions.html",
+  "exclude": true,
+  "children": {% readj /meta/toc.json %} }
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/api/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/api/index.md b/docs/guide/use/api/index.md
new file mode 100644
index 0000000..143c345
--- /dev/null
+++ b/docs/guide/use/api/index.md
@@ -0,0 +1,11 @@
+---
+layout: guide-normal
+title: API Reference
+toc: ../../toc.json
+---
+
+*Javadoc is not available as part of this build.*
+
+Please see the [source code]({{site.url}}/dev/code) to view javadoc.
+
+<!-- This page is normally overwritten by generated javadoc. -->

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/contact.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/contact.md b/docs/guide/use/contact.md
new file mode 100644
index 0000000..008a5a1
--- /dev/null
+++ b/docs/guide/use/contact.md
@@ -0,0 +1,7 @@
+---
+layout: guide-normal
+title: Contact
+toc: ../toc.json
+---
+
+{% readj /meta/contact.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/before-begin.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/before-begin.include.md b/docs/guide/use/examples/before-begin.include.md
new file mode 100644
index 0000000..ad9bc19
--- /dev/null
+++ b/docs/guide/use/examples/before-begin.include.md
@@ -0,0 +1,57 @@
+{% include fields.md %}
+
+## Before You Begin
+
+To use the examples, you'll need ``curl``, ``git``, ``java`` (1.6+), and ``maven`` (v3) installed.
+
+### Installing Brooklyn
+
+(If you followed the [Getting Started](/use/guide/quickstart/index.html) instructions, you can skip to Installing the Examples.)
+
+{% 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/)
+(or build it yourself following instructions [here]({{ site.url }}/dev/build/)),
+unpack it to your favourite location (e.g. `$(pwd)`), 
+and export `BROOKLYN_HOME`:
+
+{% highlight bash %}
+% curl -L -o brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz "{{ this_dist_url_tgz }}"
+% tar xvzf brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz
+% export BROOKLYN_HOME=$(pwd)/brooklyn-{{ site.brooklyn-version }}/
+{% endhighlight %}
+
+{% else %}
+
+Grab a copy of the Brooklyn distribution and set up `BROOKLYN_HOME`:
+
+{% highlight bash %}
+% curl -LO "{{ this_dist_url_tgz }}"
+% tar xvzf brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz
+% export BROOKLYN_HOME=$(pwd)/brooklyn-{{ site.brooklyn-version }}/
+{% endhighlight %}
+
+{% endif %}
+
+### Installing the Examples 
+
+Grab a copy of the brooklyn-examples source code and build it with Maven:
+
+{% highlight bash %}
+% git clone https://github.com/brooklyncentral/brooklyn-examples.git
+% cd brooklyn-examples
+{% if brooklyn_examples_branch == 'master' %}{% else %}% git checkout {{ brooklyn_examples_branch }}
+{% endif %}% mvn clean install
+{% endhighlight %}
+
+{% if SNAPSHOT %}
+Please note, these instructions are for a SNAPSHOT release of Brooklyn,
+so proceed with caution. 
+For the latest stable version, go [here](/meta/versions.html). 
+{% endif %}
+
+For more information on ways to download Brooklyn please
+see the [download page]({{site.url}}/start/download.html).
+For more information on the Brooklyn CLI and launching apps,
+please visit [this section of the user guide]({{site.url}}/use/guide/management/index.html#cli).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/global-web-fabric/console-geoscaling-details-w700.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/global-web-fabric/console-geoscaling-details-w700.png b/docs/guide/use/examples/global-web-fabric/console-geoscaling-details-w700.png
new file mode 100644
index 0000000..c34217f
Binary files /dev/null and b/docs/guide/use/examples/global-web-fabric/console-geoscaling-details-w700.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/global-web-fabric/console-geoscaling-details.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/global-web-fabric/console-geoscaling-details.png b/docs/guide/use/examples/global-web-fabric/console-geoscaling-details.png
new file mode 100644
index 0000000..f47226a
Binary files /dev/null and b/docs/guide/use/examples/global-web-fabric/console-geoscaling-details.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/global-web-fabric/console-map-w700.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/global-web-fabric/console-map-w700.png b/docs/guide/use/examples/global-web-fabric/console-map-w700.png
new file mode 100644
index 0000000..af353a9
Binary files /dev/null and b/docs/guide/use/examples/global-web-fabric/console-map-w700.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/global-web-fabric/console-map.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/global-web-fabric/console-map.png b/docs/guide/use/examples/global-web-fabric/console-map.png
new file mode 100644
index 0000000..cd0f811
Binary files /dev/null and b/docs/guide/use/examples/global-web-fabric/console-map.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/global-web-fabric/geopaas-deployed-app-w700.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/global-web-fabric/geopaas-deployed-app-w700.png b/docs/guide/use/examples/global-web-fabric/geopaas-deployed-app-w700.png
new file mode 100644
index 0000000..33c811d
Binary files /dev/null and b/docs/guide/use/examples/global-web-fabric/geopaas-deployed-app-w700.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/global-web-fabric/geopaas-deployed-app.png
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/global-web-fabric/geopaas-deployed-app.png b/docs/guide/use/examples/global-web-fabric/geopaas-deployed-app.png
new file mode 100644
index 0000000..4e743e3
Binary files /dev/null and b/docs/guide/use/examples/global-web-fabric/geopaas-deployed-app.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/global-web-fabric/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/global-web-fabric/index.md b/docs/guide/use/examples/global-web-fabric/index.md
new file mode 100644
index 0000000..7231cda
--- /dev/null
+++ b/docs/guide/use/examples/global-web-fabric/index.md
@@ -0,0 +1,378 @@
+---
+layout: guide-normal
+title: Global Web Fabric
+toc: /toc.json
+---
+
+This example shows how to build a multi-site web application *fabric*
+with DNS configured on the front-end to combine the sites,
+routing users to the location closest to them.
+
+It can combine with the [Simple Web Cluster](../webcluster) example
+or the [Portable Cloud Foundry](https://github.com/cloudsoft/brooklyn-cloudfoundry) example,
+but does not assume knowledge of either of these.
+
+{% readj ../before-begin.include.md %}
+
+Now, go to this particular example's directory:
+
+{% highlight bash %}
+% cd global-web-fabric
+{% endhighlight %}
+
+The CLI needs to know where to find your compiled examples. You can set this up by exporting
+the ``BROOKLYN_CLASSPATH`` environment variable in the following way:
+
+{% highlight bash %}
+% export BROOKLYN_CLASSPATH=$(pwd)/target/classes
+{% endhighlight %}
+
+The project ``global-web-fabric`` contains the code used
+in this example under ``src/main/java``.
+
+
+### Setting Up Geographic DNS
+
+This example uses [geoscaling.com](http://www.geoscaling.com) to provide **free** geographic-dependent DNS services.
+This will forward a domain name of your choice to various IPs depending on a script,
+e.g. computing the nearest IP based on latitude and longitude of the requester and the targets.
+Brooklyn will automatically generate and update this script, but you do need to 
+create and configure a Geoscaling account:
+
+ 1. Create the free account [here](https://www.geoscaling.com/dns2/?module=register).
+ 1. Click the link in the email you receive.
+ 1. Enter the domain name you wish to use into geoscaling (see below).
+
+The simplest domain name to choose is something unique under `geopaas.org`, e.g. `yourname.geopaas.org`,
+which we have already configured for Geoscaling to manage.
+If you are using your own domain name, 
+set its nameservers as advised by geoscaling (e.g. `ns{1,2,3,4}.geoscaling.com`).
+
+Next we need to supply this information to Brooklyn at runtime.
+The simplest way is to create or add the following fields to `~/.brooklyn/brooklyn.properties`:
+
+{% highlight bash %}
+brooklyn.geoscaling.username=yourname
+brooklyn.geoscaling.password=s3cr3t
+brooklyn.geoscaling.primaryDomain=yourname.geopaas.org
+{% endhighlight %}
+
+Replace the values of these fields as appropriate, of course!
+You can, if you prefer, supply (or override) these values in your Brooklyn application.
+
+
+### Setting Up the Locations Database
+
+In order to generate the "closest-IP" script,
+Brooklyn needs a way to find out the latitude and longitude of the
+servers you are using.
+The simplest way to do this is do download the free GeoCityLite binary flatfile 
+from [MaxMind](http://dev.maxmind.com/geoip/geoip2/geolite2/#Downloads),
+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=brooklyn.location.geo.UtraceHostGeoLookup`;
+but note this has a cap of 100 per day.
+
+This information is also used to display locations on the map
+in the Brooklyn dashboard.
+Note however that these free services are not 100% accurate;
+they are handy for dev/test but in a production system
+you may wish to specify the geographical information manually in your application,
+or purchase a commercial locations-database subscription.
+
+
+## The Code
+
+Now let's start writing our application.
+The heavy lifting will be done by off-the-shelf Brooklyn classes:
+
+ * `DynamicFabric` will create the entity specified by `factory` in each location it is given
+ * `GeoscalingDnsService` monitors children of a specified entity (the `DynamicFabric`) 
+   and adds them as DNS targets for the region they are in  
+
+First, however, let's create the Java class -- call it `GlobalWebFabricExample`.
+This will extend the Brooklyn `AbstractApplication`:
+
+{% highlight java %}
+package brooklyn.demo;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import brooklyn.entity.basic.AbstractApplication;
+
+public class GlobalWebFabricExample extends AbstractApplication {
+    @Override
+    public void init() {
+         // TODO create our app!
+    }
+}
+{% endhighlight %}
+
+### The Fabric
+
+The `DynamicFabric` by default has no knowledge of what it will build,
+other than the `factory` it is given to create an entity in each region.
+We'll use the class `ElasticJavaWebAppService.Factory` which creates
+an elastic Java Web App service,
+such as the `ControlledDynamicWebAppCluster` used in the
+[Simple Web Cluster](../webcluster) example, if deploying to VMs,
+or perhaps a `CloudFoundryJavaWebAppCluster` if deploying to a Cloud Foundry location
+(see [brooklyn-cloudfoundry repo](https://github.com/cloudsoft/brooklyn-cloudfoundry)).
+
+{% highlight java %}
+        DynamicFabric webFabric = addChild(EntitySpec.create(DynamicFabric.class)
+                .displayName("Web Fabric")
+                .configure(DynamicFabric.FACTORY, new ElasticJavaWebAppService.Factory())
+                .configure(ElasticJavaWebAppService.ROOT_WAR, WAR_PATH));
+{% endhighlight %}
+
+Here we have specified the WAR to use with `configure(ElasticJavaWebAppService.ROOT_WAR, WAR_PATH)`.
+The war configuration used in the previous example is only available on web-aware entities;
+configuration specified with a ConfigKey can be done on any entity,
+and is inherited at runtime, so this provides a useful way to specify the WAR to use
+even though the web-aware entities are only constructed at runtime.
+
+
+### Stitching the Fabric together with DNS
+
+To stitch these together seamlessly, another entity will run a policy
+which collects the public-facing IP address of each cluster created by the fabric,
+as it comes online, by watching for `SERVICE_UP` sensors.
+First, however, let's make sure any load-balancer proxies (e.g. nginx) in these clusters
+are listening on port 80:
+
+{% highlight java %}
+        DynamicFabric webFabric = addChild(EntitySpec.create(DynamicFabric.class)
+                .displayName("Web Fabric")
+                .configure(DynamicFabric.FACTORY, new ElasticJavaWebAppService.Factory())
+                .configure(ElasticJavaWebAppService.ROOT_WAR, WAR_PATH)
+                .configure(AbstractController.PROXY_HTTP_PORT, PortRanges.fromInteger(80)));
+{% endhighlight %}
+
+Let's now define the Geoscaling entity which does the stitching.
+We need to supply the username, password, and primaryDomainName for Geoscaling;
+we'll take this from the `brooklyn.properties` file mentioned above.
+We'll also specify a `smartSubdomainName`, to use Geoscaling's facility for
+lightweight sub-domains to prevent DNS caching and multiple instances of our application
+from confusing us -- e.g. `brooklyn-1234.yourname.geopaas.org`.
+
+{% highlight java %}
+        StringConfigMap config = getManagementContext().getConfig();
+        
+        GeoscalingDnsService geoDns = addChild(EntitySpec.create(GeoscalingDnsService.class)
+                .displayName("GeoScaling DNS")
+                .configure("username", checkNotNull(config.getFirst("brooklyn.geoscaling.username"), "username"))
+                .configure("password", checkNotNull(config.getFirst("brooklyn.geoscaling.password"), "password"))
+                .configure("primaryDomainName", checkNotNull(config.getFirst("brooklyn.geoscaling.primaryDomain"), "primaryDomain")) 
+                .configure("smartSubdomainName", "brooklyn"));
+{% endhighlight %}
+
+Lastly we need to tell this instance what entity it should monitor
+for children to include as targets:
+
+{% highlight java %}
+        geoDns.setTargetEntityProvider(webFabric);
+{% endhighlight %}
+
+
+
+### Cloud Foundry and other PaaS Targets
+
+At this point our core application is ready, and can be deployed to AWS or another VM cloud.
+This may take between 15 and 30 minutes to run,
+mainly spent downloading software
+(unless of course you specify a pre-configured `imageId` which contains the software).
+
+A quicker alternative is to deploy to a Java Web App platform-as-a-service
+such as Cloud Foundry.  A major advantage here is that they can provision very quickly,
+in a matter of seconds.  Code for this can be found in the 
+[brooklyn-cloudfoundry repo](https://github.com/cloudsoft/brooklyn-cloudfoundry), 
+along with an example global-web-fabric app.
+
+
+### Imports
+
+Your imports should look as follows:
+
+{% highlight java %}
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import brooklyn.config.StringConfigMap;
+import brooklyn.entity.basic.AbstractApplication;
+import brooklyn.entity.basic.Attributes;
+import brooklyn.entity.dns.geoscaling.GeoscalingDnsService;
+import brooklyn.entity.group.DynamicFabric;
+import brooklyn.entity.proxy.AbstractController;
+import brooklyn.entity.proxying.EntitySpec;
+import brooklyn.entity.webapp.ElasticJavaWebAppService;
+import brooklyn.location.basic.PortRanges;
+{% endhighlight %}
+
+
+### Use of main method (optional)
+
+In this example, we will use the brooklyn CLI launcher. However, it is possible to write your own main method.
+
+The following static constants are assumed (most of these as in the [Simple Web Cluster](../webcluster) example and others): 
+
+ * `WAR_PATH`, pointing to the webapp to deploy (a default supplied as part of the Brooklyn examples is used here)
+ * `DEFAULT_LOCATIONS`, containing a string spec of the locations to deploy to if none are supplied on the command-line;
+   for this example `localhost` will frequently not work unless Geoscaling can see it 
+   (i.e. it has a public IP and appropriate firewall settings)
+
+The code (which can safely be omitted) is as follows:
+
+{% highlight java %}
+import brooklyn.launcher.BrooklynLauncher;
+import brooklyn.util.CommandLineUtil;
+
+import com.google.common.base.Joiner;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
+
+// class definition, and rest of class goes here...
+
+    public static final Logger log = LoggerFactory.getLogger(GlobalWebFabricExample.class);
+    
+    // points to the webapp to deploy (a default supplied as part of the Brooklyn examples is used here)
+    public static final String WAR_PATH = "classpath://hello-world-webapp.war";
+    
+    // locations to deploy to if none are supplied on the command-line; for this example `localhost` will 
+    // frequently not work unless Geoscaling can see it (i.e. it has a public IP and appropriate firewall settings)
+    static final List<String> DEFAULT_LOCATIONS = ImmutableList.of(
+            "aws-ec2:eu-west-1",
+            "aws-ec2:ap-southeast-1",
+            "aws-ec2:us-west-1" );
+        
+    public static void main(String[] argv) {
+        List<String> args = Lists.newArrayList(argv);
+        String port =  CommandLineUtil.getCommandLineOption(args, "--port", "8081+");
+        String locations = CommandLineUtil.getCommandLineOption(args, "--locations", Joiner.on(",").join(DEFAULT_LOCATIONS));
+
+        BrooklynLauncher launcher = BrooklynLauncher.newInstance()
+                .application(EntitySpec.create(StartableApplication.class, GlobalWebFabricExample.class).displayName("Brooklyn Global Web Fabric Example"))
+                .webconsolePort(port)
+                .locations(Arrays.asList(locations))
+                .start();
+        
+        Entities.dumpInfo(app);
+    }
+{% endhighlight %}
+
+
+
+## Running the Example
+
+Now let's run this example.
+
+{% highlight bash %}
+${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.GlobalWebFabricExample \
+--location jclouds:aws-ec2:eu-west-1,jclouds:aws-ec2:ap-southeast-1,jclouds:aws-ec2:us-west-1 
+{% endhighlight %}
+
+The management web console will start,
+followed by the web-app services in the locations specified
+creating the VM's as needed.
+Let's look at the management web console, on port 8081:
+
+[![Web Console Map](console-map-w700.png "Web Console Map")](console-map.png) 
+
+This shows the targets (e.g. Ireland (AWS eu-west-1),  Singapore (AWS ap-southeast-1),  and California (AWS us-west-1)).
+This also shows the current status of the application.
+
+Navigating to the "applications" tab, we can view sensors, invoke effectors, control policies,
+and track activity, 
+for instance if a cluster is slow to start and you want to find out what is going on
+(you'll find additional information in the `brooklyn.log` file).
+Let's drill down on the Geoscaling DNS entity's sensors:
+
+[![Web Console Geoscaling Details](console-geoscaling-details-w700.png "Web Console Geoscaling Details")](console-geoscaling-details.png)
+
+Here we see it has chosen `brooklyn-vOZ7b4BL.martincloudsoft.geopaas.org` as the geo-load-balanced domain name.
+(Yours will be under `yourname.geopaas.org`, unless you chose a different domain earlier.)
+We can also see the hosts it is forwarding to, one for each cluster, corresponding to the
+children of the Web Fabric (propagated from the nginx hostnames, in the case of the ControlledDynamicWebAppCluster instances).
+
+
+### Checking the Web App
+
+Once Geoscaling reports at least one target, you should be able to access it on the geo-load-balanced domain name:
+
+[![Our Deployed Application](geopaas-deployed-app-w700.png "Our Deployed Application")](geopaas-deployed-app.png)
+
+Under the covers you are being routed to one of the clusters that has been deployed --
+whichever one is closest to you.
+(Due to DNS caching, at your machine or your ISP, clusters which come online after your first lookup
+will not be picked up until TTL expires, typically 10m, although often more if DNS services don't respect TTL.)
+
+
+### Checking DNS Information
+
+Let's find out exactly where we were routed:
+
+{% highlight bash %}
+% dig brooklyn-csgFCzTm.geopaas.org
+
+; <<>> DiG 9.4.3-P3 <<>> brooklyn-csgFCzTm.geopaas.org
+
+;; QUESTION SECTION:
+;brooklyn-csgFCzTm.geopaas.org. IN      A
+
+;; ANSWER SECTION:
+brooklyn-csgFCzTm.geopaas.org. 120 IN   CNAME   ec2-46-137-138-4.eu-west-1.compute.amazonaws.com.
+ec2-46-137-138-4.eu-west-1.compute.amazonaws.com. 215 IN A 46.137.138.4
+{% endhighlight %}
+
+This was run from Scotland so it seems a sensible choice.
+(Some portions of the output from `dig` have been removed for readability.)
+
+We can get more information by looking at the TXT records: 
+
+{% highlight bash %}
+% dig +trace @ns1.geoscaling.com TXT brooklyn-csgFCzTm.geopaas.org
+
+; <<>> DiG 9.4.3-P3 <<>> +trace @ns1.geoscaling.com TXT brooklyn-csgFCzTm.geopaas.org
+
+...
+
+geopaas.org.            86400   IN      NS      ns1.geoscaling.com.
+geopaas.org.            86400   IN      NS      ns2.geoscaling.com.
+geopaas.org.            86400   IN      NS      ns3.geoscaling.com.
+geopaas.org.            86400   IN      NS      ns4.geoscaling.com.
+;; Received 133 bytes from 199.249.112.1#53(a2.org.afilias-nst.info) in 45 ms
+
+brooklyn-csgFCzTm.geopaas.org. 300 IN   TXT     "Request from [54,-2]-(GB) directed to Ireland (IE)"
+brooklyn-csgFCzTm.geopaas.org. 300 IN   TXT     "GeoScaling config auto-updated by Brooklyn 2012-04-26 12:27:25 UTC"
+;; Received 189 bytes from 80.87.128.195#53(ns3.geoscaling.com) in 60 ms
+{% endhighlight %}
+
+
+## Next Steps
+
+This example has shown how to create a multi-region fabric, using the abstractions from
+[jclouds](http://jclouds.org) under the covers to make it easy to access different hosting providers
+simultaneously, and using higher-level abstractions in Brooklyn to mix PaaS systems with
+bare-VM (or even bare-metal, if you specify fixed IPs).
+
+This is meant as just the beginning however.  
+Here are some questions to think about and code challenges to give you a steer for what to explore next.
+
+
+ 1. The routines used at Geoscaling optimize for latency between the user and the location of the web-cluster.
+    What other strategies might be used?  Cost?  Compliance?  How would you code these?
+    
+ 2. This example ignores data, but you clearly can't do that in the real world.
+    When big-data is involved, does this introduce other considerations for optimizing geo-location?
+    
+ 3. Add a data tier to this system, such as MySQL or Mongo, or even Hadoop.
+    You might start with a single instance or cluster,
+    but the real fun starts with a fabric, and defining the synchronization/replication strategies
+    between the different clusters.
+    This isn't for the faint-hearted, but whatever you create will certainly be of interest
+    to people in the Brooklyn community.
+    Please [let us know]({{ site.url }}/meta/contact.html) what you've built!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/use/examples/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/index.md b/docs/guide/use/examples/index.md
new file mode 100644
index 0000000..15e89dc
--- /dev/null
+++ b/docs/guide/use/examples/index.md
@@ -0,0 +1,18 @@
+---
+layout: guide-normal
+title: Examples
+toc: /toc.json
+---
+
+We currently have the following examples on the site:
+
+{% capture ltocs %}{% readj toc.json %}{% endcapture %}
+{% jsonball ltoc from var ltocs %}
+
+{% for x in ltoc %}
+* <a href="{{ x.file }}">{{ x.title }}</a>
+{% endfor %} 
+
+There are examples in the code also, just check out the examples/ project.
+
+**Have one of your own?**  [Add it here!]({{site.url}}/dev/tips/update-docs.html)


[36/50] [abbrv] incubator-brooklyn git commit: minor website tidy -- capitalization consistency mostly

Posted by he...@apache.org.
minor website tidy -- capitalization consistency mostly


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

Branch: refs/heads/master
Commit: f8521f4e237c27245c0c851bb4ab0c02df74eeca
Parents: e8c1073
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 01:15:21 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:58 2014 +0000

----------------------------------------------------------------------
 docs/index.md                                    | 5 ++---
 docs/website/community/how-to-contribute-docs.md | 2 +-
 docs/website/community/how-to-contribute.md      | 2 +-
 docs/website/community/migrate-to-apache.md      | 2 +-
 docs/website/documentation.md                    | 2 +-
 docs/website/documentation/install-on-server.md  | 2 +-
 docs/website/index.md                            | 8 ++++----
 7 files changed, 11 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f8521f4e/docs/index.md
----------------------------------------------------------------------
diff --git a/docs/index.md b/docs/index.md
index 5e9c805..5d2c44b 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -8,13 +8,12 @@ title: Brooklyn Website and Docs (dev build)
 Consider looking at:
 
 * <a href="{{ site.path.website }}/">the brooklyn website</a>
-* <a href="{{ site.path.guide }}/">the brooklyn user guide (version 0.7.0-SNAPSHOT <!-- BROOKLYN_VERSION --></a>
+* <a href="{{ site.path.guide }}/">the brooklyn user guide (version 0.7.0-SNAPSHOT) <!-- BROOKLYN_VERSION --></a>
 
 Also see the file <code>README.md</code> in this directory.
 
 For reference, this build uses the following variables:
 
-* url:  `{{ site.url }}`
-* baseurl: `{{ site.baseurl }}`
+* url root:  `{{ site.url_root }}`
 * path map: `{{ site.path }}`
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f8521f4e/docs/website/community/how-to-contribute-docs.md
----------------------------------------------------------------------
diff --git a/docs/website/community/how-to-contribute-docs.md b/docs/website/community/how-to-contribute-docs.md
index 3d7a047..5241c98 100644
--- a/docs/website/community/how-to-contribute-docs.md
+++ b/docs/website/community/how-to-contribute-docs.md
@@ -1,6 +1,6 @@
 ---
 layout: website-normal
-title: How to contribute documentation
+title: How to Contribute Documentation
 navgroup: community
 ---
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f8521f4e/docs/website/community/how-to-contribute.md
----------------------------------------------------------------------
diff --git a/docs/website/community/how-to-contribute.md b/docs/website/community/how-to-contribute.md
index d80ae80..f73c2fb 100644
--- a/docs/website/community/how-to-contribute.md
+++ b/docs/website/community/how-to-contribute.md
@@ -1,6 +1,6 @@
 ---
 layout: website-normal
-title: How to contribute
+title: How to Contribute
 navgroup: community
 ---
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f8521f4e/docs/website/community/migrate-to-apache.md
----------------------------------------------------------------------
diff --git a/docs/website/community/migrate-to-apache.md b/docs/website/community/migrate-to-apache.md
index 79e399f..ece385d 100644
--- a/docs/website/community/migrate-to-apache.md
+++ b/docs/website/community/migrate-to-apache.md
@@ -1,6 +1,6 @@
 ---
 layout: website-normal
-title: How to migrate your brooklyncentral fork to Apache
+title: How to Migrate
 ---
 
 Prior to our adoption by the Apache Incubator, Brooklyn was developed in a

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f8521f4e/docs/website/documentation.md
----------------------------------------------------------------------
diff --git a/docs/website/documentation.md b/docs/website/documentation.md
index f6454d6..5d164a4 100644
--- a/docs/website/documentation.md
+++ b/docs/website/documentation.md
@@ -2,7 +2,7 @@
 layout: website-normal
 title: Documentation
 children:
-- { link: /v/0.7.0-M1, title: User Manual (0.7.0-M1) }
+- { link: "/v/latest", title: User Guide }
 - { path: glossary.md }
 - { path: documentation/install-on-server.md }
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f8521f4e/docs/website/documentation/install-on-server.md
----------------------------------------------------------------------
diff --git a/docs/website/documentation/install-on-server.md b/docs/website/documentation/install-on-server.md
index f658c73..4251434 100644
--- a/docs/website/documentation/install-on-server.md
+++ b/docs/website/documentation/install-on-server.md
@@ -1,6 +1,6 @@
 ---
 layout: website-normal
-title: Installing on a server
+title: Installing on a Server
 ---
 Here we present two *alternatives* to install Brooklyn:
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f8521f4e/docs/website/index.md
----------------------------------------------------------------------
diff --git a/docs/website/index.md b/docs/website/index.md
index 31fa351..33f33e7 100644
--- a/docs/website/index.md
+++ b/docs/website/index.md
@@ -9,11 +9,11 @@ children:
 - { path: documentation.md }
 - { path: community/index.md }
 navgroups:
-- { id: learnmore, page: learnmore/index.md, title: learn more }
+- { id: learnmore, page: learnmore/index.md, title: learn more, title_in_menu: Learn More }
 - { id: download, page: download.md, title: download }
-- { id: getstarted, page: quickstart/index.md, title: get started, title_in_menu: Get started }
-- { id: documentation, page: documentation.md, title: documentation, title_in_menu: All documentation }
-- { id: website/community, page: community/index.md, title: community, title_in_menu: Community home }
+- { id: getstarted, page: quickstart/index.md, title: get started, title_in_menu: Get Started }
+- { id: documentation, page: documentation.md, title: documentation, title_in_menu: All Documentation }
+- { id: website/community, page: community/index.md, title: community, title_in_menu: Community Home }
 ---
 
 <div class="jumbotron">


[27/50] [abbrv] incubator-brooklyn git commit: add website files, and update the build.sh script appropriately

Posted by he...@apache.org.
add website files, and update the build.sh script appropriately


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

Branch: refs/heads/master
Commit: b86cbf049bb3277ac444b8529edf35fab37e2368
Parents: ff06bfe
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Dec 16 10:40:10 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:56 2014 +0000

----------------------------------------------------------------------
 docs/README.md                                  |   106 +
 docs/_build/build.sh                            |    45 +-
 docs/_build/config-website-root.yml             |     4 +
 docs/_config.yml                                |    16 +-
 docs/_layouts/website-base.html                 |    76 +
 docs/_layouts/website-landing.html              |    30 +
 docs/_layouts/website-normal.html               |    41 +
 docs/_plugins/brooklyn_metadata.rb              |    60 +
 docs/_plugins/dependency_url.rb                 |    31 +
 docs/_plugins/site_structure.rb                 |    85 +
 docs/index.md                                   |    12 +
 docs/style/css/website.css                      |    49 +
 docs/style/deps/bootstrap-theme.css             |   346 +
 docs/style/deps/bootstrap.css                   |     1 -
 .../img/apache-brooklyn-logo-244px-wide.png     |   Bin 0 -> 4892 bytes
 .../img/apache-brooklyn-logo-817px-wide.png     |   Bin 0 -> 10688 bytes
 docs/style/img/bridge-large-no-title.png        |   Bin 0 -> 66113 bytes
 docs/style/js/_readme.txt                       |     2 +
 docs/style/js/underscore-min.js                 |     6 +
 docs/style/js/underscore-min.map                |     1 +
 docs/website/community/committers.md            |   119 +
 docs/website/community/fork-after.png           |   Bin 0 -> 134377 bytes
 docs/website/community/fork-before.png          |   Bin 0 -> 131674 bytes
 docs/website/community/fork-new.png             |   Bin 0 -> 137626 bytes
 .../website/community/how-to-contribute-docs.md |   140 +
 docs/website/community/how-to-contribute.md     |    85 +
 docs/website/community/index.md                 |    86 +
 docs/website/community/migrate-to-apache.md     |   117 +
 docs/website/community/pull-request.png         |   Bin 0 -> 94166 bytes
 docs/website/documentation.md                   |    19 +
 docs/website/documentation/increase-entropy.md  |    31 +
 docs/website/documentation/install-on-server.md |   122 +
 docs/website/documentation/passwordless-ssh.md  |    29 +
 docs/website/documentation/ssh-key.md           |     9 +
 docs/website/download.md                        |    70 +
 docs/website/glossary.md                        |    92 +
 docs/website/index.md                           |    71 +
 docs/website/learnmore/catalog/common.js        |    94 +
 .../brooklyn.enricher.DeltaEnricher.html        |    59 +
 .../brooklyn.enricher.HttpLatencyDetector.html  |    59 +
 .../brooklyn.enricher.RollingMeanEnricher.html  |    59 +
 ....enricher.RollingTimeWindowMeanEnricher.html |    59 +
 ...klyn.enricher.TimeFractionDeltaEnricher.html |    59 +
 ...klyn.enricher.TimeWeightedDeltaEnricher.html |    59 +
 .../brooklyn.enricher.basic.Aggregator.html     |    59 +
 .../brooklyn.enricher.basic.Combiner.html       |    59 +
 .../brooklyn.enricher.basic.Propagator.html     |    59 +
 .../brooklyn.enricher.basic.Transformer.html    |    59 +
 ...ooklyn.policy.ha.ServiceFailureDetector.html |    59 +
 ...lyn.entity.basic.VanillaSoftwareProcess.html |    66 +
 ...ntity.brooklynnode.BrooklynEntityMirror.html |    66 +
 ...ooklyn.entity.brooklynnode.BrooklynNode.html |    66 +
 ...lyn.entity.database.mariadb.MariaDbNode.html |    66 +
 ...rooklyn.entity.database.mysql.MySqlNode.html |    66 +
 ...tity.database.postgresql.PostgreSqlNode.html |    66 +
 ...lyn.entity.database.rubyrep.RubyRepNode.html |    66 +
 .../brooklyn.entity.machine.MachineEntity.html  |    66 +
 ...ntity.messaging.activemq.ActiveMQBroker.html |    66 +
 ...lyn.entity.messaging.kafka.KafkaCluster.html |    66 +
 ...ooklyn.entity.messaging.qpid.QpidBroker.html |    66 +
 ...yn.entity.messaging.rabbit.RabbitBroker.html |    66 +
 .../brooklyn.entity.messaging.storm.Storm.html  |    66 +
 ....entity.messaging.storm.StormDeployment.html |    66 +
 ...oklyn.entity.monitoring.monit.MonitNode.html |    66 +
 ...oklyn.entity.network.bind.BindDnsServer.html |    66 +
 ...ity.nosql.cassandra.CassandraDatacenter.html |    66 +
 ....entity.nosql.cassandra.CassandraFabric.html |    66 +
 ...yn.entity.nosql.cassandra.CassandraNode.html |    66 +
 ...entity.nosql.couchbase.CouchbaseCluster.html |    66 +
 ...yn.entity.nosql.couchbase.CouchbaseNode.html |    66 +
 ...ooklyn.entity.nosql.couchdb.CouchDBNode.html |    66 +
 ...osql.elasticsearch.ElasticSearchCluster.html |    66 +
 ...y.nosql.elasticsearch.ElasticSearchNode.html |    66 +
 ...klyn.entity.nosql.mongodb.MongoDBServer.html |    66 +
 ...ty.nosql.mongodb.sharding.MongoDBRouter.html |    66 +
 ...ngodb.sharding.MongoDBShardedDeployment.html |    66 +
 ...rooklyn.entity.nosql.redis.RedisCluster.html |    66 +
 .../brooklyn.entity.nosql.redis.RedisStore.html |    66 +
 .../brooklyn.entity.nosql.riak.RiakCluster.html |    66 +
 .../brooklyn.entity.nosql.riak.RiakNode.html    |    66 +
 .../brooklyn.entity.nosql.solr.SolrServer.html  |    66 +
 ...ooklyn.entity.osgi.karaf.KarafContainer.html |    66 +
 .../brooklyn.entity.pool.ServerPool.html        |    66 +
 ...klyn.entity.proxy.nginx.NginxController.html |    66 +
 ...y.webapp.ControlledDynamicWebAppCluster.html |    66 +
 ...klyn.entity.webapp.DynamicWebAppCluster.html |    66 +
 ...ooklyn.entity.webapp.jboss.JBoss6Server.html |    66 +
 ...ooklyn.entity.webapp.jboss.JBoss7Server.html |    66 +
 ...ooklyn.entity.webapp.jetty.Jetty6Server.html |    66 +
 ...ntity.webapp.nodejs.NodeJsWebAppService.html |    66 +
 ...oklyn.entity.webapp.tomcat.TomcatServer.html |    66 +
 ...klyn.entity.zookeeper.ZooKeeperEnsemble.html |    66 +
 ...brooklyn.entity.zookeeper.ZooKeeperNode.html |    66 +
 docs/website/learnmore/catalog/index.html       |   147 +
 docs/website/learnmore/catalog/items.css        |   153 +
 docs/website/learnmore/catalog/items.js         | 24674 +++++++++++++++++
 .../learnmore/catalog/libs/js/bloodhound.js     |   727 +
 ...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 +
 ...lyn.policy.autoscaling.AutoScalerPolicy.html |    59 +
 ....policy.followthesun.FollowTheSunPolicy.html |    59 +
 ...lyn.policy.ha.ConnectionFailureDetector.html |    59 +
 .../brooklyn.policy.ha.ServiceReplacer.html     |    59 +
 .../brooklyn.policy.ha.ServiceRestarter.html    |    59 +
 ...olicy.loadbalancing.LoadBalancingPolicy.html |    59 +
 docs/website/learnmore/index.md                 |    11 +
 docs/website/learnmore/theory.md                |   177 +
 docs/website/learnmore/yaml-explained.md        |     9 +
 docs/website/quickstart/_my-web-cluster.yaml    |    19 +
 docs/website/quickstart/brooklyn.properties     |   266 +
 docs/website/quickstart/catalog.xml             |    22 +
 ...cation-catalog-web-cluster-with-db-large.png |   Bin 0 -> 131618 bytes
 ...talog-web-cluster-with-db-location-large.png |   Bin 0 -> 152721 bytes
 ...ion-catalog-web-cluster-with-db-location.png |   Bin 0 -> 86425 bytes
 ...-application-catalog-web-cluster-with-db.png |   Bin 0 -> 76065 bytes
 .../images/add-application-modal-yaml.png       |   Bin 0 -> 68401 bytes
 .../images/jboss7-cluster-policies-large.png    |   Bin 0 -> 157883 bytes
 .../images/jboss7-cluster-policies.png          |   Bin 0 -> 94056 bytes
 .../images/my-db-activities-large.png           |   Bin 0 -> 208313 bytes
 .../quickstart/images/my-db-activities.png      |   Bin 0 -> 130262 bytes
 .../images/my-web-cluster-starting.png          |   Bin 0 -> 32948 bytes
 .../my-web-cluster-stop-confirm-large.png       |   Bin 0 -> 148155 bytes
 .../images/my-web-cluster-stop-confirm.png      |   Bin 0 -> 79280 bytes
 .../quickstart/images/my-web-summary-large.png  |   Bin 0 -> 178785 bytes
 .../quickstart/images/my-web-summary.png        |   Bin 0 -> 80583 bytes
 docs/website/quickstart/images/my-web.png       |   Bin 0 -> 83081 bytes
 docs/website/quickstart/index.md                |   215 +
 .../website/quickstart/policies-and-catalogs.md |    67 +
 146 files changed, 33616 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..6cac8b0
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,106 @@
+Brooklyn Website source
+=======================
+
+Contributor worflow
+-------------------
+
+The contributor workflow is identical to that used by the main project, with
+the exception of the different repository - `incubator-brooklyn-site` instead
+of `incubator-brooklyn`. Therefore you should familiarise yourself with the
+standard workflow for Apache Brooklyn:
+
+* [Guide for contributors][CONTRIB]
+* [Guide for committers][COMMIT]
+
+[CONTRIB]: https://brooklyn.incubator.apache.org/community/how-to-contribute.html
+[COMMIT]: https://brooklyn.incubator.apache.org/community/committers.html
+
+
+Workstation setup
+-----------------
+
+First, clone the `incubator-brooklyn-site` repository and set up the remotes as
+described in [Guide for committers][COMMIT].
+
+Install [RVM](http://rvm.io/); this manages Ruby installations and sets of Ruby
+gems.
+
+    \curl -sSL https://get.rvm.io | bash -s stable
+
+At this point, close your shell session and start a new one, to get the new
+environment that RVM has configured. Now change directory to the location where
+you checked out your repository, and then to the `_scripts` subdirectory.
+
+RVM should detect its configuration inside `Gemfile` and try to configure itself. 
+Most likely it will report that the required version of Ruby is not installed; 
+it will show the command that you need to run to install the correct version. 
+Follow these instructions.
+
+Once the correct version of Ruby is installed, change to your home directory
+(`cd ~`) and then change back to the repository again (`cd -`). This will cause
+RVM to re-load configuration from `Gemfile` with the correct version of Ruby.
+
+If you are running Ubuntu, there is a further dependency that is required:
+
+    sudo apt-get install libxslt-dev libxml2-dev
+
+Finally, run this command inside `_scripts` to install all the required Gems 
+in the correct versions:
+
+    bundle install
+
+Anytime you need to reset your Ruby environment for jekyll to run correctly,
+return to the `_scripts` directory and re-run the above command.
+
+
+Building and previewing the website
+-----------------------------------
+
+### Using Jekyll's in-built server
+
+Run the command:
+
+    jekyll serve --watch
+    
+This will start up a local web server. The URL is printed by Jekyll when the server starts,
+e.g. http://localhost:4000/brooklyn/ . The server will continue to run until you press Ctrl+C.
+Modified files will be detected and regenerated (but that might take up to 1m).
+Leave off the `--watch` argument to abandon that behaviour, or use `jekyll build` instead
+to generate a site in `_site` without a server, for instance if your browser supports running from disk.
+
+
+
+### Combining with Brooklyn user-manual / version docs
+
+TODO: Some links should come from the incubator-brooklyn/docs/ project.
+They can run in debug mode on a different port.
+
+
+Building and publishing the website
+-----------------------------------
+
+Run this script:
+
+    ./_scripts/build-for-publication
+
+This will run Jekyll with the correct base URL for the live website and place
+the output in the `_site` directory.
+
+The Apache website publication process is based around the Subversion repository; the generated HTML files must be checked in to Subversion, whereupon an automated process will publish the files to the live website.
+
+Starting in a suitable directory, check out the website directory from the repository:
+
+    svn co https://svn.apache.org/repos/asf/incubator/brooklyn/site incubator-brooklyn-site-public
+    cd incubator-brooklyn-site-public
+
+Synchronise the generated site into the Subversion working copy - please amend this command to include the correct paths for your setup:
+
+    rsync -rv --delete --exclude .svn --exclude v ~/incubator-brooklyn-site/_site/ ~/incubator-brooklyn-site-public
+
+Review the changes using the usual `svn` commands - e.g., `status`, `diff`, `add`, `rm`, etc.
+
+Once you are ready to publish, commit the changes to Subversion:
+
+    svn ci -m 'Update Brooklyn (incubating) website'
+
+The changes will become live within a few minutes.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/_build/build.sh
----------------------------------------------------------------------
diff --git a/docs/_build/build.sh b/docs/_build/build.sh
index d10dc82..b1a4032 100755
--- a/docs/_build/build.sh
+++ b/docs/_build/build.sh
@@ -4,7 +4,7 @@
 # override --url /myMountPoint  (as an argument to this script) if you don't like the default set in /_config.yml
 
 if [ ! -x _build/build.sh ] ; then
-  echo script must be run in root of docs dir
+  echo ERROR: script must be run in root of docs dir
   exit 1
 fi
 
@@ -12,9 +12,12 @@ function help() {
   echo "This will build the documentation in _site/."
   echo "Usage:  _build/build.sh MODE [ARGS]"
   echo "where MODE is:"
-  echo "* guide-root : to build the guide in the root"
-  echo "* guide-version : to build the guide in the versioned namespace /v/VERSION/"
-  echo "* default : to build the files in their natural location (e.g. guide in /guide/)"
+  echo "* root : to build root files for production, the website in the root and guide in /guide/"
+  # BROOKLYN_VERSION_BELOW
+  echo "* guide-version : to build a versioned guide for production; guide only, in the versioned namespace /v/0.7.0-SNAPSHOT/"
+  echo "* website-root : to build the website only, in the root"
+  echo "* guide-root : to build the guide only, in the root"
+  echo "* original : to build the files in their original location (e.g. guide in /guide/)"
   echo "and supported ARGS are:"
   echo "* --skip-javadoc : to skip javadoc build"
   echo 'with any remaining ARGS passed to jekyll as `jekyll build --config ... ARGS`.'
@@ -26,9 +29,27 @@ function deduce_config() {
   help)
     help
     exit 0 ;;
+  root)
+    CONFIG=_config.yml,_build/config-production.yml,_build/config-website-root.yml
+    DIRS_TO_MOVE[0]=website
+    DIRS_TO_MOVE_TARGET[0]=""
+    SKIP_JAVADOC=true
+    SUMMARY="root production files, website in root and guide in /guide/"
+    ;;
+  website-root)
+    CONFIG=_config.yml,_build/config-production.yml,_build/config-website-root.yml
+    DIRS_TO_MOVE[0]=website
+    DIRS_TO_MOVE_TARGET[0]=""
+    DIRS_TO_MOVE[1]=guide
+    DIRS_TO_MOVE_TARGET[1]=long_grass
+    SUMMARY="user guide files in the root"
+    ;;
   guide-root)
     CONFIG=_config.yml,_build/config-production.yml,_build/config-guide-root.yml
-    DIRS_TO_MOVE["guide"]=""
+    DIRS_TO_MOVE[0]=guide
+    DIRS_TO_MOVE_TARGET[0]=""
+    DIRS_TO_MOVE[1]=website
+    DIRS_TO_MOVE_TARGET[1]=long_grass
     SUMMARY="user guide files in the root"
     ;;
   guide-version)
@@ -39,22 +60,24 @@ function deduce_config() {
     DIRS_TO_MOVE_TARGET[0]=v/0.7.0-SNAPSHOT
     DIRS_TO_MOVE[1]=style
     DIRS_TO_MOVE_TARGET[1]=${DIRS_TO_MOVE_TARGET[0]}/style
+    DIRS_TO_MOVE[2]=website
+    DIRS_TO_MOVE_TARGET[2]=long_grass
     SUMMARY="user guide files in /${DIRS_TO_MOVE_TARGET[0]}"
     ;;
-  default)
+  original)
     CONFIG=_config.yml,_build/config-production.yml
-    SUMMARY="all files in their default place"
+    SUMMARY="all files in their original place"
     ;;
   "")
-    echo "Arguments are required. Try 'help'."
+    echo "ERROR: arguments are required; try 'help'"
     exit 1 ;;
   *)
-    echo "Invalid argument '$1'. Try 'help'."
+    echo "ERROR: invalid argument '$1'; try 'help'"
     exit 1 ;;
   esac
 }
 
-function build_jekyll() {
+function make_jekyll() {
   echo JEKYLL running with: jekyll build $CONFIG $@
   jekyll build --config $CONFIG $@ || return 1
   echo JEKYLL completed
@@ -80,7 +103,7 @@ if [ "$1" = "--skip-javadoc" ]; then
   shift
 fi
 
-build_jekyll || { echo ERROR: could not build docs in `pwd` ; exit 1 ; }
+make_jekyll || { echo ERROR: could not build docs in `pwd` ; exit 1 ; }
 
 if [ "$SKIP_JAVADOC" != "true" ]; then
   pushd _build > /dev/null

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/_build/config-website-root.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-website-root.yml b/docs/_build/config-website-root.yml
new file mode 100644
index 0000000..3195f8c
--- /dev/null
+++ b/docs/_build/config-website-root.yml
@@ -0,0 +1,4 @@
+
+path:
+  website: ""
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/_config.yml
----------------------------------------------------------------------
diff --git a/docs/_config.yml b/docs/_config.yml
index 5bb4372..8128967 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -26,9 +26,23 @@ brooklyn-snapshot-git-branch: master   # if line above is SNAPSHOT this should p
 url_root: http://0.0.0.0:4000
 
 # absolute base directories where things will land on the server
-# (prefix each with e.g. /brooklyn to test for absolute reference problems)
 path:
   style: /style
   guide: /guide
+  website: /website
   v: /v
+# (to test for absolute reference problems you can prefix each of the above,
+# with e.g. /brooklyn , and set the baseurl below)
+#baseurl: /brooklyn
+
+# Use local copies of dependencies in dev build (switched to remote using URLs for prod build)
+dependency_mode: local
+dependency_urls:
+  bootstrap.css: https://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css
+  bootstrap.js: https://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js
+  jquery.js: https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
+
+# These files should not be included in the final build (in addition to _* contents)
+
+exclude: ['README.md']
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/_layouts/website-base.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/website-base.html b/docs/_layouts/website-base.html
new file mode 100644
index 0000000..17cb459
--- /dev/null
+++ b/docs/_layouts/website-base.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+<title>{{ page.title }} - Apache Brooklyn (incubating)</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<link href="{% dependency_url bootstrap.css %}" rel="stylesheet">
+<link href="{{site.path.style}}/deps/bootstrap-theme.css" rel="stylesheet">
+<link href="{{site.path.style}}/css/website.css" rel="stylesheet">
+</head>
+
+<body>
+
+<nav class="navbar navbar-default navbar-fixed-top" id="header" role="navigation">
+    <div class="container">
+        <div class="container-fluid">
+            <!-- Brand and toggle get grouped for better mobile display -->
+            <div class="navbar-header">
+                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+                    <span class="sr-only">Toggle navigation</span>
+                    <span class="icon-bar"></span>
+                    <span class="icon-bar"></span>
+                    <span class="icon-bar"></span>
+                </button>
+                {% if page.navgroup != 'home' %}<a class="navbar-brand" href="{{site.path.website}}/"><img src="{{site.path.style}}/img/apache-brooklyn-logo-244px-wide.png" alt="brooklyn"></a>{% endif %}
+            </div>
+
+            <!-- Collect the nav links, forms, and other content for toggling -->
+            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+                <ul class="nav navbar-nav navbar-right">
+                    {% for navgroup in site.data.navgroups %}
+                    {% if navgroup.page.menu2 %}
+                    <li class="dropdown{% if page.navgroup == navgroup.id %} active{% endif %}">
+                        <a href="{{navgroup.page.url}}">{{navgroup.title}}</a>
+                        <ul class="dropdown-menu" role="menu">
+                            <li>
+                                <a href="{{navgroup.page.url}}">{{navgroup.title_in_menu}}</a>
+                            </li>
+                            <li class="divider"></li>
+                            {% for child in navgroup.page.menu2 %}
+                            <li>
+                                <a href="{{child.reference.url}}">{{child.reference.title}}</a>
+                            </li>
+                            {% endfor %}
+                        </ul>
+                    </li><!-- {{ navgroup.id }} -->
+                    {% else %}
+                    <li class="{% if page.navgroup == navgroup.id %}active{% endif %}"><a href="{{navgroup.page.url}}">{{navgroup.title}}</a></li><!-- {{ navgroup.id }} -->
+                    {% endif %}
+                    {% endfor %}
+                </ul>
+            </div><!-- /.navbar-collapse -->
+        </div><!-- /.container-fluid -->
+    </div>
+</nav>
+
+{{ content }}
+
+<script src="{% dependency_url jquery.js %}"></script>
+<script src="{% dependency_url bootstrap.js %}"></script>
+
+<script language="JavaScript" type="application/javascript">
+    $(window).resize(function () { 
+        $('body').css('padding-top', parseInt($('#header').css("height"))+10);
+        $('body').css('padding-bottom', parseInt($('#footer').css("height"))+10);
+    });
+    
+    $(window).load(function () { 
+        $('body').css('padding-top', parseInt($('#header').css("height"))+10);        
+        $('body').css('padding-bottom', parseInt($('#footer').css("height"))+10);
+    });</script>
+</body>
+
+</html>
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/_layouts/website-landing.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/website-landing.html b/docs/_layouts/website-landing.html
new file mode 100644
index 0000000..6049fb0
--- /dev/null
+++ b/docs/_layouts/website-landing.html
@@ -0,0 +1,30 @@
+---
+# layout for front page, contianing only the footer, with a bit more text
+layout: website-base
+---
+<div class="container slightlyNarrowContainer">
+    {{ content }}
+</div>
+
+<div id="footer">
+    <div class="container">
+        <div class="row">
+            <div class="col-md-9 text-muted">
+                Apache Brooklyn is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the 
+                Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the
+                infrastructure, communications, and decision making process have stabilized in a manner consistent with other
+                successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of
+                the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+                Apache Brooklyn is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License v2.0</a>.
+            </div>
+            <div class="col-md-3">
+                <p><img src="https://incubator.apache.org/images/egg-logo.png" alt="Apache Incubator" /></p>
+                <p>
+                    <a class="btn btn-sm btn-default" href="https://github.com/apache/incubator-brooklyn-site/edit/master/{{ page.path }}">Edit This Page</a>
+                    <br />
+                    <a href="https://brooklyn.incubator.apache.org/community/how-to-contribute-docs.html">help with editing</a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/_layouts/website-normal.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/website-normal.html b/docs/_layouts/website-normal.html
new file mode 100644
index 0000000..2fb7110
--- /dev/null
+++ b/docs/_layouts/website-normal.html
@@ -0,0 +1,41 @@
+---
+# layout for most website (non-guide) pages, inheriting base for the menu bar, and providing a main column of content and a menu column
+layout: website-base
+---
+<div class="container">
+    <div class="row">
+        <div class="col-md-9">
+            <h1>{{ page.title }}</h1>
+            {{ content }}
+        </div>
+        <div class="col-md-3">
+            {% if page.menu2 %}
+            <div class="list-group">
+                <h4><a href="{{page.menu2parent.url}}" class="list-group-item{% if page.menu2parent.path == page.path %} active{% endif %}">{{ page.menu2parent.title }}</a></h4>
+                {% for child in page.menu2 %}
+                <a href="{{child.reference.url}}" class="list-group-item{% if child.reference.path == page.path %} active{% endif %}">{{ child.reference.title }}</a>
+                {% endfor %}
+            </div>
+            {% endif %}
+        </div>
+    </div>
+</div>
+
+<div id="footer">
+    <div class="container">
+        <div class="row">
+            <div class="col-md-10 text-muted">
+                Apache Brooklyn is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+                License v2.0</a>.
+                <br />
+                Apache Brooklyn is currently undergoing Incubation at The Apache Software
+                Foundation.
+            </div>
+            <div class="col-md-2">
+                <a class="btn btn-sm btn-default" href="https://github.com/apache/incubator-brooklyn-site/edit/master/{{ page.path }}">Edit This Page</a>
+                <br />
+                <a href="{{ site.url_root }}{{ site.path.website }}/community/how-to-contribute-docs.html">help with editing</a>
+            </div>
+        </div>
+    </div>
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/_plugins/brooklyn_metadata.rb
----------------------------------------------------------------------
diff --git a/docs/_plugins/brooklyn_metadata.rb b/docs/_plugins/brooklyn_metadata.rb
new file mode 100644
index 0000000..c0dcc3d
--- /dev/null
+++ b/docs/_plugins/brooklyn_metadata.rb
@@ -0,0 +1,60 @@
+# Inserts several useful fields that can be referenced using {{ name }} syntax
+#
+# site.data.brooklyn.version: brooklyn version, such as 0.7.0-M1
+# site.data.brooklyn.is_snapshot: true if this is a snapshot version, otherwise false
+# site.data.brooklyn.url.userguide: URL of the user guide for this version
+#
+module BrooklynMetadata
+
+  BROOKLYN_VERSION = "0.7.0-M1" unless defined? BROOKLYN_VERSION
+
+  class Generator < Jekyll::Generator
+    def generate(site)
+      is_snapshot = BrooklynMetadata::BROOKLYN_VERSION.end_with?('-SNAPSHOT')
+      
+      if is_snapshot
+        url_set = {
+            "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"
+            }
+        }
+      else
+        url_set = {
+            "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
+      
+      url_set['userguide'] = "#{site.config['url']}/v/#{BrooklynMetadata::BROOKLYN_VERSION}"
+      
+      site.data['brooklyn'] = {
+          "version" => BrooklynMetadata::BROOKLYN_VERSION,
+          "is_snapshot" => is_snapshot,
+          "url" => url_set
+      }
+    end
+  end
+end

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/_plugins/dependency_url.rb
----------------------------------------------------------------------
diff --git a/docs/_plugins/dependency_url.rb b/docs/_plugins/dependency_url.rb
new file mode 100644
index 0000000..8a72e17
--- /dev/null
+++ b/docs/_plugins/dependency_url.rb
@@ -0,0 +1,31 @@
+# tag to write the correct URL depending whether we are running with dependencies local (for offline) or remote (eg using a CDN)
+
+# specify a map of <basename>: <remote_url> in the key `dependency_urls` in your `_config.yml`,
+# then, if `dependency_mode: local` is defined, the path `{{site.path.style}}/deps/<basename>` will be used,
+# otherwise the <remote_url> will be used
+
+module JekyllDependencyUrl
+  class DependencyUrlTag < Liquid::Tag
+    def initialize(tag_name, text, tokens)
+      super
+      @text = text
+    end
+    def render(context)
+	jekyllSite = context.registers[:site]
+        mode = context['site']['dependency_mode']
+        if mode != 'local'
+          result = context['site']['dependency_urls'][@text.strip]
+          if result.to_s == ''
+            raise 'No value in dependency_urls specified for ' + @text.strip
+          end
+        end
+        if result.to_s == ''
+          result = context['site']['path']['style'] + "/deps/" + @text.strip
+        end
+        return result
+    end
+  end
+end
+
+Liquid::Template.register_tag('dependency_url', JekyllDependencyUrl::DependencyUrlTag)
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/_plugins/site_structure.rb
----------------------------------------------------------------------
diff --git a/docs/_plugins/site_structure.rb b/docs/_plugins/site_structure.rb
new file mode 100644
index 0000000..6cfe1f9
--- /dev/null
+++ b/docs/_plugins/site_structure.rb
@@ -0,0 +1,85 @@
+# Builds a hierarchical structure for the site, based on the YAML front matter of each page
+# Starts from a page called "index.md", and follows "children" links in the YAML front matter
+module SiteStructure
+ 
+  BROOKLYN_WEBSITE_ROOT = "/website/index.md" unless defined? BROOKLYN_WEBSITE_ROOT
+  
+  class Generator < Jekyll::Generator
+    def find_page_with_path_absolute_or_relative_to(site, path, referrent)
+      page = site.pages.detect { |page| "/"+page.path == path }
+      if !page && referrent
+        page = site.pages.detect { |page| "/"+page.path == "/"+File.dirname(referrent.path)+"/"+path }
+      end
+      if !page
+        page = site.pages.detect { |page| page.path == path }
+        puts "WARNING: link to #{path} in #{referrent ? referrent.path : "root"} uses legacy absolute syntax without leading slash" if page
+      end
+
+      throw "Could not find a page called: #{path} (referenced from #{referrent ? referrent.path : "root"})" unless page
+
+      if (page.url.start_with?("/website"))
+        page.url.slice!("/website")
+        page.url.prepend(site.config['path']['website'])
+      end
+ 
+      page     
+    end
+
+    def generate(site)
+      root_page = find_page_with_path_absolute_or_relative_to(site, SiteStructure::BROOKLYN_WEBSITE_ROOT, nil)
+      navgroups = root_page.data['navgroups']
+      navgroups.each do |ng|
+        ng['page'] = find_page_with_path_absolute_or_relative_to(site, ng['page'], root_page)
+        if not ng['title_in_menu']
+          ng['title_in_menu'] = ng['title'].capitalize
+        end
+      end
+      site.data['navgroups'] = navgroups
+      site.data['structure'] = gen_structure(site, SiteStructure::BROOKLYN_WEBSITE_ROOT, nil, navgroups)
+    end
+    
+    def gen_structure(site, pagename, parent, navgroups)
+      page = find_page_with_path_absolute_or_relative_to(site, pagename, parent)
+      
+      # My navgroup is (first rule matches):
+      # 1. what I have explicitly declared
+      # 2. if I find my path referred to in the global navgroup list
+      # 3. my parent's navgroup
+      unless page.data['navgroup']
+        match = navgroups.detect { |ng| ng['page'] == page }
+        if match
+          page.data['navgroup'] = match['id']
+        elsif parent
+          page.data['navgroup'] = parent.data['navgroup']
+        end
+      end
+      
+      # Figure out second level menu
+      # If there's no parent => I'm at the top level, so no action
+      # If there's a parent, but parent has no parent => I'm at second level, so set second-level menu
+      # Otherwise, use the parent's second level menu
+      if parent && !parent.data['parent']
+        page.data['menu2parent'] = page
+        page.data['menu2'] = page.data['children']
+      elsif parent && parent.data['parent']
+        page.data['menu2parent'] = parent.data['menu2parent']
+        page.data['menu2'] = parent.data['menu2']
+      end
+      
+      page.data['parent'] = parent
+      if page.data['children']
+        page.data['children'].each do |c|
+          if c['path']
+            # links to another Jekyll site-structured page
+            c['reference'] = gen_structure(site, c['path'], page, navgroups)
+          elsif c['link']
+            # links to a non-site-structured page, on this site or elsewhere
+            c['reference'] = { 'url' => c['link'], 'title' => c['title'] }
+          end
+        end
+      end
+      
+      page
+    end
+  end
+end

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/index.md
----------------------------------------------------------------------
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000..021df26
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,12 @@
+---
+layout: website-normal
+title: Brooklyn Website and Docs (dev build)
+---
+
+<i>This page is not copied into release builds. It is here as a convenience when doing dev builds.</i>
+
+Consider looking at:
+
+* <a href="website/">the brooklyn website</a>
+
+Also see the file <code>README.md</code> in this directory.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/style/css/website.css
----------------------------------------------------------------------
diff --git a/docs/style/css/website.css b/docs/style/css/website.css
new file mode 100644
index 0000000..135c2b0
--- /dev/null
+++ b/docs/style/css/website.css
@@ -0,0 +1,49 @@
+/* Sticky footer styles
+-------------------------------------------------- */
+html {
+    position: relative;
+    min-height: 100%;
+}
+
+@media (min-width: 1200px) {
+    .slightlyNarrowContainer {
+        width: 970px;
+    }
+}
+
+.navbar-brand {
+    margin-top: -4px;
+    margin-left: -30px !important;
+}
+
+ul.nav li.dropdown:hover > ul.dropdown-menu {
+    display: block;
+}
+
+#apachebrooklynbanner {
+    background-image: url("../img/apache-brooklyn-logo-817px-wide.png");
+    background-repeat: no-repeat;
+    background-position: center;
+    width: 817px;
+    height: 99px;
+    margin-bottom: 50px;
+}
+
+#brooklynbridge {
+    background-image: url("../img/bridge-large-no-title.png");
+    background-repeat: no-repeat;
+    background-position: center;
+    width: 342px;
+    height: 242px;
+}
+
+#footer {
+    position: absolute;
+    bottom: 0;
+    width: 100%;
+    /* Set the fixed height of the footer here */
+    padding-top: 1em;
+    padding-bottom: 1em;
+    background-color: #f5f5f5;
+    text-align: center;
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/style/deps/bootstrap-theme.css
----------------------------------------------------------------------
diff --git a/docs/style/deps/bootstrap-theme.css b/docs/style/deps/bootstrap-theme.css
new file mode 100644
index 0000000..a2936d2
--- /dev/null
+++ b/docs/style/deps/bootstrap-theme.css
@@ -0,0 +1,346 @@
+/*!
+ * Bootstrap v3.1.1 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+.btn-default,
+.btn-primary,
+.btn-success,
+.btn-info,
+.btn-warning,
+.btn-danger {
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
+}
+.btn-default:active,
+.btn-primary:active,
+.btn-success:active,
+.btn-info:active,
+.btn-warning:active,
+.btn-danger:active,
+.btn-default.active,
+.btn-primary.active,
+.btn-success.active,
+.btn-info.active,
+.btn-warning.active,
+.btn-danger.active {
+  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+}
+.btn:active,
+.btn.active {
+  background-image: none;
+}
+.btn-default {
+  text-shadow: 0 1px 0 #fff;
+  background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
+  background-image:         linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #dbdbdb;
+  border-color: #ccc;
+}
+.btn-default:hover,
+.btn-default:focus {
+  background-color: #e0e0e0;
+  background-position: 0 -15px;
+}
+.btn-default:active,
+.btn-default.active {
+  background-color: #e0e0e0;
+  border-color: #dbdbdb;
+}
+.btn-primary {
+  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
+  background-image:         linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #3e8f3e;
+}
+.btn-primary:hover,
+.btn-primary:focus {
+  background-color: #419641;
+  background-position: 0 -15px;
+}
+.btn-primary:active,
+.btn-primary.active {
+  background-color: #419641;
+  border-color: #3e8f3e;
+}
+.btn-success {
+  background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
+  background-image:         linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #2b669a;
+}
+.btn-success:hover,
+.btn-success:focus {
+  background-color: #2d6ca2;
+  background-position: 0 -15px;
+}
+.btn-success:active,
+.btn-success.active {
+  background-color: #2d6ca2;
+  border-color: #2b669a;
+}
+.btn-info {
+  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+  background-image:         linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #28a4c9;
+}
+.btn-info:hover,
+.btn-info:focus {
+  background-color: #2aabd2;
+  background-position: 0 -15px;
+}
+.btn-info:active,
+.btn-info.active {
+  background-color: #2aabd2;
+  border-color: #28a4c9;
+}
+.btn-warning {
+  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+  background-image:         linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #e38d13;
+}
+.btn-warning:hover,
+.btn-warning:focus {
+  background-color: #eb9316;
+  background-position: 0 -15px;
+}
+.btn-warning:active,
+.btn-warning.active {
+  background-color: #eb9316;
+  border-color: #e38d13;
+}
+.btn-danger {
+  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+  background-image:         linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #b92c28;
+}
+.btn-danger:hover,
+.btn-danger:focus {
+  background-color: #c12e2a;
+  background-position: 0 -15px;
+}
+.btn-danger:active,
+.btn-danger.active {
+  background-color: #c12e2a;
+  border-color: #b92c28;
+}
+.thumbnail,
+.img-thumbnail {
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+}
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+  background-color: #e8e8e8;
+  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+  background-image:         linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+  background-repeat: repeat-x;
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+  background-color: #4cae4c;
+  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #4cae4c 100%);
+  background-image:         linear-gradient(to bottom, #5cb85c 0%, #4cae4c 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff4cae4c', GradientType=0);
+  background-repeat: repeat-x;
+}
+.navbar-default {
+  background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
+  background-image:         linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-radius: 4px;
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
+}
+.navbar-default .navbar-nav > .active > a {
+  background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
+  background-image:         linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
+  background-repeat: repeat-x;
+  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
+          box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
+}
+.navbar-brand,
+.navbar-nav > li > a {
+  text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
+}
+.navbar-inverse {
+  background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
+  background-image:         linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+}
+.navbar-inverse .navbar-nav > .active > a {
+  background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
+  background-image:         linear-gradient(to bottom, #222 0%, #282828 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
+  background-repeat: repeat-x;
+  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
+          box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
+}
+.navbar-inverse .navbar-brand,
+.navbar-inverse .navbar-nav > li > a {
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
+}
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  border-radius: 0;
+}
+.alert {
+  text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
+}
+.alert-success {
+  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+  background-image:         linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #b2dba1;
+}
+.alert-info {
+  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+  background-image:         linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #9acfea;
+}
+.alert-warning {
+  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+  background-image:         linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #f5e79e;
+}
+.alert-danger {
+  background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+  background-image:         linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #dca7a7;
+}
+.progress {
+  background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+  background-image:         linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar {
+  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+  background-image:         linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-success {
+  background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
+  background-image:         linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-info {
+  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+  background-image:         linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-warning {
+  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+  background-image:         linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-danger {
+  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+  background-image:         linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
+  background-repeat: repeat-x;
+}
+.list-group {
+  border-radius: 4px;
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+  text-shadow: 0 -1px 0 #449d44;
+  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #48a648 100%);
+  background-image:         linear-gradient(to bottom, #5cb85c 0%, #48a648 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff48a648', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #48a648;
+}
+.panel {
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
+}
+.panel-default > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+  background-image:         linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-primary > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #4cae4c 100%);
+  background-image:         linear-gradient(to bottom, #5cb85c 0%, #4cae4c 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff4cae4c', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-success > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+  background-image:         linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-info > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+  background-image:         linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-warning > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+  background-image:         linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-danger > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+  background-image:         linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
+  background-repeat: repeat-x;
+}
+.well {
+  background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+  background-image:         linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #dcdcdc;
+  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
+          box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/style/deps/bootstrap.css
----------------------------------------------------------------------
diff --git a/docs/style/deps/bootstrap.css b/docs/style/deps/bootstrap.css
index cfe2b90..deb2231 100644
--- a/docs/style/deps/bootstrap.css
+++ b/docs/style/deps/bootstrap.css
@@ -5782,4 +5782,3 @@ button.close {
     display: none !important;
   }
 }
-/*# sourceMappingURL=bootstrap.css.map */

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/style/img/apache-brooklyn-logo-244px-wide.png
----------------------------------------------------------------------
diff --git a/docs/style/img/apache-brooklyn-logo-244px-wide.png b/docs/style/img/apache-brooklyn-logo-244px-wide.png
new file mode 100644
index 0000000..7434e7a
Binary files /dev/null and b/docs/style/img/apache-brooklyn-logo-244px-wide.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/style/img/apache-brooklyn-logo-817px-wide.png
----------------------------------------------------------------------
diff --git a/docs/style/img/apache-brooklyn-logo-817px-wide.png b/docs/style/img/apache-brooklyn-logo-817px-wide.png
new file mode 100644
index 0000000..65cfff4
Binary files /dev/null and b/docs/style/img/apache-brooklyn-logo-817px-wide.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/style/img/bridge-large-no-title.png
----------------------------------------------------------------------
diff --git a/docs/style/img/bridge-large-no-title.png b/docs/style/img/bridge-large-no-title.png
new file mode 100644
index 0000000..0a7f878
Binary files /dev/null and b/docs/style/img/bridge-large-no-title.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/style/js/_readme.txt
----------------------------------------------------------------------
diff --git a/docs/style/js/_readme.txt b/docs/style/js/_readme.txt
new file mode 100644
index 0000000..bed81ec
--- /dev/null
+++ b/docs/style/js/_readme.txt
@@ -0,0 +1,2 @@
+underscore files are kept here because the path is referenced by catalog items.
+TODO regenerate catalog with correct path (in deps/).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/style/js/underscore-min.js
----------------------------------------------------------------------
diff --git a/docs/style/js/underscore-min.js b/docs/style/js/underscore-min.js
new file mode 100644
index 0000000..11f1d96
--- /dev/null
+++ b/docs/style/js/underscore-min.js
@@ -0,0 +1,6 @@
+//     Underscore.js 1.7.0
+//     http://underscorejs.org
+//     (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+//     Underscore may be freely distributed under the MIT license.
+(function(){var n=this,t=n._,r=Array.prototype,e=Object.prototype,u=Function.prototype,i=r.push,a=r.slice,o=r.concat,l=e.toString,c=e.hasOwnProperty,f=Array.isArray,s=Object.keys,p=u.bind,h=function(n){return n instanceof h?n:this instanceof h?void(this._wrapped=n):new h(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=h),exports._=h):n._=h,h.VERSION="1.7.0";var g=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}};h.iteratee=function(n,t,r){return null==n?h.identity:h.isFunction(n)?g(n,t,r):h.isObject(n)?h.matches(n):h.property(n)},h.each=h.forEach=function(n,t,r){if(null==n)return n;t=g(t,r);var e,u=n.length;if(u===+u)for(e=0;u>e;e++)t(n[e],e,n);else{var i=h.keys(n);for(e
 =0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},h.map=h.collect=function(n,t,r){if(null==n)return[];t=h.iteratee(t,r);for(var e,u=n.length!==+n.length&&h.keys(n),i=(u||n).length,a=Array(i),o=0;i>o;o++)e=u?u[o]:o,a[o]=t(n[e],e,n);return a};var v="Reduce of empty array with no initial value";h.reduce=h.foldl=h.inject=function(n,t,r,e){null==n&&(n=[]),t=g(t,e,4);var u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length,o=0;if(arguments.length<3){if(!a)throw new TypeError(v);r=n[i?i[o++]:o++]}for(;a>o;o++)u=i?i[o]:o,r=t(r,n[u],u,n);return r},h.reduceRight=h.foldr=function(n,t,r,e){null==n&&(n=[]),t=g(t,e,4);var u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;if(arguments.length<3){if(!a)throw new TypeError(v);r=n[i?i[--a]:--a]}for(;a--;)u=i?i[a]:a,r=t(r,n[u],u,n);return r},h.find=h.detect=function(n,t,r){var e;return t=h.iteratee(t,r),h.some(n,function(n,r,u){return t(n,r,u)?(e=n,!0):void 0}),e},h.filter=h.select=function(n,t,r){var e=[];return null==n?e:(t=h.iteratee(t,r),h.each(n,
 function(n,r,u){t(n,r,u)&&e.push(n)}),e)},h.reject=function(n,t,r){return h.filter(n,h.negate(h.iteratee(t)),r)},h.every=h.all=function(n,t,r){if(null==n)return!0;t=h.iteratee(t,r);var e,u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;for(e=0;a>e;e++)if(u=i?i[e]:e,!t(n[u],u,n))return!1;return!0},h.some=h.any=function(n,t,r){if(null==n)return!1;t=h.iteratee(t,r);var e,u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;for(e=0;a>e;e++)if(u=i?i[e]:e,t(n[u],u,n))return!0;return!1},h.contains=h.include=function(n,t){return null==n?!1:(n.length!==+n.length&&(n=h.values(n)),h.indexOf(n,t)>=0)},h.invoke=function(n,t){var r=a.call(arguments,2),e=h.isFunction(t);return h.map(n,function(n){return(e?t:n[t]).apply(n,r)})},h.pluck=function(n,t){return h.map(n,h.property(t))},h.where=function(n,t){return h.filter(n,h.matches(t))},h.findWhere=function(n,t){return h.find(n,h.matches(t))},h.max=function(n,t,r){var e,u,i=-1/0,a=-1/0;if(null==t&&null!=n){n=n.length===+n.length?n:h.values(n);for(va
 r o=0,l=n.length;l>o;o++)e=n[o],e>i&&(i=e)}else t=h.iteratee(t,r),h.each(n,function(n,r,e){u=t(n,r,e),(u>a||u===-1/0&&i===-1/0)&&(i=n,a=u)});return i},h.min=function(n,t,r){var e,u,i=1/0,a=1/0;if(null==t&&null!=n){n=n.length===+n.length?n:h.values(n);for(var o=0,l=n.length;l>o;o++)e=n[o],i>e&&(i=e)}else t=h.iteratee(t,r),h.each(n,function(n,r,e){u=t(n,r,e),(a>u||1/0===u&&1/0===i)&&(i=n,a=u)});return i},h.shuffle=function(n){for(var t,r=n&&n.length===+n.length?n:h.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=h.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},h.sample=function(n,t,r){return null==t||r?(n.length!==+n.length&&(n=h.values(n)),n[h.random(n.length-1)]):h.shuffle(n).slice(0,Math.max(0,t))},h.sortBy=function(n,t,r){return t=h.iteratee(t,r),h.pluck(h.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var m=func
 tion(n){return function(t,r,e){var u={};return r=h.iteratee(r,e),h.each(t,function(e,i){var a=r(e,i,t);n(u,e,a)}),u}};h.groupBy=m(function(n,t,r){h.has(n,r)?n[r].push(t):n[r]=[t]}),h.indexBy=m(function(n,t,r){n[r]=t}),h.countBy=m(function(n,t,r){h.has(n,r)?n[r]++:n[r]=1}),h.sortedIndex=function(n,t,r,e){r=h.iteratee(r,e,1);for(var u=r(t),i=0,a=n.length;a>i;){var o=i+a>>>1;r(n[o])<u?i=o+1:a=o}return i},h.toArray=function(n){return n?h.isArray(n)?a.call(n):n.length===+n.length?h.map(n,h.identity):h.values(n):[]},h.size=function(n){return null==n?0:n.length===+n.length?n.length:h.keys(n).length},h.partition=function(n,t,r){t=h.iteratee(t,r);var e=[],u=[];return h.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},h.first=h.head=h.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:0>t?[]:a.call(n,0,t)},h.initial=function(n,t,r){return a.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},h.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:a.call(n,Math.max(n.l
 ength-t,0))},h.rest=h.tail=h.drop=function(n,t,r){return a.call(n,null==t||r?1:t)},h.compact=function(n){return h.filter(n,h.identity)};var y=function(n,t,r,e){if(t&&h.every(n,h.isArray))return o.apply(e,n);for(var u=0,a=n.length;a>u;u++){var l=n[u];h.isArray(l)||h.isArguments(l)?t?i.apply(e,l):y(l,t,r,e):r||e.push(l)}return e};h.flatten=function(n,t){return y(n,t,!1,[])},h.without=function(n){return h.difference(n,a.call(arguments,1))},h.uniq=h.unique=function(n,t,r,e){if(null==n)return[];h.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=h.iteratee(r,e));for(var u=[],i=[],a=0,o=n.length;o>a;a++){var l=n[a];if(t)a&&i===l||u.push(l),i=l;else if(r){var c=r(l,a,n);h.indexOf(i,c)<0&&(i.push(c),u.push(l))}else h.indexOf(u,l)<0&&u.push(l)}return u},h.union=function(){return h.uniq(y(arguments,!0,!0,[]))},h.intersection=function(n){if(null==n)return[];for(var t=[],r=arguments.length,e=0,u=n.length;u>e;e++){var i=n[e];if(!h.contains(t,i)){for(var a=1;r>a&&h.contains(arguments[a],i);a++);a===r&&t.p
 ush(i)}}return t},h.difference=function(n){var t=y(a.call(arguments,1),!0,!0,[]);return h.filter(n,function(n){return!h.contains(t,n)})},h.zip=function(n){if(null==n)return[];for(var t=h.max(arguments,"length").length,r=Array(t),e=0;t>e;e++)r[e]=h.pluck(arguments,e);return r},h.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},h.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=h.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}for(;u>e;e++)if(n[e]===t)return e;return-1},h.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=n.length;for("number"==typeof r&&(e=0>r?e+r+1:Math.min(e,r+1));--e>=0;)if(n[e]===t)return e;return-1},h.range=function(n,t,r){arguments.length<=1&&(t=n||0,n=0),r=r||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),i=0;e>i;i++,n+=r)u[i]=n;return u};var d=function(){};h.bind=function(n,t){var r,e;if(p&&n.bind===p)return p.apply(n,a.c
 all(arguments,1));if(!h.isFunction(n))throw new TypeError("Bind must be called on a function");return r=a.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(a.call(arguments)));d.prototype=n.prototype;var u=new d;d.prototype=null;var i=n.apply(u,r.concat(a.call(arguments)));return h.isObject(i)?i:u}},h.partial=function(n){var t=a.call(arguments,1);return function(){for(var r=0,e=t.slice(),u=0,i=e.length;i>u;u++)e[u]===h&&(e[u]=arguments[r++]);for(;r<arguments.length;)e.push(arguments[r++]);return n.apply(this,e)}},h.bindAll=function(n){var t,r,e=arguments.length;if(1>=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=h.bind(n[r],n);return n},h.memoize=function(n,t){var r=function(e){var u=r.cache,i=t?t.apply(this,arguments):e;return h.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},h.delay=function(n,t){var r=a.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},h.de
 fer=function(n){return h.delay.apply(h,[n,1].concat(a.call(arguments,1)))},h.throttle=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var l=function(){o=r.leading===!1?0:h.now(),a=null,i=n.apply(e,u),a||(e=u=null)};return function(){var c=h.now();o||r.leading!==!1||(o=c);var f=t-(c-o);return e=this,u=arguments,0>=f||f>t?(clearTimeout(a),a=null,o=c,i=n.apply(e,u),a||(e=u=null)):a||r.trailing===!1||(a=setTimeout(l,f)),i}},h.debounce=function(n,t,r){var e,u,i,a,o,l=function(){var c=h.now()-a;t>c&&c>0?e=setTimeout(l,t-c):(e=null,r||(o=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,a=h.now();var c=r&&!e;return e||(e=setTimeout(l,t)),c&&(o=n.apply(i,u),i=u=null),o}},h.wrap=function(n,t){return h.partial(t,n)},h.negate=function(n){return function(){return!n.apply(this,arguments)}},h.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},h.after=function(n,t){return function(){return--
 n<1?t.apply(this,arguments):void 0}},h.before=function(n,t){var r;return function(){return--n>0?r=t.apply(this,arguments):t=null,r}},h.once=h.partial(h.before,2),h.keys=function(n){if(!h.isObject(n))return[];if(s)return s(n);var t=[];for(var r in n)h.has(n,r)&&t.push(r);return t},h.values=function(n){for(var t=h.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},h.pairs=function(n){for(var t=h.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},h.invert=function(n){for(var t={},r=h.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},h.functions=h.methods=function(n){var t=[];for(var r in n)h.isFunction(n[r])&&t.push(r);return t.sort()},h.extend=function(n){if(!h.isObject(n))return n;for(var t,r,e=1,u=arguments.length;u>e;e++){t=arguments[e];for(r in t)c.call(t,r)&&(n[r]=t[r])}return n},h.pick=function(n,t,r){var e,u={};if(null==n)return u;if(h.isFunction(t)){t=g(t,r);for(e in n){var i=n[e];t(i,e,n)&&(u[e]=i)}}else{var l=o.apply([],a.call(argume
 nts,1));n=new Object(n);for(var c=0,f=l.length;f>c;c++)e=l[c],e in n&&(u[e]=n[e])}return u},h.omit=function(n,t,r){if(h.isFunction(t))t=h.negate(t);else{var e=h.map(o.apply([],a.call(arguments,1)),String);t=function(n,t){return!h.contains(e,t)}}return h.pick(n,t,r)},h.defaults=function(n){if(!h.isObject(n))return n;for(var t=1,r=arguments.length;r>t;t++){var e=arguments[t];for(var u in e)n[u]===void 0&&(n[u]=e[u])}return n},h.clone=function(n){return h.isObject(n)?h.isArray(n)?n.slice():h.extend({},n):n},h.tap=function(n,t){return t(n),n};var b=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof h&&(n=n._wrapped),t instanceof h&&(t=t._wrapped);var u=l.call(n);if(u!==l.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i
 =r.length;i--;)if(r[i]===n)return e[i]===t;var a=n.constructor,o=t.constructor;if(a!==o&&"constructor"in n&&"constructor"in t&&!(h.isFunction(a)&&a instanceof a&&h.isFunction(o)&&o instanceof o))return!1;r.push(n),e.push(t);var c,f;if("[object Array]"===u){if(c=n.length,f=c===t.length)for(;c--&&(f=b(n[c],t[c],r,e)););}else{var s,p=h.keys(n);if(c=p.length,f=h.keys(t).length===c)for(;c--&&(s=p[c],f=h.has(t,s)&&b(n[s],t[s],r,e)););}return r.pop(),e.pop(),f};h.isEqual=function(n,t){return b(n,t,[],[])},h.isEmpty=function(n){if(null==n)return!0;if(h.isArray(n)||h.isString(n)||h.isArguments(n))return 0===n.length;for(var t in n)if(h.has(n,t))return!1;return!0},h.isElement=function(n){return!(!n||1!==n.nodeType)},h.isArray=f||function(n){return"[object Array]"===l.call(n)},h.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},h.each(["Arguments","Function","String","Number","Date","RegExp"],function(n){h["is"+n]=function(t){return l.call(t)==="[object "+n+"]"}}),h.
 isArguments(arguments)||(h.isArguments=function(n){return h.has(n,"callee")}),"function"!=typeof/./&&(h.isFunction=function(n){return"function"==typeof n||!1}),h.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},h.isNaN=function(n){return h.isNumber(n)&&n!==+n},h.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===l.call(n)},h.isNull=function(n){return null===n},h.isUndefined=function(n){return n===void 0},h.has=function(n,t){return null!=n&&c.call(n,t)},h.noConflict=function(){return n._=t,this},h.identity=function(n){return n},h.constant=function(n){return function(){return n}},h.noop=function(){},h.property=function(n){return function(t){return t[n]}},h.matches=function(n){var t=h.pairs(n),r=t.length;return function(n){if(null==n)return!r;n=new Object(n);for(var e=0;r>e;e++){var u=t[e],i=u[0];if(u[1]!==n[i]||!(i in n))return!1}return!0}},h.times=function(n,t,r){var e=Array(Math.max(0,n));t=g(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},h.random=funct
 ion(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},h.now=Date.now||function(){return(new Date).getTime()};var _={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},w=h.invert(_),j=function(n){var t=function(t){return n[t]},r="(?:"+h.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};h.escape=j(_),h.unescape=j(w),h.result=function(n,t){if(null==n)return void 0;var r=n[t];return h.isFunction(r)?n[t]():r};var x=0;h.uniqueId=function(n){var t=++x+"";return n?n+t:t},h.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var A=/(.)^/,k={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},O=/\\|'|\r|\n|\u2028|\u2029/g,F=function(n){return"\\"+k[n]};h.template=function(n,t,r){!t&&r&&(t=r),t=h.defaults({},t,h.templateSettings);var e=RegExp([(t.escape||A).source,(t.interpolate||A).source,(t.evaluate||A).source]
 .join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,a,o){return i+=n.slice(u,o).replace(O,F),u=o+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":a&&(i+="';\n"+a+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var a=new Function(t.variable||"obj","_",i)}catch(o){throw o.source=i,o}var l=function(n){return a.call(this,n,h)},c=t.variable||"obj";return l.source="function("+c+"){\n"+i+"}",l},h.chain=function(n){var t=h(n);return t._chain=!0,t};var E=function(n){return this._chain?h(n).chain():n};h.mixin=function(n){h.each(h.functions(n),function(t){var r=h[t]=n[t];h.prototype[t]=function(){var n=[this._wrapped];return i.apply(n,arguments),E.call(this,r.apply(h,n))}})},h.mixin(h),h.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=r[n];h.prototype[n]=
 function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],E.call(this,r)}}),h.each(["concat","join","slice"],function(n){var t=r[n];h.prototype[n]=function(){return E.call(this,t.apply(this._wrapped,arguments))}}),h.prototype.value=function(){return this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return h})}).call(this);
+//# sourceMappingURL=underscore-min.map
\ No newline at end of file


[10/50] [abbrv] incubator-brooklyn git commit: move version-specific things to "guide"

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/tips/release.md
----------------------------------------------------------------------
diff --git a/docs/dev/tips/release.md b/docs/dev/tips/release.md
deleted file mode 100644
index 35c5904..0000000
--- a/docs/dev/tips/release.md
+++ /dev/null
@@ -1,286 +0,0 @@
----
-layout: guide-normal
-title: Release Process
-toc: /toc.json
----
-
-<!--
-TODO
-
-vote required?  see governance.
-
-
-     branch-twice-then-reversion-twice
-     e.g. from master=1.0.0_SNAPSHOT we will go to
-          create branch: v1.0.0_SNAPSHOT
-          reversion master:  1.1.0_SNAPSHOT
-          create branch and reversion:  v1.0.0_RC1, v1.0.0_SNAPSHOT
-     describe scripts for releasing
-     docs
-
-update version, using scripts
-
-push examples to repo
-
-push docs to branch and publish
-
--->
-
-Brooklyn is published to two locations:
-
-* Sonatype, for snapshots and for staging releases
-* Maven Central, for full (GA and milestone) releases
-
-Brooklyn artifacts are generally downloaded from:
-
-1. [Maven Central](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22io.brooklyn%22), 
-   and (http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.brooklyn%22) for pre 0.7.0 versions
-2. [Apache](https://repository.apache.org/index.html#nexus-search;quick~org.apache.brooklyn),
-2. [Sonatype](https://oss.sonatype.org/index.html#nexus-search;quick~io.brooklyn) for pre 0.7.0 versions
-3. [GitHub](https://github.com/apache/incubator-brooklyn).
-
-
-To publish:
-
-* a snapshot release:
-	* mvn deploy to Sonatype
-	* (optional) publish versioned docs to brooklyncentral.github.com project
-* a (milestone) release:
-	* same as above, but with some git versioning 
-	* deploy to Sonatype, then release to Maven Central
-	* deploy a version branch to brooklyn-examples 
-	* deploy (or update) versioned docs
-* a major release:
-	* same as above, and
-	* in addition to versioned examples,  update brooklyn-examples master to match the current (stable) release
-	* in addition to versioned docs, publish full (front page) docs to brooklyncentral.github.com project
-	* bump the snapshot version in brooklyn master to the next release
-
-
-	
-## Configuration 
-
-Your .m2/settings.xml must be configured with the right credentials for Sonatype
-
-  	<servers>
-	...
-		<server>
-			<username> ... </username>
-			<password> ... </password>
-			<id>sonatype-nexus-snapshots</id>
-		</server>
-		<server>
-			<username> ... </username>
-			<password> ... </password>
-			<id>sonatype-nexus-staging</id>
-		</server>
-	...
-	</servers>
-You must be configured to sign artifacts using PGP.
-
-If this is the first time you have used Sonatype, the [Sonatype - Maven Usage Guide](https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide) is required reading.  
-
-The code snippets below use the following variables:
-{% highlight bash %}
-
-export BROOKLYN_DIR=/path/to/brooklyncentral-brooklyn
-export EXAMPLES_DIR=/path/to/brooklyncentral-brooklyn-examples
-export SITE_DIR=/path/to/brooklyncentral-brooklyncentral.github.com
-
-export SNAPSHOT_VERSION=0.6.0-SNAPSHOT
-export RELEASE_VERSION=0.6.0-M1
-{% endhighlight %}
-
-
-## Preparing a Snapshot Release
-
-### Deploy to Sonatype
-
-Execute the following:
-{% highlight bash %}
-mvn -Dbrooklyn.deployTo=sonatype -DskipTests clean install deploy
-{% endhighlight %}
-
-### (Option) Publish snapshot docs.
-
-(Only required if there have been significant changes to docs or java docs.)
-
-{% highlight bash %}
-
-cd $BROOKLYN_DIR/docs
-git checkout master
-
-if [ ! -f $SITE_DIR/index.html ] ; then echo "could not find docs in $SITE_DIR" ; exit 1 ; fi
-
-# Build the docs
-_scripts/build.sh || { echo "failed to build docs" ; exit 1 ; }
-
-# Wipe any previous edition of the same version, replacing with new build.
-rm -rf $SITE_DIR/v/$SNAPSHOT_VERSION
-mkdir $SITE_DIR/v/$SNAPSHOT_VERSION
-cp -r _site/* $SITE_DIR/v/$SNAPSHOT_VERSION/
-
-# and push, causing GitHub to republish with updated /v/$SNAPSHOT_VERSION/
-pushd $SITE_DIR
-git add -A .
-git commit -m "Updated version docs for version $SNAPSHOT_VERSION"
-git push
-popd
-
-{% endhighlight %}
-
-
-
-## Preparing a (Milestone) Release
-
-### Prepare a Release Branch
-
-{% highlight bash %}
-
-cd $BROOKLYN_DIR
-git checkout -b $RELEASE_VERSION
-usage/scripts/change-version.sh $SNAPSHOT_VERSION $RELEASE_VERSION
-git commit -a -m "Changed version to $RELEASE_VERSION"
-git push -u upstream $RELEASE_VERSION
-
-{% endhighlight %}
-
-### Deploy to Sonatype, and Close the repo.
-
-{% highlight bash %}
-mvn -Dbrooklyn.deployTo=sonatype -DskipTests clean install deploy
-{% endhighlight %}
-
-* Go to [oss.sonatype.org ... #stagingRepositories](https://oss.sonatype.org/index.html#stagingRepositories) (again, need credentials)
-* 'Close' the repo
-* Email the closed repo address to brooklyn-dev list, have people download and confirm it works.
-
-### Update the brooklyn-examples repo's version Branch
-
-{% highlight bash %}
-
-cd $EXAMPLES_DIR
-
-pushd $BROOKLYN_DIR
-git checkout $RELEASE_VERSION
-popd
-
-if [ ! -d simple-web-cluster ] ; then echo "wrong dir" ; exit 1 ; fi
-git checkout master
-git checkout -b $RELEASE_VERSION
-rm -rf *
-cp -r $BROOKLYN_DIR/examples/* .
-rm -rf target
-git add -A
-git commit -m "branch for $RELEASE_VERSION"
-git push -u origin $RELEASE_VERSION
-
-{% endhighlight %}
-
-
-### Update the Versioned Docs
-
-{% highlight bash %}
-
-cd $BROOKLYN_DIR/docs
-git checkout $RELEASE_VERSION
-
-if [ ! -f $SITE_DIR/index.html ] ; then echo "could not find docs in $SITE_DIR" ; exit 1 ; fi
-
-# Build the docs
-_scripts/build.sh || { echo "failed to build docs" ; exit 1 ; }
-
-# Wipe any previous edition of the same version, replacing with new build.
-rm -rf $SITE_DIR/v/$RELEASE_VERSION
-mkdir $SITE_DIR/v/$RELEASE_VERSION
-cp -r _site/* $SITE_DIR/v/$RELEASE_VERSION/
-
-# and push, causing GitHub to republish with updated /v/$RELEASE_VERSION/
-pushd $SITE_DIR
-git add -A .
-git commit -m "Updated version docs for version $RELEASE_VERSION"
-git push
-popd
-
-{% endhighlight %}
-	
-## Preparing a Full Release
-
-Complete *all* above steps.
-
-### Deploy to Maven Central
-
-* Confirm that the closed Sonatype repo has no errors
-* Return to [Sonatype: Staging Repositories](https://oss.sonatype.org/index.html#stagingRepositories)
-* 'Release' the repo
-
-### Deploy the Examples master branch.
-
-{% highlight bash %}
-
-cd $EXAMPLES_DIR
-
-pushd $BROOKLYN_DIR
-git checkout $RELEASE_VERSION
-popd
-
-if [ ! -d simple-web-cluster ] ; then echo "wrong dir" ; exit 1 ; fi
-git checkout master
-rm -rf *
-cp -r $BROOKLYN_DIR/examples/* .
-rm -rf target
-git add -A
-git commit -m "Updated to $RELEASE_VERSION"
-git push -u origin master
-
-{% endhighlight %}
-
-### Update the brooklyn.io Front Page Version
-
-{% highlight bash %}
-
-cd $BROOKLYN_DIR/docs
-
-pushd $SITE_DIR
-# remove old root files, but not the previous version in /v/
-if [ -f start/index.html ] ; then
-  for x in * ; do if [[ $x != "v" ]] ; then rm -rf $x ; fi ; done
-else
-  echo IN WRONG DIRECTORY $SITE_DIR - export SITE_DIR to continue
-  exit 1
-fi
-popd
-
-# re-build for hosting at / rather than at /v/VERSION/
-_scripts/build.sh --url "" || { echo "failed to build docs" ; exit 1 ; }
-
-# copy to site dir
-cp -r _site/* $SITE_DIR/
-
-# and git push
-pushd $SITE_DIR
-git add -A .
-git commit -m "Updated root docs for version $RELEASE_VERSION"
-git push
-popd
-
-{% endhighlight %}
-
-
-### Announce
-* Email the Dev and Users mailing lists.
-* Tweet from [@brooklyncentral](https://twitter.com/brooklyncentral)
-
-### Update Snapshot Version
-
-{% highlight bash %}
-
-export NEW_SNAPSHOT_VERSION=0.7.0-SNAPSHOT
-
-cd $BROOKLYN_DIR
-git checkout master
-usage/scripts/change-version.sh $SNAPSHOT_VERSION $NEW_SNAPSHOT_VERSION
-git commit -a -m "Changed version to $NEW_SNAPSHOT_VERSION"
-git push -u upstream master
-
-{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/tips/standards.md
----------------------------------------------------------------------
diff --git a/docs/dev/tips/standards.md b/docs/dev/tips/standards.md
deleted file mode 100644
index 259ab20..0000000
--- a/docs/dev/tips/standards.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-layout: guide-normal
-title: Code Standards
-toc: /toc.json
----
-
-Without being too restrictive about how you have to code as part of Brooklyn,
-there are some style points that really make life easier when sharing code
-among ourselves:
-
-* Use spaces (not tabs!) with 4 spaces indentation
-* Keep line length <=128
-* Don't reformat code or organize imports unless there's very good
-  reason (this makes history and merges much harder)
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/tips/toc.json
----------------------------------------------------------------------
diff --git a/docs/dev/tips/toc.json b/docs/dev/tips/toc.json
deleted file mode 100644
index 0be0aba..0000000
--- a/docs/dev/tips/toc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-[
-{ "title": "Miscellany",
-  "file": "{{ site.url }}/dev/tips/index.html" },
-{ "title": "Logging",
-  "file": "{{ site.url }}/dev/tips/logging.html" },
-{ "title": "Code Standards",
-  "file": "{{ site.url }}/dev/tips/standards.html" },
-{ "title": "Local Artifact Repo",
-  "file":  "{{ site.url }}/dev/tips/local-artifact-repo.html" },
-{ "title": "Updating Docs",
-  "file":  "{{ site.url }}/dev/tips/update-docs.html" },
-{ "title": "Release Process",
-  "file":  "{{ site.url }}/dev/tips/release.html" }
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/tips/update-docs.md
----------------------------------------------------------------------
diff --git a/docs/dev/tips/update-docs.md b/docs/dev/tips/update-docs.md
deleted file mode 100644
index 5d72e47..0000000
--- a/docs/dev/tips/update-docs.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-layout: guide-normal
-title: Updating the Docs
-toc: /toc.json
----
-
-The Brooklyn docs live in the **docs** project in the Brooklyn codebase.
-It's built using standard jekyll/markdown with a few extensions.
-
-
-## Jekyll
-
-Firstly, install Pygments (used for source code highlighting):
-
-    sudo easy_install Pygments
-
-Next, install Jekyll and the other Ruby Gems that we need:
-
-    bundle install
-
-Then, in the `docs/` directory, run:
-
-    ./_scripts/jekyll-debug.sh 
-    
-Visit [http://localhost:4000/](http://localhost:4000/) and you should see the documentation.
-
-
-## Extensions
-
-In addition to the standard pygments plugin for code-highlighting,
-we use some custom Jekyll plugins (in the `_plugins` dir) to:
-
-* include markdown files inside other files 
-  (see, for example, the `*.include.md` files which contain text
-  which is used in multiple other files)
-* parse JSON which we can loop over in our markdown docs
-* trim whitespace of ends of variables
-
-Using JSON table-of-contents files (`toc.json`) is our lightweight solution
-to the problem of making the site structure navigable (the menus at left).
-If you add a page, simply add the file (with full path from project root)
-and a title to the toc.json in that directory, and it will get included
-in the menu.  You can also configure a special toc to show on your page,
-if you wish, by setting the toc variable in the header.
-Most pages declare the "page" layout (`_layouts/page.html`) which builds
-a menu in the left side-bar (`_includes/sidebar.html`) using the JSON --
-and automatically detecting which page is active. 
- 
-
-## Publishing
-
-Because GitHub don't run plugins (they run with the `--safe` option),
-the site is built off-line and uploaded to github, where the documentation is hosted.
-
-This makes the process a little more tedious, but it does have the advantage 
-that the documentation lives right in the Brooklyn project,
-easy to open alongside the code inside your IDE.
-
-The off-line build can be done using `/docs/_scripts/build.sh`,
-including both jekyll markdown documentation and Brooklyn javadoc,
-with the result of this copied to the `brooklyncentral/brooklyncentral.github.com` 
-github project (as per the GitHub pages documentation).
-[brooklyn.io](http://brooklyn.io) is CNAMEd to [brooklyncentral.github.com](brooklyncentral.github.com)
-for convenience.
-
-The latest stable version typically lives in the root of the `brooklyncentral.github.com` project.
-Archived versions are kept under `/v/*` with logic in the markdown for 
-[meta/versions]({{ site.url }}/meta/versions.html) to link to related versions.  
-Additional instructions and scripts for automating the installs can be found in `/docs/_scripts/`.
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/toc.json
----------------------------------------------------------------------
diff --git a/docs/dev/toc.json b/docs/dev/toc.json
deleted file mode 100644
index f22e840..0000000
--- a/docs/dev/toc.json
+++ /dev/null
@@ -1,26 +0,0 @@
-[
-{ "title": "The Code",
-  "file": "{{ site.url }}/dev/code/index.html",
-  "exclude": true,
-  "children": {% readj ./code/toc.json %} },
-{ "title": "Build and Test",
-  "file": "{{ site.url }}/dev/build/index.html",
-  "exclude": true,
-  "children": {% readj ./build/toc.json %} },
-{ "title": "Tips and Tricks",
-  "file": "{{ site.url }}/dev/tips/index.html",
-  "exclude": true,
-  "children": {% readj ./tips/toc.json %} },
-{ "title": "Links",
-  "file": "{{ site.url }}/dev/links.html",
-  "children": [
-    { "title": "Github repo",
-      "file": "https://github.com/brooklyncentral/" },
-    { "title": "Github issues",
-      "file": "https://github.com/brooklyncentral/brooklyn/issues" },
-    { "title": "Maven snapshots",
-      "file": "http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/io/brooklyn/" }      
-  ] },
-{ "title": "How to Contribute",
-  "file": "{{ site.url }}/dev/how-to-contrib.html" }
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/build/debugging-remote-brooklyn.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/debugging-remote-brooklyn.md b/docs/guide/dev/build/debugging-remote-brooklyn.md
new file mode 100644
index 0000000..d924804
--- /dev/null
+++ b/docs/guide/dev/build/debugging-remote-brooklyn.md
@@ -0,0 +1,140 @@
+---
+layout: guide-normal
+title: Brooklyn Remote Debugging
+toc: /toc.json
+---
+
+Usually during development, you will be running Brooklyn from your IDE (see [IDE Setup](ide.html)), in which case
+debugging is as simple as setting a breakpoint. There may however be times when you need to debug an existing remote
+Brooklyn instance (often referred to as Resident Brooklyn, or rBrooklyn) on another machine, usually in the cloud.
+
+Thankfully, the tools are available to do this, and setting it up is quite straightforward. The steps are as follows:
+
+* [Getting the right source code version](#sourceCodeVersion)
+* [Starting Brooklyn with a debug listener](#startingBrooklyn)
+* [Creating an SSH tunnel](#sshTunnel)
+* [Connecting your IDE](#connectingIDE)
+
+## <a name="sourceCodeVersion"></a>Getting the right source code version
+The first step is to ensure that your local copy of the source code is at the version used to build the remote Brooklyn
+instance. The git commit that was used to build Brooklyn is available via the REST API:
+
+```
+http://<remote-address>:<remote-port>/v1/server/version
+```
+
+This should return details of the build as a JSON string similar to the following (formatted for clarity):
+
+```JSON
+{
+    "version": "0.7.0-SNAPSHOT",
+    "buildSha1": "c0fdc15291702281acdebf1b11d431a6385f5224",
+    "buildBranch": "UNKNOWN"
+}
+```
+
+The value that we're interested in is `buildSha1`. This is the git commit that was used to build Brooklyn. We can now
+checkout and build the Brooklyn code at this commit by running the following in the root of your Brooklyn repo:
+
+```
+git checkout c0fdc15291702281acdebf1b11d431a6385f5224
+mvn clean install -DskipTests
+```
+
+Whilst building the code isn't strictly necessary, it can help prevent some IDE issues.
+
+## <a name="startingBrooklyn"></a>Starting Brooklyn with a debug listener
+By default, Brooklyn does not listen for a debugger to be attached, however this behaviour can be set by setting JAVA_OPTS,
+which will require a restart of the Brooklyn node. To do this, SSH to the remote Brooklyn node and run the following in the
+root of the Brooklyn installation:
+
+```
+# NOTE: Running this kill command will lose existing apps and machines if persistence is disabled.
+kill `cat pid_java`
+export JAVA_OPTS="-Xms256m -Xmx1g -XX:MaxPermSize=256m -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:8888,server=y,suspend=n"
+bin/brooklyn launch &
+```
+
+If `JAVA_OPTS` is not set, Brooklyn will automatically set it to `"-Xms256m -Xmx1g -XX:MaxPermSize=256m"`, which is why
+we have prepended the agentlib settings with these values here.
+
+You should see the following in the console output:
+
+```
+Listening for transport dt_socket at address: 8888
+```
+
+This will indicate the Brooklyn is listening on port 8888 for a debugger to be attached.
+
+## <a name="sshTunnel"></a>Creating an SSH tunnel
+If port 8888 is accessible on the remote Brooklyn server, then you can skip this step and simply use the address of the
+server in place of 127.0.0.1 in the [Connecting your IDE](#connectingIDE) section below. It will normally be possible to
+make the port accessible by configuring Security Groups, iptables, endpoints etc., but for a quick ad-hoc connection it's
+usually simpler to create an SSH tunnel. This will create an open SSH connection that will redirect traffic from a port
+on a local interface via SSH to a port on the remote machine. To create the tunnel, run the following on your local
+machine:
+
+```
+# replace this with the address or IP of the remote Brooklyn node
+REMOTE_HOST=<remote-address>
+# if you wish to use a different port, this value must match the port specified in the JAVA_OPTS
+REMOTE_PORT=8888 
+# if you wish to use a different local port, this value must match the port specified in the IDE configuration
+LOCAL_PORT=8888 
+# set this to the login user you use to SSH to the remote Brooklyn node
+SSH_USER=root 
+# The private key file used to SSH to the remote node. If you use a password, see the alternative command below
+PRIVATE_KEY_FILE=~/.ssh/id_rsa 
+
+ssh -YNf -i $PRIVATE_KEY_FILE -l $SSH_USER -L $LOCAL_PORT:127.0.0.1:$REMOTE_PORT $REMOTE_HOST
+
+```
+
+If you use a password to SSH to the remote Brooklyn node, simply remove the `-i $PRIVATE_KEY_FILE` section like so:
+
+```
+ssh -YNf -l $SSH_USER -L $LOCAL_PORT:127.0.0.1:$REMOTE_PORT $REMOTE_HOST
+```
+
+If you are using a password to connect, you will be prompted to enter your password to connect to the remote node upon
+running the SSH command.
+
+The SSH tunnel should now be redirecting traffic from port 8888 on the local 127.0.0.1 network interface via the SSH 
+tunnel to port 8888 on the remote 127.0.0.1 interface. It should now be possible to connect the debugger and start
+debugging.
+
+## <a name="connectingIDE"></a> Connecting your IDE
+Setting up your IDE will differ depending upon which IDE you are using. Instructions are given here for Eclipse and
+IntelliJ, and have been tested with Eclipse Luna and IntelliJ Ultimate 14.
+
+### Eclipse Setup
+To debug using Eclipse, first open the Brooklyn project in Eclipse (see [IDE Setup](ide.html)).
+
+Now create a debug configuration by clicking `Run` | `Debug Configurations...`. You will then be presented with the 
+Debug Configuration dialog.
+
+Select `Remote Java Application` from the list and click the 'New' button to create a new configuration. Set the name
+to something suitable such as 'Remote debug on 8888'. The Project can be set to any of the Brooklyn projects, the 
+Connection Type should be set to 'Standard (Socket Attach)'. The Host should be set to either localhost or 127.0.0.1
+and the Port should be set to 8888. Click 'Debug' to start debugging.
+
+### IntelliJ Setup
+To debug using IntelliJ, first open the Brooklyn project in IntelliJ (see [IDE Setup](ide.html)).
+
+Now create a debug configuration by clicking `Run` | `Edit Configurations`. You will then be presented with the
+Run/Debug Configurations dialog.
+
+Click on the `+` button and select 'Remote' to create a new remote configuration. Set the name to something suitable
+such as 'Remote debug on 8888'. The first three sections simply give the command line arguments for starting the java
+process using different versions of java, however we have already done this in 
+[Starting Brooklyn with a debug listener](#startingBrooklyn). The Transport option should be set to 'Socket', the Debugger Mode should be set to 'Attach', the
+Host should be set to localhost or 127.0.0.1 (or the address of the remote machine if you are not using an SSH tunnel),
+and the Port should be set to 8888. The 'Search sources' section should be set to `<whole project>`. Click OK to save the
+configuration, then select the configuration from the configurations drop-down and click the debug button to start
+debugging.
+
+### Testing
+The easiest way to test that remote debugging has been setup correctly is to set a breakpoint and see if it is hit. An
+easy place to start is to create a breakpoint in the `ServerResource.java` class, in the `getStatus()` 
+method. 
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/build/developers-catalog.xml
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/developers-catalog.xml b/docs/guide/dev/build/developers-catalog.xml
new file mode 100644
index 0000000..f190024
--- /dev/null
+++ b/docs/guide/dev/build/developers-catalog.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<catalog>
+    <name>Brooklyn Developers Catalog</name>
+
+	<template type="io.cloudsoft.cloudera.SampleClouderaManagedCluster" name="Cloudera CDH4">
+		<description>Launches Cloudera Distribution for Hadoop Manager with a Cloudera Manager and an initial cluster of 4 CDH nodes
+		(resizable) and default services including HDFS, MapReduce, and HBase</description>
+		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/cloudera-icon.jpeg</iconUrl>
+	</template>
+	
+	<template type="io.cloudsoft.mapr.MyM3App" name="M3 Cluster">
+		<description>Map Reduce using MapR</description>
+		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/mapr-icon.png</iconUrl>
+	</template>
+	
+	<template type="brooklyn.demo.SimpleMongoDBReplicaSet" name="Simple MongoDB replica set">
+        <description>Launches a MongoDB replica set</description>
+        <iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/mongo-db-icon.jpeg</iconUrl>
+    </template>
+    
+	<template type="brooklyn.example.cloudfoundry.MovableCloudFoundryClusterExample" name="Stackato Movable CloudFoundry Cluster Example">
+		<description>Brooklyn Stackato</description>
+		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/stackato-icon.jpeg</iconUrl>
+	</template>
+	
+	<template type="brooklyn.example.cloudfoundry.MovableElasticWebAppCluster" name="Stackato Movable Elastic Web Cluster">
+		<description>Brooklyn Stackato</description>
+		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/stackato-icon.jpeg</iconUrl>
+	</template>
+	
+	<template type="io.cloudsoft.socialapps.drupal.examples.BasicDrupalApp" name="Basic Drupal App">
+		<description>Brooklyn Social Apps - Basic. (Requires Debian)</description>
+		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/drupal-icon.png</iconUrl>
+	</template>
+	
+	<template type="io.cloudsoft.socialapps.drupal.examples.ClusteredDrupalApp" name="Clustered Drupal App">
+		<description>Brooklyn Social Apps - Cluster. (Requires Debian)</description>
+		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/drupal-text-icon.png</iconUrl>
+	</template> 
+    
+    <template type="brooklyn.extras.cloudfoundry.CloudFoundryJavaClusterExample" name="Cloud Foundry Web App">
+		<description>Deploys a web application to a Cloud Foundry target</description>
+		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/cloud-foundry-logo-icon.png</iconUrl>
+	</template>
+	
+	<template type="brooklyn.demo.SimpleRedisCluster" name="Redis Cluster">
+		<description>Launches a Redis cluster</description>
+		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/redis-sq-icon.png</iconUrl>
+	</template>
+	
+    <template type="brooklyn.demo.SimpleCassandraCluster" name="Cassandra Cluster">
+		<description>Launches a Cassandra cluster</description>
+		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/cassandra-sq-icon.jpg</iconUrl>
+	</template>
+	
+	<template type="brooklyn.demo.SimpleCouchDBCluster" name="CouchDB Cluster">
+		<description>Launches a CouchDB cluster</description>
+		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/couchdb-logo-icon.png</iconUrl>
+	</template>
+
+    <template type="brooklyn.demo.GlobalWebFabricExample" name="Demo 2: GeoDNS Web Fabric DB">
+      <description>Deploys a demonstration web application to JBoss clusters around the world</description>
+      <iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/JBoss_by_Red_Hat-icon.png</iconUrl>
+    </template>
+
+    <template type="brooklyn.demo.WebClusterDatabaseExample" name="Demo 1: Web Cluster with DB">
+      <description>Deploys a demonstration web application to a managed JBoss cluster with elasticity, persisting to a MySQL</description>
+      <iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/JBoss_by_Red_Hat-icon.png</iconUrl>
+    </template>
+    
+    
+    <classpath> 
+      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-simple-web-cluster/0.7.0-SNAPSHOT/brooklyn-example-simple-web-cluster-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->   
+      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-global-web-fabric/0.7.0-SNAPSHOT/brooklyn-example-global-web-fabric-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->        
+      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-global-web-fabric/0.7.0-SNAPSHOT/brooklyn-example-global-web-fabric-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
+      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-portable-cloudfoundry/0.7.0-SNAPSHOT/brooklyn-example-portable-cloudfoundry-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
+      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-simple-web-cluster/0.7.0-SNAPSHOT/brooklyn-example-simple-web-cluster-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
+      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.7.0-SNAPSHOT/brooklyn-example-hello-world-sql-webapp-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
+      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-simple-messaging-pubsub/0.7.0-SNAPSHOT/brooklyn-example-simple-messaging-pubsub-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
+      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-examples-parent/0.7.0-SNAPSHOT/brooklyn-examples-parent-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
+      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-hello-world-webapp/0.7.0-SNAPSHOT/brooklyn-example-hello-world-webapp-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
+      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-simple-nosql-cluster/0.7.0-SNAPSHOT/brooklyn-example-simple-nosql-cluster-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
+      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-examples-webapps-parent/0.7.0-SNAPSHOT/brooklyn-examples-webapps-parent-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
+    </classpath>
+
+
+</catalog>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/build/eclipse.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/eclipse.include.md b/docs/guide/dev/build/eclipse.include.md
new file mode 100644
index 0000000..b1cf5ea
--- /dev/null
+++ b/docs/guide/dev/build/eclipse.include.md
@@ -0,0 +1,15 @@
+
+- Maven Plugin: m2e from [download.eclipse.org/technology/m2e/releases](http://download.eclipse.org/technology/m2e/releases), or for kepler [http://download.eclipse.org/releases/kepler](http://download.eclipse.org/releases/kepler)
+  (typically bundled with Eclipse or available in the default update site set)
+
+- Git Plugin: egit from [download.eclipse.org/egit/updates](http://download.eclipse.org/egit/updates)
+  (typically bundled with Eclipse or available in the default update site set)
+
+- Groovy Plugin: GRECLIPSE from 
+  [dist.springsource.org/release/GRECLIPSE/e4.3](http://dist.springsource.org/release/GRECLIPSE/e4.3) 
+  (or for Eclipse [4.2](http://dist.springsource.org/release/GRECLIPSE/e4.2) 
+  or [3.7](http://dist.springsource.org/release/GRECLIPSE/e3.7)).
+  Be sure to include Groovy 2.3.4 compiler support and Maven-Eclipse (m2e) support. 
+  More details are at the [groovy update site](http://groovy.codehaus.org/Eclipse+Plugin).
+
+- TestNG Plugin: beust TestNG from [beust.com/eclipse](http://beust.com/eclipse)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/build/ide.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/ide.md b/docs/guide/dev/build/ide.md
new file mode 100644
index 0000000..bdc7478
--- /dev/null
+++ b/docs/guide/dev/build/ide.md
@@ -0,0 +1,123 @@
+---
+layout: guide-normal
+title: IDE Setup
+toc: /toc.json
+---
+
+Gone are the days when IDE integration always just works...  Maven and Eclipse fight, 
+neither quite gets along perfectly with Groovy,
+git branch switches (sooo nice) can be slow, etc etc.
+
+But with a bit of a dance the IDE can still be your friend,
+making it much easier to run tests and debug.
+
+As a general tip, don't always trust the IDE to build correctly; if you hit a snag,
+do a command-line ``mvn clean install`` (optionally with ``-DskipTests``)
+then refresh the project. 
+
+See instructions below for specific IDEs.
+
+
+## Eclipse
+
+If you're an Eclipse user, you'll probably want the Maven (m2e) plugin
+and the Groovy Eclipse plugin (used for testing and examples primarily).
+You may also want Git and TestNG plugins.
+You can install these using Help -> Install New Software, or from the Eclipse Marketplace:
+
+{% readj eclipse.include.md %}
+
+As of this writing, Eclipse 4.2 and Eclipse 4.3 are commonly used, 
+and the codebase can be imported (Import -> Existing Maven Projects) 
+and successfully built and run inside an IDE.
+However there are quirks, and mileage may vary.
+
+If you encounter issues, the following hints may be helpful:
+
+* If you attempt to import projects before the plugins are installed, you may encounter errors such as 
+  '``No marketplace entries found to handle maven-compiler-plugin:2.3.2:compile in Eclipse``',
+  and the projects will not be recognized as java projects. If you do, simply cancel the import 
+  (or delete the imported projects if they have been imported) and install the plugins as described above.
+  If you have installed plugins from alternative locations, remove them and re-install them from the locations
+  specified above.
+
+* A quick command-line build (`mvn clean install -DskipTests`) followed by a workspace refresh
+  can be useful to re-populate files which need to be copied to `target/`
+ 
+* m2e likes to put `excluding="**"` on `resources` directories; if you're seeing funny missing files
+  (things like not resolving jclouds/aws-ec2 locations or missing WARs), try building clean install
+  from the command-line then doing Maven -> Update Project (clean uses a maven-replacer-plugin to fix 
+  `.classpath`s).
+  Alternatively you can go through and remove these manually in Eclipse (Build Path -> Configure)
+  or the filesystem, or use
+  the following command to remove these rogue blocks in the generated `.classpath` files:
+
+{% highlight bash %}
+% find . -name .classpath -exec sed -i.bak 's/[ ]*..cluding="[\*\/]*\(\.java\)*"//g' {} \;
+{% endhighlight %}
+
+* If m2e reports import problems, it is usually okay (even good) to mark all to "Resolve All Later".
+  The build-helper connector is useful if you're prompted for it, but
+  do *not* install the Tycho OSGi configurator (this causes show-stopping IAE's, and we don't need Eclipse to make bundles anyway).
+  You can manually mark as permanently ignored certain errors;
+  this updates the pom.xml (and should be current).
+
+* You may need to ensure ``src/main/{java,resources}`` is created in each project dir,
+  if (older versions) complain about missing directories,
+  and the same for ``src/test/{java,resources}`` *if* there are tests (``src/test`` exists):
+
+{% highlight bash %}
+find . \( -path "*/src/main" -or -path "*/src/test" \) -exec echo {} \; -exec mkdir -p {}/{java,resources} \;
+{% endhighlight %}
+
+* You may need to add the groovy nature (or even java nature) to projects;
+  with some maven-eclipse plugins this works fine, 
+  but for others (older ones) you may need to handcraft these 
+  (either right-click the project in the Package Explorer and choose Configure,
+  or edit the ``.project`` manually adding it to the project properties).
+  The tips [for jclouds maven-eclipse](http://www.jclouds.org/documentation/devguides/using-eclipse) might be helpful. 
+
+If the pain starts to be too much, come find us on IRC #brooklyncentral or [elsewhere]({{site.url}}/meta/contact.html) and we can hopefully share our pearls.
+(And if you have a tip we haven't mentioned please let us know that too!)
+
+
+
+## IntelliJ IDEA
+
+To develop or debug Brooklyn in IntelliJ, you will need to ensure that the Groovy and TestNG plugins are installed
+via the IntelliJ IDEA | Preferences | Plugins menu. Once installed, you can open Brooklyn from the root folder, 
+(e.g. ``~/myfiles/brooklyn``) which will automatically open the subprojects.
+
+There have previously been issues where the java 6 compiler incorrectly identified the return type of functions that use
+generics. These issues have been refactored away, however may return in future. If so, you can either set the java compiler
+level to 1.7, or setup IntelliJ to use the Eclipse compiler as per the instructions provided by JetBeans:
+
+> The problem seems to be caused by bug in java compiler from JDK 1.6, it is known to sometimes produce compilation 
+> errors for complicated code involving generic types. Java compiler from JDK 1.7 compiles your code successfully so I would 
+> recommend you to consider upgrading to JDK 1.7. If it isn't possible you can switch to Eclipse Compiler (Settings | 
+> Compiler | Java Compiler | "Use Compiler" combobox).
+
+
+## Netbeans
+
+Tips from Netbeans users wanted!
+
+
+
+## Debugging Tips
+
+To debug Brooklyn, create a launch configuration which launches the ``BrooklynJavascriptGuiLauncher`` class. NOTE: You may
+need to add additional projects or folders to the classpath of the run configuration (e.g. add the brooklyn-software-nosql
+project if you wish to deploy a MongoDBServer). You will also need to ensure that the working directory is set to the jsgui
+folder. For IntelliJ, you can set the 'Working directory' of the Run/Debug Configuration to ``$MODULE_DIR/../jsgui``. For
+Eclipse, use the default option of ``${workspace_loc:brooklyn-jsgui}``.
+
+To debug the jsgui (the Brooklyn web console), you will need to build Brooklyn with -DskipOptimization to prevent the build from minifying the javascript.
+When building via the command line, use the command ``mvn clean install -DskipOptimization``, and if you are using IntelliJ IDEA, you can add the option
+to the Maven Runner by clicking on the Maven Settings icon in the Maven Projects tool window  and adding the ``skipOptimization`` property with no value.
+
+When running at the command line you can enable remote connections so that one can attach a debugger to the Java process:
+    Run Java with the following on the command line or in JAVA_OPTS: ``-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005``
+
+To debug a brooklyn instance that has been run with the above JAVA_OPTS, create a remote build configuration (IntelliJ - 
+Run | Edit Configurations | + | Remote) with the default options, ensuring the port matches the address specified in JAVA_OPTS.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/build/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/index.md b/docs/guide/dev/build/index.md
new file mode 100644
index 0000000..7dd3412
--- /dev/null
+++ b/docs/guide/dev/build/index.md
@@ -0,0 +1,184 @@
+---
+layout: guide-normal
+title: Maven Build
+toc: /toc.json
+---
+
+## The Basics
+
+To build the code, you need Maven (v3) installed and Java (1.6).
+With that in place, you should be able to build everything with a:
+
+{% highlight bash %}
+brooklyn% mvn clean install
+{% endhighlight %}
+
+Key things to note if you're new to Maven:
+
+* You may need more JVM memory, e.g. at the command-line (or in `.profile`):
+
+  ``export MAVEN_OPTS="-Xmx1024m -Xms512m -XX:MaxPermSize=256m``
+
+* You can do this in specific projects as well.
+
+* Add ``-DskipTests`` to skip tests. 
+
+* Run ``-PIntegration`` to run integration tests, or ``-PLive`` to run live tests
+  ([tests described here](tests.html))
+
+* Nearly all the gory details are in the root ``pom.xml``, which is referenced by child project poms.
+
+* You can also open and use the code in your favourite IDE,
+  although you may hit a few **[snags](ide.html)**
+  (that link has some tips for resolving them too)
+
+
+## When the RAT Bites
+
+We use RAT to ensure that all files are compliant to Apache standards.  Most of the time you shouldn't see it or need to know about it, but if it detects a violation, you'll get a message such as:
+
+    [ERROR] Failed to execute goal org.apache.rat:apache-rat-plugin:0.10:check (default) on project brooklyn-parent: Too many files with unapproved license: 1 See RAT report in: /Users/alex/Data/cloudsoft/dev/gits/brooklyn/target/rat.txt -> [Help 1]
+
+If there's a problem, see the file `rat.txt` in the `target` directory of the failed project.  (Maven will show you this link in its output.)
+
+Often the problem is one of the following:
+
+* You've added a file which requires the license header but doesn't have it
+
+  **Resolution:**  Simply copy the header from another file
+
+* You've got some temporary files which RAT things should have headers
+
+  **Resolution:**  Move the files away, add headers, or turn off RAT (see below)
+
+* The project structure has changed and you have stale files (e.g. in a `target` directory)
+
+  **Resolution:**  Remove the stale files, e.g. with `git clean -df` (and if needed a `find . -name target -prune -exec rm -rf {} \;` to delete folders named `target`)
+
+To disable RAT checking on a build, set `rat.ignoreErrors`, e.g. `mvn -Drat.ignoreErrors=true clean install`.  (But note you will need RAT to pass in order for a PR to be accepted!)
+
+If there is a good reason that a file, pattern, or directory should be permanently ignored, that is easy to add inside the root `pom.xml`.
+
+
+## Other Handy Hints
+
+* On some **Ubuntu** (e.g. 10.4 LTS) maven v3 is not currently available from the repositories.
+  Some instructions for installing at are [at superuser.com](http://superuser.com/questions/298062/how-do-i-install-maven-3).
+
+* The **mvnf** script 
+  ([get the gist here](https://gist.github.com/2241800)) 
+  simplifies building selected projects, so if you just change something in ``software-webapp`` 
+  and then want to re-run the examples you can do:
+  
+  ``examples/simple-web-cluster% mvnf ../../{software/webapp,usage/all}`` 
+
+* The **developers catalog** ([developers-catalog.xml](developers-catalog.xml)) uses artifacts from your local `~/.m2/repository/...` (after building from source). This avoids unnecessary web requests to Maven Central or Sonatype, and will allow you to work off-line.
+  
+  ``wget {{site.url}}/dev/build/developers-catalog.xml > ~/.brooklyn/catalog.xml`` 
+
+## Appendix: Sample Output
+
+A healthy build will look something like the following,
+including a few warnings (which we have looked into and
+understand to be benign and hard to get rid of them,
+although we'd love to if anyone can help!):
+
+{% highlight bash %}
+brooklyn% mvn clean install
+[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Build Order:
+[INFO] 
+[INFO] Brooklyn Parent Project
+[INFO] Brooklyn Utilities to Support Testing (listeners etc)
+[INFO] Brooklyn Logback Includable Configuration
+[INFO] Brooklyn Common Utilities
+[INFO] Brooklyn Groovy Utilities
+[INFO] Brooklyn API
+
+...
+
+[WARNING] Ignoring project type war - supportedProjectTypes = [jar]
+
+...
+
+[WARNING] We have a duplicate org/xmlpull/v1/XmlPullParser.class in /Users/aled/.m2/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar
+
+...
+
+[INFO] — maven-assembly-plugin:2.3:single (build-distribution-dir) @ brooklyn-dist —
+[INFO] Reading assembly descriptor: src/main/config/build-distribution-dir.xml
+[WARNING] Cannot include project artifact: io.brooklyn:brooklyn-dist:jar:0.7.0-SNAPSHOT; it doesn't have an associated file or directory.
+[INFO] Copying files to /Users/aled/repos/apache/incubator-brooklyn/usage/dist/target/brooklyn-dist
+[WARNING] Assembly file: /Users/aled/repos/apache/incubator-brooklyn/usage/dist/target/brooklyn-dist is not a regular file (it may be a directory). It cannot be attached to the project build for installation or deployment.
+
+...
+
+[INFO] — maven-assembly-plugin:2.3:single (build-distribution-archive) @ brooklyn-dist —
+[INFO] Reading assembly descriptor: src/main/config/build-distribution-archive.xml
+[WARNING] Cannot include project artifact: io.brooklyn:brooklyn-dist:jar:0.7.0-SNAPSHOT; it doesn't have an associated file or directory.
+[INFO] Building tar: /Users/aled/repos/apache/incubator-brooklyn/usage/dist/target/brooklyn-0.7.0-SNAPSHOT-dist.tar.gz
+[WARNING] Cannot include project artifact: io.brooklyn:brooklyn-dist:jar:0.7.0-SNAPSHOT; it doesn't have an associated file or directory.
+
+...
+
+[WARNING] Don't override file /Users/aled/repos/apache/incubator-brooklyn/usage/archetypes/quickstart/target/test-classes/projects/integration-test-1/project/brooklyn-sample/src/main/resources/sample-icon.png
+
+...
+
+[INFO] Reactor Summary:
+[INFO] 
+[INFO] Brooklyn Parent Project ........................... SUCCESS [3.072s]
+[INFO] Brooklyn Utilities to Support Testing (listeners etc)  SUCCESS [3.114s]
+[INFO] Brooklyn Logback Includable Configuration ......... SUCCESS [0.680s]
+[INFO] Brooklyn Common Utilities ......................... SUCCESS [7.263s]
+[INFO] Brooklyn Groovy Utilities ......................... SUCCESS [5.193s]
+[INFO] Brooklyn API ...................................... SUCCESS [2.146s]
+[INFO] Brooklyn Test Support ............................. SUCCESS [2.517s]
+[INFO] CAMP Server Parent Project ........................ SUCCESS [0.075s]
+[INFO] CAMP Base ......................................... SUCCESS [4.079s]
+[INFO] Brooklyn REST Swagger Apidoc Utilities ............ SUCCESS [1.983s]
+[INFO] Brooklyn Logback Configuration .................... SUCCESS [0.625s]
+[INFO] CAMP Server ....................................... SUCCESS [5.446s]
+[INFO] Brooklyn Core ..................................... SUCCESS [1:24.122s]
+[INFO] Brooklyn Policies ................................. SUCCESS [44.425s]
+[INFO] Brooklyn Hazelcast Storage ........................ SUCCESS [7.143s]
+[INFO] Brooklyn Jclouds Location Targets ................. SUCCESS [16.488s]
+[INFO] Brooklyn Secure JMXMP Agent ....................... SUCCESS [8.634s]
+[INFO] Brooklyn JMX RMI Agent ............................ SUCCESS [2.315s]
+[INFO] Brooklyn Software Base ............................ SUCCESS [28.538s]
+[INFO] Brooklyn Network Software Entities ................ SUCCESS [3.896s]
+[INFO] Brooklyn OSGi Software Entities ................... SUCCESS [4.589s]
+[INFO] Brooklyn Web App Software Entities ................ SUCCESS [17.484s]
+[INFO] Brooklyn Messaging Software Entities .............. SUCCESS [7.106s]
+[INFO] Brooklyn Database Software Entities ............... SUCCESS [5.229s]
+[INFO] Brooklyn NoSQL Data Store Software Entities ....... SUCCESS [11.901s]
+[INFO] Brooklyn Monitoring Software Entities ............. SUCCESS [4.027s]
+[INFO] Brooklyn CAMP REST API ............................ SUCCESS [15.285s]
+[INFO] Brooklyn REST API ................................. SUCCESS [4.489s]
+[INFO] Brooklyn REST Server .............................. SUCCESS [30.270s]
+[INFO] Brooklyn REST Client .............................. SUCCESS [7.007s]
+[INFO] Brooklyn REST JavaScript Web GUI .................. SUCCESS [24.397s]
+[INFO] Brooklyn Launcher ................................. SUCCESS [15.923s]
+[INFO] Brooklyn Command Line Interface ................... SUCCESS [9.279s]
+[INFO] Brooklyn All Things ............................... SUCCESS [13.875s]
+[INFO] Brooklyn Distribution ............................. SUCCESS [49.370s]
+[INFO] Brooklyn Quick-Start Project Archetype ............ SUCCESS [12.053s]
+[INFO] Brooklyn Examples Aggregator Project .............. SUCCESS [0.085s]
+[INFO] Brooklyn Examples Support Aggregator Project - Webapps  SUCCESS [0.053s]
+[INFO] hello-world-webapp Maven Webapp ................... SUCCESS [0.751s]
+[INFO] hello-world-sql-webapp Maven Webapp ............... SUCCESS [0.623s]
+[INFO] Brooklyn Simple Web Cluster Example ............... SUCCESS [5.398s]
+[INFO] Brooklyn Global Web Fabric Example ................ SUCCESS [3.176s]
+[INFO] Brooklyn Simple Messaging Publish-Subscribe Example  SUCCESS [3.217s]
+[INFO] Brooklyn NoSQL Cluster Examples ................... SUCCESS [6.790s]
+[INFO] Brooklyn QA ....................................... SUCCESS [7.117s]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 8:33.983s
+[INFO] Finished at: Mon Jul 21 14:56:46 BST 2014
+[INFO] Final Memory: 66M/554M
+[INFO] ------------------------------------------------------------------------
+
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/build/tests.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/tests.md b/docs/guide/dev/build/tests.md
new file mode 100644
index 0000000..16f6810
--- /dev/null
+++ b/docs/guide/dev/build/tests.md
@@ -0,0 +1,26 @@
+---
+layout: guide-normal
+title: Tests
+toc: /toc.json
+---
+
+We have the following tests groups:
+
+*     normal (i.e. no group) -- should run quickly, not need internet, and not side effect the machine (apart from a few /tmp files)          
+*     Integration -- deploys locally, may read and write from internet, takes longer.
+          If you change an entity, rerun the relevant integration test to make sure all is well!
+*     Live -- deploys remotely, may provision machines (but should clean up, getting rid of them in a try block)
+*     Live-sanity -- a sub-set of "Live" that can be run regularly; a trade-off of optimal code coverage for the 
+      time/cost of those tests.
+*     WIP -- short for "work in progress", this will disable the test from being run by the normal brooklyn maven profiles,
+      while leaving the test enabled so that one can work on it in IDEs or run the selected test(s) from the command line.
+*     Acceptance -- this (currently little-used) group is for very long running tests, such as soak tests
+
+To run these from the command line, use something like the following:
+
+*     normal: `mvn clean install`
+*     integration: `mvn clean verify -PEssentials,Locations,Entities,Integration -Dmaven.test.failure.ignore=true`
+*     Live: `mvn clean verify -PEntities,Locations,Entities,Live -Dmaven.test.failure.ignore=true`
+*     Live-sanity: `mvn clean verify -PEntities,Locations,Entities,Live-sanity -Dmaven.test.failure.ignore=true`
+
+<!-- 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/ba6612ec/docs/guide/dev/build/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/toc.json b/docs/guide/dev/build/toc.json
new file mode 100644
index 0000000..fca9b70
--- /dev/null
+++ b/docs/guide/dev/build/toc.json
@@ -0,0 +1,8 @@
+[
+{ "title": "Maven",
+  "file":  "{{ site.url }}/dev/build/index.html" },
+{ "title": "IDE",
+  "file": "{{ site.url }}/dev/build/ide.html" },
+{ "title": "Tests",
+  "file":  "{{ site.url }}/dev/build/tests.html" }
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/code/entity.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/entity.md b/docs/guide/dev/code/entity.md
new file mode 100644
index 0000000..7001612
--- /dev/null
+++ b/docs/guide/dev/code/entity.md
@@ -0,0 +1,91 @@
+---
+layout: guide-normal
+title: Writing an Entity
+toc: /toc.json
+---
+
+## Ways to write an entity
+
+There are several ways to write a new entity:
+
+* Write pure-java, extending existing base-classes and using utilities such as `HttpTool` and `BashCommands`.
+* Write scripts, and configure (e.g. using YAML) a **`VanillaSoftwareProcess`**.
+* Use Chef recipes, and wire these into the entity by using `ChefConfig` and `ChefLifecycleEffectorTasks`.
+* Use an equivalent of Chef (e.g. Salt or Puppet; support for these is currently less mature than for Chef)
+
+The rest of this section covers writing an entity in pure-java (or other JVM languages).
+
+
+## Things To Know
+
+All entities have an interface and an implementation. The methods on the interface 
+are its effectors; the interface also defines its sensors.
+
+Entities are created through the management context (rather than calling the  
+constructor directly). This returns a proxy for the entity rather than the real 
+instance, which is important in a distributed management plane.
+
+All entity implementations inherit from `AbstractEntity`, 
+often through one of the following:
+
+* **`SoftwareProcessImpl`**:  if it's a software process
+* **`VanillaJavaAppImpl`**:  if it's a plain-old-java app
+* **`JavaWebAppSoftwareProcessImpl`**:  if it's a JVM-based web-app
+* **`DynamicClusterImpl`**, **`DynamicGroupImpl`** or **`AbstractGroupImpl`**:  if it's a collection of other entities
+
+Software-based processes tend to use *drivers* to install and
+launch the remote processes onto *locations* which support that driver type.
+For example, `AbstractSoftwareProcessSshDriver` is a common driver superclass,
+targetting `SshMachineLocation` (a machine to which Brooklyn can ssh).
+The various `SoftwareProcess` entities above (and some of the exemplars 
+listed at the end of this page) have their own dedicated drivers.
+
+Finally, there are a collection of *traits*, such as `Resizable`, 
+in the package ``brooklyn.entity.trait``. These provide common
+sensors and effectors on entities, supplied as interfaces.
+Choose one (or more) as appropriate.
+
+
+
+## Key Steps
+
+So to get started:
+
+1. Create your entity interface, extending the appropriate selection from above,
+   to define the effectors and sensors.
+2. Include an annotation like `@ImplementedBy(YourEntityImpl.class)` on your interface,
+   where `YourEntityImpl` will be the class name for your entity implementation.
+3. Create your entity class, implementing your entity interface and extending the 
+   classes for your chosen entity super-types. Naming convention is a suffix "Impl"
+   for the entity class, but this is not essential.
+4. Create a driver interface, again extending as appropriate (e.g. `SoftwareProcessDriver`).
+   The naming convention is to have a suffix "Driver". 
+5. Create the driver class, implementing your driver interface, and again extending as appropriate.
+   Naming convention is to have a suffix "SshDriver" for an ssh-based implementation.
+   The correct driver implementation is found using this naming convention, or via custom
+   namings provided by the `BasicEntityDriverFactory`.
+6. Wire the `public Class getDriverInterface()` method in the entity implementation, to specify
+   your driver interface.
+7. Provide the implementation of missing lifecycle methods in your driver class (details below)
+8. Connect the sensors from your entity (e.g. overriding `connectSensors()` of `SoftwareProcessImpl`)..
+   See the sensor feeds, such as `HttpFeed` and `JmxFeed`.
+
+Any JVM language can be used to write an entity. However use of pure Java is encouraged for
+entities in core brooklyn. 
+
+
+## Helpful References
+
+A few handy pointers will help make it easy to build your own entities.
+Check out some of the exemplar existing entities
+(note, some of the other entities use deprecated utilities and a deprecated class 
+hierarchy; it is suggested to avoid these, looking at the ones below instead):
+
+* `JBoss7Server`
+* `MySqlNode`
+
+You might also find the following helpful:
+
+* **[Entity Design Tips]({{site.url}}/dev/tips/index.html#EntityDesign)**
+* The **[User Guide]({{site.url}}/use/guide/index.html)**
+* The **[Mailing List](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/)**

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/code/index.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/index.include.md b/docs/guide/dev/code/index.include.md
new file mode 100644
index 0000000..a213cd6
--- /dev/null
+++ b/docs/guide/dev/code/index.include.md
@@ -0,0 +1,99 @@
+## The Basics
+
+Brooklyn is available at [GitHub brooklyncentral/brooklyn](http://github.com/brooklyncentral/brooklyn).  Check it out using:
+
+{% highlight bash %}
+git clone git@github.com:brooklyncentral/brooklyn.git
+cd brooklyn
+{% endhighlight %}
+
+Build it with:
+
+{% highlight bash %}
+mvn clean install
+{% endhighlight %}
+
+And launch it with:
+
+{% highlight bash %}
+cd usage/dist/target/brooklyn-dist/
+bin/brooklyn launch
+{% endhighlight %}
+
+Plenty of examples are in the **examples** sub-dir,
+described [here]({{site.url}}/use/examples),
+and pushed to the [brooklyn-examples](http://github.com/brooklyncentral/brooklyn-examples) 
+GitHub project when a version is released.
+
+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.url}}/use/guide/quickstart/index.html).
+This document is intended to help people become familiar with the codebase.
+
+## Project Structure
+
+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
+* **``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 
+* **``locations``**: specific location integrations
+    * **``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) 
+    * **``webapp``**: web servers (JBoss, Tomcat), load-balancers (Nginx), and DNS (Geoscaling) 
+    * **``database``**: relational databases (SQL) 
+    * **``nosql``**: datastores other than RDBMS/SQL (often better in distributed environments) 
+    * **``messaging``**: messaging systems, including Qpid, Apache MQ, RabbitMQ 
+    * **``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
+    * **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
+* **``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 
+    * **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
+    * **jsgui**: Javascript web-app for the brooklyn management web console (builds a WAR)
+    * **launcher**: for launching brooklyn, either using a main method or invoked from the cli project
+    * **logback-includes**: Various helpful logback XML files that can be included; does not contain logback.xml 
+    * **logback-xml**: Contains a logback.xml that references the include files in brooklyn-logback-includes
+    * **rest-api**: The API classes for the Brooklyn REST api
+    * **rest-client**: A client Java implementation for using the Brooklyn REST API 
+    * **rest-server**: The server-side implementation of the Brooklyn REST API
+    * **scripts**: various scripts useful for building, updating, etc. (see comments in the scripts)
+    * **qa**: longevity and stress tests
+    * **test-support**: provides Brooklyn-specific support for tests, used by nearly all projects in scope ``test``
+* **``docs``**: the markdown source code for this documentation, as described [here]({{site.url}}/dev/tips/update-docs.html)
+* **``examples``**: some canonical examples, as listed [here]({{site.url}}/use/examples)
+* **``sandbox``**: various projects, entities, and policies which the Brooklyn Project is incubating
+
+ 
+## Next Steps
+
+If you're interested in building and editing the code, check out:
+
+* [Maven setup](../build/index.html)
+* [IDE setup](../build/ide.html)
+* [Tests](../build/tests.html)
+* [Tips](../tips/index.html)
+* [Remote Debugging](../build/debugging-remote-brooklyn.html)
+
+If you want to start writing your own policies and entities, have a look at:
+
+* [Writing a Brooklyn Entity](entity.html)
+* [Writing a Brooklyn Policy](policy.html)
+* Or see the [User Guide]({{ site.url }}/use/guide/index.html) 
+  on [policies]({{ site.url }}/use/guide/policies/index.html)
+  and [entities]({{ site.url }}/use/guide/entities/index.html)
+
+Where things aren't documented **please ask us** at 
+[the brooklyn mailing list](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/)
+so we can remedy this!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/code/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/index.md b/docs/guide/dev/code/index.md
new file mode 100644
index 0000000..ecf9fcf
--- /dev/null
+++ b/docs/guide/dev/code/index.md
@@ -0,0 +1,7 @@
+---
+layout: guide-normal
+title: Code Structure
+toc: /toc.json
+---
+
+{% readj index.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/code/policy.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/policy.md b/docs/guide/dev/code/policy.md
new file mode 100644
index 0000000..7bbbcad
--- /dev/null
+++ b/docs/guide/dev/code/policy.md
@@ -0,0 +1,47 @@
+---
+layout: guide-normal
+title: Writing a Policy
+toc: /toc.json
+---
+
+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.
+
+Writing a policy is straightforward.
+Simply extend ``AbstractPolicy``,
+overriding the ``setEntity`` method to supply any subscriptions desired:
+
+{% highlight java %}
+    @Override
+    public void setEntity(EntityLocal entity) {
+        super.setEntity(entity)
+        subscribe(entity, TARGET_SENSOR, this)
+    }
+{% endhighlight %}
+
+and supply the computation and/or activity desired whenever that event occurs:
+
+{% highlight java %}
+    @Override
+    public void onEvent(SensorEvent<Integer> event) {
+        int val = event.getValue()
+        if (val % 2 == 1)
+            entity.sayYoureOdd();
+    }
+{% 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``. 
+
+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.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/code/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/toc.json b/docs/guide/dev/code/toc.json
new file mode 100644
index 0000000..d599dbe
--- /dev/null
+++ b/docs/guide/dev/code/toc.json
@@ -0,0 +1,10 @@
+[
+{ "title": "Structure",
+  "file":  "{{ site.url }}/dev/code/index.html" },
+{ "title": "Writing an Entity",
+  "file": "{{ site.url }}/dev/code/entity.html" },
+{ "title": "Writing a Policy",
+  "file":  "{{ site.url }}/dev/code/policy.html" },
+{ "title": "brooklyn.git (github)",
+  "file":  "http://github.com/brooklyncentral/brooklyn" }
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/how-to-contrib.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/how-to-contrib.md b/docs/guide/dev/how-to-contrib.md
new file mode 100644
index 0000000..b5a8306
--- /dev/null
+++ b/docs/guide/dev/how-to-contrib.md
@@ -0,0 +1,38 @@
+---
+layout: guide-normal
+title: How to Contribute
+toc: /toc.json
+---
+
+### The Process
+
+If you've built something which you think others could use, or are interested in doing so -- 
+whether a new supported entity, or a policy, or an example --
+it's easy to give back to the community.  Just:
+
+1. **Tell [the brooklyn mailing list](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/)** about your work or interest
+
+1. **Create your fork** of the project on GitHub
+
+1. **Clone it** to your local machine and do your work on it
+
+1. **Push it**, and tell everyone about it
+
+1. **Sign the relevant Apache contributor agreement(s)**
+
+1. **Issue a pull request** from your GitHub repo
+
+The same process holds for contributing to this documentation (web site and user guide),
+but see the additional [tips for updating documentation]({{ site.url }}/dev/tips/update-docs.html).
+
+
+### Some Words of Advice
+
+* Do early-stage work in the ``/sandbox``, which means we can pulled it in to ``master`` more often --
+  keeping branches short-lived and making it easier to collaborate!
+               
+* Include javadoc and tests
+
+* See the [tips here]({{site.url}}/dev/tips/index.html)
+
+* If you get blocked, **[hollar]({{site.url}}/meta/contact.html)**!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/index.md b/docs/guide/dev/index.md
new file mode 100644
index 0000000..11377d7
--- /dev/null
+++ b/docs/guide/dev/index.md
@@ -0,0 +1,7 @@
+---
+layout: guide-normal
+title: Getting to Code
+toc: /toc.json
+---
+
+{% readj code/index.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/links.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/links.md b/docs/guide/dev/links.md
new file mode 100644
index 0000000..4be8f30
--- /dev/null
+++ b/docs/guide/dev/links.md
@@ -0,0 +1,18 @@
+---
+layout: guide-normal
+title: Development Bookmarks
+toc: ../toc.json
+---
+
+
+Handy places:
+
+* **Code** is in Github at [https://github.com/brooklyncentral/brooklyn](https://github.com/brooklyncentral/brooklyn)
+
+* **Issues** are also on Github at [https://github.com/brooklyncentral/brooklyn/issues](https://github.com/brooklyncentral/brooklyn/issues)
+
+* **Maven repositories** are at [http://developers.cloudsoftcorp.com/download/maven2/](http://developers.cloudsoftcorp.com/download/maven2/) for releases 
+  and [http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/](http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/) for snapshots
+  (under ``io/brooklyn``)
+            
+* **CI server** is currently a private server managed by Cloudsoft. There is a proposal to move to CloudBees.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/tips/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/index.md b/docs/guide/dev/tips/index.md
new file mode 100644
index 0000000..664a95e
--- /dev/null
+++ b/docs/guide/dev/tips/index.md
@@ -0,0 +1,50 @@
+---
+layout: guide-normal
+title: Miscellaneous Tips and Tricks
+toc: /toc.json
+---
+
+## General Good Ways of Working
+
+* If working on something which could be contributed to Brooklyn,
+  do it in a project under the ``sandbox`` directory.
+  This means we can accept pulls more easily (as sandbox items aren't built as part of the main build)
+  and speed up collaboration.
+  
+* When debugging an entity, make sure the  [brooklyn.SSH logger](logging.html) is set to DEBUG and accessible.
+ 
+* Use tests heavily!  These are pretty good to run in the IDE (once you've completed [IDE setup]({{site.url}}/dev/build/ide.html)),
+  and far quicker to spot problems than runtime, plus we get early-warning of problems introduced in the future.
+  (In particular, Groovy's laxity with compilation means it is easy to introduce silly errors which good test coverage will find much faster.)
+  
+* If you hit inexplicable problems at runtime, try clearing your Maven caches,
+  or the brooklyn-relevant parts, under ``~/.m2/repository``.
+  Also note your IDE might be recompiling at the same time as a Maven command-line build,
+  so consider turning off auto-build.
+
+
+<a name="EntityDesign"></a>
+## Entity Design Tips
+
+* Look at related entities and understand what they've done, in particular which
+  sensors and config keys can be re-used.
+  (Many are inherited from interfaces, where they are declared as constants,
+  e.g. ``Attributes`` and ``UsesJmx``.)
+  
+* Understand the location hierarchy:  software process entities typically get an ``SshMachineLocation``,
+  and use a ``*SshDriver`` to do what they need.  This will usually have a ``MachineProvisioningLocation`` parent, e.g. a
+  ``JcloudsLocation`` (e.g. AWS eu-west-1 with credentials) or possibly a ``LocalhostMachineProvisioningLocation``.
+  Clusters will take such a ``MachineProvisioningLocation`` (or a singleton list); fabircs take a list of locations.
+  Some PaaS systems have their own location model, such as ``OpenShiftLocation``.
+
+Finally, don't be shy about [talking with others]({{site.url}}/meta/contact.html), 
+that's far better than spinning your wheels (or worse, having a bad experience),
+plus it means we can hopefully improve things for other people!
+
+
+## Project Maintenance
+
+* Adding a new project may need updates to ``/pom.xml`` ``modules`` section and ``usage/all`` dependencies
+ 
+* Adding a new example project may need updates to ``/pom.xml`` and ``/examples/pom.xml`` (and the documentation too!)
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/tips/local-artifact-repo.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/local-artifact-repo.md b/docs/guide/dev/tips/local-artifact-repo.md
new file mode 100644
index 0000000..a96c62f
--- /dev/null
+++ b/docs/guide/dev/tips/local-artifact-repo.md
@@ -0,0 +1,32 @@
+---
+layout: guide-normal
+title: Prepopulating a Local Artifact Repository
+toc: /toc.json
+---
+
+On occasion it can be useful to have/control/prepopulate a local repository of entity installers <small>[1]</small>.
+
+The following command (run from `~/`) may be used to sync Cloudsoft's fallback repository to the local `~/.brooklyn/repository/` folder:
+
+	wget --directory-prefix=".brooklyn/repository/" --no-parent --relative --no-host-directories --reject="index.html*" --cut-dirs=2 --recursive -e robots=off --user-agent="Brooklyn Repository Sync" http://downloads.cloudsoftcorp.com/brooklyn/repository/
+
+Brooklyn's default search behaviour for installation artifacts is as follows:
+
+1.  The local `~/.brooklyn/repository/` folder.
+2.	The entity's installer's public download url (or an overridden url if one has been specified).
+3.	Cloudsoft's fallback repository.
+
+Cloudsoft's fallback repository <small>[2]</small> contains many of the installation artifacts used by current Brooklyn entities. 
+
+It is intended to prevent problems occurring when the public url for an installer changes (e.g. when several new versions of MySQL have been released). It is provided on an as-is and as-available basis.
+
+If you use this command to create a local repository, please respect the `--user-agent`. In future this will allow Cloudsoft to easily filter repository syncing behaviour from  fallback behaviour, allowing out-of-date entities to be more easily identified and updated. 
+
+<br />
+<small>
+<ol>
+<li>For example, when establishing a local cache or enterprise golden source, or when developing Brooklyn while offline, in planes, trains and automobiles, or other such situations of exemplary derring-do <small>[3]</small>.</li> 
+<li><a href="http://downloads.cloudsoftcorp.com/brooklyn/repository/">downloads.cloudsoftcorp.com/brooklyn/repository</a></li>
+<li>This one time, Cloudsoft ran a team hackathon in a castle in the remote Highlands of Scotland. Remote Highlands != reliable big pipe internet.</li>
+</ol>
+</small>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/tips/logging.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/logging.md b/docs/guide/dev/tips/logging.md
new file mode 100644
index 0000000..4e6b001
--- /dev/null
+++ b/docs/guide/dev/tips/logging.md
@@ -0,0 +1,144 @@
+---
+layout: guide-normal
+title: Logging
+toc: /toc.json
+---
+
+## Logging: A Quick Overview
+
+For logging, we use **logback** which implements the slf4j API.
+This means you can use any slf4j compliant logging framework,
+with a default configuration which just works out of the box
+and bindings to the other common libraries (``java.util.logging``, ``log4j``, ...)
+if you prefer one of those.
+
+To use:
+
+* **Users**:
+If using a brooklyn binary installation, simply edit the ``logback.xml``
+or ``logback-custom.xml`` supplied in the archive, sometimes in a ``conf/``
+directory.
+
+* **Developers**:
+When setting up a new project, if you want logging it is recommended to include 
+the ``brooklyn-logback-xml`` project as an *optional* and *provided* maven dependency, 
+and then to put custom logging configuration in either ``logback-custom.xml`` or ``logback-main.xml``, 
+as described below.
+
+
+## Customizing Your Logging
+
+The project ``brooklyn-logback-xml`` supplies a ``logback.xml`` configuration,
+with a mechanism which allows it to be easily customized, consumed, and overridden.
+You may wish to include this as an *optional* dependency so that it is not forced
+upon downstream projects.  This ``logback.xml`` file supplied contains just one instruction,
+to include ``logback-main.xml``, and that file in turn includes:
+
+* ``logback-custom.xml``
+* ``brooklyn/logback-appender-file.xml``
+* ``brooklyn/logback-appender-stdout.xml``
+* ``brooklyn/logback-logger-excludes.xml``
+* ``brooklyn/logback-debug.xml``
+   
+For the most common customizations, simply create a ``logback-custom.xml`` on your classpath
+(ensuring it is loaded *before* brooklyn classes in classpath ordering in the pom)
+and supply your customizations there:  
+
+{% highlight xml %}
+<included>
+    <!-- filename to log to -->           
+    <property name="logging.basename" scope="context" value="acme-app" />
+    
+    <!-- additional loggers -->
+    <logger name="com.acme.app" level="DEBUG"/>
+</included>
+{% endhighlight %}
+
+For other configuration, you can override individual files listed above.
+For example:
+
+* To remove debug logging, create a trivial ``brooklyn/logback-debug.xml``, 
+  containing simply ``<included/>``.
+* To customise stdout logging, perhaps to give it a threshhold WARN instead of INFO,
+  create a ``brooklyn/logback-appender-stdout.xml`` which defines an appender STDOUT.
+* To discard all brooklyn's default logging, create a ``logback-main.xml`` which 
+  contains your configuration. This should look like a standard logback
+  configuration file, except it should be wrapped in ``<included>`` XML tags rather
+  than ``<configuration>`` XML tags (because it is included from the ``logback.xml``
+  which comes with ``brooklyn-logback-xml``.)
+* To redirect all jclouds logging to a separate file include ``brooklyn/logback-logger-debug-jclouds.xml``.
+  This redirects all logging from ``org.jclouds`` and ``jclouds`` to one of two files: anything
+  logged from Brooklyn's persistence thread will end up in a `persistence.log`, everything else
+  will end up in ``jclouds.log``.
+
+You should **not** supply your own ``logback.xml`` if you are using ``brooklyn-logback-xml``.
+If you do, logback will detect multiple files with that name and will scream at you.
+If you wish to supply your own ``logback.xml``, do **not** include ``brooklyn-logback-xml``.
+(Alternatively you can include a ``logback.groovy`` which causes logback to ignore ``logback.xml``.)
+
+You can set a specific logback config file to use with:
+
+{% highlight bash %}
+-Dlogback.configurationFile=/path/to/config.xml
+{% endhighlight %}
+
+
+## Assemblies
+
+When building an assembly, it is recommended to create a ``conf/logback.xml`` which 
+simply includes ``logback-main.xml`` (which comes from the classpath).  Users of the assembly
+can then edit the ``logback.xml`` file in the usual way, or they can plug in to the configuration 
+mechanisms described above, by creating files such as ``logback-custom.xml`` under ``conf/``.
+
+Including ``brooklyn-logback-xml`` as an *optional* and *provided* dependency means everything
+should work correctly in IDE's but it will not include the extra ``logback.xml`` file in the assembly.
+(Alternatively if you include the ``conf/`` dir in your IDE build, you should exclude this dependency.)
+
+With this mechanism, you can include ``logback-custom.xml`` and/or other files underneath 
+``src/main/resources/`` of a project, as described above (for instance to include custom
+logging categories and define the log file name) and it should get picked up, 
+both in the IDE and in the assembly.   
+ 
+
+## Tests
+
+Brooklyn projects ``test`` scope includes the ``brooklyn-utils-test-support`` project
+which supplies a ``logback-test.xml``. logback uses this file in preference to ``logback.xml``
+when available (ie when running tests). However the ``logback-test.xml`` Brooklyn uses
+includes the same ``logback-main.xml`` call path above, so your configurations should still work.
+
+The only differences of the ``logback-test.xml`` configuration is that:
+
+* Debug logging is included for all Brooklyn packages
+* The log file is called ``brooklyn-tests.log`` 
+
+
+## Caveats
+
+* logback uses SLF4J version 1.6 which is **not compatible** with 1.5.x. 
+  If you have dependent projects using 1.5.x (such as older Grails) things may break.
+
+* If you're not getting the logging you expect in the IDE, make sure 
+  ``src/main/resources`` is included in the classpath.
+  (In eclipse, right-click the project, the Build Path -> Configure,
+  then make sure all dirs are included (All) and excluded (None) -- 
+  ``mvn clean install`` should do this for you.)
+
+* You may find that your IDE logs to a file ``brooklyn-tests.log`` 
+  if it doesn't distinguish between test build classpaths and normal classpaths.
+
+* Logging configuration using file overrides such as this is very sensitive to
+  classpath order. To get a separate `brooklyn-tests.log` file during testing,
+  for example, the `brooklyn-test-support` project with scope `test` must be
+  declared as a dependency *before* `brooklyn-logback-includes`, due to the way
+  both files declare `logback-appender-file.xml`.
+  
+* Similarly note that the `logback-custom.xml` file is included *after* 
+  logging categories and levels are declared, but before appenders are declared,
+  so that logging levels declared in that file dominate, and that 
+  properties from that file apply to appenders.
+
+* Finally remember this is open to improvement. It's the best system we've found
+  so far but we welcome advice. In particular if it could be possible to include
+  files from the classpath with wildcards in alphabetical order, we'd be able
+  to remove some of the quirks listed above (though at a cost of some complexity!).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/tips/release.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/release.md b/docs/guide/dev/tips/release.md
new file mode 100644
index 0000000..35c5904
--- /dev/null
+++ b/docs/guide/dev/tips/release.md
@@ -0,0 +1,286 @@
+---
+layout: guide-normal
+title: Release Process
+toc: /toc.json
+---
+
+<!--
+TODO
+
+vote required?  see governance.
+
+
+     branch-twice-then-reversion-twice
+     e.g. from master=1.0.0_SNAPSHOT we will go to
+          create branch: v1.0.0_SNAPSHOT
+          reversion master:  1.1.0_SNAPSHOT
+          create branch and reversion:  v1.0.0_RC1, v1.0.0_SNAPSHOT
+     describe scripts for releasing
+     docs
+
+update version, using scripts
+
+push examples to repo
+
+push docs to branch and publish
+
+-->
+
+Brooklyn is published to two locations:
+
+* Sonatype, for snapshots and for staging releases
+* Maven Central, for full (GA and milestone) releases
+
+Brooklyn artifacts are generally downloaded from:
+
+1. [Maven Central](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22io.brooklyn%22), 
+   and (http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.brooklyn%22) for pre 0.7.0 versions
+2. [Apache](https://repository.apache.org/index.html#nexus-search;quick~org.apache.brooklyn),
+2. [Sonatype](https://oss.sonatype.org/index.html#nexus-search;quick~io.brooklyn) for pre 0.7.0 versions
+3. [GitHub](https://github.com/apache/incubator-brooklyn).
+
+
+To publish:
+
+* a snapshot release:
+	* mvn deploy to Sonatype
+	* (optional) publish versioned docs to brooklyncentral.github.com project
+* a (milestone) release:
+	* same as above, but with some git versioning 
+	* deploy to Sonatype, then release to Maven Central
+	* deploy a version branch to brooklyn-examples 
+	* deploy (or update) versioned docs
+* a major release:
+	* same as above, and
+	* in addition to versioned examples,  update brooklyn-examples master to match the current (stable) release
+	* in addition to versioned docs, publish full (front page) docs to brooklyncentral.github.com project
+	* bump the snapshot version in brooklyn master to the next release
+
+
+	
+## Configuration 
+
+Your .m2/settings.xml must be configured with the right credentials for Sonatype
+
+  	<servers>
+	...
+		<server>
+			<username> ... </username>
+			<password> ... </password>
+			<id>sonatype-nexus-snapshots</id>
+		</server>
+		<server>
+			<username> ... </username>
+			<password> ... </password>
+			<id>sonatype-nexus-staging</id>
+		</server>
+	...
+	</servers>
+You must be configured to sign artifacts using PGP.
+
+If this is the first time you have used Sonatype, the [Sonatype - Maven Usage Guide](https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide) is required reading.  
+
+The code snippets below use the following variables:
+{% highlight bash %}
+
+export BROOKLYN_DIR=/path/to/brooklyncentral-brooklyn
+export EXAMPLES_DIR=/path/to/brooklyncentral-brooklyn-examples
+export SITE_DIR=/path/to/brooklyncentral-brooklyncentral.github.com
+
+export SNAPSHOT_VERSION=0.6.0-SNAPSHOT
+export RELEASE_VERSION=0.6.0-M1
+{% endhighlight %}
+
+
+## Preparing a Snapshot Release
+
+### Deploy to Sonatype
+
+Execute the following:
+{% highlight bash %}
+mvn -Dbrooklyn.deployTo=sonatype -DskipTests clean install deploy
+{% endhighlight %}
+
+### (Option) Publish snapshot docs.
+
+(Only required if there have been significant changes to docs or java docs.)
+
+{% highlight bash %}
+
+cd $BROOKLYN_DIR/docs
+git checkout master
+
+if [ ! -f $SITE_DIR/index.html ] ; then echo "could not find docs in $SITE_DIR" ; exit 1 ; fi
+
+# Build the docs
+_scripts/build.sh || { echo "failed to build docs" ; exit 1 ; }
+
+# Wipe any previous edition of the same version, replacing with new build.
+rm -rf $SITE_DIR/v/$SNAPSHOT_VERSION
+mkdir $SITE_DIR/v/$SNAPSHOT_VERSION
+cp -r _site/* $SITE_DIR/v/$SNAPSHOT_VERSION/
+
+# and push, causing GitHub to republish with updated /v/$SNAPSHOT_VERSION/
+pushd $SITE_DIR
+git add -A .
+git commit -m "Updated version docs for version $SNAPSHOT_VERSION"
+git push
+popd
+
+{% endhighlight %}
+
+
+
+## Preparing a (Milestone) Release
+
+### Prepare a Release Branch
+
+{% highlight bash %}
+
+cd $BROOKLYN_DIR
+git checkout -b $RELEASE_VERSION
+usage/scripts/change-version.sh $SNAPSHOT_VERSION $RELEASE_VERSION
+git commit -a -m "Changed version to $RELEASE_VERSION"
+git push -u upstream $RELEASE_VERSION
+
+{% endhighlight %}
+
+### Deploy to Sonatype, and Close the repo.
+
+{% highlight bash %}
+mvn -Dbrooklyn.deployTo=sonatype -DskipTests clean install deploy
+{% endhighlight %}
+
+* Go to [oss.sonatype.org ... #stagingRepositories](https://oss.sonatype.org/index.html#stagingRepositories) (again, need credentials)
+* 'Close' the repo
+* Email the closed repo address to brooklyn-dev list, have people download and confirm it works.
+
+### Update the brooklyn-examples repo's version Branch
+
+{% highlight bash %}
+
+cd $EXAMPLES_DIR
+
+pushd $BROOKLYN_DIR
+git checkout $RELEASE_VERSION
+popd
+
+if [ ! -d simple-web-cluster ] ; then echo "wrong dir" ; exit 1 ; fi
+git checkout master
+git checkout -b $RELEASE_VERSION
+rm -rf *
+cp -r $BROOKLYN_DIR/examples/* .
+rm -rf target
+git add -A
+git commit -m "branch for $RELEASE_VERSION"
+git push -u origin $RELEASE_VERSION
+
+{% endhighlight %}
+
+
+### Update the Versioned Docs
+
+{% highlight bash %}
+
+cd $BROOKLYN_DIR/docs
+git checkout $RELEASE_VERSION
+
+if [ ! -f $SITE_DIR/index.html ] ; then echo "could not find docs in $SITE_DIR" ; exit 1 ; fi
+
+# Build the docs
+_scripts/build.sh || { echo "failed to build docs" ; exit 1 ; }
+
+# Wipe any previous edition of the same version, replacing with new build.
+rm -rf $SITE_DIR/v/$RELEASE_VERSION
+mkdir $SITE_DIR/v/$RELEASE_VERSION
+cp -r _site/* $SITE_DIR/v/$RELEASE_VERSION/
+
+# and push, causing GitHub to republish with updated /v/$RELEASE_VERSION/
+pushd $SITE_DIR
+git add -A .
+git commit -m "Updated version docs for version $RELEASE_VERSION"
+git push
+popd
+
+{% endhighlight %}
+	
+## Preparing a Full Release
+
+Complete *all* above steps.
+
+### Deploy to Maven Central
+
+* Confirm that the closed Sonatype repo has no errors
+* Return to [Sonatype: Staging Repositories](https://oss.sonatype.org/index.html#stagingRepositories)
+* 'Release' the repo
+
+### Deploy the Examples master branch.
+
+{% highlight bash %}
+
+cd $EXAMPLES_DIR
+
+pushd $BROOKLYN_DIR
+git checkout $RELEASE_VERSION
+popd
+
+if [ ! -d simple-web-cluster ] ; then echo "wrong dir" ; exit 1 ; fi
+git checkout master
+rm -rf *
+cp -r $BROOKLYN_DIR/examples/* .
+rm -rf target
+git add -A
+git commit -m "Updated to $RELEASE_VERSION"
+git push -u origin master
+
+{% endhighlight %}
+
+### Update the brooklyn.io Front Page Version
+
+{% highlight bash %}
+
+cd $BROOKLYN_DIR/docs
+
+pushd $SITE_DIR
+# remove old root files, but not the previous version in /v/
+if [ -f start/index.html ] ; then
+  for x in * ; do if [[ $x != "v" ]] ; then rm -rf $x ; fi ; done
+else
+  echo IN WRONG DIRECTORY $SITE_DIR - export SITE_DIR to continue
+  exit 1
+fi
+popd
+
+# re-build for hosting at / rather than at /v/VERSION/
+_scripts/build.sh --url "" || { echo "failed to build docs" ; exit 1 ; }
+
+# copy to site dir
+cp -r _site/* $SITE_DIR/
+
+# and git push
+pushd $SITE_DIR
+git add -A .
+git commit -m "Updated root docs for version $RELEASE_VERSION"
+git push
+popd
+
+{% endhighlight %}
+
+
+### Announce
+* Email the Dev and Users mailing lists.
+* Tweet from [@brooklyncentral](https://twitter.com/brooklyncentral)
+
+### Update Snapshot Version
+
+{% highlight bash %}
+
+export NEW_SNAPSHOT_VERSION=0.7.0-SNAPSHOT
+
+cd $BROOKLYN_DIR
+git checkout master
+usage/scripts/change-version.sh $SNAPSHOT_VERSION $NEW_SNAPSHOT_VERSION
+git commit -a -m "Changed version to $NEW_SNAPSHOT_VERSION"
+git push -u upstream master
+
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/tips/standards.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/standards.md b/docs/guide/dev/tips/standards.md
new file mode 100644
index 0000000..259ab20
--- /dev/null
+++ b/docs/guide/dev/tips/standards.md
@@ -0,0 +1,15 @@
+---
+layout: guide-normal
+title: Code Standards
+toc: /toc.json
+---
+
+Without being too restrictive about how you have to code as part of Brooklyn,
+there are some style points that really make life easier when sharing code
+among ourselves:
+
+* Use spaces (not tabs!) with 4 spaces indentation
+* Keep line length <=128
+* Don't reformat code or organize imports unless there's very good
+  reason (this makes history and merges much harder)
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/guide/dev/tips/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/toc.json b/docs/guide/dev/tips/toc.json
new file mode 100644
index 0000000..0be0aba
--- /dev/null
+++ b/docs/guide/dev/tips/toc.json
@@ -0,0 +1,14 @@
+[
+{ "title": "Miscellany",
+  "file": "{{ site.url }}/dev/tips/index.html" },
+{ "title": "Logging",
+  "file": "{{ site.url }}/dev/tips/logging.html" },
+{ "title": "Code Standards",
+  "file": "{{ site.url }}/dev/tips/standards.html" },
+{ "title": "Local Artifact Repo",
+  "file":  "{{ site.url }}/dev/tips/local-artifact-repo.html" },
+{ "title": "Updating Docs",
+  "file":  "{{ site.url }}/dev/tips/update-docs.html" },
+{ "title": "Release Process",
+  "file":  "{{ site.url }}/dev/tips/release.html" }
+]


[38/50] [abbrv] incubator-brooklyn git commit: fix formatting of download page (new markdown processor)

Posted by he...@apache.org.
fix formatting of download page (new markdown processor)


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

Branch: refs/heads/master
Commit: 816f80369514ea3a14bd0944ae9c613b571ea801
Parents: ddcd1cf
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 09:49:04 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 09:49:04 2014 +0000

----------------------------------------------------------------------
 docs/guide/start/download.md | 29 ++++++++++++++++++-----------
 1 file changed, 18 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/816f8036/docs/guide/start/download.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/download.md b/docs/guide/start/download.md
index 20f7261..0dab45b 100644
--- a/docs/guide/start/download.md
+++ b/docs/guide/start/download.md
@@ -10,31 +10,32 @@ First time user? The [getting started]({{ site.path.guide }}/use/guide/quickstar
 ## Download Version {{ site.brooklyn-version }}
 
 <table>
-<tr>
+  <tr>
 	<th style='text-align:left'>Download</th>
 	<th style='text-align:left'>File/Format</th>
 	<th>checksums <small><a href="/meta/verify.html" title='Instructions on verifying the integrity of your downloads.'>(?)</a></small></th>
-</tr>
-<tr>
+  </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>
-</tr>
-<tr>
+  </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>
+  </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>
-</tr>
-<tr>
+	<td ><small><a href='{{ this_alljar_url_jar }}.asc'>PGP</a>, <a href='{{ this_alljar_url_jar }}.sha1'>SHA1</a></small></td>
+  </tr>
+  <tr>
 	<td style='text-align:left'>Release notes</td>
 	<td style='text-align:left'><a href='{{ site.path.guide }}/start/release-notes.html'>{{ site.brooklyn-version }}</a></td>
 	<td> - </td>
-</tr>
+  </tr>
 </table>
+
 {% if SNAPSHOT %}
 <span style='float:right'><small>Source: <a href='{{ this_anything_url_search }}'>Sonatype</a></small></span>
 {% else %}
@@ -42,6 +43,7 @@ First time user? The [getting started]({{ site.path.guide }}/use/guide/quickstar
 {% endif %}
 
 <a name="distro"></a>
+
 ## The Distro
 
 The distribution archive contains Brooklyn as a standalone executable package.
@@ -56,6 +58,7 @@ You should always confirm that the source and date for snapshot artifacts.
 
 
 <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. Just download your preferred flavour and add it to your classpath.
@@ -74,7 +77,9 @@ This is a single JAR containing all of Brooklyn and its dependencies, for develo
 
 Release notes can be found [here]({{ site.path.guide }}/start/release-notes.html).
 
+
 <a name="examples"></a>
+
 ## Examples
 
 {% if SNAPSHOT %}
@@ -118,6 +123,7 @@ A good example to start with is the [Elastic Web Cluster]({{site.path.guide}}/us
 
 
 <a name="maven"></a>
+
 ## Maven
 
 If you use Maven, you can add Brooklyn with the following in your pom:
@@ -173,6 +179,7 @@ or one of the additional snapshot repositories above.
 
 
 <a name="source"></a>
+
 ## Source Code
 
 Full source is at [github.com/brooklyncentral/brooklyn](http://github.com/brooklyncentral/brooklyn).


[25/50] [abbrv] incubator-brooklyn git commit: add website files, and update the build.sh script appropriately

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.TimeFractionDeltaEnricher.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.TimeFractionDeltaEnricher.html b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.TimeFractionDeltaEnricher.html
new file mode 100644
index 0000000..f21846b
--- /dev/null
+++ b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.TimeFractionDeltaEnricher.html
@@ -0,0 +1,59 @@
+<!--
+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 Enricher - Time-fraction Delta</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.enrichers, "brooklyn.enricher.TimeFractionDeltaEnricher");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.TimeWeightedDeltaEnricher.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.TimeWeightedDeltaEnricher.html b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.TimeWeightedDeltaEnricher.html
new file mode 100644
index 0000000..6679d8a
--- /dev/null
+++ b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.TimeWeightedDeltaEnricher.html
@@ -0,0 +1,59 @@
+<!--
+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 Enricher - Time-weighted Delta</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.enrichers, "brooklyn.enricher.TimeWeightedDeltaEnricher");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Aggregator.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Aggregator.html b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Aggregator.html
new file mode 100644
index 0000000..920d74e
--- /dev/null
+++ b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Aggregator.html
@@ -0,0 +1,59 @@
+<!--
+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 Enricher - Aggregator</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.enrichers, "brooklyn.enricher.basic.Aggregator");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Combiner.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Combiner.html b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Combiner.html
new file mode 100644
index 0000000..d489eb3
--- /dev/null
+++ b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Combiner.html
@@ -0,0 +1,59 @@
+<!--
+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 Enricher - Combiner</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.enrichers, "brooklyn.enricher.basic.Combiner");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Propagator.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Propagator.html b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Propagator.html
new file mode 100644
index 0000000..62136af
--- /dev/null
+++ b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Propagator.html
@@ -0,0 +1,59 @@
+<!--
+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 Enricher - Propagator</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.enrichers, "brooklyn.enricher.basic.Propagator");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Transformer.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Transformer.html b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Transformer.html
new file mode 100644
index 0000000..2c27f4d
--- /dev/null
+++ b/docs/website/learnmore/catalog/enrichers/brooklyn.enricher.basic.Transformer.html
@@ -0,0 +1,59 @@
+<!--
+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 Enricher - Transformer</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.enrichers, "brooklyn.enricher.basic.Transformer");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/enrichers/brooklyn.policy.ha.ServiceFailureDetector.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/enrichers/brooklyn.policy.ha.ServiceFailureDetector.html b/docs/website/learnmore/catalog/enrichers/brooklyn.policy.ha.ServiceFailureDetector.html
new file mode 100644
index 0000000..a2c06af
--- /dev/null
+++ b/docs/website/learnmore/catalog/enrichers/brooklyn.policy.ha.ServiceFailureDetector.html
@@ -0,0 +1,59 @@
+<!--
+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 Enricher - Service Failure Detector</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.enrichers, "brooklyn.policy.ha.ServiceFailureDetector");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.basic.VanillaSoftwareProcess.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.basic.VanillaSoftwareProcess.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.basic.VanillaSoftwareProcess.html
new file mode 100644
index 0000000..6b33b01
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.basic.VanillaSoftwareProcess.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Vanilla Software Process</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.basic.VanillaSoftwareProcess");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.brooklynnode.BrooklynEntityMirror.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.brooklynnode.BrooklynEntityMirror.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.brooklynnode.BrooklynEntityMirror.html
new file mode 100644
index 0000000..2877ea5
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.brooklynnode.BrooklynEntityMirror.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Brooklyn Entity Mirror</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.brooklynnode.BrooklynEntityMirror");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.brooklynnode.BrooklynNode.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.brooklynnode.BrooklynNode.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.brooklynnode.BrooklynNode.html
new file mode 100644
index 0000000..b592f64
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.brooklynnode.BrooklynNode.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Brooklyn Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.brooklynnode.BrooklynNode");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.database.mariadb.MariaDbNode.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.database.mariadb.MariaDbNode.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.database.mariadb.MariaDbNode.html
new file mode 100644
index 0000000..66a4f62
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.database.mariadb.MariaDbNode.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - MariaDB Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.database.mariadb.MariaDbNode");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.database.mysql.MySqlNode.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.database.mysql.MySqlNode.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.database.mysql.MySqlNode.html
new file mode 100644
index 0000000..4426838
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.database.mysql.MySqlNode.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - MySql Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.database.mysql.MySqlNode");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.database.postgresql.PostgreSqlNode.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.database.postgresql.PostgreSqlNode.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.database.postgresql.PostgreSqlNode.html
new file mode 100644
index 0000000..e8e30db
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.database.postgresql.PostgreSqlNode.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - PostgreSQL Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.database.postgresql.PostgreSqlNode");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.database.rubyrep.RubyRepNode.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.database.rubyrep.RubyRepNode.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.database.rubyrep.RubyRepNode.html
new file mode 100644
index 0000000..c7bce4a
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.database.rubyrep.RubyRepNode.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - RubyRep Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.database.rubyrep.RubyRepNode");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.machine.MachineEntity.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.machine.MachineEntity.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.machine.MachineEntity.html
new file mode 100644
index 0000000..e710e37
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.machine.MachineEntity.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Machine Entity</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.machine.MachineEntity");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.activemq.ActiveMQBroker.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.activemq.ActiveMQBroker.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.activemq.ActiveMQBroker.html
new file mode 100644
index 0000000..c3629b8
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.activemq.ActiveMQBroker.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - ActiveMQ Broker</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.messaging.activemq.ActiveMQBroker");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.kafka.KafkaCluster.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.kafka.KafkaCluster.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.kafka.KafkaCluster.html
new file mode 100644
index 0000000..7c8c8b5
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.kafka.KafkaCluster.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Kafka</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.messaging.kafka.KafkaCluster");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.qpid.QpidBroker.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.qpid.QpidBroker.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.qpid.QpidBroker.html
new file mode 100644
index 0000000..a805f46
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.qpid.QpidBroker.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Qpid Broker</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.messaging.qpid.QpidBroker");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.rabbit.RabbitBroker.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.rabbit.RabbitBroker.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.rabbit.RabbitBroker.html
new file mode 100644
index 0000000..50012b7
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.rabbit.RabbitBroker.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - RabbitMQ Broker</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.messaging.rabbit.RabbitBroker");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.storm.Storm.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.storm.Storm.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.storm.Storm.html
new file mode 100644
index 0000000..06d71a1
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.storm.Storm.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Storm Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.messaging.storm.Storm");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.storm.StormDeployment.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.storm.StormDeployment.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.storm.StormDeployment.html
new file mode 100644
index 0000000..8a5c329
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.messaging.storm.StormDeployment.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Storm Deployment</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.messaging.storm.StormDeployment");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.monitoring.monit.MonitNode.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.monitoring.monit.MonitNode.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.monitoring.monit.MonitNode.html
new file mode 100644
index 0000000..0ec1202
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.monitoring.monit.MonitNode.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Monit Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.monitoring.monit.MonitNode");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.network.bind.BindDnsServer.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.network.bind.BindDnsServer.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.network.bind.BindDnsServer.html
new file mode 100644
index 0000000..2e79679
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.network.bind.BindDnsServer.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - BIND</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.network.bind.BindDnsServer");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.cassandra.CassandraDatacenter.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.cassandra.CassandraDatacenter.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.cassandra.CassandraDatacenter.html
new file mode 100644
index 0000000..0103410
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.cassandra.CassandraDatacenter.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Apache Cassandra Datacenter Cluster</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.cassandra.CassandraDatacenter");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.cassandra.CassandraFabric.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.cassandra.CassandraFabric.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.cassandra.CassandraFabric.html
new file mode 100644
index 0000000..71ee547
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.cassandra.CassandraFabric.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Apache Cassandra Database Fabric</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.cassandra.CassandraFabric");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>


[43/50] [abbrv] incubator-brooklyn git commit: replace references to brooklyncentral repo and examples and other old things

Posted by he...@apache.org.
replace references to brooklyncentral repo and examples and other old things


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

Branch: refs/heads/master
Commit: ef5944790a87c157d9aff9e684ee9af77ba82353
Parents: 767d3d1
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 12:12:32 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 12:12:32 2014 +0000

----------------------------------------------------------------------
 docs/_includes/fields.md                        |   4 +
 docs/_layouts/guide-normal.html                 |   2 +-
 docs/_plugins/brooklyn_metadata.rb              |   6 +-
 docs/guide/dev/code/index.include.md            |   8 +-
 docs/guide/dev/code/toc.json                    |   2 +-
 docs/guide/dev/links.md                         |  14 +-
 docs/guide/dev/tips/release.md                  |   2 +
 docs/guide/dev/toc.json                         |   8 +-
 docs/guide/meta/versions.md                     |   3 +
 docs/guide/start/docs-summary.include.md        |   2 +-
 docs/guide/start/index.include.md               |   2 +-
 docs/guide/start/walkthrough/index.md           |   2 +-
 docs/guide/use/examples/before-begin.include.md |   7 +-
 docs/guide/use/examples/messaging/index.md      |   4 +-
 .../defining-applications/creating-yaml.md      |   2 +-
 .../appserver-clustered-w-db-concise.yaml       |   2 +-
 .../example_yaml/appserver-clustered-w-db.yaml  |   2 +-
 .../appserver-w-db-other-flavor.yaml            |   2 +-
 .../example_yaml/appserver-w-db.yaml            |   2 +-
 .../example_yaml/appserver-w-policy.yaml        |   2 +-
 .../use/guide/defining-applications/examples.md |   5 +-
 docs/guide/use/guide/management/index.md        |   2 +-
 .../use/guide/quickstart/brooklyn.properties    |   4 +-
 docs/guide/use/guide/quickstart/index.md        |   4 +-
 .../guide/quickstart/policies-and-catalogs.md   |   2 +-
 docs/website/documentation/install-on-server.md |   7 +-
 docs/website/download.md                        |   2 +-
 docs/website/quickstart/brooklyn.properties     | 266 -------------------
 docs/website/quickstart/index.md                |   8 +-
 .../website/quickstart/policies-and-catalogs.md |   8 +-
 30 files changed, 67 insertions(+), 319 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/_includes/fields.md
----------------------------------------------------------------------
diff --git a/docs/_includes/fields.md b/docs/_includes/fields.md
index aec33e5..5089b74 100644
--- a/docs/_includes/fields.md
+++ b/docs/_includes/fields.md
@@ -1,5 +1,9 @@
+
 {% if site.brooklyn-version contains 'SNAPSHOT' %}{% capture SNAPSHOT %}true{% endcapture %}{% endif %}
 
+{% capture brooklyn_properties_url_path %}{{ site.path.guide }}/use/guide/quickstart/brooklyn.properties{% endcapture %}
+{% capture brooklyn_properties_url_live %}{{ site.url_root }}{{ brooklyn_properties_url_path }}{% endcapture %}
+
 {% capture brooklyn_group_id %}org.apache.brooklyn{% endcapture %}
 {% capture brooklyn_group_id_path %}org/apache/brooklyn{% endcapture %}
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/_layouts/guide-normal.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/guide-normal.html b/docs/_layouts/guide-normal.html
index e04c674..d0310ed 100644
--- a/docs/_layouts/guide-normal.html
+++ b/docs/_layouts/guide-normal.html
@@ -193,7 +193,7 @@ console.log("setting text to "+txt);
         <ul id="quicklinks">
             <li><a href="{{site.path.guide}}/meta/versions.html">{{ site.brooklyn-version }}</a></li>
             <li><a href="{{site.path.guide}}/start/download.html">Download</a></li>
-            <li><a href="https://github.com/brooklyncentral">GitHub</a></li>
+            <li><a href="https://github.com/apache/incubator-brooklyn">GitHub</a></li>
             <li><a href="https://twitter.com/#!/search?q=brooklyncentral">Twitter</a></li>
             <li><a href="{{site.path.guide}}/meta/contact.html">Contact</a></li>
         </ul>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/_plugins/brooklyn_metadata.rb
----------------------------------------------------------------------
diff --git a/docs/_plugins/brooklyn_metadata.rb b/docs/_plugins/brooklyn_metadata.rb
index c0dcc3d..c3b5483 100644
--- a/docs/_plugins/brooklyn_metadata.rb
+++ b/docs/_plugins/brooklyn_metadata.rb
@@ -1,8 +1,10 @@
 # Inserts several useful fields that can be referenced using {{ name }} syntax
 #
+# TODO: remove, no need for a plugin i think, this is already set in fields.md
+# (although doing it in ruby might be better!)
+#
 # site.data.brooklyn.version: brooklyn version, such as 0.7.0-M1
 # site.data.brooklyn.is_snapshot: true if this is a snapshot version, otherwise false
-# site.data.brooklyn.url.userguide: URL of the user guide for this version
 #
 module BrooklynMetadata
 
@@ -48,8 +50,6 @@ module BrooklynMetadata
         }
       end
       
-      url_set['userguide'] = "#{site.config['url']}/v/#{BrooklynMetadata::BROOKLYN_VERSION}"
-      
       site.data['brooklyn'] = {
           "version" => BrooklynMetadata::BROOKLYN_VERSION,
           "is_snapshot" => is_snapshot,

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/dev/code/index.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/index.include.md b/docs/guide/dev/code/index.include.md
index ab7f7ec..41ebe07 100644
--- a/docs/guide/dev/code/index.include.md
+++ b/docs/guide/dev/code/index.include.md
@@ -1,9 +1,9 @@
 ## The Basics
 
-Brooklyn is available at [GitHub brooklyncentral/brooklyn](http://github.com/brooklyncentral/brooklyn).  Check it out using:
+Brooklyn is available at [GitHub apache/incubator-brooklyn](http://github.com/apache/incubator-brooklyn).  Check it out using:
 
 {% highlight bash %}
-git clone git@github.com:brooklyncentral/brooklyn.git
+git clone git@github.com:apache/incubator-brooklyn.git
 cd brooklyn
 {% endhighlight %}
 
@@ -21,9 +21,7 @@ bin/brooklyn launch
 {% endhighlight %}
 
 Plenty of examples are in the **examples** sub-dir,
-described [here]({{site.path.guide}}/use/examples),
-and pushed to the [brooklyn-examples](http://github.com/brooklyncentral/brooklyn-examples) 
-GitHub project when a version is released.
+described [here]({{site.path.guide}}/use/examples).
 
 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}}/use/guide/quickstart/index.html).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/dev/code/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/toc.json b/docs/guide/dev/code/toc.json
index 144ea26..6bb112b 100644
--- a/docs/guide/dev/code/toc.json
+++ b/docs/guide/dev/code/toc.json
@@ -6,5 +6,5 @@
 { "title": "Writing a Policy",
   "file":  "{{ site.path.guide }}/dev/code/policy.html" },
 { "title": "brooklyn.git (github)",
-  "file":  "http://github.com/brooklyncentral/brooklyn" }
+  "file":  "http://github.com/apache/incubator-brooklyn" }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/dev/links.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/links.md b/docs/guide/dev/links.md
index 4be8f30..6fd12e2 100644
--- a/docs/guide/dev/links.md
+++ b/docs/guide/dev/links.md
@@ -4,15 +4,19 @@ title: Development Bookmarks
 toc: ../toc.json
 ---
 
+{% include fields.md %}
 
 Handy places:
 
-* **Code** is in Github at [https://github.com/brooklyncentral/brooklyn](https://github.com/brooklyncentral/brooklyn)
+* **Code** is in Github at [https://github.com/apache/incubator-brooklyn/](https://github.com/apache/incubator-brooklyn/)
 
-* **Issues** are also on Github at [https://github.com/brooklyncentral/brooklyn/issues](https://github.com/brooklyncentral/brooklyn/issues)
+* **Issues** are in Jira at [https://issues.apache.org/jira/browse/BROOKLYN/](https://issues.apache.org/jira/browse/BROOKLYN/)
 
-* **Maven repositories** are at [http://developers.cloudsoftcorp.com/download/maven2/](http://developers.cloudsoftcorp.com/download/maven2/) for releases 
+* **Maven repositories** are:
+  * [Apache releases]({{ apache_releases_repo_groupid_url }})
+  * [Apache snapshots]({{ apache_snapshots_repo_groupid_url }})
+  * Other repositories are at [http://developers.cloudsoftcorp.com/download/maven2/](http://developers.cloudsoftcorp.com/download/maven2/) for releases 
   and [http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/](http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/) for snapshots
-  (under ``io/brooklyn``)
             
-* **CI server** is currently a private server managed by Cloudsoft. There is a proposal to move to CloudBees.
+* **CI server** is a jenkins server at: [https://builds.apache.org/job/incubator-brooklyn-master-build/](https://builds.apache.org/job/incubator-brooklyn-master-build/)
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/dev/tips/release.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/release.md b/docs/guide/dev/tips/release.md
index f56f81e..66f730b 100644
--- a/docs/guide/dev/tips/release.md
+++ b/docs/guide/dev/tips/release.md
@@ -4,6 +4,8 @@ title: Release Process
 toc: /guide/toc.json
 ---
 
+**This needs substantial updating in light of the Apache move.**
+
 <!--
 TODO
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/dev/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/dev/toc.json b/docs/guide/dev/toc.json
index 53c9612..2123cb0 100644
--- a/docs/guide/dev/toc.json
+++ b/docs/guide/dev/toc.json
@@ -15,11 +15,11 @@
   "file": "{{ site.path.guide }}/dev/links.html",
   "children": [
     { "title": "Github repo",
-      "file": "https://github.com/brooklyncentral/" },
-    { "title": "Github issues",
-      "file": "https://github.com/brooklyncentral/brooklyn/issues" },
+      "file": "https://github.com/apache/incubator-brooklyn/" },
+    { "title": "Jira issues",
+      "file": "https://issues.apache.org/jira/browse/BROOKLYN/" },
     { "title": "Maven snapshots",
-      "file": "http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/io/brooklyn/" }      
+      "file": "https://repository.apache.org/content/repositories/snapshots/org/apache/brooklyn" }
   ] },
 { "title": "How to Contribute",
   "file": "{{ site.path.guide }}/dev/how-to-contrib.html" }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/meta/versions.md
----------------------------------------------------------------------
diff --git a/docs/guide/meta/versions.md b/docs/guide/meta/versions.md
index 9466473..4ce1256 100644
--- a/docs/guide/meta/versions.md
+++ b/docs/guide/meta/versions.md
@@ -4,6 +4,9 @@ title: Versions
 toc: /guide/toc.json
 ---
 
+**TODO: page needs overhaul with separate new main site**
+
+
 <!--- display which version we are using, based on where it is written -->
 
 ### Brooklyn v{{ site.brooklyn-version }}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/start/docs-summary.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/docs-summary.include.md b/docs/guide/start/docs-summary.include.md
index 9dac44d..a6a176c 100644
--- a/docs/guide/start/docs-summary.include.md
+++ b/docs/guide/start/docs-summary.include.md
@@ -4,4 +4,4 @@ To learn about Brooklyn, here are some recommended starting points:
 * [Examples]({{site.path.guide}}/use/examples/)
 * [User Guide]({{site.path.guide}}/use/guide/) 
 * [Code Overview]({{site.path.guide}}/dev/code/)
-* [Code on Github](http://github.com/brooklyncentral/brooklyn/)
+* [Code on Github](http://github.com/apache/incubator-brooklyn/)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/start/index.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/index.include.md b/docs/guide/start/index.include.md
index 0412ec9..3dfafb4 100644
--- a/docs/guide/start/index.include.md
+++ b/docs/guide/start/index.include.md
@@ -44,7 +44,7 @@ We're still near the beginning of figuring this out:
   [concepts]({{site.path.guide}}/use/guide/defining-applications/basic-concepts.html)
   and including a [tutorial]({{site.path.guide}}/use/guide/quickstart/)
 * Or dive straight in to the code, either [reading]({{site.path.guide}}/dev/code/) about it
-  or [gitting](http://github.com/brooklyncentral/brooklyn/) it
+  or [gitting](http://github.com/apache/incubator-brooklyn/) it
 
 If you like it, or if you have ideas how it could be better,
 [join the discussion]({{site.path.guide}}/meta/contact.html).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/start/walkthrough/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/walkthrough/index.md b/docs/guide/start/walkthrough/index.md
index d68aad4..eaabd14 100644
--- a/docs/guide/start/walkthrough/index.md
+++ b/docs/guide/start/walkthrough/index.md
@@ -228,7 +228,7 @@ Alternatively you can just add a ``main`` method to the application class as fol
 Compile and run this with the [``brooklyn-all`` jar]({{site.path.guide}}/start/download.html) on the classpath,
 pointing at your favourite WAR on your filesystem. 
 (If the ``import`` packages aren't picked up correctly,
-you can cheat by looking at [the file in Github](https://github.com/brooklyncentral/brooklyn/blob/master/examples/simple-web-cluster/src/main/java/brooklyn/demo/WebClusterDatabaseExample.java);
+you can cheat by looking at [the file in Github](https://github.com/apache/incubator-brooklyn/blob/master/examples/simple-web-cluster/src/main/java/brooklyn/demo/WebClusterDatabaseExample.java);
 and you'll find a sample WAR which uses the database as configured above 
 [here](https://http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/io/brooklyn/).)
  TODO example webapp url 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/examples/before-begin.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/before-begin.include.md b/docs/guide/use/examples/before-begin.include.md
index 2f71166..e05f9f1 100644
--- a/docs/guide/use/examples/before-begin.include.md
+++ b/docs/guide/use/examples/before-begin.include.md
@@ -39,10 +39,9 @@ Grab a copy of the Brooklyn distribution and set up `BROOKLYN_HOME`:
 Grab a copy of the brooklyn-examples source code and build it with Maven:
 
 {% highlight bash %}
-% git clone https://github.com/brooklyncentral/brooklyn-examples.git
-% cd brooklyn-examples
-{% if brooklyn_examples_branch == 'master' %}{% else %}% git checkout {{ brooklyn_examples_branch }}
-{% endif %}% mvn clean install
+% git clone https://github.com/apache/incubator-brooklyn.git
+% cd incubator-brooklyn/examples
+% mvn clean install
 {% endhighlight %}
 
 {% if SNAPSHOT %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/examples/messaging/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/messaging/index.md b/docs/guide/use/examples/messaging/index.md
index 0e38101..c3c2254 100644
--- a/docs/guide/use/examples/messaging/index.md
+++ b/docs/guide/use/examples/messaging/index.md
@@ -98,9 +98,7 @@ on startup.
 
 ### Running the Example
 
-You can build and run the example (on *nix or Mac) after checking
-out the Brooklyn [repository](https://www.github.com/brooklyncentral/brooklyn)
-as follows:
+You can run the example as follows:
 
 {% highlight bash %}
 % ${BROOKLYN_HOME}/bin/brooklyn -v launch --app brooklyn.demo.StandaloneQpidBrokerExample --location localhost

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/guide/defining-applications/creating-yaml.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/creating-yaml.md b/docs/guide/use/guide/defining-applications/creating-yaml.md
index 7be1419..3cbd532 100644
--- a/docs/guide/use/guide/defining-applications/creating-yaml.md
+++ b/docs/guide/use/guide/defining-applications/creating-yaml.md
@@ -409,7 +409,7 @@ to make a declarative front-end, so you can do pretty much anything you want to
 by dropping to the JVM. Information on that is available:
 * in the [user guide]({{site.path.guide}}/use/guide/entities/index.html),
 * through a [Maven archetype]({{site.path.guide}}/use/guide/defining-applications/archetype.html),
-* in the [codebase](https://github.com/brooklyncentral/brooklyn),
+* in the [codebase](https://github.com/apache/incubator-brooklyn),
 * and in plenty of [examples]({{site.path.guide}}/use/examples/index.html).
 
 You can also come talk to us, on IRC (#brooklyncentral on Freenode) or

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml b/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml
index 062c09f..518f65a 100644
--- a/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml
+++ b/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml
@@ -12,4 +12,4 @@ services:
   id: db
   name: DB HelloWorld Visitors
   brooklyn.config:
-    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql
+    datastore.creation.script.url: https://github.com/apache/incubator-brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml b/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml
index a7b3c57..10592d8 100644
--- a/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml
+++ b/docs/guide/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml
@@ -15,4 +15,4 @@ services:
   id: db
   name: DB HelloWorld Visitors
   brooklyn.config:
-    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql
+    datastore.creation.script.url: https://github.com/apache/incubator-brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml b/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml
index 784f7fd..6a4a81d 100644
--- a/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml
+++ b/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml
@@ -12,6 +12,6 @@ services:
   id: db
   name: DB HelloWorld Visitors
   brooklyn.config:
-    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql
+    datastore.creation.script.url: https://github.com/apache/incubator-brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql
     provisioning.properties:
       minRam: 8192

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db.yaml b/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db.yaml
index 5a16c0d..a043f1a 100644
--- a/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db.yaml
+++ b/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-db.yaml
@@ -12,4 +12,4 @@ services:
   id: db
   name: DB HelloWorld Visitors
   brooklyn.config:
-    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql
+    datastore.creation.script.url: https://github.com/apache/incubator-brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml b/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml
index 757157e..cada61f 100644
--- a/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml
+++ b/docs/guide/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml
@@ -23,4 +23,4 @@ services:
   id: db
   name: DB HelloWorld Visitors
   brooklyn.config:
-    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql
+    datastore.creation.script.url: https://github.com/apache/incubator-brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/guide/defining-applications/examples.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/examples.md b/docs/guide/use/guide/defining-applications/examples.md
index a208bd7..330b6d3 100644
--- a/docs/guide/use/guide/defining-applications/examples.md
+++ b/docs/guide/use/guide/defining-applications/examples.md
@@ -115,6 +115,7 @@ Examples Source
 
 Source code for (more up-to-date!) examples is available for download from GitHub. To retrieve the source, execute the following command:
 
-    git clone git@github.com:brooklyncentral/brooklyn-examples.git
+    git clone git@github.com:apache/incubator-brooklyn.git
+    cd incubator-brooklyn/examples
 
-You can also [browse the code](https://github.com/brooklyncentral/brooklyn-examples) on the web.
+You can also [browse the code](https://github.com/apache/incubator-brooklyn/tree/examples) on the web.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/guide/management/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/management/index.md b/docs/guide/use/guide/management/index.md
index 6f65c81..c2ef830 100644
--- a/docs/guide/use/guide/management/index.md
+++ b/docs/guide/use/guide/management/index.md
@@ -86,7 +86,7 @@ See 'brooklyn help <command>' for more information on a specific command.
 Here is an example of the commands you might run to get the Brooklyn code, compile it and launch an application:
 
 {% highlight bash %}
-git clone https://github.com/brooklyncentral/brooklyn.git
+git clone https://github.com/apache/incubator-brooklyn.git
 cd brooklyn
 mvn clean install -DskipTests
 BROOKLYN_HOME=$(pwd)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/guide/quickstart/brooklyn.properties
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/brooklyn.properties b/docs/guide/use/guide/quickstart/brooklyn.properties
index 59a6f06..08bb4a3 100644
--- a/docs/guide/use/guide/quickstart/brooklyn.properties
+++ b/docs/guide/use/guide/quickstart/brooklyn.properties
@@ -67,7 +67,7 @@ brooklyn.location.jclouds.aws-ec2.credential = <access-key-hex-digits>
 
 
 ## Deploying to Localhost
-## see: brooklyncentral.github.io/use/guide/locations/
+## see: info on locations at brooklyn.io
 #
 ## ~/.ssh/id_rsa is Brooklyn's default location
 # brooklyn.location.localhost.privateKeyFile = ~/.ssh/id_rsa
@@ -75,7 +75,7 @@ brooklyn.location.jclouds.aws-ec2.credential = <access-key-hex-digits>
 # brooklyn.location.localhost.privateKeyPassphrase = s3cr3tpassphrase
 
 ## Geoscaling Service - used for the Global Web Fabric demo
-## see: brooklyncentral.github.io/use/examples/global-web-fabric/ and
+## see: the global web example at brooklyn.io
 ## https://www.geoscaling.com/dns2/
 ## other services may take similar configuration similarly; or can usually be set in YAML
 # brooklyn.geoscaling.username = USERNAME

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/guide/quickstart/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/index.md b/docs/guide/use/guide/quickstart/index.md
index 515a9d2..181779f 100644
--- a/docs/guide/use/guide/quickstart/index.md
+++ b/docs/guide/use/guide/quickstart/index.md
@@ -79,13 +79,13 @@ Stop Brooklyn with ctrl-c, or in the web-browser (under "Help"), or with `kill`.
 ## Configuring Brooklyn with brooklyn.properties
 
 Brooklyn reads startup configuration from a file `~/.brooklyn/brooklyn.properties`, by default.
-You can create this from a template [brooklyn.properties](brooklyn.properties) file which you edit;
+You can create this from a template [brooklyn.properties]({{brooklyn_properties_url_path}}) file which you edit;
 this file can be installed with:
 
 {% highlight bash %}
 $ mkdir ~/.brooklyn
 $ cd ~/.brooklyn
-$ wget {{site.url_root}}{{site.path.guide}}/use/guide/quickstart/brooklyn.properties
+$ wget {{brooklyn_properties_url_live}}
 {% endhighlight %}
 
 Open this file in a text editor and follow the instructions there. The main settings are summarized below:

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/guide/use/guide/quickstart/policies-and-catalogs.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/policies-and-catalogs.md b/docs/guide/use/guide/quickstart/policies-and-catalogs.md
index 3d8a6a2..3412333 100644
--- a/docs/guide/use/guide/quickstart/policies-and-catalogs.md
+++ b/docs/guide/use/guide/quickstart/policies-and-catalogs.md
@@ -52,7 +52,7 @@ This policy automatically scales the cluster up or down to be the right size for
 
 The loadbalancer's `targets` policy ensures that the loadbalancer is updated as the cluster size changes.
 
-Sitting idle, this cluster will only contain one server, but you can use a tool like [jmeter](http://jmeter.apache.org/) pointed at the nginx endpoint to create load on the cluster. (Download a [jmeter test plan](https://github.com/brooklyncentral/brooklyn/blob/master/examples/simple-web-cluster/resources/jmeter-test-plan.jmx).)
+Sitting idle, this cluster will only contain one server, but you can use a tool like [jmeter](http://jmeter.apache.org/) pointed at the nginx endpoint to create load on the cluster. (Download a [jmeter test plan](https://github.com/apache/incubator-brooklyn/blob/master/examples/simple-web-cluster/resources/jmeter-test-plan.jmx).)
 
 As load is added, Brooklyn requests a new cloud machine, creates a new app server, and adds it to the cluster. As load is removed, servers are removed from the cluster, and the infrastructure is handed back to the cloud.
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/website/documentation/install-on-server.md
----------------------------------------------------------------------
diff --git a/docs/website/documentation/install-on-server.md b/docs/website/documentation/install-on-server.md
index 4251434..c3da352 100644
--- a/docs/website/documentation/install-on-server.md
+++ b/docs/website/documentation/install-on-server.md
@@ -2,6 +2,9 @@
 layout: website-normal
 title: Installing on a Server
 ---
+
+{% include fields.md %}
+
 Here we present two *alternatives* to install Brooklyn:
 
 - [Running the *installation script*](#script)
@@ -82,11 +85,11 @@ By default Brooklyn loads configuration parameters (including credentials for an
 
 The `brooklyn.properties` is the main configuration file for deployment locations. Contains the connection details and credentials for all public or on-premises cloud providers, as well as controlling some application startup and security options.
 
-Create a `.brooklyn` folder in your home directory and download the template [brooklyn.properties](../quickstart/brooklyn.properties) to that folder.
+Create a `.brooklyn` folder in your home directory and download the template [brooklyn.properties]({{brooklyn_properties_url_path}}) to that folder.
 
 {% highlight bash %}
 $ mkdir -p ~/.brooklyn
-$ wget -O ~/.brooklyn/brooklyn.properties {{site.url_root}}{{site.path.website}}/quickstart/brooklyn.properties
+$ wget -O ~/.brooklyn/brooklyn.properties {{brooklyn_properties_url_live}}
 $ chmod 600 ~/.brooklyn/brooklyn.properties
 {% endhighlight %}
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/website/download.md
----------------------------------------------------------------------
diff --git a/docs/website/download.md b/docs/website/download.md
index c4a3da1..1d048e9 100644
--- a/docs/website/download.md
+++ b/docs/website/download.md
@@ -13,7 +13,7 @@ but as a result it has been a long time since the last milestone release.
   as it now has many many features not in 0.7.0-M1!**
 
 {% if site.brooklyn-version contains 'SNAPSHOT' %}{% else %}
-  {% FAIL_needs_updating_for_release %}
+  {% read FAIL_needs_updating_for_release %}
   The alert above should be removed when we make the next release build!
 {% endif %} 
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/website/quickstart/brooklyn.properties
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/brooklyn.properties b/docs/website/quickstart/brooklyn.properties
deleted file mode 100644
index 08a9d7c..0000000
--- a/docs/website/quickstart/brooklyn.properties
+++ /dev/null
@@ -1,266 +0,0 @@
-# This is Brooklyn's dot-properties file.
-# It should be located at "~/.brooklyn/brooklyn.properties" for automatic loading,
-# or can be specified as a CLI option with --localProperties /path/to/these.properties.
-
-##################################  Welcome!  ############################################
-
-# It's great to have you here.
-
-# Getting Started options have been pulled to the top. There's a formatting guide at the
-# very bottom.
-
-############################ Getting Started Options  ####################################
-
-# By default we have AWS set up (but with invalid credentials!).  Many, many other
-# providers are supported.
-
-## Amazon EC2 Credentials
-# These should be an "Access Key ID" and "Secret Access Key" for your account.
-# This is configured at https://console.aws.amazon.com/iam/home?#security_credential .
-
-brooklyn.location.jclouds.aws-ec2.identity = AKA_YOUR_ACCESS_KEY_ID
-brooklyn.location.jclouds.aws-ec2.credential = <access-key-hex-digits>
-
-# Beware of trailing spaces in your cloud credentials. This will cause unexpected
-# 401: unauthorized responses.
-
-## Using Other Clouds
-# 1. Cast your eyes down this document to find your preferred cloud in the Named Locations
-#    section, and the examples.
-# 2. Uncomment the relevant line(s) for your provider.
-# 3. ADD  -.identity and -.credential lines for your provider, similar to the AWS ones above,
-#    replacing 'aws-ec2' with jcloud's id for your cloud.
-
-
-## Deploying to Localhost
-## see: brooklyncentral.github.io/use/guide/locations/
-#
-## ~/.ssh/id_rsa is Brooklyn's default location
-# brooklyn.location.localhost.privateKeyFile = ~/.ssh/id_rsa
-## Passphrases are supported, but not required
-# brooklyn.location.localhost.privateKeyPassphrase = s3cr3tpassphrase
-
-## Geoscaling Service - used for the Global Web Fabric demo
-## see: brooklyncentral.github.io/use/examples/global-web-fabric/ and
-## https://www.geoscaling.com/dns2/
-## other services may take similar configuration similarly; or can usually be set in YAML
-# brooklyn.geoscaling.username = USERNAME
-# brooklyn.geoscaling.password = PASSWORD
-# brooklyn.geoscaling.primaryDomain = DOMAIN
-
-
-##########################  Getting Started Complete!  ###################################
-
-# That's it, although you may want to read through these options...
-
-################################ Brooklyn Options ########################################
-
-## Brooklyn Management Base Directory: specify where management data should be stored on this server;
-## ~/.brooklyn/ is the default but you could use something like /opt/brooklyn/state/
-## (provided this process has write permissions) 
-# brooklyn.base.dir=~/.brooklyn/
-
-## Brooklyn On-Box Directory: specify where data should be stored on managed hosts; 
-## for most locations a directory off home is the default (but using /tmp/brooklyn-user/ on localhost),
-## however you could specify something like /opt/brooklyn-managed-process/ (creation and permissions are handled)
-# onbox.base.dir=~/brooklyn-managed-process/
-
-
-## GUI Security
-## NOTE: in production it is highly recommended to set this, as otherwise it will not require login,
-## not will it be encrypted (though for safety if security is not set it will only bind to loopback)
-# brooklyn.webconsole.security.https.required=true
-# brooklyn.webconsole.security.users=admin,bob
-# brooklyn.webconsole.security.user.admin.password=password
-# brooklyn.webconsole.security.user.bob.password=bobsword
-
-## GUI Security: Allow all - if you know what you are doing! (You can also plug in e.g. LDAP security.)
-# brooklyn.webconsole.security.provider = brooklyn.rest.security.provider.AnyoneSecurityProvider
-
-## Optionally disallow deployment to localhost (or any other location)
-# brooklyn.location.localhost.enabled=false
-
-## Scripting Behaviour
-
-## keep scripts around after running them (usually in /tmp) 
-# brooklyn.ssh.config.noDeleteAfterExec = true
-
-## Misc Cloud Settings
-## brooklyn will fail a node if the cloud machine doesn't come up, but you can tell it to retry:
-# brooklyn.location.jclouds.machineCreateAttempts = 3
-## many cloud machines don't have sufficient entropy for lots of encrypted networking, so fake it:
-# brooklyn.location.jclouds.installDevUrandom=true
-
-## Sets a minimium ram property for all jclouds locations. Recommended to avoid getting m1.micros on AWS!
-brooklyn.location.jclouds.minRam = 2048
-
-## When setting up a new cloud machine Brooklyn creates a user with the same name as the user running
-## Brooklyn on the management server, but you can force a different user here:
-# brooklyn.location.jclouds.user=brooklyn
-## And you can force a password or key (by default it will use the keys in ~/.ssh/id_rsa{,.pub}
-# brooklyn.location.jclouds.password=s3cr3t
-
-################################ Named Locations ########################################
-
-# Named locations appear in the web console. If using the command line or YAML it may be 
-# just as easy to use the jclouds:<provider> locations and specify additional properties there.
-
-## Example: AWS Virginia using Rightscale 6.3 64bit Centos AMI and Large Instances
-# brooklyn.location.named.aws-va-centos-large = jclouds:aws-ec2:us-east-1
-# brooklyn.location.named.aws-va-centos-large.imageId=us-east-1/ami-7d7bfc14
-# brooklyn.location.named.aws-va-centos-large.user=brooklyn
-# brooklyn.location.named.aws-va-centos-large.minRam=4096
-
-## You can also nest these:
-# brooklyn.location.named.aws-acct-two = jclouds:aws-ec2
-# brooklyn.location.named.aws-acct-two.identity = AKA_ACCT_TWO
-# brooklyn.location.named.aws-acct-two.credential = <access-key-hex-digits>
-# brooklyn.location.named.aws-acct-two-singapore = named:aws-acct-two
-# brooklyn.location.named.aws-acct-two-singapore.region = ap-southeast-1
-# brooklyn.location.named.aws-acct-two-singapore.displayName = AWS Singapore (Acct Two)
-
-# For convenience some common defaults:
-brooklyn.location.named.aws-california = jclouds:aws-ec2:us-west-1
-brooklyn.location.named.aws-oregon = jclouds:aws-ec2:us-west-2
-brooklyn.location.named.aws-ireland = jclouds:aws-ec2:eu-west-1
-brooklyn.location.named.aws-tokyo = jclouds:aws-ec2:ap-northeast-1
-
-## Google Compute
-## Note at present you have to create and download the P12 key from the Google "APIs & auth -> Registered Apps" interface,
-## then convert to PEM private key format using  `openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes`
-## then embed that on one line as the 'credential, replacing new lines with \n as below
-## (hopefully this will be improved in jclouds in the future)
-# brooklyn.location.jclouds.google-compute-engine.identity=1234567890-somet1mesArand0mU1Dhere@developer.gserviceaccount.com
-# brooklyn.location.jclouds.google-compute-engine.credential=-----BEGIN PRIVATE KEY----- \nMIIblahablahblah \nblahblahblah \n-----END PRIVATE KEY-----
-# brooklyn.location.named.Google\ US = jclouds:google-compute-engine
-# brooklyn.location.named.Google\ US.region=us-central1-a
-# brooklyn.location.named.Google\ EU = jclouds:google-compute-engine
-# brooklyn.location.named.Google\ EU.region=europe-west1-a
-## the following flags for GCE are recommended
-## specify the network to use - otherwise it creates new networks each time and you hit quotas pretty quickly
-## you may have to manually create this network AND enable a firewall rule EG  tcp:1-65535;udp:1-65535;icmp  
-## (fix for this is in progress)
-# brooklyn.location.jclouds.google-compute-engine.networkName=brooklyn-default-network
-## gce images have bad entropy, this ensures they have noisy /dev/random (even if the "randomness" is not quite as random)
-# brooklyn.location.jclouds.google-compute-engine.installDevUrandom=true
-## gce images often start with iptables turned on; turn it off 
-# brooklyn.location.jclouds.google-compute-engine.stopIptables=true
-
-## HP Cloud - also Ubuntu 12.04 LTS
-## You specify your HP Credentials like this:
-# brooklyn.location.jclouds.hpcloud-compute.identity = projectname:username
-# brooklyn.location.jclouds.hpcloud-compute.credential = password
-## where username and password are the same as logging in to the web console, and
-## projectname can be found here: https://account.hpcloud.com/projects
-#�brooklyn.location.named.HP\ Cloud\ Arizona-1 = jclouds:hpcloud-compute:az-1.region-a.geo-1
-# brooklyn.location.named.HP\ Cloud\ Arizona-1.imageId = az-1.region-a.geo-1/75845
-# brooklyn.location.named.HP\ Cloud\ Arizona-1.user = ubuntu
-
-## Softlayer - need a key from the gui, under "administrative -> user administration -> api-access 
-# brooklyn.location.jclouds.softlayer.identity=username
-# brooklyn.location.jclouds.softlayer.credential=<private-key-hex-digits>
-## A sample good image, available in all regions
-# brooklyn.location.jclouds.softlayer.imageId=13945
-## locations
-# brooklyn.location.named.Softlayer\ Seattle=jclouds:softlayer:sea01
-# brooklyn.location.named.Softlayer\ Dallas=jclouds:softlayer:dal05
-# brooklyn.location.named.Softlayer\ Washington\ DC=jclouds:softlayer:wdc01
-# brooklyn.location.named.Softlayer\ Singapore\ 1=jclouds:softlayer:sng01
-# brooklyn.location.named.Softlayer\ Amsterdam\ 1=jclouds:softlayer:ams01
-
-
-## Brooklyn uses the jclouds multi-cloud library to access many clouds.
-## http://www.jclouds.org/documentation/reference/supported-providers/
-
-## Templates for many other clouds, but remember to add identity and credentials:
-
-# brooklyn.location.named.Bluelock = jclouds:bluelock-vcloud-zone01
-
-# brooklyn.location.named.CloudSigma\ Nevada = jclouds:cloudsigma-lvs
-# brooklyn.location.named.CloudSigma\ Zurich = jclouds:cloudsigma-zrh
-
-# brooklyn.location.named.ElasticHosts\ London = jclouds:elastichosts-lon-p
-# brooklyn.location.named.ElasticHosts\ Texas = jclouds:elastichosts-sat-p
-
-# brooklyn.location.named.GleSYS = jclouds:glesys
-
-# brooklyn.location.named.Go2Cloud = jclouds:go2cloud-jhb1
-
-# brooklyn.location.named.GoGrid = jclouds:gogrid
-
-# brooklyn.location.named.Green\ House\ Data = jclouds:greenhousedata-element-vcloud
-
-# brooklyn.location.named.Ninefold = jclouds:ninefold-compute
-
-# brooklyn.location.named.OpenHosting = jclouds:openhosting-east1
-
-# brooklyn.location.named.Rackspace\ Chicago\ (ord) = jclouds:rackspace-cloudservers-us:ORD
-# brooklyn.location.named.Rackspace\ Dallas\ (dfw) = jclouds:rackspace-cloudservers-us:DFW
-# brooklyn.location.named.Rackspace\ Hong\ Kong\ (hkg) = jclouds:rackspace-cloudservers-us:HKG
-# brooklyn.location.named.Rackspace\ Northern\ Virginia\ (iad) = jclouds:rackspace-cloudservers-us:IAD
-# brooklyn.location.named.Rackspace\ Sydney\ (syd) = jclouds:rackspace-cloudservers-us:SYD
-## for UK you will need a separate account with rackspace.co.uk
-# brooklyn.location.named.Rackspace\ London\ (lon) = jclouds:rackspace-cloudservers-uk
-
-## if you need to use Rackspace "first gen" API
-## (note the "next gen" api configured above seems to be faster)
-# brooklyn.location.jclouds.cloudservers-us.identity = YOURAPIKEY
-# brooklyn.location.jclouds.cloudservers-us.credential = YOURSECRETKEY
-# brooklyn.location.named.Rackspace\ US\ (First Gen) = jclouds:cloudservers-us
-## and as with next gen, first gen requires a separate acct for the UK:
-# brooklyn.location.jclouds.cloudservers-uk.identity = YOURAPIKEY
-# brooklyn.location.jclouds.cloudservers-uk.credential = YOURSECRETKEY
-# brooklyn.location.named.Rackspace\ UK\ (First Gen) = jclouds:cloudservers-uk
-
-# brooklyn.location.named.SeverLove = jclouds:serverlove-z1-man
-
-# brooklyn.location.named.SkaliCloud = jclouds:skalicloud-sdg-my
-
-# brooklyn.location.named.Stratogen = jclouds:stratogen-vcloud-mycloud
-
-# brooklyn.location.named.TryStack\ (Openstack) = jclouds:trystack-nova
-
-
-## Production pool of machines for my application (deploy to named:On-Prem\ Iron\ Example)
-# brooklyn.location.named.On-Prem\ Iron\ Example=byon:(hosts="10.9.1.1,10.9.1.2,produser2@10.9.2.{10,11,20-29}")
-# brooklyn.location.named.On-Prem\ Iron\ Example.user=produser1
-# brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyFile=~/.ssh/produser_id_rsa
-# brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyPassphrase=s3cr3tpassphrase
-
-## Various Private Clouds
-
-## openstack identity and credential are random strings of letters and numbers (TBC - still the case?)
-# brooklyn.location.named.My\ Openstack=jclouds:openstack-nova:https://9.9.9.9:9999/v2.0/
-
-## cloudstack identity and credential are rather long random strings of letters and numbers
-## you generate this in the cloudstack gui, under accounts, then "view users", then "generate key"
-## use the "api key" as the identity and "secret key" as the credential
-# brooklyn.location.named.My\ Cloudstack=jclouds:cloudstack:http://9.9.9.9:9999/client/api/
-
-## abiquo identity and credential are your login username/passed
-# brooklyn.location.named.My\ Abiquo=jclouds:abiquo:http://demonstration.abiquo.com/api/
-
-###############################  Formatting Guide  #######################################
-
-! Both # and ! mark lines as comments
-# The follow syntax are ALL valid.
-# example_key example_value
-# example_key : example_value
-# example_key = example_value
-# example_key=example_value
-
-# The backslash below tells Brooklyn to continue reading the value onto the next line.
-# example_key = A very \
-#          	long string!
-# Note all white space before 'long...' is ignored. Also '!' is kept as part of the string
-
-
-# Keys with spaces should be escaped with backslashes.
-# This is useful for named locations, as the name displayed in Brooklyn's web
-# interface is derived from the key name.
-# key\ with\ spaces = some\ value
-
-# Encoding for .properties must be ISO-8859-1, aka Latin-1.
-# All non-latin1 characters must be entered using unicode escape characters
-# polish_pangram = P\u00F3jd\u017A\u017Ce, ki\u0144 \
-#                  t\u0119 chmurno\u015B\u0107 w g\u0142\u0105b flaszy!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/website/quickstart/index.md
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/index.md b/docs/website/quickstart/index.md
index 0c6cc3e..40a80b8 100644
--- a/docs/website/quickstart/index.md
+++ b/docs/website/quickstart/index.md
@@ -5,6 +5,8 @@ children:
 - { path: policies-and-catalogs.md }
 ---
 
+{% include fields.md %}
+
 This guide will walk you through deploying an application to a public cloud.
 
 We will be deploying an example 3-tier web application, described using this blueprint: 
@@ -52,7 +54,7 @@ then answer 'yes', and then repeat the command run again.
 If the response is `hello world`, with no other output or prompts, then your SSH setup is good and Brooklyn should be
 able to use it without a problem.
 
-If these steps are not working, [these instructions]({{ site.data.brooklyn.url.userguide }}/use/guide/locations/) may be
+If these steps are not working, [these instructions]({{ site.path.guide }}/use/guide/locations/) may be
 useful.
 
 
@@ -117,12 +119,12 @@ Locations can be clouds, machines with fixed IPs or localhost (for testing).
 
 Brooklyn loads Location configuration  from `~/.brooklyn/brooklyn.properties`. 
 
-Create a `.brooklyn` folder in your home directory and download the template [brooklyn.properties](brooklyn.properties) to that folder.
+Create a `.brooklyn` folder in your home directory and download the template [brooklyn.properties]({{brooklyn_properties_url_path}}) to that folder.
 
 {% highlight bash %}
 $ mkdir ~/.brooklyn
 $ cd ~/.brooklyn
-$ wget {{site.url_root}}{{site.path.website}}/quickstart/brooklyn.properties
+$ wget {{brooklyn_properties_url_live}}
 {% endhighlight %}
 
 Open brooklyn.properties in a text editor and add your cloud credentials.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ef594479/docs/website/quickstart/policies-and-catalogs.md
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/policies-and-catalogs.md b/docs/website/quickstart/policies-and-catalogs.md
index d1dbd55..021c0cd 100644
--- a/docs/website/quickstart/policies-and-catalogs.md
+++ b/docs/website/quickstart/policies-and-catalogs.md
@@ -18,7 +18,7 @@ Download the template [catalog.xml](catalog.xml) to your `~/.brooklyn/` folder,
 
 {% highlight bash %}
 $ cd ~/.brooklyn
-$ wget {{site.data.brooklyn.url.userguide}}/use/guide/quickstart/catalog.xml
+$ wget {{site.url_root}}{{site.path.guide}}/use/guide/quickstart/catalog.xml
 
 $ brooklyn launch
 {% endhighlight %}
@@ -27,7 +27,7 @@ Now when we open the web console, two applications are displayed from the catalo
 
 Select the 'Demo Web Cluster with DB' and click 'Next'.
 
-[![Viewing Catalog entries in Add Application dialog.](images/add-application-catalog-web-cluster-with-db.png)](add-application-catalog-web-cluster-with-db-largea.png)
+[![Viewing Catalog entries in Add Application dialog.](images/add-application-catalog-web-cluster-with-db.png)](add-application-catalog-web-cluster-with-db-large.png)
 
 Select the Location that Brooklyn should deploy to, and name your application:
 
@@ -53,13 +53,13 @@ This policy automatically scales the cluster up or down to be the right size for
 
 The loadbalancer's `targets` policy ensures that the loadbalancer is updated as the cluster size changes.
 
-Sitting idle, this cluster will only contain one server, but you can use a tool like [jmeter](http://jmeter.apache.org/) pointed at the nginx endpoint to create load on the cluster. (Download a [jmeter test plan](https://github.com/brooklyncentral/brooklyn/blob/master/examples/simple-web-cluster/resources/jmeter-test-plan.jmx).)
+Sitting idle, this cluster will only contain one server, but you can use a tool like [jmeter](http://jmeter.apache.org/) pointed at the nginx endpoint to create load on the cluster. (Download a [jmeter test plan](https://github.com/apache/incubator-brooklyn/blob/master/examples/simple-web-cluster/resources/jmeter-test-plan.jmx).)
 
 As load is added, Brooklyn requests a new cloud machine, creates a new app server, and adds it to the cluster. As load is removed, servers are removed from the cluster, and the infrastructure is handed back to the cloud.
 
 ### Next
 
-The [Elastic Web Cluster Example]({{site.data.brooklyn.url.userguide}}/use/examples/webcluster/index.html) page
+The [Elastic Web Cluster Example]({{site.path.guide}}/use/examples/webcluster/index.html) page
 details how to build this demo application from scratch in Java. It shows in more detail how Brooklyn can
 complement your application with policy driven management, and how applications can be
 run from the command line.


[41/50] [abbrv] incubator-brooklyn git commit: fix download links in guide

Posted by he...@apache.org.
fix download links in 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/e23af8de
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/e23af8de
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/e23af8de

Branch: refs/heads/master
Commit: e23af8de5b0559fe9e28d3d4e3cda0edc0cb38ce
Parents: 2373c35
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 11:07:19 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 11:07:19 2014 +0000

----------------------------------------------------------------------
 docs/_includes/fields.md     | 48 +++++++++++++----------
 docs/guide/start/download.md | 81 +++++++++++++--------------------------
 2 files changed, 54 insertions(+), 75 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e23af8de/docs/_includes/fields.md
----------------------------------------------------------------------
diff --git a/docs/_includes/fields.md b/docs/_includes/fields.md
index bc35800..aec33e5 100644
--- a/docs/_includes/fields.md
+++ b/docs/_includes/fields.md
@@ -1,5 +1,33 @@
 {% if site.brooklyn-version contains 'SNAPSHOT' %}{% capture SNAPSHOT %}true{% endcapture %}{% endif %}
 
+{% capture brooklyn_group_id %}org.apache.brooklyn{% endcapture %}
+{% capture brooklyn_group_id_path %}org/apache/brooklyn{% endcapture %}
+
+{% capture this_repo_base_url %}https://repository.apache.org{% endcapture %}
+{% capture this_repo_base_url_search %}{{ this_repo_base_url }}/index.html#nexus-search{% endcapture %}
+{% capture this_repo_base_url_artifact %}{{ this_repo_base_url }}/service/local/artifact/maven/redirect{% endcapture %}
+
+{% 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 %}
+
+{% if SNAPSHOT %}
+  {% capture this_repo_base_url_content %}{{ apache_snapshots_repo_groupid_url }}{% endcapture %}
+  {% 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=tgz&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 %}
+{% else %}<!--- RELEASE -->
+  {% capture this_repo_base_url_content %}{{ apache_releases_repo_groupid_url }}{% endcapture %}
+  {% capture this_dist_url_zip %}{{ this_repo_base_url_content }}/brooklyn-dist/{{ site.brooklyn-version }}/brooklyn-dist-{{ site.brooklyn-version }}-dist.zip{% endcapture %}
+  {% capture this_dist_url_tgz %}{{ this_repo_base_url_content }}/brooklyn-dist/{{ site.brooklyn-version }}/brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz{% endcapture %}
+  {% capture this_alljar_url_jar %}{{ this_repo_base_url_content }}/brooklyn-all/{{ site.brooklyn-version }}/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_dist_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 %}
@@ -14,23 +42,3 @@
 {% 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 %}
-
-{% if SNAPSHOT %}
-  {% capture this_anything_url_search %}https://oss.sonatype.org/index.html#nexus-search;gav~io.brooklyn~~{{ site.brooklyn-version }}~~{% endcapture %}
-  {% capture this_dist_url_search %}https://oss.sonatype.org/index.html#nexus-search;gav~io.brooklyn~brooklyn-dist~{{ site.brooklyn-version }}~~{% endcapture %}
-  {% capture this_alljar_url_search %}https://oss.sonatype.org/index.html#nexus-search;gav~io.brooklyn~brooklyn-dist~{{ site.brooklyn-version }}~~{% endcapture %}
-  {% capture this_dist_url_dir %}{{ sonatype_repo_groupid_url }}brooklyn-dist/{{ site.brooklyn-version }}/{% endcapture %}
-  {% capture this_alljar_url_dir %}{{ sonatype_repo_groupid_url }}brooklyn-all/{{ site.brooklyn-version }}/{% endcapture %}
-  {% capture this_dist_url_zip %}https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=io.brooklyn&v={{ site.brooklyn-version }}&a=brooklyn-dist&c=dist&e=zip{% endcapture %}
-  {% capture this_dist_url_tgz %}https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=io.brooklyn&v={{ site.brooklyn-version }}&a=brooklyn-dist&c=dist&e=tar.gz{% endcapture %}
-  {% capture this_alljar_url_jar  %}https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=io.brooklyn&v={{ site.brooklyn-version }}&a=brooklyn-all&c=with-dependencies&e=jar{% endcapture %}
-{% else %}<!--- RELEASE -->
-  {% capture this_anything_url_search %}http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22io.brooklyn%22%20AND%20v%3A%22{{ site.brooklyn-version }}%22{% endcapture %}
-  {% capture this_dist_url_search %}http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22io.brooklyn%22%20AND%20a%3A%22brooklyn-dist%22%20AND%20v%3A%22{{ site.brooklyn-version }}%22{% endcapture %}
-  {% capture this_alljar_url_search %}http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22io.brooklyn%22%20AND%20a%3A%22brooklyn-all%22%20AND%20v%3A%22{{ site.brooklyn-version }}%22{% endcapture %}
-  {% capture this_dist_url_dir %}{{ mavencentral_repo_groupid_url }}brooklyn-dist/{{ site.brooklyn-version }}/{% endcapture %}
-  {% capture this_alljar_url_dir %}{{ mavencentral_repo_groupid_url }}brooklyn-all/{{ site.brooklyn-version }}/{% endcapture %}
-  {% capture this_dist_url_zip %}{{ mavencentral_repo_groupid_url }}brooklyn-dist/{{ site.brooklyn-version }}/brooklyn-dist-{{ site.brooklyn-version }}-dist.zip{% endcapture %}
-  {% capture this_dist_url_tgz %}{{ mavencentral_repo_groupid_url }}brooklyn-dist/{{ site.brooklyn-version }}/brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz{% endcapture %}
-  {% capture this_alljar_url_jar %}{{ mavencentral_repo_groupid_url }}brooklyn-all/{{ site.brooklyn-version }}/brooklyn-all-{{ site.brooklyn-version }}-with-dependencies.jar{% endcapture %}
-{% endif %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e23af8de/docs/guide/start/download.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/download.md b/docs/guide/start/download.md
index 0dab45b..08ea26f 100644
--- a/docs/guide/start/download.md
+++ b/docs/guide/start/download.md
@@ -27,7 +27,12 @@ First time user? The [getting started]({{ site.path.guide }}/use/guide/quickstar
   <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><a href='{{ this_alljar_url_jar }}.asc'>PGP</a>, <a href='{{ this_alljar_url_jar }}.sha1'>SHA1</a></small></td>
+  </tr>
+  <tr>
+    <td style='text-align:left'>Other Variants</td>
+    <td style='text-align:left'><a href='{{ this_anything_url_search }}' title='Other Variants'><i>listing</i></a></td>
+    <td> - </td>
   </tr>
   <tr>
 	<td style='text-align:left'>Release notes</td>
@@ -36,11 +41,6 @@ First time user? The [getting started]({{ site.path.guide }}/use/guide/quickstar
   </tr>
 </table>
 
-{% if SNAPSHOT %}
-<span style='float:right'><small>Source: <a href='{{ this_anything_url_search }}'>Sonatype</a></small></span>
-{% else %}
-<span style='float:right'><small>Source: <a href='{{ this_anything_url_search }}'>Maven Central</a></small></span>
-{% endif %}
 
 <a name="distro"></a>
 
@@ -48,8 +48,13 @@ First time user? The [getting started]({{ site.path.guide }}/use/guide/quickstar
 
 The distribution archive contains Brooklyn as a standalone executable package.
 
-* previous stable versions: [Maven Central]({{ mavencentral_repo_groupid_url }}brooklyn-dist/)
-* previous snapshot versions: [Sonatype]({{ sonatype_repo_groupid_url }}brooklyn-dist/)
+* [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.
 
 {% if site.brooklyn-version contains 'SNAPSHOT' %} 
 **Please note**: You are reading the documentation for a snapshot version of Brooklyn.
@@ -61,13 +66,14 @@ You should always confirm that the source and date for snapshot artifacts.
 
 ## The All Jar
 
-This is a single JAR containing all of Brooklyn and its dependencies, for developing Brooklyn into your own applications. Just download your preferred flavour and add it to your classpath.
+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.
 
-{% if SNAPSHOT %}{% else %}
-* [Version {{ site.brooklyn-version }}](http://search.maven.org/#artifactdetails|io.brooklyn|brooklyn-all|{{ site.brooklyn-version }}|jar) 
-{% endif %}
-* previous stable versions: [Maven Central]({{ mavencentral_repo_groupid_url }}brooklyn-all/)
-* previous snapshot versions: [Sonatype]({{ sonatype_repo_groupid_url }}brooklyn-all/)
+* [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.
@@ -82,45 +88,10 @@ Release notes can be found [here]({{ site.path.guide }}/start/release-notes.html
 
 ## Examples
 
-{% if SNAPSHOT %}
-As this is a snapshot version of Brooklyn, please find the examples in the main Brooklyn codebase (in the `/examples` directory).
-
-When this version is released, the [brooklyn-examples git repository](http://github.com/brooklyncentral/brooklyn-examples) will be updated and instructions for use will be included here. 
-
-{% else %}
-
-You can checkout the examples from the [brooklyn-examples git repository](http://github.com/brooklyncentral/brooklyn-examples).
-
-Maven (v3) is required to build them, as described [here]({{ site.path.guide }}/dev/build/).
-The examples for this version ({{ site.brooklyn-version }}) are in the branch 
-`{% if SNAPSHOT %}{{ site.brooklyn-snapshot-git-branch }}{% else %}{{ site.brooklyn-version }}{% endif %}`, so if you have `git` and `mvn` already, you can simply:
-
-{% highlight bash %}
-% git clone https://github.com/brooklyncentral/brooklyn-examples.git
-% cd brooklyn-examples
-{% if brooklyn_examples_branch == 'master' %}{% else %}% git checkout {{ brooklyn_examples_branch }}
-{% endif %}% mvn clean install
-{% endhighlight %}
- 
-
-If you don't use `git`, you can download the projects as a tarball instead
-from [this link](https://github.com/brooklyncentral/brooklyn-examples/tarball/{{ brooklyn_examples_branch }}). 
-These commands should do the trick:
-
-{% highlight bash %}
-% curl -L -o brooklyn-examples-{{ brooklyn_examples_branch }}.tgz \
-     https://github.com/brooklyncentral/brooklyn-examples/tarball/{{ brooklyn_examples_branch }}
-% tar xvfz brooklyn-examples-{{ brooklyn_examples_branch }}.tgz
-% mv brooklyncentral-brooklyn-examples-* brooklyn-examples-{{ brooklyn_examples_branch }} \
-     # change the strange name which github assigns in the tarball
-% mvn clean install
-{% endhighlight %}
-
+Examples can be found in the main Brooklyn codebase, in the `/examples` directory.
 
 A good example to start with is the [Elastic Web Cluster]({{site.path.guide}}/use/examples/webcluster.html).
 
-{% endif %} 
-
 
 <a name="maven"></a>
 
@@ -131,7 +102,7 @@ If you use Maven, you can add Brooklyn with the following in your pom:
 {% highlight xml %}
     <dependencies>
         <dependency>
-            <groupId>io.brooklyn</groupId>
+            <groupId>org.apache.brooklyn</groupId>
             <artifactId>brooklyn-all</artifactId>
             <version>{{ site.brooklyn-version }}</version>
         </dependency>
@@ -143,7 +114,7 @@ If you prefer a smaller repo you might want just ``brooklyn-core``,  ``brooklyn-
 and some of ``brooklyn-software-webapp``,  ``brooklyn-software-database``, ``brooklyn-software-messaging``, or others
 (browse the full list [here]({{ this_anything_url_search }})).
 
-If you wish to use the Apache and/or Cloudsoft repositories (particularly for snapshots),
+If you wish to use the Apache snapshot repo and/or Cloudsoft repositories,
 you can add some of the following sections:
 
 {% highlight xml %}
@@ -182,11 +153,11 @@ or one of the additional snapshot repositories above.
 
 ## Source Code
 
-Full source is at [github.com/brooklyncentral/brooklyn](http://github.com/brooklyncentral/brooklyn).
+Full source is at [github.com/apache/incubator-brooklyn](http://github.com/apache/incubator-brooklyn).
 Information on working with the source is [here]({{ site.path.guide }}/dev/code).
 
 Alternatively you can download archives of the source directly:
 
-<a href="https://github.com/brooklyncentral/brooklyn/tarball/master"><img border="0" width="90" src="https://github.com/images/modules/download/tar.png"></a>
-<a href="https://github.com/brooklyncentral/brooklyn/zipball/master"><img border="0" width="90" src="https://github.com/images/modules/download/zip.png"></a>
+<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>
 


[48/50] [abbrv] incubator-brooklyn git commit: build apidocs with javadoc not groovydoc

Posted by he...@apache.org.
build apidocs with javadoc not groovydoc

all the main classes are java not groovy,
so there is no need to use groovydoc (which required a painful specific version of groovy).
the classes are approx the same, except we now exclude com/acme samples and other non-brooklyn things.
the html looks nicer however.


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

Branch: refs/heads/master
Commit: ebe000221cc4a28ccdae6e4d83d49fdd440abd84
Parents: 19901b8
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 16:02:36 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 16:07:41 2014 +0000

----------------------------------------------------------------------
 docs/_build/build.sh                  |  1 -
 docs/_build/make-javadoc.sh           | 57 ++++++++++--------------------
 docs/_build/quick-make-few-javadoc.sh |  2 +-
 3 files changed, 20 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ebe00022/docs/_build/build.sh
----------------------------------------------------------------------
diff --git a/docs/_build/build.sh b/docs/_build/build.sh
index 8147c70..097ebe6 100755
--- a/docs/_build/build.sh
+++ b/docs/_build/build.sh
@@ -172,7 +172,6 @@ function make_javadoc() {
       echo "ERROR: javadoc target directory $JAVADOC_TARGET gone; is there a jekyll already watching?"
       return 1
     fi
-    echo mv _build/target/apidocs/* $JAVADOC_TARGET
     mv _build/target/apidocs/* $JAVADOC_TARGET
   fi
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ebe00022/docs/_build/make-javadoc.sh
----------------------------------------------------------------------
diff --git a/docs/_build/make-javadoc.sh b/docs/_build/make-javadoc.sh
index 6e9dd27..d7f862c 100755
--- a/docs/_build/make-javadoc.sh
+++ b/docs/_build/make-javadoc.sh
@@ -5,22 +5,9 @@ if [ ! -x make-javadoc.sh ]; then
   exit 1
 fi
 
-if [ -z "$GROOVY_CMD" ] ; then
-  if [ ! -z "$GROOVY_HOME" ] ; then
-    GROOVY_CMD=$GROOVY_HOME/bin/groovysh
-  else
-    GROOVY_CMD=`which groovysh`
-  fi
-fi
-
-if [ ! -x "$GROOVY_CMD" ] ; then
-  echo groovy executable must be available on the path or in \$GROOVY_HOME/bin
-  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 web-console/plugins | grep -v "^../../sandbox"`
+  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
@@ -32,32 +19,26 @@ export DATESTAMP=`date "+%Y-%m-%d"`
 echo "building javadoc at $DATESTAMP from:
 $SOURCE_PATHS"
 
-
-$GROOVY_CMD -q << END
-sourcePaths = System.env['SOURCE_PATHS'].split('\\\\s+').join(':')
-title = "Brooklyn"
-ant = new AntBuilder()
-ant.taskdef(name: "groovydoc", classname: "org.codehaus.groovy.ant.Groovydoc")
-ant.groovydoc(
-    destdir      : "target/apidocs/",
-    sourcepath   : "\${sourcePaths}",
-    packagenames : "**.*",
-    use          : "true",
-    windowtitle  : "\${title}",
-    doctitle     : "\${title}",
-    header       : "\${title}",
-    footer       : '<b>Apache Brooklyn - Multi-Cloud Application Management Platform</b> <br/> <a href="http://brooklyn.io/" target="_top">brooklyn.io</a>. Apache License. &copy; '+System.env['DATESTAMP']+'.',
-    private      : "false")
-println "\njavadoc built in target/apidocs\n" 
-END
-
-if (($!)) ; then echo ; echo ; echo "Groovy docs had an error." ; exit 1 ; fi
+javadoc -sourcepath $SOURCE_PATHS \
+  -public \
+  -d target/apidocs/ \
+  -subpackages "org.apache.brooklyn:io.brooklyn:brooklyn" \
+  -classpath ../../usage/all/target/brooklyn-all-0.7.0-SNAPSHOT-with-dependencies.jar \
+  -doctitle "Apache Brooklyn" \
+  -windowtitle "Apache Brooklyn" \
+  -header "Apache Brooklyn" \
+  -footer '<b>Apache Brooklyn - Multi-Cloud Application Management</b> <br/> <a href="http://brooklyn.io/" target="_top">brooklyn.io</a>. Apache License. &copy; '$DATESTAMP'.' \
+ | tee target/javadoc.log
+
+if ((${PIPESTATUS[0]})) ; then echo ; echo ; echo "ERROR: javadoc process exited non-zero" ; exit 1 ; fi
 echo ; echo
 
-if [ -z 'ls target/apidocs' ]; then echo ; echo ; echo "Error - no content. Are the paths right?" ; exit 1 ; fi
+if [ ! -f target/apidocs/brooklyn/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
 
-if [ -d ../_site/use/api/ ] ; then
-  echo "API directory detected in parent, installing docs there"
-  cp -r target/apidocs/* ../_site/use/api/
+if [ -d ../_site/guide/use/api/ ] ; then
+  echo "API directory detected in test structure _site, copying docs there so they can be served with serve-site.sh"
+  cp -r target/apidocs/* ../_site/guide/use/api/
 fi
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ebe00022/docs/_build/quick-make-few-javadoc.sh
----------------------------------------------------------------------
diff --git a/docs/_build/quick-make-few-javadoc.sh b/docs/_build/quick-make-few-javadoc.sh
index b51e0d1..db228df 100755
--- a/docs/_build/quick-make-few-javadoc.sh
+++ b/docs/_build/quick-make-few-javadoc.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-export BROOKLYN_JAVADOC_SOURCE_PATHS="../../api"
+export BROOKLYN_JAVADOC_SOURCE_PATHS="../../api/src/main/java"
 echo LIMITING build to $BROOKLYN_JAVADOC_SOURCE_PATHS for speed
 ./make-javadoc.sh
 


[46/50] [abbrv] incubator-brooklyn git commit: fix the warning about viewing old content if seeing latest, and fix its links

Posted by he...@apache.org.
fix the warning about viewing old content if seeing latest, and fix its links


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

Branch: refs/heads/master
Commit: be1f457a9ea06c9419651451a9c6e0c0432954cf
Parents: fe4de8a
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 12:56:19 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 12:56:19 2014 +0000

----------------------------------------------------------------------
 docs/_layouts/guide-normal.html | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/be1f457a/docs/_layouts/guide-normal.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/guide-normal.html b/docs/_layouts/guide-normal.html
index d0310ed..4e676ad 100644
--- a/docs/_layouts/guide-normal.html
+++ b/docs/_layouts/guide-normal.html
@@ -120,7 +120,7 @@ console.log("setting text to "+txt);
 			var thisversion = document.location.pathname.split("/")[2],
 				msg = "";
 			
-			if (!$.cookie('brooklyn_versions') || 
+			if (thisversion != 'latest' && !$.cookie('brooklyn_versions') || 
 			        (($.inArray('ALL', $.cookie('brooklyn_versions').split(",")) === -1) &&
 			        ($.inArray(thisversion, $.cookie('brooklyn_versions').split(",")) === -1)) ){
 			    msg += "<div class='warning_banner_image'><img src='{{ site.path.style }}/img/warning.png'/></div>";
@@ -128,8 +128,8 @@ console.log("setting text to "+txt);
 			    msg += "<p>Are you using version "+thisversion+"?</p>";
 				msg += "<p class='warning_banner_buttons'>";
 				msg += "<a href = '#' onclick=\"set_user_version('"+thisversion+"');\">Yes, hide this warning</a>";
-			    msg += "<a href = '/'>No, show me the latest version</a>";
-				msg += "<a href = '/meta/versions.html'>Show all versions</a>";
+			    msg += "<a href = '{{ site.page.guide }}'>No, show me the latest version</a>";
+				msg += "<a href = '{{ site.page.guide }}/meta/versions.html'>Show all versions</a>";
 				msg += "</p>"
 							
 				$('#page_notes').html(msg);


[37/50] [abbrv] incubator-brooklyn git commit: update the docs on the docs themselves

Posted by he...@apache.org.
update the docs on the docs themselves

add info on the docs plugins/code to docs README,
and update/simplify the documentation re docs in the website and guide;
more desired on this latter but the minimum has been done here I think


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

Branch: refs/heads/master
Commit: ddcd1cfeb956c162427937e7e456a6b8d5a05b6d
Parents: c3bf721
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 09:27:26 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 09:27:26 2014 +0000

----------------------------------------------------------------------
 docs/README.md                                  | 45 ++++++++++++-
 docs/guide/dev/tips/update-docs.md              | 66 ++------------------
 .../website/community/how-to-contribute-docs.md | 34 +++++++---
 3 files changed, 75 insertions(+), 70 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ddcd1cfe/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
index b090785..f5a2d73 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -198,7 +198,7 @@ copied to `${BROOKLYN_SITE_DIR-../../incubator-brooklyn-site-public}`:
     # latest guide, relative to /v/latest/
     _build/build.sh guide-latest --install
     
-    # latest guide, relative to /v/<version>/
+    # versioned guide, relative to /v/<version>/
     _build/build.sh guide-version --install
 
 Next it is recommended to go to the SVN dir and 
@@ -211,3 +211,46 @@ You must then check in the changes:
     svn ci -m 'Update Brooklyn website'
 
 The changes should become live within a few minutes.
+
+
+More Notes on the Code
+----------------------
+
+# Plugins
+
+We use some custom Jekyll plugins, in the `_plugins` dir:
+
+* include markdown files inside other files (see, for example, the `*.include.md` files 
+  which contain text which is used in multiple other files)
+* parse JSON which we can loop over in our markdown docs (to do the TOC in the `guide`)
+* generate the site structure (for the `website`)
+* trim whitespace of ends of variables
+
+
+# Guide ToC
+
+In the `guide`, JSON table-of-contents files (toc.json) are our lightweight solution to the 
+problem of making the site structure navigable (the menus at left). 
+If you add a page, simply add the file and a title to the `toc.json` in that directory 
+and it will get included in the menu. 
+
+You can also configure a special toc to show on your page, if you wish, by setting the toc variable in the header. 
+Most pages declare the `guide-normal` layout (in `_layouts/`) which builds a menu in the left side-bar 
+(`_includes/sidebar.html`) using the JSON, automatically detecting which page is active.
+
+
+# Website ToC
+
+The `website` follows a different, simpler pattern, using the `site-structure` plugin
+and front-matter in each page.  When adding a page, simply add the relevant front matter
+in the page(s) which refer to them.
+
+
+# Versions
+
+Archived versions are kept under `/v/` in the website.  New versions should be added with
+the appropriate directory (`guide-version` above will do this).  These versions take their
+own copy of the `style` files so that changes there will not affect future versions.
+
+A list of available versions also needs to be updated.  This is referenced from the `website`.
+<!-- TODO: where -->

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ddcd1cfe/docs/guide/dev/tips/update-docs.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/update-docs.md b/docs/guide/dev/tips/update-docs.md
index 0f2aafb..ccb573e 100644
--- a/docs/guide/dev/tips/update-docs.md
+++ b/docs/guide/dev/tips/update-docs.md
@@ -4,67 +4,11 @@ title: Updating the Docs
 toc: /guide/toc.json
 ---
 
+<!-- TODO retire this page -->
+
 The Brooklyn docs live in the **docs** project in the Brooklyn codebase.
 It's built using standard jekyll/markdown with a few extensions.
 
-
-## Jekyll
-
-Firstly, install Pygments (used for source code highlighting):
-
-    sudo easy_install Pygments
-
-Next, install Jekyll and the other Ruby Gems that we need:
-
-    bundle install
-
-Then, in the `docs/` directory, run:
-
-    ./_scripts/jekyll-debug.sh 
-    
-Visit [http://localhost:4000/](http://localhost:4000/) and you should see the documentation.
-
-
-## Extensions
-
-In addition to the standard pygments plugin for code-highlighting,
-we use some custom Jekyll plugins (in the `_plugins` dir) to:
-
-* include markdown files inside other files 
-  (see, for example, the `*.include.md` files which contain text
-  which is used in multiple other files)
-* parse JSON which we can loop over in our markdown docs
-* trim whitespace of ends of variables
-
-Using JSON table-of-contents files (`toc.json`) is our lightweight solution
-to the problem of making the site structure navigable (the menus at left).
-If you add a page, simply add the file (with full path from project root)
-and a title to the toc.json in that directory, and it will get included
-in the menu.  You can also configure a special toc to show on your page,
-if you wish, by setting the toc variable in the header.
-Most pages declare the "page" layout (`_layouts/page.html`) which builds
-a menu in the left side-bar (`_includes/sidebar.html`) using the JSON --
-and automatically detecting which page is active. 
- 
-
-## Publishing
-
-Because GitHub don't run plugins (they run with the `--safe` option),
-the site is built off-line and uploaded to github, where the documentation is hosted.
-
-This makes the process a little more tedious, but it does have the advantage 
-that the documentation lives right in the Brooklyn project,
-easy to open alongside the code inside your IDE.
-
-The off-line build can be done using `/docs/_scripts/build.sh`,
-including both jekyll markdown documentation and Brooklyn javadoc,
-with the result of this copied to the `brooklyncentral/brooklyncentral.github.com` 
-github project (as per the GitHub pages documentation).
-[brooklyn.io](http://brooklyn.io) is CNAMEd to [brooklyncentral.github.com](brooklyncentral.github.com)
-for convenience.
-
-The latest stable version typically lives in the root of the `brooklyncentral.github.com` project.
-Archived versions are kept under `/v/*` with logic in the markdown for 
-[meta/versions]({{ site.path.guide }}/meta/versions.html) to link to related versions.  
-Additional instructions and scripts for automating the installs can be found in `/docs/_scripts/`.
-
+Instructions for building and working with docs are in a `README.md` file
+in that folder; for the most recent version of instructions click
+[here](https://github.com/apache/incubator-brooklyn/tree/master/docs/README.md).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ddcd1cfe/docs/website/community/how-to-contribute-docs.md
----------------------------------------------------------------------
diff --git a/docs/website/community/how-to-contribute-docs.md b/docs/website/community/how-to-contribute-docs.md
index 5241c98..b6b3cd5 100644
--- a/docs/website/community/how-to-contribute-docs.md
+++ b/docs/website/community/how-to-contribute-docs.md
@@ -4,6 +4,11 @@ title: How to Contribute Documentation
 navgroup: community
 ---
 
+<!-- TODO do we want this page?  can be simplified a lot since the process is identical as for how-to-contribute,
+     with the exception of the "Edit this Page" (and reminder we can accept small changes without CLA or Jira);
+     we could promote much of the content from README.md to here... -->
+
+
 Welcome and thank you for your interest in contributing to Apache Brooklyn! This guide will take you through the
 process of making contributions to the Apache Brooklyn website and documentation.
 
@@ -11,16 +16,20 @@ process of making contributions to the Apache Brooklyn website and documentation
 Two types of documentation
 --------------------------
 
+The Brooklyn docs live in the **docs** project in the Brooklyn codebase,
+built using standard jekyll/markdown with a few extensions.
+
 The Brooklyn documentation is split into two parts:
 
 - **The main website and shared documentation**. This covers the root website
-  and all pages that are not part of the version-specific user manual. This
-  guide describes how to work with this documentation.
-- **Version-specific user manual**. These pages have a URL with a path that
-  begins /v/*version-number* - for example,
-  https://brooklyn.incubator.apache.org/v/0.7.0-M1. This documentation is part
-  of the main source code, so please refer to the [How to contribute source
-  code](how-to-contribute.html) for help with modifying these pages.
+  and all pages that are not part of the version-specific user guide.
+  Content for this is in the `website` directory.
+  
+- **Version-specific user guide**. These pages have a URL with a path that
+  begins /v/*version-number*: for example,
+  https://brooklyn.incubator.apache.org/v/0.7.0-SNAPSHOT and <!-- BROOKLYN-VERSION -->
+  the special *latest* set at https://brooklyn.incubator.apache.org/v/latest .  
+  Content for this is in the `guide` directory.
 
 
 Contributor license agreement
@@ -82,7 +91,7 @@ Contributing using GitHub
 -------------------------
 
 Our GitHub repository is located at
-[https://github.com/apache/incubator-brooklyn-site](https://github.com/apache/incubator-brooklyn-site)
+[https://github.com/apache/incubator-brooklyn](https://github.com/apache/incubator-brooklyn)
 
 Your commit messages must properly describes the changes that have been made and
 their purpose ([here are some
@@ -106,6 +115,7 @@ again if master has moved before accepting your patch.
 Finally, add a comment in the Jira issue with a link to the pull request so we
 know the code is ready to be reviewed.
 
+
 ### Reviews
 
 The Apache Brooklyn community will review your pull request before it is merged.
@@ -138,3 +148,11 @@ patches attached to a Jira issue.  Our canonical repository is located at
 When producing patches, please use `git format-patch` or a similar mechanism -
 this will ensure that you are properly attributed as the author of the patch
 when a committer merges it.
+
+
+For More Information
+--------------------
+
+Advanced instructions for building, previewing and publishing docs are in a `README.md` file
+in the `docs` folder; see those instructions
+[here](https://github.com/apache/incubator-brooklyn/tree/master/docs/README.md).


[31/50] [abbrv] incubator-brooklyn git commit: updated README and added options to build.sh for building the website, guide, or both

Posted by he...@apache.org.
updated README and added options to build.sh for building the website, guide, or both

and corresponding `_build/config-*` files and tweaks elsewhere


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

Branch: refs/heads/master
Commit: 08068213e1bd5cb6f223c89a1363010b37805c92
Parents: 09b7b58
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Dec 16 17:07:34 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:57 2014 +0000

----------------------------------------------------------------------
 docs/README.md                               | 180 +++++++++++++++++-----
 docs/_build/build.sh                         |  72 +++++----
 docs/_build/config-exclude-all-but-guide.yml |   1 +
 docs/_build/config-exclude-guide.yml         |   1 +
 docs/_build/config-guide-latest.yml          |   2 +
 docs/_build/config-guide-root.yml            |   2 -
 docs/_build/config-guide-version.yml         |   1 -
 docs/_build/config-production.yml            |   3 +-
 docs/_build/config-style-latest.yml          |   2 +
 docs/_build/config-subpath-brooklyn.yml      |   9 ++
 docs/_build/config-website-root.yml          |   2 -
 docs/_config.yml                             |   6 +-
 docs/_old/_config.yml                        |  24 ---
 docs/_plugins/site_structure.rb              |   1 +
 docs/index.md                                |   3 +-
 15 files changed, 208 insertions(+), 101 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
index 6cac8b0..ece1396 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,13 +1,12 @@
-Brooklyn Website source
-=======================
+Brooklyn Website and Docs Source
+================================
 
-Contributor worflow
--------------------
+Contributor Workflow
+--------------------
 
 The contributor workflow is identical to that used by the main project, with
-the exception of the different repository - `incubator-brooklyn-site` instead
-of `incubator-brooklyn`. Therefore you should familiarise yourself with the
-standard workflow for Apache Brooklyn:
+pull requests and contributor licenses requried. Therefore you should 
+familiarise yourself with the standard workflow for Apache Brooklyn:
 
 * [Guide for contributors][CONTRIB]
 * [Guide for committers][COMMIT]
@@ -16,11 +15,11 @@ standard workflow for Apache Brooklyn:
 [COMMIT]: https://brooklyn.incubator.apache.org/community/committers.html
 
 
-Workstation setup
+Workstation Setup
 -----------------
 
-First, clone the `incubator-brooklyn-site` repository and set up the remotes as
-described in [Guide for committers][COMMIT].
+First, if you have not already done so, clone the `incubator-brooklyn` repository 
+and set up the remotes as described in [Guide for committers][COMMIT].
 
 Install [RVM](http://rvm.io/); this manages Ruby installations and sets of Ruby
 gems.
@@ -29,7 +28,7 @@ gems.
 
 At this point, close your shell session and start a new one, to get the new
 environment that RVM has configured. Now change directory to the location where
-you checked out your repository, and then to the `_scripts` subdirectory.
+you checked out your repository, and then to the `docs/_build` subdirectory.
 
 RVM should detect its configuration inside `Gemfile` and try to configure itself. 
 Most likely it will report that the required version of Ruby is not installed; 
@@ -37,70 +36,177 @@ it will show the command that you need to run to install the correct version.
 Follow these instructions.
 
 Once the correct version of Ruby is installed, change to your home directory
-(`cd ~`) and then change back to the repository again (`cd -`). This will cause
+(`cd ~`) and then change back to the `_build` dir again (`cd -`). This will cause
 RVM to re-load configuration from `Gemfile` with the correct version of Ruby.
 
 If you are running Ubuntu, there is a further dependency that is required:
 
     sudo apt-get install libxslt-dev libxml2-dev
 
-Finally, run this command inside `_scripts` to install all the required Gems 
-in the correct versions:
+Finally, run this command inside `_build` to install all the required Gems 
+at the correct versions:
 
     bundle install
 
-Anytime you need to reset your Ruby environment for jekyll to run correctly,
-return to the `_scripts` directory and re-run the above command.
+Any time you need to reset your Ruby environment for jekyll to run correctly,
+return to the `_build` directory and re-run the above command.
 
 
-Building and previewing the website
+Building and Previewing the Website
 -----------------------------------
 
 ### Using Jekyll's in-built server
 
-Run the command:
+In the `docs` directory, run the command:
 
     jekyll serve --watch
     
 This will start up a local web server. The URL is printed by Jekyll when the server starts,
-e.g. http://localhost:4000/brooklyn/ . The server will continue to run until you press Ctrl+C.
+e.g. http://localhost:4000/ . The server will continue to run until you press Ctrl+C.
 Modified files will be detected and regenerated (but that might take up to 1m).
-Leave off the `--watch` argument to abandon that behaviour, or use `jekyll build` instead
+Leave off the `--watch` argument to turn off regeneration, or use `jekyll build` instead
 to generate a site in `_site` without a server, for instance if your browser supports running from disk.
 
 
+Project Structure
+-----------------
 
-### Combining with Brooklyn user-manual / version docs
+Note that there are two interlinked micro-sites in this project:
 
-TODO: Some links should come from the incubator-brooklyn/docs/ project.
-They can run in debug mode on a different port.
+* `/website`: this contains the main Brooklyn website, including committer instructions,
+  download instructions, and "learn more" pages;
+  this content has **only one instance** on the live website,
+  and as changes are published they replace old content
+  
+* `/guide`: this contains the user guide and information pertaining to a 
+  specific Brooklyn version, including code structure and API documentation;
+  the live website contains a **copy of the guide for each Brooklyn version**,
+  with the code coming from the corresponding branch in `git`
 
+In addition note the following folders:
 
-Building and publishing the website
------------------------------------
+* `/style`: contains JS, CSS, and image resources;
+  on the live website, this folder is installed at the root *and* 
+  into archived versions of the guide. 
+  
+* `/_build`: contains build scripts and configuration files,
+  and tests for some of the plugins
+
+* `/_plugins`: contains Jekyll plugins which supply tags and generation
+  logic for the sites, including links and tables of contents
+
+* `/_layouts`: contains HTML templates used by pages
+
+* `/_includes`: contains miscellaneous content used by templates and pages
+
+Jekyll automatically excludes any file or folder beginning with `_`
+from direct processing, so these do *not* show up in the `_site` folder
+(except where they are embedded in other files).  
+
+**A word on branches:**  The `/website` folder can be built against any branch;
+typically changes are made and published from `master`, to ensure that all versions
+are listed correctly.
+In contrast the `/guide` folder should be updated and built against the branch for which 
+instructions are being made, e.g. `master` for latest snapshot updates, 
+or `0.7.0-M2` for that milestone release.
+It *is* permitted to make changes to docs (and docs only!) after a release has
+been made. In most cases, these changes should also be made to master.
+
+
+Website Structure
+-----------------
+
+The two micro-sites above are installed on the live website as follows:
+
+* `/`: contains the website
+* `/v/<version>`: contains specific versions of the guide,
+  with the special folder `/v/latest` containing the recent preferred stable/milestone version 
+
+The site itself is hosted at `brooklyn.incubator.apache.org` with a `CNAME`
+record from `brooklyn.io`.
+
+Content is published to the site by updating an 
+Apache subversion repository, `incubator-brooklyn-site-public` at
+`https://svn.apache.org/repos/asf/incubator/brooklyn/site`.
+See below for more information.
+
+
+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.
 
-Run this script:
+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:
 
-    ./_scripts/build-for-publication
+    _build/build.sh help
 
-This will run Jekyll with the correct base URL for the live website and place
-the output in the `_site` directory.
+The normal build outputs to `_site/`.  The three builds which are relevant to updating the live site are:
 
-The Apache website publication process is based around the Subversion repository; the generated HTML files must be checked in to Subversion, whereupon an automated process will publish the files to the live website.
+* **website-root**: to build the website only, in the root
+* **guide-latest**: to build the guide only, in `/v/latest/`
+* **guide-version**: to build the guide only, in the versioned namespace e.g. `/v/<version>/`
 
-Starting in a suitable directory, check out the website directory from the repository:
+Publishing the Website and Guide
+--------------------------------
 
+The Apache website publication process is based around the Subversion repository; 
+the generated HTML files must be checked in to Subversion, whereupon an automated process 
+will publish the files to the live website.
+So, to push changes the live site, you will need to have the website directory checked out 
+from the Apache subversion repository. We recommend setting this up as a sibling to your
+`incubator-brooklyn` git project directory:
+
+    # verify we're in the right location and the site does not already exist
+    ls _build/build.sh || { echo "ERROR: you should be in the docs/ directory to run this command" ; exit 1 }
+    ls ../../incubator-brooklyn-site-public && { echo "ERROR: incubator-brooklyn-site-public dir already exists ; exit 1 }
+    pushd ../..
+    
     svn co https://svn.apache.org/repos/asf/incubator/brooklyn/site incubator-brooklyn-site-public
+    
+    # verify it
     cd incubator-brooklyn-site-public
+    ls style/css/website.css || { echo "ERROR: checkout is wrong" ; exit 1 }
+    export BROOKLYN_SITE_DIR=`pwd`
+    popd
+    echo "SUCCESS: checked out site in $BROOKLYN_SITE_DIR"
 
-Synchronise the generated site into the Subversion working copy - please amend this command to include the correct paths for your setup:
+With this checked out, the `build.sh` script can automatically copy generated files into the right subversion sub-directories
+with the `--install` option.  (This assumes the relative structure described above; if you have a different
+structure, set BROOKLYN_SITE_DIR to point to the directory as above.  Alternatively you can copy files manually,
+using the instructions in `build.sh` as a guide.)
 
-    rsync -rv --delete --exclude .svn --exclude v ~/incubator-brooklyn-site/_site/ ~/incubator-brooklyn-site-public
+**TODO: the `--install` option below is not yet implemented**
+
+A typical update consists of the following commands (or a subset),
+copied to `${BROOKLYN_SITE_DIR:../../incubator-brooklyn-site-public}`:
+
+    # main website, relative to / 
+    _build/build.sh website-root --install
+    
+    # latest guide, relative to /v/latest/
+    _build/build.sh guide-latest --install
+    
+    # latest guide, relative to /v/<version>/
+    _build/build.sh guide-version --install
+
+Next it is recommended to go to the SVN dir and 
+review the changes using the usual `svn` commands -- `status`, `diff`, `add`, `rm`, etc:
+
+    cd ${BROOKLYN_SITE_DIR:../../incubator-brooklyn-site-public}
+
+You must then check in the changes:
 
-Review the changes using the usual `svn` commands - e.g., `status`, `diff`, `add`, `rm`, etc.
+    svn ci -m 'Update Brooklyn website'
 
-Once you are ready to publish, commit the changes to Subversion:
+The changes should become live within a few minutes.
 
-    svn ci -m 'Update Brooklyn (incubating) website'
 
-The changes will become live within a few minutes.
+<!-- OLD notes:
+
+Synchronise the generated site into the Subversion working copy - please amend this command to include the correct paths for your setup:
+
+    rsync -rv --delete --exclude .svn --exclude v ~/incubator-brooklyn-site/_site/ ~/incubator-brooklyn-site-public
+-->
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_build/build.sh
----------------------------------------------------------------------
diff --git a/docs/_build/build.sh b/docs/_build/build.sh
index 4dfe7cd..c3f9068 100755
--- a/docs/_build/build.sh
+++ b/docs/_build/build.sh
@@ -12,12 +12,14 @@ function help() {
   echo "This will build the documentation in _site/."
   echo "Usage:  _build/build.sh MODE [ARGS]"
   echo "where MODE is:"
-  echo "* root : to build root files for production, the website in the root and guide in /guide/"
+  echo "* website-root  : to build the website only, in the root"
+  echo "* guide-latest  : to build the guide only, in /v/latest/"
   # BROOKLYN_VERSION_BELOW
-  echo "* guide-version : to build a versioned guide for production; guide only, in the versioned namespace /v/0.7.0-SNAPSHOT/"
-  echo "* website-root : to build the website only, in the root"
-  echo "* guide-root : to build the guide only, in the root"
-  echo "* original : to build the files in their original location (e.g. guide in /guide/)"
+  echo "* guide-version : to build the guide only, in the versioned namespace /v/0.7.0-SNAPSHOT/"
+  echo "* test-guide-root : to build the guide only, in the root (for testing)"
+  echo "* test-both : to build the website to root and guide to /v/latest/ (for testing)"
+  echo "* test-both-sub : to build the website to /sub/ and guide to /sub/v/latest/ (for testing)"
+  echo "* original : to build the files in their original location (website it /website and guide in /guide/, for testing)"
   echo "and supported ARGS are:"
   echo "* --skip-javadoc : to skip javadoc build"
   echo 'with any remaining ARGS passed to jekyll as `jekyll build --config ... ARGS`.'
@@ -29,44 +31,60 @@ function deduce_config() {
   help)
     help
     exit 0 ;;
-  root)
-    CONFIG=_config.yml,_build/config-production.yml,_build/config-website-root.yml
-    DIRS_TO_MOVE[0]=website
-    DIRS_TO_MOVE_TARGET[0]=""
-    JAVADOC_TARGET=_site/guide/use/api/
-    SUMMARY="root production files, website in root and guide in /guide/"
-    ;;
   website-root)
-    CONFIG=_config.yml,_build/config-production.yml,_build/config-website-root.yml
+    CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-guide.yml,_build/config-website-root.yml
     DIRS_TO_MOVE[0]=website
     DIRS_TO_MOVE_TARGET[0]=""
-    DIRS_TO_MOVE[1]=guide
-    DIRS_TO_MOVE_TARGET[1]=long_grass
     SKIP_JAVADOC=true
-    SUMMARY="user guide files in the root"
+    SUMMARY="website files in the root"
     ;;
-  guide-root)
-    CONFIG=_config.yml,_build/config-production.yml,_build/config-guide-root.yml
+  guide-latest)
+    CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-all-but-guide.yml,_build/config-guide-latest.yml,_build/config-style-latest.yml
     DIRS_TO_MOVE[0]=guide
-    DIRS_TO_MOVE_TARGET[0]=""
-    DIRS_TO_MOVE[1]=website
-    DIRS_TO_MOVE_TARGET[1]=long_grass
-    JAVADOC_TARGET=_site/use/api/
-    SUMMARY="user guide files in the root"
+    DIRS_TO_MOVE_TARGET[0]=v/latest
+    DIRS_TO_MOVE[1]=style
+    DIRS_TO_MOVE_TARGET[1]=v/latest/style
+    JAVADOC_TARGET=_site/${DIRS_TO_MOVE_TARGET[0]}/use/api/
+    SUMMARY="user guide files in /${DIRS_TO_MOVE_TARGET[0]}"
     ;;
   guide-version)
-    CONFIG=_config.yml,_build/config-production.yml,_build/config-guide-version.yml
+    CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-all-but-guide.yml,_build/config-guide-version.yml
     # Mac bash defaults to v3 not v4, so can't use assoc arrays :(
     DIRS_TO_MOVE[0]=guide
     # BROOKLYN_VERSION_BELOW
     DIRS_TO_MOVE_TARGET[0]=v/0.7.0-SNAPSHOT
     DIRS_TO_MOVE[1]=style
     DIRS_TO_MOVE_TARGET[1]=${DIRS_TO_MOVE_TARGET[0]}/style
-    DIRS_TO_MOVE[2]=website
-    DIRS_TO_MOVE_TARGET[2]=long_grass
-    JAVADOC_TARGET=_site/${DIRS_TO_MOVE_TARGET[1]}/use/api/
+    JAVADOC_TARGET=_site/${DIRS_TO_MOVE_TARGET[0]}/use/api/
     SUMMARY="user guide files in /${DIRS_TO_MOVE_TARGET[0]}"
     ;;
+  test-guide-root)
+    CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-all-but-guide.yml,_build/config-guide-root.yml
+    DIRS_TO_MOVE[0]=guide
+    DIRS_TO_MOVE_TARGET[0]=""
+    JAVADOC_TARGET=_site/use/api/
+    SUMMARY="user guide files in the root"
+    ;;
+  test-both)
+    CONFIG=_config.yml,_build/config-production.yml,_build/config-website-root.yml,_build/config-guide-latest.yml
+    DIRS_TO_MOVE[0]=guide
+    DIRS_TO_MOVE_TARGET[0]=v/latest
+    DIRS_TO_MOVE[1]=website
+    DIRS_TO_MOVE_TARGET[1]=""
+    JAVADOC_TARGET=_site/${DIRS_TO_MOVE_TARGET[0]}/use/api/
+    SUMMARY="all files, website in root and guide in /${DIRS_TO_MOVE_TARGET[0]}"
+    ;;
+  test-both-sub)
+    CONFIG=_config.yml,_build/config-production.yml,_build/config-subpath-brooklyn.yml
+    DIRS_TO_MOVE[0]=guide
+    DIRS_TO_MOVE_TARGET[0]=brooklyn/v/latest
+    DIRS_TO_MOVE[1]=website
+    DIRS_TO_MOVE_TARGET[1]=brooklyn
+    DIRS_TO_MOVE[2]=style
+    DIRS_TO_MOVE_TARGET[2]=brooklyn/style
+    JAVADOC_TARGET=_site/${DIRS_TO_MOVE_TARGET[0]}/use/api/
+    SUMMARY="all files in /brooklyn"
+    ;;
   original)
     CONFIG=_config.yml,_build/config-production.yml
     SUMMARY="all files in their original place"

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_build/config-exclude-all-but-guide.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-exclude-all-but-guide.yml b/docs/_build/config-exclude-all-but-guide.yml
new file mode 100644
index 0000000..7ed3c5a
--- /dev/null
+++ b/docs/_build/config-exclude-all-but-guide.yml
@@ -0,0 +1 @@
+exclude: ['/LICENSE.txt','/README.md','/index.md','/favicon.ico','/website']
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_build/config-exclude-guide.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-exclude-guide.yml b/docs/_build/config-exclude-guide.yml
new file mode 100644
index 0000000..373dc76
--- /dev/null
+++ b/docs/_build/config-exclude-guide.yml
@@ -0,0 +1 @@
+exclude: ['/LICENSE.txt','/README.md','/guide']
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_build/config-guide-latest.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-guide-latest.yml b/docs/_build/config-guide-latest.yml
new file mode 100644
index 0000000..8b20811
--- /dev/null
+++ b/docs/_build/config-guide-latest.yml
@@ -0,0 +1,2 @@
+path:
+  guide: /v/latest

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_build/config-guide-root.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-guide-root.yml b/docs/_build/config-guide-root.yml
index 64bd67f..f45a593 100644
--- a/docs/_build/config-guide-root.yml
+++ b/docs/_build/config-guide-root.yml
@@ -1,4 +1,2 @@
-
 path:
   guide: ""
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_build/config-guide-version.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-guide-version.yml b/docs/_build/config-guide-version.yml
index 5e4acc0..03b654d 100644
--- a/docs/_build/config-guide-version.yml
+++ b/docs/_build/config-guide-version.yml
@@ -1,4 +1,3 @@
-
 path:
   # BROOKLYN_VERSION_BELOW
   guide: /v/0.7.0-SNAPSHOT

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_build/config-production.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-production.yml b/docs/_build/config-production.yml
index 5aaf12d..fe2065b 100644
--- a/docs/_build/config-production.yml
+++ b/docs/_build/config-production.yml
@@ -1,6 +1,5 @@
+# in production we always set the URL and dependencies should come from the remote source
 
 url: https://brooklyn.incubator.apache.org
 
 dependency_mode: remote
-
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_build/config-style-latest.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-style-latest.yml b/docs/_build/config-style-latest.yml
new file mode 100644
index 0000000..d03b87d
--- /dev/null
+++ b/docs/_build/config-style-latest.yml
@@ -0,0 +1,2 @@
+path:
+  style: /v/latest/style

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_build/config-subpath-brooklyn.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-subpath-brooklyn.yml b/docs/_build/config-subpath-brooklyn.yml
new file mode 100644
index 0000000..ade7e19
--- /dev/null
+++ b/docs/_build/config-subpath-brooklyn.yml
@@ -0,0 +1,9 @@
+# to test for absolute reference problems, prefix each of the paths and set the baseurl
+
+path:
+  style: /brooklyn/style
+  guide: /brooklyn/v/latest
+  website: /brooklyn
+  v: /brooklyn/v
+
+baseurl: /brooklyn

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_build/config-website-root.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-website-root.yml b/docs/_build/config-website-root.yml
index 3195f8c..7ac39fe 100644
--- a/docs/_build/config-website-root.yml
+++ b/docs/_build/config-website-root.yml
@@ -1,4 +1,2 @@
-
 path:
   website: ""
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_config.yml
----------------------------------------------------------------------
diff --git a/docs/_config.yml b/docs/_config.yml
index 8128967..ec8af31 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -31,9 +31,6 @@ path:
   guide: /guide
   website: /website
   v: /v
-# (to test for absolute reference problems you can prefix each of the above,
-# with e.g. /brooklyn , and set the baseurl below)
-#baseurl: /brooklyn
 
 # Use local copies of dependencies in dev build (switched to remote using URLs for prod build)
 dependency_mode: local
@@ -43,6 +40,5 @@ dependency_urls:
   jquery.js: https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
 
 # These files should not be included in the final build (in addition to _* contents)
-
-exclude: ['README.md']
+exclude: ['/LICENSE.txt','/README.md']
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_old/_config.yml
----------------------------------------------------------------------
diff --git a/docs/_old/_config.yml b/docs/_old/_config.yml
deleted file mode 100644
index 9d64146..0000000
--- a/docs/_old/_config.yml
+++ /dev/null
@@ -1,24 +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.
-#
-exclude: [ LICENSE.txt, Gemfile, Gemfile.lock ]
-markdown: rdiscount
-brooklyn-version: 0.7.0-SNAPSHOT # BROOKLYN_VERSION
-brooklyn-snapshot-git-branch: master   # if line above is SNAPSHOT this should point to corresponding git branch (e.g. master, 0.4)
-brooklyn-root-url: /
-url: /v/0.7.0-SNAPSHOT  # BROOKLYN_VERSION

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/_plugins/site_structure.rb
----------------------------------------------------------------------
diff --git a/docs/_plugins/site_structure.rb b/docs/_plugins/site_structure.rb
index 6cfe1f9..95ba1d5 100644
--- a/docs/_plugins/site_structure.rb
+++ b/docs/_plugins/site_structure.rb
@@ -26,6 +26,7 @@ module SiteStructure
     end
 
     def generate(site)
+      return nil if site.config['exclude'].index(File.dirname(Pathname.new(SiteStructure::BROOKLYN_WEBSITE_ROOT)))
       root_page = find_page_with_path_absolute_or_relative_to(site, SiteStructure::BROOKLYN_WEBSITE_ROOT, nil)
       navgroups = root_page.data['navgroups']
       navgroups.each do |ng|

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/08068213/docs/index.md
----------------------------------------------------------------------
diff --git a/docs/index.md b/docs/index.md
index 021df26..86a0883 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -7,6 +7,7 @@ title: Brooklyn Website and Docs (dev build)
 
 Consider looking at:
 
-* <a href="website/">the brooklyn website</a>
+* <a href="{{ site.path.website }}/">the brooklyn website</a>
+* <a href="{{ site.path.guide }}/">the brooklyn user guide (version 0.7.0-SNAPSHOT <!-- BROOKLYN_VERSION --></a>
 
 Also see the file <code>README.md</code> in this directory.


[11/50] [abbrv] incubator-brooklyn git commit: move version-specific things to "guide"

Posted by he...@apache.org.
move version-specific things to "guide"

"guide" is where versioned content will live when primary website is moved in (to "website" dir);
note this does not yet build; update fixing that to follow


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

Branch: refs/heads/master
Commit: ba6612ecdb0427a5350c5a62f56c23b019f3a590
Parents: a78cd74
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Dec 15 16:54:07 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:54 2014 +0000

----------------------------------------------------------------------
 docs/dev/build/debugging-remote-brooklyn.md     | 140 -------
 docs/dev/build/developers-catalog.xml           |  87 ----
 docs/dev/build/eclipse.include.md               |  15 -
 docs/dev/build/ide.md                           | 123 ------
 docs/dev/build/index.md                         | 184 --------
 docs/dev/build/tests.md                         |  26 --
 docs/dev/build/toc.json                         |   8 -
 docs/dev/code/entity.md                         |  91 ----
 docs/dev/code/index.include.md                  |  99 -----
 docs/dev/code/index.md                          |   7 -
 docs/dev/code/policy.md                         |  47 ---
 docs/dev/code/toc.json                          |  10 -
 docs/dev/how-to-contrib.md                      |  38 --
 docs/dev/index.md                               |   7 -
 docs/dev/links.md                               |  18 -
 docs/dev/tips/index.md                          |  50 ---
 docs/dev/tips/local-artifact-repo.md            |  32 --
 docs/dev/tips/logging.md                        | 144 -------
 docs/dev/tips/release.md                        | 286 -------------
 docs/dev/tips/standards.md                      |  15 -
 docs/dev/tips/toc.json                          |  14 -
 docs/dev/tips/update-docs.md                    |  70 ----
 docs/dev/toc.json                               |  26 --
 .../dev/build/debugging-remote-brooklyn.md      | 140 +++++++
 docs/guide/dev/build/developers-catalog.xml     |  87 ++++
 docs/guide/dev/build/eclipse.include.md         |  15 +
 docs/guide/dev/build/ide.md                     | 123 ++++++
 docs/guide/dev/build/index.md                   | 184 ++++++++
 docs/guide/dev/build/tests.md                   |  26 ++
 docs/guide/dev/build/toc.json                   |   8 +
 docs/guide/dev/code/entity.md                   |  91 ++++
 docs/guide/dev/code/index.include.md            |  99 +++++
 docs/guide/dev/code/index.md                    |   7 +
 docs/guide/dev/code/policy.md                   |  47 +++
 docs/guide/dev/code/toc.json                    |  10 +
 docs/guide/dev/how-to-contrib.md                |  38 ++
 docs/guide/dev/index.md                         |   7 +
 docs/guide/dev/links.md                         |  18 +
 docs/guide/dev/tips/index.md                    |  50 +++
 docs/guide/dev/tips/local-artifact-repo.md      |  32 ++
 docs/guide/dev/tips/logging.md                  | 144 +++++++
 docs/guide/dev/tips/release.md                  | 286 +++++++++++++
 docs/guide/dev/tips/standards.md                |  15 +
 docs/guide/dev/tips/toc.json                    |  14 +
 docs/guide/dev/tips/update-docs.md              |  70 ++++
 docs/guide/dev/toc.json                         |  26 ++
 docs/guide/index.md                             |   8 +
 docs/guide/license/index.md                     |  18 +
 docs/guide/license/license.md                   | 194 +++++++++
 docs/guide/license/toc.json                     |   4 +
 docs/guide/meta/brooklyn-gpg-public-key.asc     |  21 +
 docs/guide/meta/contact.include.md              |   9 +
 docs/guide/meta/contact.md                      |   7 +
 docs/guide/meta/irc.md                          |  31 ++
 docs/guide/meta/toc.json                        |   8 +
 docs/guide/meta/verify.md                       |  36 ++
 docs/guide/meta/versions.md                     | 110 +++++
 docs/guide/start/docs-summary.include.md        |   7 +
 docs/guide/start/docs-summary.md                |   9 +
 docs/guide/start/download.md                    | 185 ++++++++
 docs/guide/start/index.include.md               |  50 +++
 docs/guide/start/index.md                       |   8 +
 docs/guide/start/known-issues.md                |  28 ++
 docs/guide/start/release-notes.md               |  56 +++
 docs/guide/start/toc.json                       |  10 +
 docs/guide/start/video.md                       |   7 +
 docs/guide/start/walkthrough/index.md           | 240 +++++++++++
 .../walkthrough/wt-deployed-application-700.png | Bin 0 -> 176494 bytes
 .../walkthrough/wt-deployed-application.png     | Bin 0 -> 127347 bytes
 .../guide/start/walkthrough/wt-starting-700.png | Bin 0 -> 303892 bytes
 docs/guide/start/walkthrough/wt-starting.png    | Bin 0 -> 332710 bytes
 .../walkthrough/wt-tree-jboss-sensors-700.png   | Bin 0 -> 268853 bytes
 .../start/walkthrough/wt-tree-jboss-sensors.png | Bin 0 -> 169929 bytes
 docs/guide/toc-menu.json                        |  20 +
 docs/guide/toc.json                             |  21 +
 docs/guide/use/api/index.md                     |  11 +
 docs/guide/use/contact.md                       |   7 +
 docs/guide/use/examples/before-begin.include.md |  57 +++
 .../console-geoscaling-details-w700.png         | Bin 0 -> 167441 bytes
 .../console-geoscaling-details.png              | Bin 0 -> 176651 bytes
 .../global-web-fabric/console-map-w700.png      | Bin 0 -> 201060 bytes
 .../examples/global-web-fabric/console-map.png  | Bin 0 -> 331520 bytes
 .../geopaas-deployed-app-w700.png               | Bin 0 -> 153738 bytes
 .../global-web-fabric/geopaas-deployed-app.png  | Bin 0 -> 114615 bytes
 .../use/examples/global-web-fabric/index.md     | 378 +++++++++++++++++
 docs/guide/use/examples/index.md                |  18 +
 docs/guide/use/examples/messaging/index.md      | 183 ++++++++
 .../nosql-cassandra/cassandra.include.md        | 282 +++++++++++++
 .../guide/use/examples/nosql-cassandra/index.md |   7 +
 docs/guide/use/examples/simple-web-cluster.md   |   9 +
 docs/guide/use/examples/toc.json                |  13 +
 docs/guide/use/examples/webcluster.md           |   9 +
 docs/guide/use/examples/webcluster/index.md     |   7 +
 .../examples/webcluster/webcluster.include.md   | 124 ++++++
 .../use/guide/defining-applications/Chef.png    | Bin 0 -> 36222 bytes
 .../defining-applications/advanced-concepts.md  | 137 ++++++
 .../guide/defining-applications/archetype.md    |  64 +++
 .../defining-applications/basic-concepts.md     |  95 +++++
 ...ooklyn-flow-websequencediagrams.com-w400.png | Bin 0 -> 58518 bytes
 .../brooklyn-flow-websequencediagrams.com.png   | Bin 0 -> 106928 bytes
 .../defining-applications/chef-blueprints.md    | 277 ++++++++++++
 .../guide/defining-applications/common-usage.md | 145 +++++++
 .../defining-applications/creating-yaml.md      | 417 +++++++++++++++++++
 .../defining-applications/deploying-yaml.md     |  37 ++
 .../example_files/tomcat_multi-location.java    |  15 +
 .../example_files/tomcat_nginx.java             |  17 +
 .../example_files/tomcat_simple.java            |   9 +
 .../appserver-clustered-w-db-concise.yaml       |  15 +
 .../example_yaml/appserver-clustered-w-db.yaml  |  18 +
 .../appserver-configured-in-config.yaml         |   6 +
 .../example_yaml/appserver-configured.yaml      |   5 +
 .../appserver-w-db-other-flavor.yaml            |  17 +
 .../example_yaml/appserver-w-db.yaml            |  15 +
 .../example_yaml/appserver-w-policy.yaml        |  26 ++
 .../example_yaml/cluster-vm.yaml                |  12 +
 .../example_yaml/mysql-chef-1.yaml              |  24 ++
 .../example_yaml/mysql-chef-2.yaml              |  28 ++
 .../simple-appserver-with-location-byon.yaml    |  12 +
 .../simple-appserver-with-location.yaml         |   8 +
 .../example_yaml/simple-appserver.yaml          |   4 +
 .../example_yaml/simple-vm.yaml                 |   8 +
 .../example_yaml/vanilla-bash-netcat-file.yaml  |   6 +
 .../vanilla-bash-netcat-restarter.yaml          |  20 +
 .../vanilla-bash-netcat-w-client.yaml           |  72 ++++
 .../example_yaml/vanilla-bash-netcat.yaml       |  18 +
 .../use/guide/defining-applications/examples.md | 120 ++++++
 .../defining-applications/service-state.md      |  73 ++++
 .../use/guide/defining-applications/toc.json    |  19 +
 .../web-console-yaml-700.png                    | Bin 0 -> 138229 bytes
 .../defining-applications/web-console-yaml.png  | Bin 0 -> 661136 bytes
 .../defining-applications/yaml-reference.md     | 183 ++++++++
 docs/guide/use/guide/entities/index.md          | 133 ++++++
 docs/guide/use/guide/entities/toc.json          |  12 +
 docs/guide/use/guide/extras/index.md            | 160 +++++++
 docs/guide/use/guide/extras/toc.json            |  11 +
 docs/guide/use/guide/guide_toc.json             |  25 ++
 docs/guide/use/guide/index.md                   |  33 ++
 docs/guide/use/guide/locations/index.md         | 104 +++++
 docs/guide/use/guide/locations/toc.json         |   1 +
 docs/guide/use/guide/management/index.md        | 407 ++++++++++++++++++
 docs/guide/use/guide/management/toc.json        |  18 +
 .../management/webconsole-dashboard-w400.png    | Bin 0 -> 137463 bytes
 .../guide/management/webconsole-dashboard.png   | Bin 0 -> 214723 bytes
 .../guide/management/webconsole-detail-w400.png | Bin 0 -> 111993 bytes
 .../use/guide/management/webconsole-detail.png  | Bin 0 -> 165359 bytes
 docs/guide/use/guide/persistence/index.md       | 289 +++++++++++++
 docs/guide/use/guide/persistence/toc.json       |  16 +
 docs/guide/use/guide/policies/index.md          | 129 ++++++
 docs/guide/use/guide/policies/toc.json          |   8 +
 .../use/guide/quickstart/brooklyn.properties    | 324 ++++++++++++++
 docs/guide/use/guide/quickstart/catalog.xml     |  23 +
 ...cation-catalog-web-cluster-with-db-large.png | Bin 0 -> 131618 bytes
 ...talog-web-cluster-with-db-location-large.png | Bin 0 -> 152721 bytes
 ...ion-catalog-web-cluster-with-db-location.png | Bin 0 -> 86425 bytes
 ...-application-catalog-web-cluster-with-db.png | Bin 0 -> 76065 bytes
 .../images/add-application-modal-yaml.png       | Bin 0 -> 68401 bytes
 .../images/jboss7-cluster-policies-large.png    | Bin 0 -> 157883 bytes
 .../images/jboss7-cluster-policies.png          | Bin 0 -> 94056 bytes
 .../images/my-db-activities-large.png           | Bin 0 -> 208313 bytes
 .../quickstart/images/my-db-activities.png      | Bin 0 -> 130262 bytes
 .../images/my-web-cluster-starting.png          | Bin 0 -> 32948 bytes
 .../my-web-cluster-stop-confirm-large.png       | Bin 0 -> 148155 bytes
 .../images/my-web-cluster-stop-confirm.png      | Bin 0 -> 79280 bytes
 .../quickstart/images/my-web-summary-large.png  | Bin 0 -> 178785 bytes
 .../guide/quickstart/images/my-web-summary.png  | Bin 0 -> 80583 bytes
 .../use/guide/quickstart/images/my-web.png      | Bin 0 -> 83081 bytes
 docs/guide/use/guide/quickstart/index.md        | 221 ++++++++++
 .../use/guide/quickstart/my-web-cluster.yaml    |  19 +
 .../guide/quickstart/policies-and-catalogs.md   |  66 +++
 docs/guide/use/guide/quickstart/toc.json        |   4 +
 docs/guide/use/guide/toc.json                   |  25 ++
 docs/guide/use/index.md                         |   9 +
 docs/guide/use/toc.json                         |  12 +
 docs/index.md                                   |   8 -
 docs/license/index.md                           |  18 -
 docs/license/license.md                         | 194 ---------
 docs/license/toc.json                           |   4 -
 docs/meta/brooklyn-gpg-public-key.asc           |  21 -
 docs/meta/contact.include.md                    |   9 -
 docs/meta/contact.md                            |   7 -
 docs/meta/irc.md                                |  31 --
 docs/meta/toc.json                              |   8 -
 docs/meta/verify.md                             |  36 --
 docs/meta/versions.md                           | 110 -----
 docs/start/docs-summary.include.md              |   7 -
 docs/start/docs-summary.md                      |   9 -
 docs/start/download.md                          | 185 --------
 docs/start/index.include.md                     |  50 ---
 docs/start/index.md                             |   8 -
 docs/start/known-issues.md                      |  28 --
 docs/start/release-notes.md                     |  56 ---
 docs/start/toc.json                             |  10 -
 docs/start/video.md                             |   7 -
 docs/start/walkthrough/index.md                 | 240 -----------
 .../walkthrough/wt-deployed-application-700.png | Bin 176494 -> 0 bytes
 .../walkthrough/wt-deployed-application.png     | Bin 127347 -> 0 bytes
 docs/start/walkthrough/wt-starting-700.png      | Bin 303892 -> 0 bytes
 docs/start/walkthrough/wt-starting.png          | Bin 332710 -> 0 bytes
 .../walkthrough/wt-tree-jboss-sensors-700.png   | Bin 268853 -> 0 bytes
 .../start/walkthrough/wt-tree-jboss-sensors.png | Bin 169929 -> 0 bytes
 docs/toc-menu.json                              |  20 -
 docs/toc.json                                   |  21 -
 docs/use/api/index.md                           |  11 -
 docs/use/contact.md                             |   7 -
 docs/use/examples/before-begin.include.md       |  57 ---
 .../console-geoscaling-details-w700.png         | Bin 167441 -> 0 bytes
 .../console-geoscaling-details.png              | Bin 176651 -> 0 bytes
 .../global-web-fabric/console-map-w700.png      | Bin 201060 -> 0 bytes
 .../examples/global-web-fabric/console-map.png  | Bin 331520 -> 0 bytes
 .../geopaas-deployed-app-w700.png               | Bin 153738 -> 0 bytes
 .../global-web-fabric/geopaas-deployed-app.png  | Bin 114615 -> 0 bytes
 docs/use/examples/global-web-fabric/index.md    | 378 -----------------
 docs/use/examples/index.md                      |  18 -
 docs/use/examples/messaging/index.md            | 183 --------
 .../nosql-cassandra/cassandra.include.md        | 282 -------------
 docs/use/examples/nosql-cassandra/index.md      |   7 -
 docs/use/examples/simple-web-cluster.md         |   9 -
 docs/use/examples/toc.json                      |  13 -
 docs/use/examples/webcluster.md                 |   9 -
 docs/use/examples/webcluster/index.md           |   7 -
 .../examples/webcluster/webcluster.include.md   | 124 ------
 docs/use/guide/defining-applications/Chef.png   | Bin 36222 -> 0 bytes
 .../defining-applications/advanced-concepts.md  | 137 ------
 .../guide/defining-applications/archetype.md    |  64 ---
 .../defining-applications/basic-concepts.md     |  95 -----
 ...ooklyn-flow-websequencediagrams.com-w400.png | Bin 58518 -> 0 bytes
 .../brooklyn-flow-websequencediagrams.com.png   | Bin 106928 -> 0 bytes
 .../defining-applications/chef-blueprints.md    | 277 ------------
 .../guide/defining-applications/common-usage.md | 145 -------
 .../defining-applications/creating-yaml.md      | 417 -------------------
 .../defining-applications/deploying-yaml.md     |  37 --
 .../example_files/tomcat_multi-location.java    |  15 -
 .../example_files/tomcat_nginx.java             |  17 -
 .../example_files/tomcat_simple.java            |   9 -
 .../appserver-clustered-w-db-concise.yaml       |  15 -
 .../example_yaml/appserver-clustered-w-db.yaml  |  18 -
 .../appserver-configured-in-config.yaml         |   6 -
 .../example_yaml/appserver-configured.yaml      |   5 -
 .../appserver-w-db-other-flavor.yaml            |  17 -
 .../example_yaml/appserver-w-db.yaml            |  15 -
 .../example_yaml/appserver-w-policy.yaml        |  26 --
 .../example_yaml/cluster-vm.yaml                |  12 -
 .../example_yaml/mysql-chef-1.yaml              |  24 --
 .../example_yaml/mysql-chef-2.yaml              |  28 --
 .../simple-appserver-with-location-byon.yaml    |  12 -
 .../simple-appserver-with-location.yaml         |   8 -
 .../example_yaml/simple-appserver.yaml          |   4 -
 .../example_yaml/simple-vm.yaml                 |   8 -
 .../example_yaml/vanilla-bash-netcat-file.yaml  |   6 -
 .../vanilla-bash-netcat-restarter.yaml          |  20 -
 .../vanilla-bash-netcat-w-client.yaml           |  72 ----
 .../example_yaml/vanilla-bash-netcat.yaml       |  18 -
 .../use/guide/defining-applications/examples.md | 120 ------
 .../defining-applications/service-state.md      |  73 ----
 docs/use/guide/defining-applications/toc.json   |  19 -
 .../web-console-yaml-700.png                    | Bin 138229 -> 0 bytes
 .../defining-applications/web-console-yaml.png  | Bin 661136 -> 0 bytes
 .../defining-applications/yaml-reference.md     | 183 --------
 docs/use/guide/entities/index.md                | 133 ------
 docs/use/guide/entities/toc.json                |  12 -
 docs/use/guide/extras/index.md                  | 160 -------
 docs/use/guide/extras/toc.json                  |  11 -
 docs/use/guide/guide_toc.json                   |  25 --
 docs/use/guide/index.md                         |  33 --
 docs/use/guide/locations/index.md               | 104 -----
 docs/use/guide/locations/toc.json               |   1 -
 docs/use/guide/management/index.md              | 407 ------------------
 docs/use/guide/management/toc.json              |  18 -
 .../management/webconsole-dashboard-w400.png    | Bin 137463 -> 0 bytes
 .../guide/management/webconsole-dashboard.png   | Bin 214723 -> 0 bytes
 .../guide/management/webconsole-detail-w400.png | Bin 111993 -> 0 bytes
 docs/use/guide/management/webconsole-detail.png | Bin 165359 -> 0 bytes
 docs/use/guide/persistence/index.md             | 289 -------------
 docs/use/guide/persistence/toc.json             |  16 -
 docs/use/guide/policies/index.md                | 129 ------
 docs/use/guide/policies/toc.json                |   8 -
 docs/use/guide/quickstart/brooklyn.properties   | 324 --------------
 docs/use/guide/quickstart/catalog.xml           |  23 -
 ...cation-catalog-web-cluster-with-db-large.png | Bin 131618 -> 0 bytes
 ...talog-web-cluster-with-db-location-large.png | Bin 152721 -> 0 bytes
 ...ion-catalog-web-cluster-with-db-location.png | Bin 86425 -> 0 bytes
 ...-application-catalog-web-cluster-with-db.png | Bin 76065 -> 0 bytes
 .../images/add-application-modal-yaml.png       | Bin 68401 -> 0 bytes
 .../images/jboss7-cluster-policies-large.png    | Bin 157883 -> 0 bytes
 .../images/jboss7-cluster-policies.png          | Bin 94056 -> 0 bytes
 .../images/my-db-activities-large.png           | Bin 208313 -> 0 bytes
 .../quickstart/images/my-db-activities.png      | Bin 130262 -> 0 bytes
 .../images/my-web-cluster-starting.png          | Bin 32948 -> 0 bytes
 .../my-web-cluster-stop-confirm-large.png       | Bin 148155 -> 0 bytes
 .../images/my-web-cluster-stop-confirm.png      | Bin 79280 -> 0 bytes
 .../quickstart/images/my-web-summary-large.png  | Bin 178785 -> 0 bytes
 .../guide/quickstart/images/my-web-summary.png  | Bin 80583 -> 0 bytes
 docs/use/guide/quickstart/images/my-web.png     | Bin 83081 -> 0 bytes
 docs/use/guide/quickstart/index.md              | 221 ----------
 docs/use/guide/quickstart/my-web-cluster.yaml   |  19 -
 .../guide/quickstart/policies-and-catalogs.md   |  66 ---
 docs/use/guide/quickstart/toc.json              |   4 -
 docs/use/guide/toc.json                         |  25 --
 docs/use/index.md                               |   9 -
 docs/use/toc.json                               |  12 -
 300 files changed, 7700 insertions(+), 7700 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/build/debugging-remote-brooklyn.md
----------------------------------------------------------------------
diff --git a/docs/dev/build/debugging-remote-brooklyn.md b/docs/dev/build/debugging-remote-brooklyn.md
deleted file mode 100644
index d924804..0000000
--- a/docs/dev/build/debugging-remote-brooklyn.md
+++ /dev/null
@@ -1,140 +0,0 @@
----
-layout: guide-normal
-title: Brooklyn Remote Debugging
-toc: /toc.json
----
-
-Usually during development, you will be running Brooklyn from your IDE (see [IDE Setup](ide.html)), in which case
-debugging is as simple as setting a breakpoint. There may however be times when you need to debug an existing remote
-Brooklyn instance (often referred to as Resident Brooklyn, or rBrooklyn) on another machine, usually in the cloud.
-
-Thankfully, the tools are available to do this, and setting it up is quite straightforward. The steps are as follows:
-
-* [Getting the right source code version](#sourceCodeVersion)
-* [Starting Brooklyn with a debug listener](#startingBrooklyn)
-* [Creating an SSH tunnel](#sshTunnel)
-* [Connecting your IDE](#connectingIDE)
-
-## <a name="sourceCodeVersion"></a>Getting the right source code version
-The first step is to ensure that your local copy of the source code is at the version used to build the remote Brooklyn
-instance. The git commit that was used to build Brooklyn is available via the REST API:
-
-```
-http://<remote-address>:<remote-port>/v1/server/version
-```
-
-This should return details of the build as a JSON string similar to the following (formatted for clarity):
-
-```JSON
-{
-    "version": "0.7.0-SNAPSHOT",
-    "buildSha1": "c0fdc15291702281acdebf1b11d431a6385f5224",
-    "buildBranch": "UNKNOWN"
-}
-```
-
-The value that we're interested in is `buildSha1`. This is the git commit that was used to build Brooklyn. We can now
-checkout and build the Brooklyn code at this commit by running the following in the root of your Brooklyn repo:
-
-```
-git checkout c0fdc15291702281acdebf1b11d431a6385f5224
-mvn clean install -DskipTests
-```
-
-Whilst building the code isn't strictly necessary, it can help prevent some IDE issues.
-
-## <a name="startingBrooklyn"></a>Starting Brooklyn with a debug listener
-By default, Brooklyn does not listen for a debugger to be attached, however this behaviour can be set by setting JAVA_OPTS,
-which will require a restart of the Brooklyn node. To do this, SSH to the remote Brooklyn node and run the following in the
-root of the Brooklyn installation:
-
-```
-# NOTE: Running this kill command will lose existing apps and machines if persistence is disabled.
-kill `cat pid_java`
-export JAVA_OPTS="-Xms256m -Xmx1g -XX:MaxPermSize=256m -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:8888,server=y,suspend=n"
-bin/brooklyn launch &
-```
-
-If `JAVA_OPTS` is not set, Brooklyn will automatically set it to `"-Xms256m -Xmx1g -XX:MaxPermSize=256m"`, which is why
-we have prepended the agentlib settings with these values here.
-
-You should see the following in the console output:
-
-```
-Listening for transport dt_socket at address: 8888
-```
-
-This will indicate the Brooklyn is listening on port 8888 for a debugger to be attached.
-
-## <a name="sshTunnel"></a>Creating an SSH tunnel
-If port 8888 is accessible on the remote Brooklyn server, then you can skip this step and simply use the address of the
-server in place of 127.0.0.1 in the [Connecting your IDE](#connectingIDE) section below. It will normally be possible to
-make the port accessible by configuring Security Groups, iptables, endpoints etc., but for a quick ad-hoc connection it's
-usually simpler to create an SSH tunnel. This will create an open SSH connection that will redirect traffic from a port
-on a local interface via SSH to a port on the remote machine. To create the tunnel, run the following on your local
-machine:
-
-```
-# replace this with the address or IP of the remote Brooklyn node
-REMOTE_HOST=<remote-address>
-# if you wish to use a different port, this value must match the port specified in the JAVA_OPTS
-REMOTE_PORT=8888 
-# if you wish to use a different local port, this value must match the port specified in the IDE configuration
-LOCAL_PORT=8888 
-# set this to the login user you use to SSH to the remote Brooklyn node
-SSH_USER=root 
-# The private key file used to SSH to the remote node. If you use a password, see the alternative command below
-PRIVATE_KEY_FILE=~/.ssh/id_rsa 
-
-ssh -YNf -i $PRIVATE_KEY_FILE -l $SSH_USER -L $LOCAL_PORT:127.0.0.1:$REMOTE_PORT $REMOTE_HOST
-
-```
-
-If you use a password to SSH to the remote Brooklyn node, simply remove the `-i $PRIVATE_KEY_FILE` section like so:
-
-```
-ssh -YNf -l $SSH_USER -L $LOCAL_PORT:127.0.0.1:$REMOTE_PORT $REMOTE_HOST
-```
-
-If you are using a password to connect, you will be prompted to enter your password to connect to the remote node upon
-running the SSH command.
-
-The SSH tunnel should now be redirecting traffic from port 8888 on the local 127.0.0.1 network interface via the SSH 
-tunnel to port 8888 on the remote 127.0.0.1 interface. It should now be possible to connect the debugger and start
-debugging.
-
-## <a name="connectingIDE"></a> Connecting your IDE
-Setting up your IDE will differ depending upon which IDE you are using. Instructions are given here for Eclipse and
-IntelliJ, and have been tested with Eclipse Luna and IntelliJ Ultimate 14.
-
-### Eclipse Setup
-To debug using Eclipse, first open the Brooklyn project in Eclipse (see [IDE Setup](ide.html)).
-
-Now create a debug configuration by clicking `Run` | `Debug Configurations...`. You will then be presented with the 
-Debug Configuration dialog.
-
-Select `Remote Java Application` from the list and click the 'New' button to create a new configuration. Set the name
-to something suitable such as 'Remote debug on 8888'. The Project can be set to any of the Brooklyn projects, the 
-Connection Type should be set to 'Standard (Socket Attach)'. The Host should be set to either localhost or 127.0.0.1
-and the Port should be set to 8888. Click 'Debug' to start debugging.
-
-### IntelliJ Setup
-To debug using IntelliJ, first open the Brooklyn project in IntelliJ (see [IDE Setup](ide.html)).
-
-Now create a debug configuration by clicking `Run` | `Edit Configurations`. You will then be presented with the
-Run/Debug Configurations dialog.
-
-Click on the `+` button and select 'Remote' to create a new remote configuration. Set the name to something suitable
-such as 'Remote debug on 8888'. The first three sections simply give the command line arguments for starting the java
-process using different versions of java, however we have already done this in 
-[Starting Brooklyn with a debug listener](#startingBrooklyn). The Transport option should be set to 'Socket', the Debugger Mode should be set to 'Attach', the
-Host should be set to localhost or 127.0.0.1 (or the address of the remote machine if you are not using an SSH tunnel),
-and the Port should be set to 8888. The 'Search sources' section should be set to `<whole project>`. Click OK to save the
-configuration, then select the configuration from the configurations drop-down and click the debug button to start
-debugging.
-
-### Testing
-The easiest way to test that remote debugging has been setup correctly is to set a breakpoint and see if it is hit. An
-easy place to start is to create a breakpoint in the `ServerResource.java` class, in the `getStatus()` 
-method. 
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/build/developers-catalog.xml
----------------------------------------------------------------------
diff --git a/docs/dev/build/developers-catalog.xml b/docs/dev/build/developers-catalog.xml
deleted file mode 100644
index f190024..0000000
--- a/docs/dev/build/developers-catalog.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<catalog>
-    <name>Brooklyn Developers Catalog</name>
-
-	<template type="io.cloudsoft.cloudera.SampleClouderaManagedCluster" name="Cloudera CDH4">
-		<description>Launches Cloudera Distribution for Hadoop Manager with a Cloudera Manager and an initial cluster of 4 CDH nodes
-		(resizable) and default services including HDFS, MapReduce, and HBase</description>
-		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/cloudera-icon.jpeg</iconUrl>
-	</template>
-	
-	<template type="io.cloudsoft.mapr.MyM3App" name="M3 Cluster">
-		<description>Map Reduce using MapR</description>
-		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/mapr-icon.png</iconUrl>
-	</template>
-	
-	<template type="brooklyn.demo.SimpleMongoDBReplicaSet" name="Simple MongoDB replica set">
-        <description>Launches a MongoDB replica set</description>
-        <iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/mongo-db-icon.jpeg</iconUrl>
-    </template>
-    
-	<template type="brooklyn.example.cloudfoundry.MovableCloudFoundryClusterExample" name="Stackato Movable CloudFoundry Cluster Example">
-		<description>Brooklyn Stackato</description>
-		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/stackato-icon.jpeg</iconUrl>
-	</template>
-	
-	<template type="brooklyn.example.cloudfoundry.MovableElasticWebAppCluster" name="Stackato Movable Elastic Web Cluster">
-		<description>Brooklyn Stackato</description>
-		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/stackato-icon.jpeg</iconUrl>
-	</template>
-	
-	<template type="io.cloudsoft.socialapps.drupal.examples.BasicDrupalApp" name="Basic Drupal App">
-		<description>Brooklyn Social Apps - Basic. (Requires Debian)</description>
-		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/drupal-icon.png</iconUrl>
-	</template>
-	
-	<template type="io.cloudsoft.socialapps.drupal.examples.ClusteredDrupalApp" name="Clustered Drupal App">
-		<description>Brooklyn Social Apps - Cluster. (Requires Debian)</description>
-		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/drupal-text-icon.png</iconUrl>
-	</template> 
-    
-    <template type="brooklyn.extras.cloudfoundry.CloudFoundryJavaClusterExample" name="Cloud Foundry Web App">
-		<description>Deploys a web application to a Cloud Foundry target</description>
-		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/cloud-foundry-logo-icon.png</iconUrl>
-	</template>
-	
-	<template type="brooklyn.demo.SimpleRedisCluster" name="Redis Cluster">
-		<description>Launches a Redis cluster</description>
-		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/redis-sq-icon.png</iconUrl>
-	</template>
-	
-    <template type="brooklyn.demo.SimpleCassandraCluster" name="Cassandra Cluster">
-		<description>Launches a Cassandra cluster</description>
-		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/cassandra-sq-icon.jpg</iconUrl>
-	</template>
-	
-	<template type="brooklyn.demo.SimpleCouchDBCluster" name="CouchDB Cluster">
-		<description>Launches a CouchDB cluster</description>
-		<iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/couchdb-logo-icon.png</iconUrl>
-	</template>
-
-    <template type="brooklyn.demo.GlobalWebFabricExample" name="Demo 2: GeoDNS Web Fabric DB">
-      <description>Deploys a demonstration web application to JBoss clusters around the world</description>
-      <iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/JBoss_by_Red_Hat-icon.png</iconUrl>
-    </template>
-
-    <template type="brooklyn.demo.WebClusterDatabaseExample" name="Demo 1: Web Cluster with DB">
-      <description>Deploys a demonstration web application to a managed JBoss cluster with elasticity, persisting to a MySQL</description>
-      <iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/JBoss_by_Red_Hat-icon.png</iconUrl>
-    </template>
-    
-    
-    <classpath> 
-      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-simple-web-cluster/0.7.0-SNAPSHOT/brooklyn-example-simple-web-cluster-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->   
-      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-global-web-fabric/0.7.0-SNAPSHOT/brooklyn-example-global-web-fabric-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->        
-      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-global-web-fabric/0.7.0-SNAPSHOT/brooklyn-example-global-web-fabric-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
-      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-portable-cloudfoundry/0.7.0-SNAPSHOT/brooklyn-example-portable-cloudfoundry-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
-      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-simple-web-cluster/0.7.0-SNAPSHOT/brooklyn-example-simple-web-cluster-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
-      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.7.0-SNAPSHOT/brooklyn-example-hello-world-sql-webapp-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
-      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-simple-messaging-pubsub/0.7.0-SNAPSHOT/brooklyn-example-simple-messaging-pubsub-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
-      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-examples-parent/0.7.0-SNAPSHOT/brooklyn-examples-parent-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
-      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-hello-world-webapp/0.7.0-SNAPSHOT/brooklyn-example-hello-world-webapp-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
-      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-example-simple-nosql-cluster/0.7.0-SNAPSHOT/brooklyn-example-simple-nosql-cluster-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
-      <entry>file://~/.m2/repository/io/brooklyn/example/brooklyn-examples-webapps-parent/0.7.0-SNAPSHOT/brooklyn-examples-webapps-parent-0.7.0-SNAPSHOT.jar</entry> <!--  BROOKLYN_VERSION  -->
-    </classpath>
-
-
-</catalog>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/build/eclipse.include.md
----------------------------------------------------------------------
diff --git a/docs/dev/build/eclipse.include.md b/docs/dev/build/eclipse.include.md
deleted file mode 100644
index b1cf5ea..0000000
--- a/docs/dev/build/eclipse.include.md
+++ /dev/null
@@ -1,15 +0,0 @@
-
-- Maven Plugin: m2e from [download.eclipse.org/technology/m2e/releases](http://download.eclipse.org/technology/m2e/releases), or for kepler [http://download.eclipse.org/releases/kepler](http://download.eclipse.org/releases/kepler)
-  (typically bundled with Eclipse or available in the default update site set)
-
-- Git Plugin: egit from [download.eclipse.org/egit/updates](http://download.eclipse.org/egit/updates)
-  (typically bundled with Eclipse or available in the default update site set)
-
-- Groovy Plugin: GRECLIPSE from 
-  [dist.springsource.org/release/GRECLIPSE/e4.3](http://dist.springsource.org/release/GRECLIPSE/e4.3) 
-  (or for Eclipse [4.2](http://dist.springsource.org/release/GRECLIPSE/e4.2) 
-  or [3.7](http://dist.springsource.org/release/GRECLIPSE/e3.7)).
-  Be sure to include Groovy 2.3.4 compiler support and Maven-Eclipse (m2e) support. 
-  More details are at the [groovy update site](http://groovy.codehaus.org/Eclipse+Plugin).
-
-- TestNG Plugin: beust TestNG from [beust.com/eclipse](http://beust.com/eclipse)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/build/ide.md
----------------------------------------------------------------------
diff --git a/docs/dev/build/ide.md b/docs/dev/build/ide.md
deleted file mode 100644
index bdc7478..0000000
--- a/docs/dev/build/ide.md
+++ /dev/null
@@ -1,123 +0,0 @@
----
-layout: guide-normal
-title: IDE Setup
-toc: /toc.json
----
-
-Gone are the days when IDE integration always just works...  Maven and Eclipse fight, 
-neither quite gets along perfectly with Groovy,
-git branch switches (sooo nice) can be slow, etc etc.
-
-But with a bit of a dance the IDE can still be your friend,
-making it much easier to run tests and debug.
-
-As a general tip, don't always trust the IDE to build correctly; if you hit a snag,
-do a command-line ``mvn clean install`` (optionally with ``-DskipTests``)
-then refresh the project. 
-
-See instructions below for specific IDEs.
-
-
-## Eclipse
-
-If you're an Eclipse user, you'll probably want the Maven (m2e) plugin
-and the Groovy Eclipse plugin (used for testing and examples primarily).
-You may also want Git and TestNG plugins.
-You can install these using Help -> Install New Software, or from the Eclipse Marketplace:
-
-{% readj eclipse.include.md %}
-
-As of this writing, Eclipse 4.2 and Eclipse 4.3 are commonly used, 
-and the codebase can be imported (Import -> Existing Maven Projects) 
-and successfully built and run inside an IDE.
-However there are quirks, and mileage may vary.
-
-If you encounter issues, the following hints may be helpful:
-
-* If you attempt to import projects before the plugins are installed, you may encounter errors such as 
-  '``No marketplace entries found to handle maven-compiler-plugin:2.3.2:compile in Eclipse``',
-  and the projects will not be recognized as java projects. If you do, simply cancel the import 
-  (or delete the imported projects if they have been imported) and install the plugins as described above.
-  If you have installed plugins from alternative locations, remove them and re-install them from the locations
-  specified above.
-
-* A quick command-line build (`mvn clean install -DskipTests`) followed by a workspace refresh
-  can be useful to re-populate files which need to be copied to `target/`
- 
-* m2e likes to put `excluding="**"` on `resources` directories; if you're seeing funny missing files
-  (things like not resolving jclouds/aws-ec2 locations or missing WARs), try building clean install
-  from the command-line then doing Maven -> Update Project (clean uses a maven-replacer-plugin to fix 
-  `.classpath`s).
-  Alternatively you can go through and remove these manually in Eclipse (Build Path -> Configure)
-  or the filesystem, or use
-  the following command to remove these rogue blocks in the generated `.classpath` files:
-
-{% highlight bash %}
-% find . -name .classpath -exec sed -i.bak 's/[ ]*..cluding="[\*\/]*\(\.java\)*"//g' {} \;
-{% endhighlight %}
-
-* If m2e reports import problems, it is usually okay (even good) to mark all to "Resolve All Later".
-  The build-helper connector is useful if you're prompted for it, but
-  do *not* install the Tycho OSGi configurator (this causes show-stopping IAE's, and we don't need Eclipse to make bundles anyway).
-  You can manually mark as permanently ignored certain errors;
-  this updates the pom.xml (and should be current).
-
-* You may need to ensure ``src/main/{java,resources}`` is created in each project dir,
-  if (older versions) complain about missing directories,
-  and the same for ``src/test/{java,resources}`` *if* there are tests (``src/test`` exists):
-
-{% highlight bash %}
-find . \( -path "*/src/main" -or -path "*/src/test" \) -exec echo {} \; -exec mkdir -p {}/{java,resources} \;
-{% endhighlight %}
-
-* You may need to add the groovy nature (or even java nature) to projects;
-  with some maven-eclipse plugins this works fine, 
-  but for others (older ones) you may need to handcraft these 
-  (either right-click the project in the Package Explorer and choose Configure,
-  or edit the ``.project`` manually adding it to the project properties).
-  The tips [for jclouds maven-eclipse](http://www.jclouds.org/documentation/devguides/using-eclipse) might be helpful. 
-
-If the pain starts to be too much, come find us on IRC #brooklyncentral or [elsewhere]({{site.url}}/meta/contact.html) and we can hopefully share our pearls.
-(And if you have a tip we haven't mentioned please let us know that too!)
-
-
-
-## IntelliJ IDEA
-
-To develop or debug Brooklyn in IntelliJ, you will need to ensure that the Groovy and TestNG plugins are installed
-via the IntelliJ IDEA | Preferences | Plugins menu. Once installed, you can open Brooklyn from the root folder, 
-(e.g. ``~/myfiles/brooklyn``) which will automatically open the subprojects.
-
-There have previously been issues where the java 6 compiler incorrectly identified the return type of functions that use
-generics. These issues have been refactored away, however may return in future. If so, you can either set the java compiler
-level to 1.7, or setup IntelliJ to use the Eclipse compiler as per the instructions provided by JetBeans:
-
-> The problem seems to be caused by bug in java compiler from JDK 1.6, it is known to sometimes produce compilation 
-> errors for complicated code involving generic types. Java compiler from JDK 1.7 compiles your code successfully so I would 
-> recommend you to consider upgrading to JDK 1.7. If it isn't possible you can switch to Eclipse Compiler (Settings | 
-> Compiler | Java Compiler | "Use Compiler" combobox).
-
-
-## Netbeans
-
-Tips from Netbeans users wanted!
-
-
-
-## Debugging Tips
-
-To debug Brooklyn, create a launch configuration which launches the ``BrooklynJavascriptGuiLauncher`` class. NOTE: You may
-need to add additional projects or folders to the classpath of the run configuration (e.g. add the brooklyn-software-nosql
-project if you wish to deploy a MongoDBServer). You will also need to ensure that the working directory is set to the jsgui
-folder. For IntelliJ, you can set the 'Working directory' of the Run/Debug Configuration to ``$MODULE_DIR/../jsgui``. For
-Eclipse, use the default option of ``${workspace_loc:brooklyn-jsgui}``.
-
-To debug the jsgui (the Brooklyn web console), you will need to build Brooklyn with -DskipOptimization to prevent the build from minifying the javascript.
-When building via the command line, use the command ``mvn clean install -DskipOptimization``, and if you are using IntelliJ IDEA, you can add the option
-to the Maven Runner by clicking on the Maven Settings icon in the Maven Projects tool window  and adding the ``skipOptimization`` property with no value.
-
-When running at the command line you can enable remote connections so that one can attach a debugger to the Java process:
-    Run Java with the following on the command line or in JAVA_OPTS: ``-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005``
-
-To debug a brooklyn instance that has been run with the above JAVA_OPTS, create a remote build configuration (IntelliJ - 
-Run | Edit Configurations | + | Remote) with the default options, ensuring the port matches the address specified in JAVA_OPTS.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/build/index.md
----------------------------------------------------------------------
diff --git a/docs/dev/build/index.md b/docs/dev/build/index.md
deleted file mode 100644
index 7dd3412..0000000
--- a/docs/dev/build/index.md
+++ /dev/null
@@ -1,184 +0,0 @@
----
-layout: guide-normal
-title: Maven Build
-toc: /toc.json
----
-
-## The Basics
-
-To build the code, you need Maven (v3) installed and Java (1.6).
-With that in place, you should be able to build everything with a:
-
-{% highlight bash %}
-brooklyn% mvn clean install
-{% endhighlight %}
-
-Key things to note if you're new to Maven:
-
-* You may need more JVM memory, e.g. at the command-line (or in `.profile`):
-
-  ``export MAVEN_OPTS="-Xmx1024m -Xms512m -XX:MaxPermSize=256m``
-
-* You can do this in specific projects as well.
-
-* Add ``-DskipTests`` to skip tests. 
-
-* Run ``-PIntegration`` to run integration tests, or ``-PLive`` to run live tests
-  ([tests described here](tests.html))
-
-* Nearly all the gory details are in the root ``pom.xml``, which is referenced by child project poms.
-
-* You can also open and use the code in your favourite IDE,
-  although you may hit a few **[snags](ide.html)**
-  (that link has some tips for resolving them too)
-
-
-## When the RAT Bites
-
-We use RAT to ensure that all files are compliant to Apache standards.  Most of the time you shouldn't see it or need to know about it, but if it detects a violation, you'll get a message such as:
-
-    [ERROR] Failed to execute goal org.apache.rat:apache-rat-plugin:0.10:check (default) on project brooklyn-parent: Too many files with unapproved license: 1 See RAT report in: /Users/alex/Data/cloudsoft/dev/gits/brooklyn/target/rat.txt -> [Help 1]
-
-If there's a problem, see the file `rat.txt` in the `target` directory of the failed project.  (Maven will show you this link in its output.)
-
-Often the problem is one of the following:
-
-* You've added a file which requires the license header but doesn't have it
-
-  **Resolution:**  Simply copy the header from another file
-
-* You've got some temporary files which RAT things should have headers
-
-  **Resolution:**  Move the files away, add headers, or turn off RAT (see below)
-
-* The project structure has changed and you have stale files (e.g. in a `target` directory)
-
-  **Resolution:**  Remove the stale files, e.g. with `git clean -df` (and if needed a `find . -name target -prune -exec rm -rf {} \;` to delete folders named `target`)
-
-To disable RAT checking on a build, set `rat.ignoreErrors`, e.g. `mvn -Drat.ignoreErrors=true clean install`.  (But note you will need RAT to pass in order for a PR to be accepted!)
-
-If there is a good reason that a file, pattern, or directory should be permanently ignored, that is easy to add inside the root `pom.xml`.
-
-
-## Other Handy Hints
-
-* On some **Ubuntu** (e.g. 10.4 LTS) maven v3 is not currently available from the repositories.
-  Some instructions for installing at are [at superuser.com](http://superuser.com/questions/298062/how-do-i-install-maven-3).
-
-* The **mvnf** script 
-  ([get the gist here](https://gist.github.com/2241800)) 
-  simplifies building selected projects, so if you just change something in ``software-webapp`` 
-  and then want to re-run the examples you can do:
-  
-  ``examples/simple-web-cluster% mvnf ../../{software/webapp,usage/all}`` 
-
-* The **developers catalog** ([developers-catalog.xml](developers-catalog.xml)) uses artifacts from your local `~/.m2/repository/...` (after building from source). This avoids unnecessary web requests to Maven Central or Sonatype, and will allow you to work off-line.
-  
-  ``wget {{site.url}}/dev/build/developers-catalog.xml > ~/.brooklyn/catalog.xml`` 
-
-## Appendix: Sample Output
-
-A healthy build will look something like the following,
-including a few warnings (which we have looked into and
-understand to be benign and hard to get rid of them,
-although we'd love to if anyone can help!):
-
-{% highlight bash %}
-brooklyn% mvn clean install
-[INFO] Scanning for projects...
-[INFO] ------------------------------------------------------------------------
-[INFO] Reactor Build Order:
-[INFO] 
-[INFO] Brooklyn Parent Project
-[INFO] Brooklyn Utilities to Support Testing (listeners etc)
-[INFO] Brooklyn Logback Includable Configuration
-[INFO] Brooklyn Common Utilities
-[INFO] Brooklyn Groovy Utilities
-[INFO] Brooklyn API
-
-...
-
-[WARNING] Ignoring project type war - supportedProjectTypes = [jar]
-
-...
-
-[WARNING] We have a duplicate org/xmlpull/v1/XmlPullParser.class in /Users/aled/.m2/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar
-
-...
-
-[INFO] — maven-assembly-plugin:2.3:single (build-distribution-dir) @ brooklyn-dist —
-[INFO] Reading assembly descriptor: src/main/config/build-distribution-dir.xml
-[WARNING] Cannot include project artifact: io.brooklyn:brooklyn-dist:jar:0.7.0-SNAPSHOT; it doesn't have an associated file or directory.
-[INFO] Copying files to /Users/aled/repos/apache/incubator-brooklyn/usage/dist/target/brooklyn-dist
-[WARNING] Assembly file: /Users/aled/repos/apache/incubator-brooklyn/usage/dist/target/brooklyn-dist is not a regular file (it may be a directory). It cannot be attached to the project build for installation or deployment.
-
-...
-
-[INFO] — maven-assembly-plugin:2.3:single (build-distribution-archive) @ brooklyn-dist —
-[INFO] Reading assembly descriptor: src/main/config/build-distribution-archive.xml
-[WARNING] Cannot include project artifact: io.brooklyn:brooklyn-dist:jar:0.7.0-SNAPSHOT; it doesn't have an associated file or directory.
-[INFO] Building tar: /Users/aled/repos/apache/incubator-brooklyn/usage/dist/target/brooklyn-0.7.0-SNAPSHOT-dist.tar.gz
-[WARNING] Cannot include project artifact: io.brooklyn:brooklyn-dist:jar:0.7.0-SNAPSHOT; it doesn't have an associated file or directory.
-
-...
-
-[WARNING] Don't override file /Users/aled/repos/apache/incubator-brooklyn/usage/archetypes/quickstart/target/test-classes/projects/integration-test-1/project/brooklyn-sample/src/main/resources/sample-icon.png
-
-...
-
-[INFO] Reactor Summary:
-[INFO] 
-[INFO] Brooklyn Parent Project ........................... SUCCESS [3.072s]
-[INFO] Brooklyn Utilities to Support Testing (listeners etc)  SUCCESS [3.114s]
-[INFO] Brooklyn Logback Includable Configuration ......... SUCCESS [0.680s]
-[INFO] Brooklyn Common Utilities ......................... SUCCESS [7.263s]
-[INFO] Brooklyn Groovy Utilities ......................... SUCCESS [5.193s]
-[INFO] Brooklyn API ...................................... SUCCESS [2.146s]
-[INFO] Brooklyn Test Support ............................. SUCCESS [2.517s]
-[INFO] CAMP Server Parent Project ........................ SUCCESS [0.075s]
-[INFO] CAMP Base ......................................... SUCCESS [4.079s]
-[INFO] Brooklyn REST Swagger Apidoc Utilities ............ SUCCESS [1.983s]
-[INFO] Brooklyn Logback Configuration .................... SUCCESS [0.625s]
-[INFO] CAMP Server ....................................... SUCCESS [5.446s]
-[INFO] Brooklyn Core ..................................... SUCCESS [1:24.122s]
-[INFO] Brooklyn Policies ................................. SUCCESS [44.425s]
-[INFO] Brooklyn Hazelcast Storage ........................ SUCCESS [7.143s]
-[INFO] Brooklyn Jclouds Location Targets ................. SUCCESS [16.488s]
-[INFO] Brooklyn Secure JMXMP Agent ....................... SUCCESS [8.634s]
-[INFO] Brooklyn JMX RMI Agent ............................ SUCCESS [2.315s]
-[INFO] Brooklyn Software Base ............................ SUCCESS [28.538s]
-[INFO] Brooklyn Network Software Entities ................ SUCCESS [3.896s]
-[INFO] Brooklyn OSGi Software Entities ................... SUCCESS [4.589s]
-[INFO] Brooklyn Web App Software Entities ................ SUCCESS [17.484s]
-[INFO] Brooklyn Messaging Software Entities .............. SUCCESS [7.106s]
-[INFO] Brooklyn Database Software Entities ............... SUCCESS [5.229s]
-[INFO] Brooklyn NoSQL Data Store Software Entities ....... SUCCESS [11.901s]
-[INFO] Brooklyn Monitoring Software Entities ............. SUCCESS [4.027s]
-[INFO] Brooklyn CAMP REST API ............................ SUCCESS [15.285s]
-[INFO] Brooklyn REST API ................................. SUCCESS [4.489s]
-[INFO] Brooklyn REST Server .............................. SUCCESS [30.270s]
-[INFO] Brooklyn REST Client .............................. SUCCESS [7.007s]
-[INFO] Brooklyn REST JavaScript Web GUI .................. SUCCESS [24.397s]
-[INFO] Brooklyn Launcher ................................. SUCCESS [15.923s]
-[INFO] Brooklyn Command Line Interface ................... SUCCESS [9.279s]
-[INFO] Brooklyn All Things ............................... SUCCESS [13.875s]
-[INFO] Brooklyn Distribution ............................. SUCCESS [49.370s]
-[INFO] Brooklyn Quick-Start Project Archetype ............ SUCCESS [12.053s]
-[INFO] Brooklyn Examples Aggregator Project .............. SUCCESS [0.085s]
-[INFO] Brooklyn Examples Support Aggregator Project - Webapps  SUCCESS [0.053s]
-[INFO] hello-world-webapp Maven Webapp ................... SUCCESS [0.751s]
-[INFO] hello-world-sql-webapp Maven Webapp ............... SUCCESS [0.623s]
-[INFO] Brooklyn Simple Web Cluster Example ............... SUCCESS [5.398s]
-[INFO] Brooklyn Global Web Fabric Example ................ SUCCESS [3.176s]
-[INFO] Brooklyn Simple Messaging Publish-Subscribe Example  SUCCESS [3.217s]
-[INFO] Brooklyn NoSQL Cluster Examples ................... SUCCESS [6.790s]
-[INFO] Brooklyn QA ....................................... SUCCESS [7.117s]
-[INFO] ------------------------------------------------------------------------
-[INFO] BUILD SUCCESS
-[INFO] ------------------------------------------------------------------------
-[INFO] Total time: 8:33.983s
-[INFO] Finished at: Mon Jul 21 14:56:46 BST 2014
-[INFO] Final Memory: 66M/554M
-[INFO] ------------------------------------------------------------------------
-
-{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/build/tests.md
----------------------------------------------------------------------
diff --git a/docs/dev/build/tests.md b/docs/dev/build/tests.md
deleted file mode 100644
index 16f6810..0000000
--- a/docs/dev/build/tests.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-layout: guide-normal
-title: Tests
-toc: /toc.json
----
-
-We have the following tests groups:
-
-*     normal (i.e. no group) -- should run quickly, not need internet, and not side effect the machine (apart from a few /tmp files)          
-*     Integration -- deploys locally, may read and write from internet, takes longer.
-          If you change an entity, rerun the relevant integration test to make sure all is well!
-*     Live -- deploys remotely, may provision machines (but should clean up, getting rid of them in a try block)
-*     Live-sanity -- a sub-set of "Live" that can be run regularly; a trade-off of optimal code coverage for the 
-      time/cost of those tests.
-*     WIP -- short for "work in progress", this will disable the test from being run by the normal brooklyn maven profiles,
-      while leaving the test enabled so that one can work on it in IDEs or run the selected test(s) from the command line.
-*     Acceptance -- this (currently little-used) group is for very long running tests, such as soak tests
-
-To run these from the command line, use something like the following:
-
-*     normal: `mvn clean install`
-*     integration: `mvn clean verify -PEssentials,Locations,Entities,Integration -Dmaven.test.failure.ignore=true`
-*     Live: `mvn clean verify -PEntities,Locations,Entities,Live -Dmaven.test.failure.ignore=true`
-*     Live-sanity: `mvn clean verify -PEntities,Locations,Entities,Live-sanity -Dmaven.test.failure.ignore=true`
-
-<!-- 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/ba6612ec/docs/dev/build/toc.json
----------------------------------------------------------------------
diff --git a/docs/dev/build/toc.json b/docs/dev/build/toc.json
deleted file mode 100644
index fca9b70..0000000
--- a/docs/dev/build/toc.json
+++ /dev/null
@@ -1,8 +0,0 @@
-[
-{ "title": "Maven",
-  "file":  "{{ site.url }}/dev/build/index.html" },
-{ "title": "IDE",
-  "file": "{{ site.url }}/dev/build/ide.html" },
-{ "title": "Tests",
-  "file":  "{{ site.url }}/dev/build/tests.html" }
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/code/entity.md
----------------------------------------------------------------------
diff --git a/docs/dev/code/entity.md b/docs/dev/code/entity.md
deleted file mode 100644
index 7001612..0000000
--- a/docs/dev/code/entity.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-layout: guide-normal
-title: Writing an Entity
-toc: /toc.json
----
-
-## Ways to write an entity
-
-There are several ways to write a new entity:
-
-* Write pure-java, extending existing base-classes and using utilities such as `HttpTool` and `BashCommands`.
-* Write scripts, and configure (e.g. using YAML) a **`VanillaSoftwareProcess`**.
-* Use Chef recipes, and wire these into the entity by using `ChefConfig` and `ChefLifecycleEffectorTasks`.
-* Use an equivalent of Chef (e.g. Salt or Puppet; support for these is currently less mature than for Chef)
-
-The rest of this section covers writing an entity in pure-java (or other JVM languages).
-
-
-## Things To Know
-
-All entities have an interface and an implementation. The methods on the interface 
-are its effectors; the interface also defines its sensors.
-
-Entities are created through the management context (rather than calling the  
-constructor directly). This returns a proxy for the entity rather than the real 
-instance, which is important in a distributed management plane.
-
-All entity implementations inherit from `AbstractEntity`, 
-often through one of the following:
-
-* **`SoftwareProcessImpl`**:  if it's a software process
-* **`VanillaJavaAppImpl`**:  if it's a plain-old-java app
-* **`JavaWebAppSoftwareProcessImpl`**:  if it's a JVM-based web-app
-* **`DynamicClusterImpl`**, **`DynamicGroupImpl`** or **`AbstractGroupImpl`**:  if it's a collection of other entities
-
-Software-based processes tend to use *drivers* to install and
-launch the remote processes onto *locations* which support that driver type.
-For example, `AbstractSoftwareProcessSshDriver` is a common driver superclass,
-targetting `SshMachineLocation` (a machine to which Brooklyn can ssh).
-The various `SoftwareProcess` entities above (and some of the exemplars 
-listed at the end of this page) have their own dedicated drivers.
-
-Finally, there are a collection of *traits*, such as `Resizable`, 
-in the package ``brooklyn.entity.trait``. These provide common
-sensors and effectors on entities, supplied as interfaces.
-Choose one (or more) as appropriate.
-
-
-
-## Key Steps
-
-So to get started:
-
-1. Create your entity interface, extending the appropriate selection from above,
-   to define the effectors and sensors.
-2. Include an annotation like `@ImplementedBy(YourEntityImpl.class)` on your interface,
-   where `YourEntityImpl` will be the class name for your entity implementation.
-3. Create your entity class, implementing your entity interface and extending the 
-   classes for your chosen entity super-types. Naming convention is a suffix "Impl"
-   for the entity class, but this is not essential.
-4. Create a driver interface, again extending as appropriate (e.g. `SoftwareProcessDriver`).
-   The naming convention is to have a suffix "Driver". 
-5. Create the driver class, implementing your driver interface, and again extending as appropriate.
-   Naming convention is to have a suffix "SshDriver" for an ssh-based implementation.
-   The correct driver implementation is found using this naming convention, or via custom
-   namings provided by the `BasicEntityDriverFactory`.
-6. Wire the `public Class getDriverInterface()` method in the entity implementation, to specify
-   your driver interface.
-7. Provide the implementation of missing lifecycle methods in your driver class (details below)
-8. Connect the sensors from your entity (e.g. overriding `connectSensors()` of `SoftwareProcessImpl`)..
-   See the sensor feeds, such as `HttpFeed` and `JmxFeed`.
-
-Any JVM language can be used to write an entity. However use of pure Java is encouraged for
-entities in core brooklyn. 
-
-
-## Helpful References
-
-A few handy pointers will help make it easy to build your own entities.
-Check out some of the exemplar existing entities
-(note, some of the other entities use deprecated utilities and a deprecated class 
-hierarchy; it is suggested to avoid these, looking at the ones below instead):
-
-* `JBoss7Server`
-* `MySqlNode`
-
-You might also find the following helpful:
-
-* **[Entity Design Tips]({{site.url}}/dev/tips/index.html#EntityDesign)**
-* The **[User Guide]({{site.url}}/use/guide/index.html)**
-* The **[Mailing List](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/)**

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/code/index.include.md
----------------------------------------------------------------------
diff --git a/docs/dev/code/index.include.md b/docs/dev/code/index.include.md
deleted file mode 100644
index a213cd6..0000000
--- a/docs/dev/code/index.include.md
+++ /dev/null
@@ -1,99 +0,0 @@
-## The Basics
-
-Brooklyn is available at [GitHub brooklyncentral/brooklyn](http://github.com/brooklyncentral/brooklyn).  Check it out using:
-
-{% highlight bash %}
-git clone git@github.com:brooklyncentral/brooklyn.git
-cd brooklyn
-{% endhighlight %}
-
-Build it with:
-
-{% highlight bash %}
-mvn clean install
-{% endhighlight %}
-
-And launch it with:
-
-{% highlight bash %}
-cd usage/dist/target/brooklyn-dist/
-bin/brooklyn launch
-{% endhighlight %}
-
-Plenty of examples are in the **examples** sub-dir,
-described [here]({{site.url}}/use/examples),
-and pushed to the [brooklyn-examples](http://github.com/brooklyncentral/brooklyn-examples) 
-GitHub project when a version is released.
-
-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.url}}/use/guide/quickstart/index.html).
-This document is intended to help people become familiar with the codebase.
-
-## Project Structure
-
-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
-* **``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 
-* **``locations``**: specific location integrations
-    * **``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) 
-    * **``webapp``**: web servers (JBoss, Tomcat), load-balancers (Nginx), and DNS (Geoscaling) 
-    * **``database``**: relational databases (SQL) 
-    * **``nosql``**: datastores other than RDBMS/SQL (often better in distributed environments) 
-    * **``messaging``**: messaging systems, including Qpid, Apache MQ, RabbitMQ 
-    * **``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
-    * **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
-* **``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 
-    * **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
-    * **jsgui**: Javascript web-app for the brooklyn management web console (builds a WAR)
-    * **launcher**: for launching brooklyn, either using a main method or invoked from the cli project
-    * **logback-includes**: Various helpful logback XML files that can be included; does not contain logback.xml 
-    * **logback-xml**: Contains a logback.xml that references the include files in brooklyn-logback-includes
-    * **rest-api**: The API classes for the Brooklyn REST api
-    * **rest-client**: A client Java implementation for using the Brooklyn REST API 
-    * **rest-server**: The server-side implementation of the Brooklyn REST API
-    * **scripts**: various scripts useful for building, updating, etc. (see comments in the scripts)
-    * **qa**: longevity and stress tests
-    * **test-support**: provides Brooklyn-specific support for tests, used by nearly all projects in scope ``test``
-* **``docs``**: the markdown source code for this documentation, as described [here]({{site.url}}/dev/tips/update-docs.html)
-* **``examples``**: some canonical examples, as listed [here]({{site.url}}/use/examples)
-* **``sandbox``**: various projects, entities, and policies which the Brooklyn Project is incubating
-
- 
-## Next Steps
-
-If you're interested in building and editing the code, check out:
-
-* [Maven setup](../build/index.html)
-* [IDE setup](../build/ide.html)
-* [Tests](../build/tests.html)
-* [Tips](../tips/index.html)
-* [Remote Debugging](../build/debugging-remote-brooklyn.html)
-
-If you want to start writing your own policies and entities, have a look at:
-
-* [Writing a Brooklyn Entity](entity.html)
-* [Writing a Brooklyn Policy](policy.html)
-* Or see the [User Guide]({{ site.url }}/use/guide/index.html) 
-  on [policies]({{ site.url }}/use/guide/policies/index.html)
-  and [entities]({{ site.url }}/use/guide/entities/index.html)
-
-Where things aren't documented **please ask us** at 
-[the brooklyn mailing list](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/)
-so we can remedy this!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/code/index.md
----------------------------------------------------------------------
diff --git a/docs/dev/code/index.md b/docs/dev/code/index.md
deleted file mode 100644
index ecf9fcf..0000000
--- a/docs/dev/code/index.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-layout: guide-normal
-title: Code Structure
-toc: /toc.json
----
-
-{% readj index.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/code/policy.md
----------------------------------------------------------------------
diff --git a/docs/dev/code/policy.md b/docs/dev/code/policy.md
deleted file mode 100644
index 7bbbcad..0000000
--- a/docs/dev/code/policy.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-layout: guide-normal
-title: Writing a Policy
-toc: /toc.json
----
-
-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.
-
-Writing a policy is straightforward.
-Simply extend ``AbstractPolicy``,
-overriding the ``setEntity`` method to supply any subscriptions desired:
-
-{% highlight java %}
-    @Override
-    public void setEntity(EntityLocal entity) {
-        super.setEntity(entity)
-        subscribe(entity, TARGET_SENSOR, this)
-    }
-{% endhighlight %}
-
-and supply the computation and/or activity desired whenever that event occurs:
-
-{% highlight java %}
-    @Override
-    public void onEvent(SensorEvent<Integer> event) {
-        int val = event.getValue()
-        if (val % 2 == 1)
-            entity.sayYoureOdd();
-    }
-{% 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``. 
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/code/toc.json
----------------------------------------------------------------------
diff --git a/docs/dev/code/toc.json b/docs/dev/code/toc.json
deleted file mode 100644
index d599dbe..0000000
--- a/docs/dev/code/toc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-[
-{ "title": "Structure",
-  "file":  "{{ site.url }}/dev/code/index.html" },
-{ "title": "Writing an Entity",
-  "file": "{{ site.url }}/dev/code/entity.html" },
-{ "title": "Writing a Policy",
-  "file":  "{{ site.url }}/dev/code/policy.html" },
-{ "title": "brooklyn.git (github)",
-  "file":  "http://github.com/brooklyncentral/brooklyn" }
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/how-to-contrib.md
----------------------------------------------------------------------
diff --git a/docs/dev/how-to-contrib.md b/docs/dev/how-to-contrib.md
deleted file mode 100644
index b5a8306..0000000
--- a/docs/dev/how-to-contrib.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-layout: guide-normal
-title: How to Contribute
-toc: /toc.json
----
-
-### The Process
-
-If you've built something which you think others could use, or are interested in doing so -- 
-whether a new supported entity, or a policy, or an example --
-it's easy to give back to the community.  Just:
-
-1. **Tell [the brooklyn mailing list](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/)** about your work or interest
-
-1. **Create your fork** of the project on GitHub
-
-1. **Clone it** to your local machine and do your work on it
-
-1. **Push it**, and tell everyone about it
-
-1. **Sign the relevant Apache contributor agreement(s)**
-
-1. **Issue a pull request** from your GitHub repo
-
-The same process holds for contributing to this documentation (web site and user guide),
-but see the additional [tips for updating documentation]({{ site.url }}/dev/tips/update-docs.html).
-
-
-### Some Words of Advice
-
-* Do early-stage work in the ``/sandbox``, which means we can pulled it in to ``master`` more often --
-  keeping branches short-lived and making it easier to collaborate!
-               
-* Include javadoc and tests
-
-* See the [tips here]({{site.url}}/dev/tips/index.html)
-
-* If you get blocked, **[hollar]({{site.url}}/meta/contact.html)**!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/index.md
----------------------------------------------------------------------
diff --git a/docs/dev/index.md b/docs/dev/index.md
deleted file mode 100644
index 11377d7..0000000
--- a/docs/dev/index.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-layout: guide-normal
-title: Getting to Code
-toc: /toc.json
----
-
-{% readj code/index.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/links.md
----------------------------------------------------------------------
diff --git a/docs/dev/links.md b/docs/dev/links.md
deleted file mode 100644
index 4be8f30..0000000
--- a/docs/dev/links.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: guide-normal
-title: Development Bookmarks
-toc: ../toc.json
----
-
-
-Handy places:
-
-* **Code** is in Github at [https://github.com/brooklyncentral/brooklyn](https://github.com/brooklyncentral/brooklyn)
-
-* **Issues** are also on Github at [https://github.com/brooklyncentral/brooklyn/issues](https://github.com/brooklyncentral/brooklyn/issues)
-
-* **Maven repositories** are at [http://developers.cloudsoftcorp.com/download/maven2/](http://developers.cloudsoftcorp.com/download/maven2/) for releases 
-  and [http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/](http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/) for snapshots
-  (under ``io/brooklyn``)
-            
-* **CI server** is currently a private server managed by Cloudsoft. There is a proposal to move to CloudBees.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/tips/index.md
----------------------------------------------------------------------
diff --git a/docs/dev/tips/index.md b/docs/dev/tips/index.md
deleted file mode 100644
index 664a95e..0000000
--- a/docs/dev/tips/index.md
+++ /dev/null
@@ -1,50 +0,0 @@
----
-layout: guide-normal
-title: Miscellaneous Tips and Tricks
-toc: /toc.json
----
-
-## General Good Ways of Working
-
-* If working on something which could be contributed to Brooklyn,
-  do it in a project under the ``sandbox`` directory.
-  This means we can accept pulls more easily (as sandbox items aren't built as part of the main build)
-  and speed up collaboration.
-  
-* When debugging an entity, make sure the  [brooklyn.SSH logger](logging.html) is set to DEBUG and accessible.
- 
-* Use tests heavily!  These are pretty good to run in the IDE (once you've completed [IDE setup]({{site.url}}/dev/build/ide.html)),
-  and far quicker to spot problems than runtime, plus we get early-warning of problems introduced in the future.
-  (In particular, Groovy's laxity with compilation means it is easy to introduce silly errors which good test coverage will find much faster.)
-  
-* If you hit inexplicable problems at runtime, try clearing your Maven caches,
-  or the brooklyn-relevant parts, under ``~/.m2/repository``.
-  Also note your IDE might be recompiling at the same time as a Maven command-line build,
-  so consider turning off auto-build.
-
-
-<a name="EntityDesign"></a>
-## Entity Design Tips
-
-* Look at related entities and understand what they've done, in particular which
-  sensors and config keys can be re-used.
-  (Many are inherited from interfaces, where they are declared as constants,
-  e.g. ``Attributes`` and ``UsesJmx``.)
-  
-* Understand the location hierarchy:  software process entities typically get an ``SshMachineLocation``,
-  and use a ``*SshDriver`` to do what they need.  This will usually have a ``MachineProvisioningLocation`` parent, e.g. a
-  ``JcloudsLocation`` (e.g. AWS eu-west-1 with credentials) or possibly a ``LocalhostMachineProvisioningLocation``.
-  Clusters will take such a ``MachineProvisioningLocation`` (or a singleton list); fabircs take a list of locations.
-  Some PaaS systems have their own location model, such as ``OpenShiftLocation``.
-
-Finally, don't be shy about [talking with others]({{site.url}}/meta/contact.html), 
-that's far better than spinning your wheels (or worse, having a bad experience),
-plus it means we can hopefully improve things for other people!
-
-
-## Project Maintenance
-
-* Adding a new project may need updates to ``/pom.xml`` ``modules`` section and ``usage/all`` dependencies
- 
-* Adding a new example project may need updates to ``/pom.xml`` and ``/examples/pom.xml`` (and the documentation too!)
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/tips/local-artifact-repo.md
----------------------------------------------------------------------
diff --git a/docs/dev/tips/local-artifact-repo.md b/docs/dev/tips/local-artifact-repo.md
deleted file mode 100644
index a96c62f..0000000
--- a/docs/dev/tips/local-artifact-repo.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-layout: guide-normal
-title: Prepopulating a Local Artifact Repository
-toc: /toc.json
----
-
-On occasion it can be useful to have/control/prepopulate a local repository of entity installers <small>[1]</small>.
-
-The following command (run from `~/`) may be used to sync Cloudsoft's fallback repository to the local `~/.brooklyn/repository/` folder:
-
-	wget --directory-prefix=".brooklyn/repository/" --no-parent --relative --no-host-directories --reject="index.html*" --cut-dirs=2 --recursive -e robots=off --user-agent="Brooklyn Repository Sync" http://downloads.cloudsoftcorp.com/brooklyn/repository/
-
-Brooklyn's default search behaviour for installation artifacts is as follows:
-
-1.  The local `~/.brooklyn/repository/` folder.
-2.	The entity's installer's public download url (or an overridden url if one has been specified).
-3.	Cloudsoft's fallback repository.
-
-Cloudsoft's fallback repository <small>[2]</small> contains many of the installation artifacts used by current Brooklyn entities. 
-
-It is intended to prevent problems occurring when the public url for an installer changes (e.g. when several new versions of MySQL have been released). It is provided on an as-is and as-available basis.
-
-If you use this command to create a local repository, please respect the `--user-agent`. In future this will allow Cloudsoft to easily filter repository syncing behaviour from  fallback behaviour, allowing out-of-date entities to be more easily identified and updated. 
-
-<br />
-<small>
-<ol>
-<li>For example, when establishing a local cache or enterprise golden source, or when developing Brooklyn while offline, in planes, trains and automobiles, or other such situations of exemplary derring-do <small>[3]</small>.</li> 
-<li><a href="http://downloads.cloudsoftcorp.com/brooklyn/repository/">downloads.cloudsoftcorp.com/brooklyn/repository</a></li>
-<li>This one time, Cloudsoft ran a team hackathon in a castle in the remote Highlands of Scotland. Remote Highlands != reliable big pipe internet.</li>
-</ol>
-</small>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/dev/tips/logging.md
----------------------------------------------------------------------
diff --git a/docs/dev/tips/logging.md b/docs/dev/tips/logging.md
deleted file mode 100644
index 4e6b001..0000000
--- a/docs/dev/tips/logging.md
+++ /dev/null
@@ -1,144 +0,0 @@
----
-layout: guide-normal
-title: Logging
-toc: /toc.json
----
-
-## Logging: A Quick Overview
-
-For logging, we use **logback** which implements the slf4j API.
-This means you can use any slf4j compliant logging framework,
-with a default configuration which just works out of the box
-and bindings to the other common libraries (``java.util.logging``, ``log4j``, ...)
-if you prefer one of those.
-
-To use:
-
-* **Users**:
-If using a brooklyn binary installation, simply edit the ``logback.xml``
-or ``logback-custom.xml`` supplied in the archive, sometimes in a ``conf/``
-directory.
-
-* **Developers**:
-When setting up a new project, if you want logging it is recommended to include 
-the ``brooklyn-logback-xml`` project as an *optional* and *provided* maven dependency, 
-and then to put custom logging configuration in either ``logback-custom.xml`` or ``logback-main.xml``, 
-as described below.
-
-
-## Customizing Your Logging
-
-The project ``brooklyn-logback-xml`` supplies a ``logback.xml`` configuration,
-with a mechanism which allows it to be easily customized, consumed, and overridden.
-You may wish to include this as an *optional* dependency so that it is not forced
-upon downstream projects.  This ``logback.xml`` file supplied contains just one instruction,
-to include ``logback-main.xml``, and that file in turn includes:
-
-* ``logback-custom.xml``
-* ``brooklyn/logback-appender-file.xml``
-* ``brooklyn/logback-appender-stdout.xml``
-* ``brooklyn/logback-logger-excludes.xml``
-* ``brooklyn/logback-debug.xml``
-   
-For the most common customizations, simply create a ``logback-custom.xml`` on your classpath
-(ensuring it is loaded *before* brooklyn classes in classpath ordering in the pom)
-and supply your customizations there:  
-
-{% highlight xml %}
-<included>
-    <!-- filename to log to -->           
-    <property name="logging.basename" scope="context" value="acme-app" />
-    
-    <!-- additional loggers -->
-    <logger name="com.acme.app" level="DEBUG"/>
-</included>
-{% endhighlight %}
-
-For other configuration, you can override individual files listed above.
-For example:
-
-* To remove debug logging, create a trivial ``brooklyn/logback-debug.xml``, 
-  containing simply ``<included/>``.
-* To customise stdout logging, perhaps to give it a threshhold WARN instead of INFO,
-  create a ``brooklyn/logback-appender-stdout.xml`` which defines an appender STDOUT.
-* To discard all brooklyn's default logging, create a ``logback-main.xml`` which 
-  contains your configuration. This should look like a standard logback
-  configuration file, except it should be wrapped in ``<included>`` XML tags rather
-  than ``<configuration>`` XML tags (because it is included from the ``logback.xml``
-  which comes with ``brooklyn-logback-xml``.)
-* To redirect all jclouds logging to a separate file include ``brooklyn/logback-logger-debug-jclouds.xml``.
-  This redirects all logging from ``org.jclouds`` and ``jclouds`` to one of two files: anything
-  logged from Brooklyn's persistence thread will end up in a `persistence.log`, everything else
-  will end up in ``jclouds.log``.
-
-You should **not** supply your own ``logback.xml`` if you are using ``brooklyn-logback-xml``.
-If you do, logback will detect multiple files with that name and will scream at you.
-If you wish to supply your own ``logback.xml``, do **not** include ``brooklyn-logback-xml``.
-(Alternatively you can include a ``logback.groovy`` which causes logback to ignore ``logback.xml``.)
-
-You can set a specific logback config file to use with:
-
-{% highlight bash %}
--Dlogback.configurationFile=/path/to/config.xml
-{% endhighlight %}
-
-
-## Assemblies
-
-When building an assembly, it is recommended to create a ``conf/logback.xml`` which 
-simply includes ``logback-main.xml`` (which comes from the classpath).  Users of the assembly
-can then edit the ``logback.xml`` file in the usual way, or they can plug in to the configuration 
-mechanisms described above, by creating files such as ``logback-custom.xml`` under ``conf/``.
-
-Including ``brooklyn-logback-xml`` as an *optional* and *provided* dependency means everything
-should work correctly in IDE's but it will not include the extra ``logback.xml`` file in the assembly.
-(Alternatively if you include the ``conf/`` dir in your IDE build, you should exclude this dependency.)
-
-With this mechanism, you can include ``logback-custom.xml`` and/or other files underneath 
-``src/main/resources/`` of a project, as described above (for instance to include custom
-logging categories and define the log file name) and it should get picked up, 
-both in the IDE and in the assembly.   
- 
-
-## Tests
-
-Brooklyn projects ``test`` scope includes the ``brooklyn-utils-test-support`` project
-which supplies a ``logback-test.xml``. logback uses this file in preference to ``logback.xml``
-when available (ie when running tests). However the ``logback-test.xml`` Brooklyn uses
-includes the same ``logback-main.xml`` call path above, so your configurations should still work.
-
-The only differences of the ``logback-test.xml`` configuration is that:
-
-* Debug logging is included for all Brooklyn packages
-* The log file is called ``brooklyn-tests.log`` 
-
-
-## Caveats
-
-* logback uses SLF4J version 1.6 which is **not compatible** with 1.5.x. 
-  If you have dependent projects using 1.5.x (such as older Grails) things may break.
-
-* If you're not getting the logging you expect in the IDE, make sure 
-  ``src/main/resources`` is included in the classpath.
-  (In eclipse, right-click the project, the Build Path -> Configure,
-  then make sure all dirs are included (All) and excluded (None) -- 
-  ``mvn clean install`` should do this for you.)
-
-* You may find that your IDE logs to a file ``brooklyn-tests.log`` 
-  if it doesn't distinguish between test build classpaths and normal classpaths.
-
-* Logging configuration using file overrides such as this is very sensitive to
-  classpath order. To get a separate `brooklyn-tests.log` file during testing,
-  for example, the `brooklyn-test-support` project with scope `test` must be
-  declared as a dependency *before* `brooklyn-logback-includes`, due to the way
-  both files declare `logback-appender-file.xml`.
-  
-* Similarly note that the `logback-custom.xml` file is included *after* 
-  logging categories and levels are declared, but before appenders are declared,
-  so that logging levels declared in that file dominate, and that 
-  properties from that file apply to appenders.
-
-* Finally remember this is open to improvement. It's the best system we've found
-  so far but we welcome advice. In particular if it could be possible to include
-  files from the classpath with wildcards in alphabetical order, we'd be able
-  to remove some of the quirks listed above (though at a cost of some complexity!).


[20/50] [abbrv] incubator-brooklyn git commit: add website files, and update the build.sh script appropriately

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/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
new file mode 100644
index 0000000..4bf0fd3
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.policy.followthesun.DefaultFollowTheSunModel$1.html
@@ -0,0 +1,62 @@
+<!--
+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.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>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 == "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>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/policies/brooklyn.policy.autoscaling.AutoScalerPolicy.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/policies/brooklyn.policy.autoscaling.AutoScalerPolicy.html b/docs/website/learnmore/catalog/policies/brooklyn.policy.autoscaling.AutoScalerPolicy.html
new file mode 100644
index 0000000..78a2cb5
--- /dev/null
+++ b/docs/website/learnmore/catalog/policies/brooklyn.policy.autoscaling.AutoScalerPolicy.html
@@ -0,0 +1,59 @@
+<!--
+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 Policy - Auto-scaler</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.policies, "brooklyn.policy.autoscaling.AutoScalerPolicy");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/policies/brooklyn.policy.followthesun.FollowTheSunPolicy.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/policies/brooklyn.policy.followthesun.FollowTheSunPolicy.html b/docs/website/learnmore/catalog/policies/brooklyn.policy.followthesun.FollowTheSunPolicy.html
new file mode 100644
index 0000000..b080d7b
--- /dev/null
+++ b/docs/website/learnmore/catalog/policies/brooklyn.policy.followthesun.FollowTheSunPolicy.html
@@ -0,0 +1,59 @@
+<!--
+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 Policy - Follow the Sun</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.policies, "brooklyn.policy.followthesun.FollowTheSunPolicy");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/policies/brooklyn.policy.ha.ConnectionFailureDetector.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/policies/brooklyn.policy.ha.ConnectionFailureDetector.html b/docs/website/learnmore/catalog/policies/brooklyn.policy.ha.ConnectionFailureDetector.html
new file mode 100644
index 0000000..11ca8de
--- /dev/null
+++ b/docs/website/learnmore/catalog/policies/brooklyn.policy.ha.ConnectionFailureDetector.html
@@ -0,0 +1,59 @@
+<!--
+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 Policy - Connection Failure Detector</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.policies, "brooklyn.policy.ha.ConnectionFailureDetector");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/policies/brooklyn.policy.ha.ServiceReplacer.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/policies/brooklyn.policy.ha.ServiceReplacer.html b/docs/website/learnmore/catalog/policies/brooklyn.policy.ha.ServiceReplacer.html
new file mode 100644
index 0000000..f7f696a
--- /dev/null
+++ b/docs/website/learnmore/catalog/policies/brooklyn.policy.ha.ServiceReplacer.html
@@ -0,0 +1,59 @@
+<!--
+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 Policy - Service Replacer</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.policies, "brooklyn.policy.ha.ServiceReplacer");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/policies/brooklyn.policy.ha.ServiceRestarter.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/policies/brooklyn.policy.ha.ServiceRestarter.html b/docs/website/learnmore/catalog/policies/brooklyn.policy.ha.ServiceRestarter.html
new file mode 100644
index 0000000..e27c023
--- /dev/null
+++ b/docs/website/learnmore/catalog/policies/brooklyn.policy.ha.ServiceRestarter.html
@@ -0,0 +1,59 @@
+<!--
+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 Policy - Service Restarter</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.policies, "brooklyn.policy.ha.ServiceRestarter");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/policies/brooklyn.policy.loadbalancing.LoadBalancingPolicy.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/policies/brooklyn.policy.loadbalancing.LoadBalancingPolicy.html b/docs/website/learnmore/catalog/policies/brooklyn.policy.loadbalancing.LoadBalancingPolicy.html
new file mode 100644
index 0000000..84df363
--- /dev/null
+++ b/docs/website/learnmore/catalog/policies/brooklyn.policy.loadbalancing.LoadBalancingPolicy.html
@@ -0,0 +1,59 @@
+<!--
+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 Policy - Load Balancer</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+      </ul>
+
+      <div class="tab-content">
+        <div id="configKeys"></div>
+      </div>
+
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.policies, "brooklyn.policy.loadbalancing.LoadBalancingPolicy");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/index.md
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/index.md b/docs/website/learnmore/index.md
new file mode 100644
index 0000000..3befae6
--- /dev/null
+++ b/docs/website/learnmore/index.md
@@ -0,0 +1,11 @@
+---
+layout: website-normal
+title: Learn More
+children:
+- { path: yaml-explained.md }
+- { path: theory.md, title: Theory }
+---
+
+TODO have a list of resources here?  or start w yaml explained?
+
+TODO include { path: catalog/index.html }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/theory.md
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/theory.md b/docs/website/learnmore/theory.md
new file mode 100644
index 0000000..9a654e2
--- /dev/null
+++ b/docs/website/learnmore/theory.md
@@ -0,0 +1,177 @@
+---
+layout: website-normal
+title: The Theory behind Brooklyn
+navgroup: Learn More
+---
+
+<div class="jumobotron" markdown="1">
+
+Brooklyn is a framework for modeling, monitoring, and managing applications
+through autonomic blueprints.
+
+</div>
+
+## Why Brooklyn?
+
+Building and deploying applications in the cloud computing era has changed many
+things. Provision a bare server just-in-time, and use automated tools to install
+an application. Use APIs to add the server to a load balancer. When load goes
+up, provision another server; when load drops, kill a server to save money.
+
+Many new tools have appeared that take advantage of this new era. However each
+of them only solve part of the problem and don't consider the big picture. For
+example, configuration management tools such as Chef can, in a single command,
+provision a new cloud server then install and configure an application -- but
+they require extra programming to reconfigure an load balancer whenever the pool
+of web servers changes. Amazon Auto Scaling can provision new servers and update
+load balancers, but it is dependent on CloudWatch -- this means either using
+proxy metrics such as average response time, or writing more code to expose an
+application's real metrics. A dedicated monitoring tool may be able to easily
+monitor the key metrics with little effort, but its alerts will need to be
+integrated it into the server provisioning process.
+
+So all the tools are there to to create and manage a cloud-scale application
+that can adapt to demand to meet user expectations without wasting money on
+superfluous services - but you will need several such tools and it is up to you
+to integrate them into your deployment plan. Some of these tools -- such as the
+Amazon Web Services web of EC2, CloudWatch, AutoScaling and CloudFormation --
+mean that you may suffer from lock-in. Related projects in OpenStack (Heat,
+Ceilometer, Murano, Solum, etc) provide similar functionality but again for a
+restricted target. The most common policies (such as minimising request latency)
+may be easy, but less common policies such as follow-the-sun and follow-the-moon
+may be up to you to implement. Your scaling policies may understand that
+"high demand = add another server", but may not understand requirements such as
+some clustered services requiring an odd number of instances to prevent voting
+deadlocks.
+
+
+## How Brooklyn can help
+
+In this context the advantage of Brooklyn becomes apparent: a single tool is
+able to manage provisioning and application deployment, monitor an application's
+health and metrics, understand the dependencies between components (such as
+knowing that adding a new web server means that the load balancer needs
+reconfiguration) and apply complex policies to manage the application. The tool
+provides a REST API and a GUI, and allows the autonomic blueprints to be treated
+as an integral part of the application. With Brooklyn, these policies become
+modular components which can be reused and easily added to blueprints.
+
+Brooklyn is about deploying and managing applications: composing a full stack
+for an application; deploying to cloud and non-cloud targets; using monitoring
+tools to collect key health/performance metrics; responding to situations
+such as a failing node; and adding or removing capacity to match demand.
+
+
+## Blueprints
+
+A Brooklyn blueprint defines an application, using a declarative YAML syntax
+supporting JVM plugins. A basic blueprint might comprise a single process,
+such as a web-application server running a WAR file or a SQL database and
+its associated DDL scripts. More complex blueprints encompass combinations
+of processes across multiple machines and services, such as a load-balancing
+HTTP server or SDN controller fronting a cluster of J2EE application
+servers, in turn connected to a resilient cluster of SQL database servers.
+Even larger clustered application running in multiple regions can be
+described, with features such as message buses with resilient brokers,
+cacheing tiers of NoSQL key-value store servers, a high-availability
+database cluster and multiple application components connected across these
+layers.
+
+One main benefit of these blueprints is that they are composable:
+best-practice blueprints for one process or pattern (e.g. a Cassandra
+cluster) can be incorporated in other blueprints (e.g. an application with a
+Cassandra cluster as one component). Another major benefit is that the
+blueprints can be treated as source code as part of an applications
+codebase: tested, tracked, versioned, and hardened as an integral part of
+the devops process. In some ways, Brooklyn is to run-time what Maven is to
+build-time.
+
+
+### Blueprints turn into deployments
+
+Brooklyn knows about Chef, Salt, and similar tools, and APT and Yum and
+plain old shell scripts, for deploying application components. Blueprints
+are built from a mixture of both off-the-shelf packages such as Tomcat,
+MySQL, Cassandra, and many more from our library; and components that are
+bespoke to individual applications; together with policies that allow the
+application to be self-managing.
+
+Brooklyn is built for the cloud, and will take a blueprint and deploy it to
+one of many supported clouds or even to multiple different clouds, or to
+private infrastructure (bring-your-own-node), or to other platforms. It will
+dynamically configure and connect all the different components of an
+application, e.g. so load balancers know where the web servers are and the
+web applications know where the database is.
+
+Brooklyn collects key metrics to monitor the health of applications; for
+example, by sending a request and measuring latency, or installing
+monitoring tools and using those to read a server's management interface to
+determine the request queue length. These metrics can be fed into policies,
+which automatically take actions such as restarting a failed node, or
+scaling out the web tier if user demand exceeds capacity. This allows an
+application to be self-managing: to recover itself from simple failures, to
+scale out when demand increases and meet capacity; then scale in as demand
+drops and stop paying for spare capacity.
+
+In short, Brooklyn blueprints allow the best practices for deploying and
+managing complex software to be codified as part of the software development
+process.
+
+
+### Agile and flexible
+
+Brooklyn is a product built from the ground up for application agility. This
+includes portability across non-cloud, cloud, and PaaS targets; devops-style
+infrastructure-as-code applied to applications; and real-time autonomic
+management based on promise theory. Some introductions to these concepts,
+associated tools, and open specifications may be useful.
+
+Cloud computing at its core is about provisioning resources on-demand. The most
+widely known aspect is IaaS (infrastructure-as-a-service) such as Amazon EC2,
+Softlayer, Google Cloud Platform, Apache CloudStack, or OpenStack. By leveraging
+the Apache jclouds project (and contributing heavily to it), the Brooklyn
+project is able to work with a large number of such providers. Higher up the
+stack, however, there is an increasingly diverse set of platform targets, from
+PaaS (platform-as-a-service) such as Cloud Foundry and Apache Stratos, through
+to myriad containers and runtime fabrics such as LXC/Docker, Apache Mesos,
+Apache Karaf, Apache Hadoop, and Apache Usergrid and other backend-as-a-service
+environments. Brooklyn is based on the premise that applications may need to run
+in any or all of these, and the model must be flexible and open enough to
+support this.
+
+The buzzword-compliant trends of agile and devops have reinforced many important
+lessons:
+
+- The truth is in the code (not any ancillary documents)
+- If it isn't tested then assume it isn't working
+- Toolchain integration and APIs are key to a project's success
+- Even more critical is empowering all stakeholders to a project
+- Brooklyn's focus on blueprinting and modeling as code and APIs serves these
+principles.
+
+### Autonomic computing
+
+Another major influence on the design of Brooklyn are the ideas of autonomic
+computing and promise theory. It is not necessary to have a thorough
+understanding of these to use Brooklyn, but contributors tend to become versed
+in these ideas quickly. Essentially, autonomics is based on the concept of
+components looking after themselves where possible (self-healing,
+self-optimizing, etc), and exposing a sensor (data outputs) and effector
+(operations) API where they may need to controlled by another element. Promise
+theory extends this approach by introducing the idea that communicating intent
+(through promises) is a more reliable basis for complex cooperating systems than
+obligation-based effectors. Tools such as CF Engine, Chef, Puppet, Ansible, and
+Salt apply promise theory to files and processes on machines; Brooklyn can
+leverage all of these tools, complementing it with an application-oriented
+model.
+
+### Standards compliant
+
+Finally we note some emerging standards in this area. OASIS CAMP (Cloud
+Application Management for Platforms) and TOSCA (Topology and Orchestration
+Specification for Cloud Applications) both define YAML application models
+similar to Brooklyn's. CAMP focuses on the REST API for interacting with such a
+management layer, and TOSCA focuses on declarative support for more
+sophisticated orchestration. Currently Brooklyn uses a YAML which complies with
+CAMP's syntax and exposes many of the CAMP REST API endpoints. We would like to
+support the hot-off-the-press TOSCA YAML and expand the CAMP REST API coverage.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/yaml-explained.md
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/yaml-explained.md b/docs/website/learnmore/yaml-explained.md
new file mode 100644
index 0000000..12d4e17
--- /dev/null
+++ b/docs/website/learnmore/yaml-explained.md
@@ -0,0 +1,9 @@
+---
+layout: website-normal
+title: YAML Explained
+navgroup: Learn More
+---
+
+<div class="jumobotron" markdown="1">
+
+TODO

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/_my-web-cluster.yaml
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/_my-web-cluster.yaml b/docs/website/quickstart/_my-web-cluster.yaml
new file mode 100644
index 0000000..3b6134b
--- /dev/null
+++ b/docs/website/quickstart/_my-web-cluster.yaml
@@ -0,0 +1,19 @@
+name: My Web Cluster
+location: location
+services:
+
+- serviceType: 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/{{ site.data.brooklyn.version }}/brooklyn-example-hello-world-sql-webapp-{{ site.data.brooklyn.version }}.war
+    java.sysprops:
+      brooklyn.example.db.url: >
+        $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
+        component("db").attributeWhenReady("datastore.url"),
+        "visitors", "brooklyn", "br00k11n")
+
+- serviceType: brooklyn.entity.database.mysql.MySqlNode
+  id: db
+  name: My DB
+  brooklyn.config:
+    creationScriptUrl: https://bit.ly/brooklyn-visitors-creation-script
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/brooklyn.properties
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/brooklyn.properties b/docs/website/quickstart/brooklyn.properties
new file mode 100644
index 0000000..08a9d7c
--- /dev/null
+++ b/docs/website/quickstart/brooklyn.properties
@@ -0,0 +1,266 @@
+# This is Brooklyn's dot-properties file.
+# It should be located at "~/.brooklyn/brooklyn.properties" for automatic loading,
+# or can be specified as a CLI option with --localProperties /path/to/these.properties.
+
+##################################  Welcome!  ############################################
+
+# It's great to have you here.
+
+# Getting Started options have been pulled to the top. There's a formatting guide at the
+# very bottom.
+
+############################ Getting Started Options  ####################################
+
+# By default we have AWS set up (but with invalid credentials!).  Many, many other
+# providers are supported.
+
+## Amazon EC2 Credentials
+# These should be an "Access Key ID" and "Secret Access Key" for your account.
+# This is configured at https://console.aws.amazon.com/iam/home?#security_credential .
+
+brooklyn.location.jclouds.aws-ec2.identity = AKA_YOUR_ACCESS_KEY_ID
+brooklyn.location.jclouds.aws-ec2.credential = <access-key-hex-digits>
+
+# Beware of trailing spaces in your cloud credentials. This will cause unexpected
+# 401: unauthorized responses.
+
+## Using Other Clouds
+# 1. Cast your eyes down this document to find your preferred cloud in the Named Locations
+#    section, and the examples.
+# 2. Uncomment the relevant line(s) for your provider.
+# 3. ADD  -.identity and -.credential lines for your provider, similar to the AWS ones above,
+#    replacing 'aws-ec2' with jcloud's id for your cloud.
+
+
+## Deploying to Localhost
+## see: brooklyncentral.github.io/use/guide/locations/
+#
+## ~/.ssh/id_rsa is Brooklyn's default location
+# brooklyn.location.localhost.privateKeyFile = ~/.ssh/id_rsa
+## Passphrases are supported, but not required
+# brooklyn.location.localhost.privateKeyPassphrase = s3cr3tpassphrase
+
+## Geoscaling Service - used for the Global Web Fabric demo
+## see: brooklyncentral.github.io/use/examples/global-web-fabric/ and
+## https://www.geoscaling.com/dns2/
+## other services may take similar configuration similarly; or can usually be set in YAML
+# brooklyn.geoscaling.username = USERNAME
+# brooklyn.geoscaling.password = PASSWORD
+# brooklyn.geoscaling.primaryDomain = DOMAIN
+
+
+##########################  Getting Started Complete!  ###################################
+
+# That's it, although you may want to read through these options...
+
+################################ Brooklyn Options ########################################
+
+## Brooklyn Management Base Directory: specify where management data should be stored on this server;
+## ~/.brooklyn/ is the default but you could use something like /opt/brooklyn/state/
+## (provided this process has write permissions) 
+# brooklyn.base.dir=~/.brooklyn/
+
+## Brooklyn On-Box Directory: specify where data should be stored on managed hosts; 
+## for most locations a directory off home is the default (but using /tmp/brooklyn-user/ on localhost),
+## however you could specify something like /opt/brooklyn-managed-process/ (creation and permissions are handled)
+# onbox.base.dir=~/brooklyn-managed-process/
+
+
+## GUI Security
+## NOTE: in production it is highly recommended to set this, as otherwise it will not require login,
+## not will it be encrypted (though for safety if security is not set it will only bind to loopback)
+# brooklyn.webconsole.security.https.required=true
+# brooklyn.webconsole.security.users=admin,bob
+# brooklyn.webconsole.security.user.admin.password=password
+# brooklyn.webconsole.security.user.bob.password=bobsword
+
+## GUI Security: Allow all - if you know what you are doing! (You can also plug in e.g. LDAP security.)
+# brooklyn.webconsole.security.provider = brooklyn.rest.security.provider.AnyoneSecurityProvider
+
+## Optionally disallow deployment to localhost (or any other location)
+# brooklyn.location.localhost.enabled=false
+
+## Scripting Behaviour
+
+## keep scripts around after running them (usually in /tmp) 
+# brooklyn.ssh.config.noDeleteAfterExec = true
+
+## Misc Cloud Settings
+## brooklyn will fail a node if the cloud machine doesn't come up, but you can tell it to retry:
+# brooklyn.location.jclouds.machineCreateAttempts = 3
+## many cloud machines don't have sufficient entropy for lots of encrypted networking, so fake it:
+# brooklyn.location.jclouds.installDevUrandom=true
+
+## Sets a minimium ram property for all jclouds locations. Recommended to avoid getting m1.micros on AWS!
+brooklyn.location.jclouds.minRam = 2048
+
+## When setting up a new cloud machine Brooklyn creates a user with the same name as the user running
+## Brooklyn on the management server, but you can force a different user here:
+# brooklyn.location.jclouds.user=brooklyn
+## And you can force a password or key (by default it will use the keys in ~/.ssh/id_rsa{,.pub}
+# brooklyn.location.jclouds.password=s3cr3t
+
+################################ Named Locations ########################################
+
+# Named locations appear in the web console. If using the command line or YAML it may be 
+# just as easy to use the jclouds:<provider> locations and specify additional properties there.
+
+## Example: AWS Virginia using Rightscale 6.3 64bit Centos AMI and Large Instances
+# brooklyn.location.named.aws-va-centos-large = jclouds:aws-ec2:us-east-1
+# brooklyn.location.named.aws-va-centos-large.imageId=us-east-1/ami-7d7bfc14
+# brooklyn.location.named.aws-va-centos-large.user=brooklyn
+# brooklyn.location.named.aws-va-centos-large.minRam=4096
+
+## You can also nest these:
+# brooklyn.location.named.aws-acct-two = jclouds:aws-ec2
+# brooklyn.location.named.aws-acct-two.identity = AKA_ACCT_TWO
+# brooklyn.location.named.aws-acct-two.credential = <access-key-hex-digits>
+# brooklyn.location.named.aws-acct-two-singapore = named:aws-acct-two
+# brooklyn.location.named.aws-acct-two-singapore.region = ap-southeast-1
+# brooklyn.location.named.aws-acct-two-singapore.displayName = AWS Singapore (Acct Two)
+
+# For convenience some common defaults:
+brooklyn.location.named.aws-california = jclouds:aws-ec2:us-west-1
+brooklyn.location.named.aws-oregon = jclouds:aws-ec2:us-west-2
+brooklyn.location.named.aws-ireland = jclouds:aws-ec2:eu-west-1
+brooklyn.location.named.aws-tokyo = jclouds:aws-ec2:ap-northeast-1
+
+## Google Compute
+## Note at present you have to create and download the P12 key from the Google "APIs & auth -> Registered Apps" interface,
+## then convert to PEM private key format using  `openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes`
+## then embed that on one line as the 'credential, replacing new lines with \n as below
+## (hopefully this will be improved in jclouds in the future)
+# brooklyn.location.jclouds.google-compute-engine.identity=1234567890-somet1mesArand0mU1Dhere@developer.gserviceaccount.com
+# brooklyn.location.jclouds.google-compute-engine.credential=-----BEGIN PRIVATE KEY----- \nMIIblahablahblah \nblahblahblah \n-----END PRIVATE KEY-----
+# brooklyn.location.named.Google\ US = jclouds:google-compute-engine
+# brooklyn.location.named.Google\ US.region=us-central1-a
+# brooklyn.location.named.Google\ EU = jclouds:google-compute-engine
+# brooklyn.location.named.Google\ EU.region=europe-west1-a
+## the following flags for GCE are recommended
+## specify the network to use - otherwise it creates new networks each time and you hit quotas pretty quickly
+## you may have to manually create this network AND enable a firewall rule EG  tcp:1-65535;udp:1-65535;icmp  
+## (fix for this is in progress)
+# brooklyn.location.jclouds.google-compute-engine.networkName=brooklyn-default-network
+## gce images have bad entropy, this ensures they have noisy /dev/random (even if the "randomness" is not quite as random)
+# brooklyn.location.jclouds.google-compute-engine.installDevUrandom=true
+## gce images often start with iptables turned on; turn it off 
+# brooklyn.location.jclouds.google-compute-engine.stopIptables=true
+
+## HP Cloud - also Ubuntu 12.04 LTS
+## You specify your HP Credentials like this:
+# brooklyn.location.jclouds.hpcloud-compute.identity = projectname:username
+# brooklyn.location.jclouds.hpcloud-compute.credential = password
+## where username and password are the same as logging in to the web console, and
+## projectname can be found here: https://account.hpcloud.com/projects
+#�brooklyn.location.named.HP\ Cloud\ Arizona-1 = jclouds:hpcloud-compute:az-1.region-a.geo-1
+# brooklyn.location.named.HP\ Cloud\ Arizona-1.imageId = az-1.region-a.geo-1/75845
+# brooklyn.location.named.HP\ Cloud\ Arizona-1.user = ubuntu
+
+## Softlayer - need a key from the gui, under "administrative -> user administration -> api-access 
+# brooklyn.location.jclouds.softlayer.identity=username
+# brooklyn.location.jclouds.softlayer.credential=<private-key-hex-digits>
+## A sample good image, available in all regions
+# brooklyn.location.jclouds.softlayer.imageId=13945
+## locations
+# brooklyn.location.named.Softlayer\ Seattle=jclouds:softlayer:sea01
+# brooklyn.location.named.Softlayer\ Dallas=jclouds:softlayer:dal05
+# brooklyn.location.named.Softlayer\ Washington\ DC=jclouds:softlayer:wdc01
+# brooklyn.location.named.Softlayer\ Singapore\ 1=jclouds:softlayer:sng01
+# brooklyn.location.named.Softlayer\ Amsterdam\ 1=jclouds:softlayer:ams01
+
+
+## Brooklyn uses the jclouds multi-cloud library to access many clouds.
+## http://www.jclouds.org/documentation/reference/supported-providers/
+
+## Templates for many other clouds, but remember to add identity and credentials:
+
+# brooklyn.location.named.Bluelock = jclouds:bluelock-vcloud-zone01
+
+# brooklyn.location.named.CloudSigma\ Nevada = jclouds:cloudsigma-lvs
+# brooklyn.location.named.CloudSigma\ Zurich = jclouds:cloudsigma-zrh
+
+# brooklyn.location.named.ElasticHosts\ London = jclouds:elastichosts-lon-p
+# brooklyn.location.named.ElasticHosts\ Texas = jclouds:elastichosts-sat-p
+
+# brooklyn.location.named.GleSYS = jclouds:glesys
+
+# brooklyn.location.named.Go2Cloud = jclouds:go2cloud-jhb1
+
+# brooklyn.location.named.GoGrid = jclouds:gogrid
+
+# brooklyn.location.named.Green\ House\ Data = jclouds:greenhousedata-element-vcloud
+
+# brooklyn.location.named.Ninefold = jclouds:ninefold-compute
+
+# brooklyn.location.named.OpenHosting = jclouds:openhosting-east1
+
+# brooklyn.location.named.Rackspace\ Chicago\ (ord) = jclouds:rackspace-cloudservers-us:ORD
+# brooklyn.location.named.Rackspace\ Dallas\ (dfw) = jclouds:rackspace-cloudservers-us:DFW
+# brooklyn.location.named.Rackspace\ Hong\ Kong\ (hkg) = jclouds:rackspace-cloudservers-us:HKG
+# brooklyn.location.named.Rackspace\ Northern\ Virginia\ (iad) = jclouds:rackspace-cloudservers-us:IAD
+# brooklyn.location.named.Rackspace\ Sydney\ (syd) = jclouds:rackspace-cloudservers-us:SYD
+## for UK you will need a separate account with rackspace.co.uk
+# brooklyn.location.named.Rackspace\ London\ (lon) = jclouds:rackspace-cloudservers-uk
+
+## if you need to use Rackspace "first gen" API
+## (note the "next gen" api configured above seems to be faster)
+# brooklyn.location.jclouds.cloudservers-us.identity = YOURAPIKEY
+# brooklyn.location.jclouds.cloudservers-us.credential = YOURSECRETKEY
+# brooklyn.location.named.Rackspace\ US\ (First Gen) = jclouds:cloudservers-us
+## and as with next gen, first gen requires a separate acct for the UK:
+# brooklyn.location.jclouds.cloudservers-uk.identity = YOURAPIKEY
+# brooklyn.location.jclouds.cloudservers-uk.credential = YOURSECRETKEY
+# brooklyn.location.named.Rackspace\ UK\ (First Gen) = jclouds:cloudservers-uk
+
+# brooklyn.location.named.SeverLove = jclouds:serverlove-z1-man
+
+# brooklyn.location.named.SkaliCloud = jclouds:skalicloud-sdg-my
+
+# brooklyn.location.named.Stratogen = jclouds:stratogen-vcloud-mycloud
+
+# brooklyn.location.named.TryStack\ (Openstack) = jclouds:trystack-nova
+
+
+## Production pool of machines for my application (deploy to named:On-Prem\ Iron\ Example)
+# brooklyn.location.named.On-Prem\ Iron\ Example=byon:(hosts="10.9.1.1,10.9.1.2,produser2@10.9.2.{10,11,20-29}")
+# brooklyn.location.named.On-Prem\ Iron\ Example.user=produser1
+# brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyFile=~/.ssh/produser_id_rsa
+# brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyPassphrase=s3cr3tpassphrase
+
+## Various Private Clouds
+
+## openstack identity and credential are random strings of letters and numbers (TBC - still the case?)
+# brooklyn.location.named.My\ Openstack=jclouds:openstack-nova:https://9.9.9.9:9999/v2.0/
+
+## cloudstack identity and credential are rather long random strings of letters and numbers
+## you generate this in the cloudstack gui, under accounts, then "view users", then "generate key"
+## use the "api key" as the identity and "secret key" as the credential
+# brooklyn.location.named.My\ Cloudstack=jclouds:cloudstack:http://9.9.9.9:9999/client/api/
+
+## abiquo identity and credential are your login username/passed
+# brooklyn.location.named.My\ Abiquo=jclouds:abiquo:http://demonstration.abiquo.com/api/
+
+###############################  Formatting Guide  #######################################
+
+! Both # and ! mark lines as comments
+# The follow syntax are ALL valid.
+# example_key example_value
+# example_key : example_value
+# example_key = example_value
+# example_key=example_value
+
+# The backslash below tells Brooklyn to continue reading the value onto the next line.
+# example_key = A very \
+#          	long string!
+# Note all white space before 'long...' is ignored. Also '!' is kept as part of the string
+
+
+# Keys with spaces should be escaped with backslashes.
+# This is useful for named locations, as the name displayed in Brooklyn's web
+# interface is derived from the key name.
+# key\ with\ spaces = some\ value
+
+# Encoding for .properties must be ISO-8859-1, aka Latin-1.
+# All non-latin1 characters must be entered using unicode escape characters
+# polish_pangram = P\u00F3jd\u017A\u017Ce, ki\u0144 \
+#                  t\u0119 chmurno\u015B\u0107 w g\u0142\u0105b flaszy!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/catalog.xml
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/catalog.xml b/docs/website/quickstart/catalog.xml
new file mode 100644
index 0000000..6cff554
--- /dev/null
+++ b/docs/website/quickstart/catalog.xml
@@ -0,0 +1,22 @@
+<catalog>
+    <name>Brooklyn Demos</name>
+
+
+    <template type="brooklyn.demo.WebClusterDatabaseExample" name="Demo Web Cluster with DB">
+      <description>Deploys a demonstration web application to a managed JBoss cluster with elasticity, persisting to a MySQL</description>
+      <iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/JBoss_by_Red_Hat.png</iconUrl>
+    </template>
+
+    <template type="brooklyn.demo.GlobalWebFabricExample" name="Demo GeoDNS Web Fabric DB">
+      <description>Deploys a demonstration web application to JBoss clusters around the world</description>
+      <iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/JBoss_by_Red_Hat.png</iconUrl>
+    </template>
+    
+    <classpath>
+      <entry>https://oss.sonatype.org/service/local/artifact/maven/redirect?r=releases&amp;g=io.brooklyn.example&amp;a=brooklyn-example-simple-web-cluster&amp;v=0.7.0-SNAPSHOT&amp;e=jar</entry> <!-- BROOKLYN_VERSION -->
+      <entry>https://oss.sonatype.org/service/local/artifact/maven/redirect?r=releases&amp;g=io.brooklyn.example&amp;a=brooklyn-example-global-web-fabric&amp;v=0.7.0-SNAPSHOT&amp;e=jar</entry> <!-- BROOKLYN_VERSION -->
+    </classpath>
+
+
+</catalog>
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db-large.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db-large.png b/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db-large.png
new file mode 100644
index 0000000..b566b1a
Binary files /dev/null and b/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db-large.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db-location-large.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db-location-large.png b/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db-location-large.png
new file mode 100644
index 0000000..05e9b0c
Binary files /dev/null and b/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db-location-large.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db-location.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db-location.png b/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db-location.png
new file mode 100644
index 0000000..c13fdd8
Binary files /dev/null and b/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db-location.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db.png b/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db.png
new file mode 100644
index 0000000..ebb6f42
Binary files /dev/null and b/docs/website/quickstart/images/add-application-catalog-web-cluster-with-db.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/add-application-modal-yaml.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/add-application-modal-yaml.png b/docs/website/quickstart/images/add-application-modal-yaml.png
new file mode 100644
index 0000000..c50b7ab
Binary files /dev/null and b/docs/website/quickstart/images/add-application-modal-yaml.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/jboss7-cluster-policies-large.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/jboss7-cluster-policies-large.png b/docs/website/quickstart/images/jboss7-cluster-policies-large.png
new file mode 100644
index 0000000..3d84477
Binary files /dev/null and b/docs/website/quickstart/images/jboss7-cluster-policies-large.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/jboss7-cluster-policies.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/jboss7-cluster-policies.png b/docs/website/quickstart/images/jboss7-cluster-policies.png
new file mode 100644
index 0000000..2f85328
Binary files /dev/null and b/docs/website/quickstart/images/jboss7-cluster-policies.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/my-db-activities-large.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/my-db-activities-large.png b/docs/website/quickstart/images/my-db-activities-large.png
new file mode 100644
index 0000000..c214d9e
Binary files /dev/null and b/docs/website/quickstart/images/my-db-activities-large.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/my-db-activities.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/my-db-activities.png b/docs/website/quickstart/images/my-db-activities.png
new file mode 100644
index 0000000..0f2327c
Binary files /dev/null and b/docs/website/quickstart/images/my-db-activities.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/my-web-cluster-starting.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/my-web-cluster-starting.png b/docs/website/quickstart/images/my-web-cluster-starting.png
new file mode 100644
index 0000000..c389b0b
Binary files /dev/null and b/docs/website/quickstart/images/my-web-cluster-starting.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/my-web-cluster-stop-confirm-large.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/my-web-cluster-stop-confirm-large.png b/docs/website/quickstart/images/my-web-cluster-stop-confirm-large.png
new file mode 100644
index 0000000..c9bdab6
Binary files /dev/null and b/docs/website/quickstart/images/my-web-cluster-stop-confirm-large.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/my-web-cluster-stop-confirm.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/my-web-cluster-stop-confirm.png b/docs/website/quickstart/images/my-web-cluster-stop-confirm.png
new file mode 100644
index 0000000..179b00a
Binary files /dev/null and b/docs/website/quickstart/images/my-web-cluster-stop-confirm.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/my-web-summary-large.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/my-web-summary-large.png b/docs/website/quickstart/images/my-web-summary-large.png
new file mode 100644
index 0000000..fc4bffe
Binary files /dev/null and b/docs/website/quickstart/images/my-web-summary-large.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/my-web-summary.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/my-web-summary.png b/docs/website/quickstart/images/my-web-summary.png
new file mode 100644
index 0000000..e85752f
Binary files /dev/null and b/docs/website/quickstart/images/my-web-summary.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/images/my-web.png
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/images/my-web.png b/docs/website/quickstart/images/my-web.png
new file mode 100644
index 0000000..2bd6ac3
Binary files /dev/null and b/docs/website/quickstart/images/my-web.png differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/index.md
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/index.md b/docs/website/quickstart/index.md
new file mode 100644
index 0000000..0c6cc3e
--- /dev/null
+++ b/docs/website/quickstart/index.md
@@ -0,0 +1,215 @@
+---
+title: Getting Started
+layout: website-normal
+children:
+- { path: policies-and-catalogs.md }
+---
+
+This guide will walk you through deploying an application to a public cloud.
+
+We will be deploying an example 3-tier web application, described using this blueprint: 
+
+{% highlight yaml %}
+{% readj _my-web-cluster.yaml %}
+{% endhighlight %}
+
+(This is written in YAML, following the [camp specification](https://www.oasis-open.org/committees/camp/). )
+
+This tutorial assumes that you are using Linux or Mac OSX.
+
+
+## Verify SSH
+
+Brooklyn uses SSH extensively and therefore it is worth making sure that you have a known working SSH setup before
+starting.
+
+Please check the following items:
+
+- If you are using Mac OSX, open System Preferences, go to the Sharing item, and enable 'Remote Login'
+- You have a files named `~/.ssh/id_rsa` and `~/.ssh/id_rsa.pub`
+- `~/.ssh/id_rsa` is NOT readable by any other user
+  - You can verify this with `ls -l ~/.ssh/id_rsa` - the line should start with `-rw-------` or `-r--------`. If it
+    does not, execute `chmod 0600 ~/.ssh/id_rsa`.
+- The file `~/.ssh/authorized_keys` exists and contains a copy of your public key from `~/.ssh/id_rsa.pub`.
+  - Note that it is normal for it to contain other items as well.
+- The key in `~/.ssh/id_rsa` does *not* have a passphrase.
+  - You can test this by executing `ssh-keygen -y`. If it does *not* ask for a passphrase, then your key is OK.
+  - If your key does have a passphrase, remove it. You can do this by running `ssh-keygen -p`. Enter the passphrase,
+    then when prompted for the new passphrase, hit Enter.
+
+Now verify your setup by running the command: `ssh localhost echo hello world`
+
+If you see a message similar to this:
+
+<pre>
+The authenticity of host 'localhost (::1)' can't be established.
+RSA key fingerprint is 7b:e3:8e:c6:5b:2a:05:a1:7c:8a:cf:d1:6a:83:c2:ad.
+Are you sure you want to continue connecting (yes/no)?
+</pre>
+
+then answer 'yes', and then repeat the command run again.
+
+If the response is `hello world`, with no other output or prompts, then your SSH setup is good and Brooklyn should be
+able to use it without a problem.
+
+If these steps are not working, [these instructions]({{ site.data.brooklyn.url.userguide }}/use/guide/locations/) may be
+useful.
+
+
+## Install Brooklyn
+
+Download the [Brooklyn distribution]({{ site.data.brooklyn.url.dist.tgz }}) and expand it to your home directory ( `~/` ), or in a location of your choice. (Other [download options]({{site.path.website}}/download.html) are available.)
+
+{% if brooklyn_version contains 'SNAPSHOT' %}
+Expand the `tar.gz` archive (note: as this is a -SNAPSHOT version, your filename will be slightly different):
+{% else %}
+Expand the `tar.gz` archive:
+{% endif %}
+
+{% if brooklyn_version contains 'SNAPSHOT' %}
+{% highlight bash %}
+$ tar -zxf brooklyn-dist-{{ site.data.brooklyn.version }}-timestamp-dist.tar.gz
+{% endhighlight %}
+{% else %}
+{% highlight bash %}
+$ tar -zxf brooklyn-dist-{{ site.data.brooklyn.version }}-dist.tar.gz
+{% endhighlight %}
+{% endif %}
+
+This will create a `brooklyn-{{ site.data.brooklyn.version }}` folder.
+
+Note: You'll need a Java JRE or SDK installed (version 6 or later), as Brooklyn is Java under the covers.
+
+## Launch Brooklyn
+
+Let's setup some paths for easy commands.
+
+(Click the clipboard on these code snippets for easier c&p.)
+
+{% highlight bash %}
+$ cd brooklyn-{{ site.data.brooklyn.version }}
+$ BROOKLYN_DIR="$(pwd)"
+$ export PATH=$PATH:$BROOKLYN_DIR/bin/
+{% endhighlight %}
+
+We can do a quick test drive by launching Brooklyn:
+
+{% highlight bash %}
+$ brooklyn launch
+{% endhighlight %}
+
+Brooklyn will output the address of the management interface:
+
+
+`INFO  Starting brooklyn web-console on loopback interface because no security config is set`
+
+`INFO  Started Brooklyn console at http://127.0.0.1:8081/, running classpath://brooklyn.war and []`
+
+But before we really use Brooklyn, we need to setup some Locations.
+ 
+Stop Brooklyn with ctrl-c.
+
+## Configuring a Location
+
+Brooklyn deploys applications to Locations.
+
+Locations can be clouds, machines with fixed IPs or localhost (for testing).
+
+Brooklyn loads Location configuration  from `~/.brooklyn/brooklyn.properties`. 
+
+Create a `.brooklyn` folder in your home directory and download the template [brooklyn.properties](brooklyn.properties) to that folder.
+
+{% highlight bash %}
+$ mkdir ~/.brooklyn
+$ cd ~/.brooklyn
+$ wget {{site.url_root}}{{site.path.website}}/quickstart/brooklyn.properties
+{% endhighlight %}
+
+Open brooklyn.properties in a text editor and add your cloud credentials.
+
+Restart Brooklyn:
+
+{% highlight bash %}
+$ brooklyn launch
+{% endhighlight %}
+
+## Launching an Application
+
+There are several ways to deploy a YAML blueprint (including specifying the blueprint on the command line or submitting it via the REST API).
+
+For now, we will simply copy-and-paste the raw YAML blueprint into the web console.
+
+Open the web console ([127.0.0.1:8081](http://127.0.0.1:8081)). As Brooklyn is not currently managing any applications the 'Create Application' dialog opens automatically. Select the YAML tab.
+
+![Brooklyn web console, showing the YAML tab of the Add Application dialog.](images/add-application-modal-yaml.png)
+
+
+### Chose your Cloud / Location
+
+Let's look again at our YAML blueprint:
+
+{% highlight yaml %}
+{% readj _my-web-cluster.yaml %}
+{% endhighlight %}
+
+Copy this document into the large text box on the YAML tab, labelled `Enter CAMP Plan YAML code here`. But *before* you
+submit it, we need to make a modification.
+
+Find the line near the top of the blueprint that starts `location:`. Change the line to name a location. For example,
+one of these lines:
+
+{% highlight yaml %}
+location: aws-ec2:us-east-1
+location: rackspace-cloudservers-us:ORD
+location: google-compute-engine:europe-west1-a
+location: localhost
+{% endhighlight %}
+
+**My Web Cluster Blueprint**
+
+With the modified YAML in the dialog, click 'Finish'. The dialog will close and Brooklyn will begin deploying your
+application. Your application will be shown as 'Starting' on the web console's front page.
+
+![My Web Cluster is STARTING.](images/my-web-cluster-starting.png)
+
+
+## Monitoring and Managing Applications
+
+Click on the application name, or open the Applications tab.
+
+We can explore the management hierarchy of the application, which will show us the entities it is composed of.
+
+ * My Web Cluster (A `BasicApplication`)
+     * My DB (A `MySqlNode`)
+     * My Web (A `ControlledDynamicWebAppCluster`)
+        * Cluster of JBoss7 Servers (A `DynamicWebAppCluster`)
+        * NginxController (An `NginxController`)
+
+
+
+Clicking on the 'My Web' entity will show the Summary tab. Here we can see if the cluster is ready to serve and, when ready, grab the web address for the front of the loadbalancer.
+
+![Exploring My Web.](images/my-web.png)
+
+
+The Activity tab allows us to drill down into what activities each entity is currently doing or has recently done. It is possible to drill down to all child tasks, and view the commands issued, and any errors or warnings that occured.
+
+Drill into the 'My DB' start operation. Working down through  'Start (processes)', then 'launch', we can discover the ssh command used including the stdin, stdout and stderr.
+
+[![My DB Activities.](images/my-db-activities.png)](images/my-db-activities-large.png)
+
+
+## Stopping the Application
+
+To stop an application, select the application in the tree view (the top/root entity), click on the Effectors tab, and invoke the 'Stop' effector. This will cleanly shutdown all components in the application and return any cloud machines that were being used.
+
+[![My DB Activities.](images/my-web-cluster-stop-confirm.png)](images/my-web-cluster-stop-confirm-large.png)
+
+
+### Next 
+
+So far we have touched on Brooklyn's ability to *deploy* an application blueprint to a cloud provider, but this a very small part of Brooklyn's capabilities!
+
+Brooklyn's real power is in using Policies to automatically *manage* applications. There is also the (very useful) ability to store a catalog of application blueprints, ready to go.
+
+[Getting Started - Policies and Catalogs](policies-and-catalogs.html)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/quickstart/policies-and-catalogs.md
----------------------------------------------------------------------
diff --git a/docs/website/quickstart/policies-and-catalogs.md b/docs/website/quickstart/policies-and-catalogs.md
new file mode 100644
index 0000000..d1dbd55
--- /dev/null
+++ b/docs/website/quickstart/policies-and-catalogs.md
@@ -0,0 +1,67 @@
+---
+title: Policies and Catalogs
+layout: website-normal
+---
+
+In the [previous step](index.html) we downloaded Brooklyn and used it to deploy an application to a cloud, but at its heart Brooklyn is a policy driven *management* plane.
+
+Here we will introduce Polices using a simple demo app, which we will load from a Service Catalog.
+
+We strongly advise that you complete [the first tutorial](index.html) before proceeding with this one, to make sure that
+your machine is correctly configured to be able to run Brooklyn applications. Like the previous tutorial, we are also
+assuming that you are running Linux or Mac OSX.
+
+
+## Service Catalogs
+
+Download the template [catalog.xml](catalog.xml) to your `~/.brooklyn/` folder, and relaunch Brooklyn.
+
+{% highlight bash %}
+$ cd ~/.brooklyn
+$ wget {{site.data.brooklyn.url.userguide}}/use/guide/quickstart/catalog.xml
+
+$ brooklyn launch
+{% endhighlight %}
+
+Now when we open the web console, two applications are displayed from the catalog.
+
+Select the 'Demo Web Cluster with DB' and click 'Next'.
+
+[![Viewing Catalog entries in Add Application dialog.](images/add-application-catalog-web-cluster-with-db.png)](add-application-catalog-web-cluster-with-db-largea.png)
+
+Select the Location that Brooklyn should deploy to, and name your application:
+
+[![Selecting a location and application name.](images/add-application-catalog-web-cluster-with-db-location.png)](images/add-application-catalog-web-cluster-with-db-location-large.png)
+
+Click 'Finish' to launch the application as before.
+
+
+### Exploring and Testing Policies
+
+The Demo Web Cluster with DB application is pre-configured with two polices.
+
+The app server cluster has an `AutoScalerPolicy`, and the loadbalancer has a `targets` policy.
+
+Use the Applications tab in the web console to drill down into the Policies section of the ControlledDynamicWebAppCluster's Cluster of JBoss7Servers.
+
+You will see that the `AutoScalerPolicy` is running.
+
+[![Inspecting the jboss7 cluster policies.](images/jboss7-cluster-policies.png)](images/jboss7-cluster-policies-large.png)
+
+
+This policy automatically scales the cluster up or down to be the right size for the cluster's current load. (One server is the minimum size allowed by the policy.)
+
+The loadbalancer's `targets` policy ensures that the loadbalancer is updated as the cluster size changes.
+
+Sitting idle, this cluster will only contain one server, but you can use a tool like [jmeter](http://jmeter.apache.org/) pointed at the nginx endpoint to create load on the cluster. (Download a [jmeter test plan](https://github.com/brooklyncentral/brooklyn/blob/master/examples/simple-web-cluster/resources/jmeter-test-plan.jmx).)
+
+As load is added, Brooklyn requests a new cloud machine, creates a new app server, and adds it to the cluster. As load is removed, servers are removed from the cluster, and the infrastructure is handed back to the cloud.
+
+### Next
+
+The [Elastic Web Cluster Example]({{site.data.brooklyn.url.userguide}}/use/examples/webcluster/index.html) page
+details how to build this demo application from scratch in Java. It shows in more detail how Brooklyn can
+complement your application with policy driven management, and how applications can be
+run from the command line.
+
+


[16/50] [abbrv] incubator-brooklyn git commit: fix paths and links so that guide/ subdir build works nicely

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/persistence/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/persistence/toc.json b/docs/guide/use/guide/persistence/toc.json
index b49602e..6cf8767 100644
--- a/docs/guide/use/guide/persistence/toc.json
+++ b/docs/guide/use/guide/persistence/toc.json
@@ -1,16 +1,16 @@
 [{ "title": "Introduction",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#introduction" }, 
+  "file":  "{{ site.path.guide }}/use/guide/persistence/index.html#introduction" }, 
 { "title": "Command Line Options",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#command-line-options" },
+  "file":  "{{ site.path.guide }}/use/guide/persistence/index.html#command-line-options" },
 { "title": "File-based Persistence",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#file-based-persistence" },
+  "file":  "{{ site.path.guide }}/use/guide/persistence/index.html#file-based-persistence" },
 { "title": "Object Store Persistence",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#object-store-persistence" }, 
+  "file":  "{{ site.path.guide }}/use/guide/persistence/index.html#object-store-persistence" }, 
 { "title": "Rebind",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#rebind" }, 
+  "file":  "{{ site.path.guide }}/use/guide/persistence/index.html#rebind" }, 
 { "title": "Handling Rebind Failures",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#handling-rebind-failures" }, 
+  "file":  "{{ site.path.guide }}/use/guide/persistence/index.html#handling-rebind-failures" }, 
 { "title": "High Availability",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#high-availability" }, 
+  "file":  "{{ site.path.guide }}/use/guide/persistence/index.html#high-availability" }, 
 { "title": "Writing Persistable Code",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#writing-persistable-code" }]
+  "file":  "{{ site.path.guide }}/use/guide/persistence/index.html#writing-persistable-code" }]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/policies/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/policies/index.md b/docs/guide/use/guide/policies/index.md
index 9dea286..c1be5cb 100644
--- a/docs/guide/use/guide/policies/index.md
+++ b/docs/guide/use/guide/policies/index.md
@@ -34,7 +34,7 @@ Writing Policies
 TODO
 -->
 
-*This section is not complete. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
+*This section is not complete. Feel free to [fork]({{site.path.guide}}/dev/code) the docs and lend a hand.*
 
 ### Best Practice
 
@@ -66,7 +66,7 @@ For this release, some of the mechanisms for implementing the above practices ar
 
 ### Implementation Classes
 
-*This section is not complete. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
+*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
 
@@ -123,7 +123,7 @@ Implementing Policies
 TODO
 -->
 
-*This section is not yet complete. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
+*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.
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/policies/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/policies/toc.json b/docs/guide/use/guide/policies/toc.json
index 7257dd7..1de7334 100644
--- a/docs/guide/use/guide/policies/toc.json
+++ b/docs/guide/use/guide/policies/toc.json
@@ -1,8 +1,8 @@
 [{ "title": "Introduction",
-  "file":  "{{ site.url }}/use/guide/policies/index.html#introduction" }, 
+  "file":  "{{ site.path.guide }}/use/guide/policies/index.html#introduction" }, 
 { "title": "Writing Policies",
-  "file":  "{{ site.url }}/use/guide/policies/index.html#writing-policies" },
+  "file":  "{{ site.path.guide }}/use/guide/policies/index.html#writing-policies" },
 { "title": "Off-the-Shelf Policies",
-  "file":  "{{ site.url }}/use/guide/policies/index.html#off-the-shelf-policies" },
+  "file":  "{{ site.path.guide }}/use/guide/policies/index.html#off-the-shelf-policies" },
 { "title": "Implementing Policies",
-  "file":  "{{ site.url }}/use/guide/policies/index.html#implementing-policies" }]
\ No newline at end of file
+  "file":  "{{ site.path.guide }}/use/guide/policies/index.html#implementing-policies" }]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/quickstart/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/index.md b/docs/guide/use/guide/quickstart/index.md
index 150a163..d12d6c0 100644
--- a/docs/guide/use/guide/quickstart/index.md
+++ b/docs/guide/use/guide/quickstart/index.md
@@ -20,7 +20,7 @@ We will be deploying an example 3-tier web application, described using this blu
 
 ## Install Brooklyn
 
-Download the [Brooklyn distribution]({{ this_dist_url_tgz }}) and expand it to your home directory ( `~/` ), or in a location of your choice. (Other [download options]({{site.url}}/start/download.html) are available.)
+Download the [Brooklyn distribution]({{ this_dist_url_tgz }}) and expand it to your home directory ( `~/` ), or in a location of your choice. (Other [download options]({{site.path.guide}}/start/download.html) are available.)
 
 {% if site.brooklyn-version contains 'SNAPSHOT' %}
 Expand the `tar.gz` archive (note: as this is a -SNAPSHOT version, your filename will be slightly different):
@@ -85,7 +85,7 @@ this file can be installed with:
 {% highlight bash %}
 $ mkdir ~/.brooklyn
 $ cd ~/.brooklyn
-$ wget {{site.url}}/use/guide/quickstart/brooklyn.properties
+$ wget {{site.path.guide}}/use/guide/quickstart/brooklyn.properties
 {% endhighlight %}
 
 Open this file in a text editor and follow the instructions there. The main settings are summarized below:
@@ -131,7 +131,7 @@ Some sample settings for this are:
     brooklyn.location.named.softlayer-dal05 = jclouds:softlayer:dal05
     brooklyn.location.named.softlayer-dal05.displayName = Softlayer Dallas
 
-If you want to test Brooklyn on localhost, follow [these instructions]({{site.url}}/use/guide/locations/) 
+If you want to test Brooklyn on localhost, follow [these instructions]({{site.path.guide}}/use/guide/locations/) 
 to ensure that your Brooklyn can access your machine.
 
 Once updated, restart Brooklyn (or reload the properties within the web GUI).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/quickstart/policies-and-catalogs.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/policies-and-catalogs.md b/docs/guide/use/guide/quickstart/policies-and-catalogs.md
index 2df32e4..d52b8f8 100644
--- a/docs/guide/use/guide/quickstart/policies-and-catalogs.md
+++ b/docs/guide/use/guide/quickstart/policies-and-catalogs.md
@@ -17,7 +17,7 @@ Download the template [catalog.xml](catalog.xml) to your `~/.brooklyn/` folder,
 
 {% highlight bash %}
 $ cd ~/.brooklyn
-$ wget {{site.url}}/use/guide/quickstart/catalog.xml
+$ wget {{site.path.guide}}/use/guide/quickstart/catalog.xml
 
 $ brooklyn launch
 {% endhighlight %}
@@ -58,7 +58,7 @@ As load is added, Brooklyn requests a new cloud machine, creates a new app serve
 
 ### Next
 
-The [Elastic Web Cluster Example]({{site.url}}use/examples/webcluster/index.html) page
+The [Elastic Web Cluster Example]({{site.path.guide}}use/examples/webcluster/index.html) page
 details how to build this demo application from scratch in Java. It shows in more detail how Brooklyn can
 complement your application with policy driven management, and how applications can be
 run from the command line.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/quickstart/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/toc.json b/docs/guide/use/guide/quickstart/toc.json
index d65eddb..eee07d6 100644
--- a/docs/guide/use/guide/quickstart/toc.json
+++ b/docs/guide/use/guide/quickstart/toc.json
@@ -1,4 +1,4 @@
 [{ "title": "Download & Deploy",
-  "file":  "{{ site.url }}/use/guide/quickstart/index.html" },
+  "file":  "{{ site.path.guide }}/use/guide/quickstart/index.html" },
 { "title": "Policies & Catalogs",
-  "file":  "{{ site.url }}/use/guide/quickstart/policies-and-catalogs.html" }]
+  "file":  "{{ site.path.guide }}/use/guide/quickstart/policies-and-catalogs.html" }]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/toc.json b/docs/guide/use/guide/toc.json
index 9a59b2a..93dc132 100644
--- a/docs/guide/use/guide/toc.json
+++ b/docs/guide/use/guide/toc.json
@@ -1,25 +1,25 @@
 [
 { "title": "Quick Start",
-  "file":  "{{ site.url }}/use/guide/quickstart/index.html",
-   "children": {% readj ./quickstart/toc.json %} },
+  "file":  "{{ site.path.guide }}/use/guide/quickstart/index.html",
+   "children": {% readj quickstart/toc.json %} },
 { "title": "Defining Applications",
-  "file":  "{{ site.url }}/use/guide/defining-applications/basic-concepts.html", 
-  "children": {% readj ./defining-applications/toc.json %} },
+  "file":  "{{ site.path.guide }}/use/guide/defining-applications/basic-concepts.html", 
+  "children": {% readj defining-applications/toc.json %} },
 { "title": "Management",
-  "file":  "{{ site.url }}/use/guide/management/index.html" ,
-  "children": {% readj ./management/toc.json %} },
+  "file":  "{{ site.path.guide }}/use/guide/management/index.html" ,
+  "children": {% readj management/toc.json %} },
 { "title": "Persistence",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html" ,
-  "children": {% readj ./persistence/toc.json %} },
+  "file":  "{{ site.path.guide }}/use/guide/persistence/index.html" ,
+  "children": {% readj persistence/toc.json %} },
 { "title": "Locations",
-  "file":  "{{ site.url }}/use/guide/locations/index.html" },
+  "file":  "{{ site.path.guide }}/use/guide/locations/index.html" },
 { "title": "Policies",
-  "file":  "{{ site.url }}/use/guide/policies/index.html",
-  "children": {% readj ./policies/toc.json %} },
+  "file":  "{{ site.path.guide }}/use/guide/policies/index.html",
+  "children": {% readj policies/toc.json %} },
 { "title": "Custom Entities",
-  "file":  "{{ site.url }}/use/guide/entities/index.html",
-  "children": {% readj ./entities/toc.json %} },
+  "file":  "{{ site.path.guide }}/use/guide/entities/index.html",
+  "children": {% readj entities/toc.json %} },
 { "title": "Extras",
-  "file":  "{{ site.url }}/use/guide/extras/index.html",
-  "children": {% readj ./extras/toc.json %}  }
-]
\ No newline at end of file
+  "file":  "{{ site.path.guide }}/use/guide/extras/index.html",
+  "children": {% readj extras/toc.json %}  }
+]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/index.md b/docs/guide/use/index.md
index 143ef80..df13613 100644
--- a/docs/guide/use/index.md
+++ b/docs/guide/use/index.md
@@ -4,6 +4,6 @@ title: Using Brooklyn
 toc: ../toc.json
 ---
 
-{% readj /start/docs-summary.include.md %}
+{% readj /guide/start/docs-summary.include.md %}
 
 Beyond this, [just come chat to us](contact.html).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/toc.json b/docs/guide/use/toc.json
index 1a5e3c9..3bc76f8 100644
--- a/docs/guide/use/toc.json
+++ b/docs/guide/use/toc.json
@@ -1,12 +1,12 @@
 [
 { "title": "User Guide",
-  "file":  "{{ site.url }}/use/guide/index.html",
-  "children": {% readj ./guide/toc.json %} },
+  "file":  "{{ site.path.guide }}/use/guide/index.html",
+  "children": {% readj guide/toc.json %} },
 { "title": "Examples",
-  "file":  "{{ site.url }}/use/examples/index.html", 
-  "children": {% readj ./examples/toc.json %} },
+  "file":  "{{ site.path.guide }}/use/examples/index.html", 
+  "children": {% readj examples/toc.json %} },
 { "title": "API Reference (javadoc)",
-  "file": "{{ site.url }}/use/api/index.html" },
+  "file": "{{ site.path.guide }}/use/api/index.html" },
 { "title": "Discuss",
-  "file": "{{ site.url }}/use/contact.html" }
+  "file": "{{ site.path.guide }}/use/contact.html" }
 ]


[42/50] [abbrv] incubator-brooklyn git commit: add a link on the download page to the latest version snapshot download page

Posted by he...@apache.org.
add a link on the download page to the latest version snapshot download 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/767d3d18
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/767d3d18
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/767d3d18

Branch: refs/heads/master
Commit: 767d3d18aeff00e51010424a2ae5ac59ad2ad60c
Parents: e23af8d
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 11:15:43 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 11:16:19 2014 +0000

----------------------------------------------------------------------
 docs/website/download.md | 12 ++++++++++++
 1 file changed, 12 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/767d3d18/docs/website/download.md
----------------------------------------------------------------------
diff --git a/docs/website/download.md b/docs/website/download.md
index 20d6410..c4a3da1 100644
--- a/docs/website/download.md
+++ b/docs/website/download.md
@@ -5,6 +5,18 @@ title: Download
 
 ## Download Brooklyn Binary Distributions
 
+**Snapshot Alert**: 
+We are working our way through the Apache process for an official Apache release,
+but as a result it has been a long time since the last milestone release.
+
+**You may wish to use a [snapshot release]({{ site.path.guide }}/start/download.html) 
+  as it now has many many features not in 0.7.0-M1!**
+
+{% if site.brooklyn-version contains 'SNAPSHOT' %}{% else %}
+  {% FAIL_needs_updating_for_release %}
+  The alert above should be removed when we make the next release build!
+{% endif %} 
+
 **New to Brooklyn**? Download the *Milestone* release below then take a look
 at the [Get Started](quickstart/) page.
 


[28/50] [abbrv] incubator-brooklyn git commit: new build script which can write docs to root, to /guide, or to /v/VERSION

Posted by he...@apache.org.
new build script which can write docs to root, to /guide, or to /v/VERSION


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

Branch: refs/heads/master
Commit: ff06bfe11acf56aa6fe3ab031b445dcaf517327a
Parents: f03feef
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Dec 16 09:26:26 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:56 2014 +0000

----------------------------------------------------------------------
 docs/_build/build.sh                 | 90 +++++++++++++++++++++++++++----
 docs/_build/config-guide-root.yml    |  4 ++
 docs/_build/config-guide-version.yml |  7 +++
 docs/_build/config-production.yml    |  6 +++
 docs/_build/jekyll-debug.sh          |  6 ---
 docs/_build/make-javadoc.sh          |  2 +-
 docs/_build/preview                  | 11 ----
 7 files changed, 99 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ff06bfe1/docs/_build/build.sh
----------------------------------------------------------------------
diff --git a/docs/_build/build.sh b/docs/_build/build.sh
index b8b7ed2..d10dc82 100755
--- a/docs/_build/build.sh
+++ b/docs/_build/build.sh
@@ -3,19 +3,91 @@
 # this generates the site in _site
 # override --url /myMountPoint  (as an argument to this script) if you don't like the default set in /_config.yml
 
-if [ ! -x _scripts/build.sh ] ; then
+if [ ! -x _build/build.sh ] ; then
   echo script must be run in root of docs dir
   exit 1
 fi
 
-rm -rf _site/
+function help() {
+  echo "This will build the documentation in _site/."
+  echo "Usage:  _build/build.sh MODE [ARGS]"
+  echo "where MODE is:"
+  echo "* guide-root : to build the guide in the root"
+  echo "* guide-version : to build the guide in the versioned namespace /v/VERSION/"
+  echo "* default : to build the files in their natural location (e.g. guide in /guide/)"
+  echo "and supported ARGS are:"
+  echo "* --skip-javadoc : to skip javadoc build"
+  echo 'with any remaining ARGS passed to jekyll as `jekyll build --config ... ARGS`.'
+}
 
-jekyll --pygments $* "$@" || { echo failed jekyll site build ; exit 1 ; }
-echo
+function deduce_config() {
+  DIRS_TO_MOVE=( )
+  case $1 in
+  help)
+    help
+    exit 0 ;;
+  guide-root)
+    CONFIG=_config.yml,_build/config-production.yml,_build/config-guide-root.yml
+    DIRS_TO_MOVE["guide"]=""
+    SUMMARY="user guide files in the root"
+    ;;
+  guide-version)
+    CONFIG=_config.yml,_build/config-production.yml,_build/config-guide-version.yml
+    # Mac bash defaults to v3 not v4, so can't use assoc arrays :(
+    DIRS_TO_MOVE[0]=guide
+    # BROOKLYN_VERSION_BELOW
+    DIRS_TO_MOVE_TARGET[0]=v/0.7.0-SNAPSHOT
+    DIRS_TO_MOVE[1]=style
+    DIRS_TO_MOVE_TARGET[1]=${DIRS_TO_MOVE_TARGET[0]}/style
+    SUMMARY="user guide files in /${DIRS_TO_MOVE_TARGET[0]}"
+    ;;
+  default)
+    CONFIG=_config.yml,_build/config-production.yml
+    SUMMARY="all files in their default place"
+    ;;
+  "")
+    echo "Arguments are required. Try 'help'."
+    exit 1 ;;
+  *)
+    echo "Invalid argument '$1'. Try 'help'."
+    exit 1 ;;
+  esac
+}
 
-pushd _javadoc > /dev/null
-./make-javadoc.sh || { echo failed javadoc build ; exit 1 ; }
-popd > /dev/null
-echo
+function build_jekyll() {
+  echo JEKYLL running with: jekyll build $CONFIG $@
+  jekyll build --config $CONFIG $@ || return 1
+  echo JEKYLL completed
+  for DI in "${!DIRS_TO_MOVE[@]}"; do
+    D=${DIRS_TO_MOVE[$DI]}
+    DT=${DIRS_TO_MOVE_TARGET[$DI]}
+    echo moving _site/$D/ to _site/$DT
+    mkdir -p _site/$DT
+    # the generated files are already in _site/ due to url rewrites along the way, but images etc are not
+    cp -r _site/$D/* _site/$DT
+    rm -rf _site/$D
+  done
+  rm -rf _site/long_grass
+}
 
-echo docs build complete, in _site
+rm -rf _site
+
+deduce_config $@
+shift
+
+if [ "$1" = "--skip-javadoc" ]; then
+  SKIP_JAVADOC=true
+  shift
+fi
+
+build_jekyll || { echo ERROR: could not build docs in `pwd` ; exit 1 ; }
+
+if [ "$SKIP_JAVADOC" != "true" ]; then
+  pushd _build > /dev/null
+  ./make-javadoc.sh || { echo ERROR: failed javadoc build ; exit 1 ; }
+  popd > /dev/null
+fi
+
+# TODO build catalog
+
+echo FINISHED: $SUMMARY of `pwd`/_site 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ff06bfe1/docs/_build/config-guide-root.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-guide-root.yml b/docs/_build/config-guide-root.yml
new file mode 100644
index 0000000..64bd67f
--- /dev/null
+++ b/docs/_build/config-guide-root.yml
@@ -0,0 +1,4 @@
+
+path:
+  guide: ""
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ff06bfe1/docs/_build/config-guide-version.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-guide-version.yml b/docs/_build/config-guide-version.yml
new file mode 100644
index 0000000..5e4acc0
--- /dev/null
+++ b/docs/_build/config-guide-version.yml
@@ -0,0 +1,7 @@
+
+path:
+  # BROOKLYN_VERSION_BELOW
+  guide: /v/0.7.0-SNAPSHOT
+  # BROOKLYN_VERSION_BELOW
+  style: /v/0.7.0-SNAPSHOT/style
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ff06bfe1/docs/_build/config-production.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-production.yml b/docs/_build/config-production.yml
new file mode 100644
index 0000000..5aaf12d
--- /dev/null
+++ b/docs/_build/config-production.yml
@@ -0,0 +1,6 @@
+
+url: https://brooklyn.incubator.apache.org
+
+dependency_mode: remote
+
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ff06bfe1/docs/_build/jekyll-debug.sh
----------------------------------------------------------------------
diff --git a/docs/_build/jekyll-debug.sh b/docs/_build/jekyll-debug.sh
deleted file mode 100755
index 4654098..0000000
--- a/docs/_build/jekyll-debug.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-#
-# launches jekyll as a server at the / location, for easy debug
-
-jekyll --pygments --server --auto --url ""  $*
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ff06bfe1/docs/_build/make-javadoc.sh
----------------------------------------------------------------------
diff --git a/docs/_build/make-javadoc.sh b/docs/_build/make-javadoc.sh
index 2f9da56..4df6462 100755
--- a/docs/_build/make-javadoc.sh
+++ b/docs/_build/make-javadoc.sh
@@ -32,7 +32,7 @@ ant.groovydoc(
     windowtitle  : "\${title}",
     doctitle     : "\${title}",
     header       : "\${title}",
-    footer       : '<b>Brooklyn Multi-Cloud Application Management Platform</b> <br/> <a href="http://brooklyncentral.github.com/" target="_top">brooklyncentral.github.com</a>. Apache License. &copy; 2012.',
+    footer       : '<b>Apache Brooklyn - Multi-Cloud Application Management Platform</b> <br/> <a href="http://brooklyn.io/" target="_top">brooklyn.io</a>. Apache License. &copy; 2014.',
     private      : "false")
 println "\njavadoc built in target/apidocs\n" 
 END

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ff06bfe1/docs/_build/preview
----------------------------------------------------------------------
diff --git a/docs/_build/preview b/docs/_build/preview
deleted file mode 100755
index 418f753..0000000
--- a/docs/_build/preview
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash -e
-
-# for newer version of jekyll, based on what is used for incubator-brooklyn-site
-
-set -x
-
-echo > _config_local.yml "url: "
-
-rm -rf _site
-
-jekyll serve --config _config_local.yml --watch


[33/50] [abbrv] incubator-brooklyn git commit: improve the links between website and guide

Posted by he...@apache.org.
improve the links between website and 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/c3bf7215
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/c3bf7215
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/c3bf7215

Branch: refs/heads/master
Commit: c3bf7215604f96b4dcccc922d8d1415e9c5991a3
Parents: f8521f4
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 01:46:44 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:58 2014 +0000

----------------------------------------------------------------------
 docs/_build/config-guide-latest.yml  |  1 +
 docs/_build/config-guide-version.yml |  2 +-
 docs/_build/config-website-root.yml  |  1 +
 docs/_layouts/guide-normal.html      |  2 +-
 docs/_plugins/read.rb                | 47 +++++++++++++++----------------
 docs/_plugins/site_structure.rb      | 12 ++++++--
 docs/website/documentation.md        |  2 +-
 7 files changed, 37 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c3bf7215/docs/_build/config-guide-latest.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-guide-latest.yml b/docs/_build/config-guide-latest.yml
index 8b20811..faf2631 100644
--- a/docs/_build/config-guide-latest.yml
+++ b/docs/_build/config-guide-latest.yml
@@ -1,2 +1,3 @@
 path:
   guide: /v/latest
+  website: ""

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c3bf7215/docs/_build/config-guide-version.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-guide-version.yml b/docs/_build/config-guide-version.yml
index 03b654d..640f22f 100644
--- a/docs/_build/config-guide-version.yml
+++ b/docs/_build/config-guide-version.yml
@@ -3,4 +3,4 @@ path:
   guide: /v/0.7.0-SNAPSHOT
   # BROOKLYN_VERSION_BELOW
   style: /v/0.7.0-SNAPSHOT/style
-
+  website: ""

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c3bf7215/docs/_build/config-website-root.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-website-root.yml b/docs/_build/config-website-root.yml
index 7ac39fe..e5e4b07 100644
--- a/docs/_build/config-website-root.yml
+++ b/docs/_build/config-website-root.yml
@@ -1,2 +1,3 @@
 path:
   website: ""
+  guide: "/v/latest"

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c3bf7215/docs/_layouts/guide-normal.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/guide-normal.html b/docs/_layouts/guide-normal.html
index 411769e..e04c674 100644
--- a/docs/_layouts/guide-normal.html
+++ b/docs/_layouts/guide-normal.html
@@ -187,7 +187,7 @@ console.log("setting text to "+txt);
     <div id="header">
     
         <div id="identity">
-            <a href="http://brooklyncentral.github.com/" rel="home">Brooklyn</a>
+            <a href="{{ site.path.website }}" rel="home">Brooklyn</a>
         </div>
         
         <ul id="quicklinks">

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c3bf7215/docs/_plugins/read.rb
----------------------------------------------------------------------
diff --git a/docs/_plugins/read.rb b/docs/_plugins/read.rb
index 74a7613..ae0ba75 100644
--- a/docs/_plugins/read.rb
+++ b/docs/_plugins/read.rb
@@ -37,18 +37,18 @@ module JekyllRead
       @text = text
     end
     def render(context)
-	filename = @text.strip
-        filename = context[filename] || filename
+      filename = @text.strip
+      filename = context[filename] || filename
 
-        # Pathname API ignores first arg below if second is absolute
-        file = Pathname.new(File.dirname(context['page']['path'])) + filename
-        file = file.cleanpath
-        # is there a better way to trim a leading / ?
-        file = file.relative_path_from(Pathname.new("/")) unless file.relative?
-        raise "No such file #{file} in read call (from #{context['page']['path']})" unless file.exist?
+      # Pathname API ignores first arg below if second is absolute
+      file = Pathname.new(File.dirname(context['page']['path'])) + filename
+      file = file.cleanpath
+      # is there a better way to trim a leading / ?
+      file = file.relative_path_from(Pathname.new("/")) unless file.relative?
+      raise "No such file #{file} in read call (from #{context['page']['path']})" unless file.exist?
 
-	file = File.open(file, "rb")
-	return file.read
+      file = File.open(file, "rb")
+      return file.read
     end
   end
 
@@ -58,25 +58,24 @@ module JekyllRead
       @text = text
     end
     def render(context)
-        filename = @text.strip
-        filename = context[filename] || filename
+      filename = @text.strip
+      filename = context[filename] || filename
 
-        # Pathname API ignores first arg below if second is absolute
-        file = Pathname.new(File.dirname(context['page']['path'])) + filename
-        file = file.cleanpath
-        # is there a better way to trim a leading / ?
-        file = file.relative_path_from(Pathname.new("/")) unless file.relative?
-        raise "No such file #{file} in readj call (from #{context['page']['path']})" unless file.exist?
+      # Pathname API ignores first arg below if second is absolute
+      file = Pathname.new(File.dirname(context['page']['path'])) + filename
+      file = file.cleanpath
+      # is there a better way to trim a leading / ?
+      file = file.relative_path_from(Pathname.new("/")) unless file.relative?
+      raise "No such file #{file} in readj call (from #{context['page']['path']})" unless file.exist?
 
-        # with readj we support vars and paths relative to a file being readj'd
-        jekyllSite = context.registers[:site]
-	targetPage = Jekyll::Page.new(jekyllSite, jekyllSite.source, File.dirname(file), File.basename(file))
-	targetPage.render(jekyllSite.layouts, jekyllSite.site_payload)
-	return targetPage.output
+      # with readj we support vars and paths relative to a file being readj'd
+      jekyllSite = context.registers[:site]
+      targetPage = Jekyll::Page.new(jekyllSite, jekyllSite.source, File.dirname(file), File.basename(file))
+      targetPage.render(jekyllSite.layouts, jekyllSite.site_payload)
+      return targetPage.output
     end
   end
 end
 
 Liquid::Template.register_tag('read', JekyllRead::ReadTag)
 Liquid::Template.register_tag('readj', JekyllRead::ReadjTag)
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c3bf7215/docs/_plugins/site_structure.rb
----------------------------------------------------------------------
diff --git a/docs/_plugins/site_structure.rb b/docs/_plugins/site_structure.rb
index 95ba1d5..af98473 100644
--- a/docs/_plugins/site_structure.rb
+++ b/docs/_plugins/site_structure.rb
@@ -38,7 +38,12 @@ module SiteStructure
       site.data['navgroups'] = navgroups
       site.data['structure'] = gen_structure(site, SiteStructure::BROOKLYN_WEBSITE_ROOT, nil, navgroups)
     end
-    
+
+    def render_liquid(site, page, content)
+      info = { :filters => [Jekyll::Filters], :registers => { :site => site, :page => page } }
+      page.render_liquid(content, site.site_payload, info)
+    end
+        
     def gen_structure(site, pagename, parent, navgroups)
       page = find_page_with_path_absolute_or_relative_to(site, pagename, parent)
       
@@ -72,10 +77,11 @@ module SiteStructure
         page.data['children'].each do |c|
           if c['path']
             # links to another Jekyll site-structured page
-            c['reference'] = gen_structure(site, c['path'], page, navgroups)
+            c['reference'] = gen_structure(site, render_liquid(site, page, c['path']), page, navgroups)
           elsif c['link']
             # links to a non-site-structured page, on this site or elsewhere
-            c['reference'] = { 'url' => c['link'], 'title' => c['title'] }
+            # allow title and link to use vars and tags (liquid processing)
+            c['reference'] = { 'url' => render_liquid(site, page, c['link']), 'title' => render_liquid(site, page, c['title']) }
           end
         end
       end

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c3bf7215/docs/website/documentation.md
----------------------------------------------------------------------
diff --git a/docs/website/documentation.md b/docs/website/documentation.md
index 5d164a4..4ad3c8e 100644
--- a/docs/website/documentation.md
+++ b/docs/website/documentation.md
@@ -2,7 +2,7 @@
 layout: website-normal
 title: Documentation
 children:
-- { link: "/v/latest", title: User Guide }
+- { link: "{{ site.path.guide }}", title: User Guide }
 - { path: glossary.md }
 - { path: documentation/install-on-server.md }
 ---


[14/50] [abbrv] incubator-brooklyn git commit: tidy up config.yml comments, and set encoding utf-8 so accents etc work

Posted by he...@apache.org.
tidy up config.yml comments, and set encoding utf-8 so accents etc work


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

Branch: refs/heads/master
Commit: f03feef9d98cd53bb6f9baca28651f965c68976b
Parents: 4824a94
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Dec 15 22:07:59 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:55 2014 +0000

----------------------------------------------------------------------
 docs/_config.yml                | 10 ++++------
 docs/_layouts/guide-normal.html |  2 +-
 2 files changed, 5 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f03feef9/docs/_config.yml
----------------------------------------------------------------------
diff --git a/docs/_config.yml b/docs/_config.yml
index bc0ac52..5bb4372 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -17,18 +17,16 @@
 # under the License.
 #
 exclude: [ LICENSE.txt ]
-markdown: rdiscount
+encoding: utf-8
 
 brooklyn-version: 0.7.0-SNAPSHOT # BROOKLYN_VERSION
 brooklyn-snapshot-git-branch: master   # if line above is SNAPSHOT this should point to corresponding git branch (e.g. master, 0.4)
 
-#@deprecated
-#brooklyn-root-url: /
-# url: /v/0.7.0-SNAPSHOT  # BROOKLYN_VERSION
-# url: 
-
+# where this will publish
 url_root: http://0.0.0.0:4000
 
+# absolute base directories where things will land on the server
+# (prefix each with e.g. /brooklyn to test for absolute reference problems)
 path:
   style: /style
   guide: /guide

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f03feef9/docs/_layouts/guide-normal.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/guide-normal.html b/docs/_layouts/guide-normal.html
index 37dba39..411769e 100644
--- a/docs/_layouts/guide-normal.html
+++ b/docs/_layouts/guide-normal.html
@@ -22,7 +22,7 @@ under the License.
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 
 <head>
-  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
+  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
   <title>{{ page.title }}</title>
 
   <link rel="stylesheet" href="{{ site.path.style }}/css/guide.css" type="text/css" media="screen" />


[03/50] [abbrv] incubator-brooklyn git commit: move version-specific things to "guide"

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/creating-yaml.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/creating-yaml.md b/docs/use/guide/defining-applications/creating-yaml.md
deleted file mode 100644
index fab8426..0000000
--- a/docs/use/guide/defining-applications/creating-yaml.md
+++ /dev/null
@@ -1,417 +0,0 @@
----
-title: Writing YAML Blueprints
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide, defining-applications]
----
-
-## A First Blueprint
-
-The easiest way to write a blueprint is as a YAML file.
-This follows the  <a href="https://www.oasis-open.org/committees/camp/">OASIS CAMP</a> plan specification, 
-with some extensions described below.
-(A [YAML reference](yaml-reference.html) has more information,
-and if the YAML doesn't yet do what you want,
-it's easy to add new extensions using your favorite JVM language.)
-
-### The Basic Structure
-
-Here's a very simple YAML blueprint plan, to explain the structure:
-
-{% highlight yaml %}
-{% readj example_yaml/simple-appserver.yaml %}
-{% endhighlight %}
-
-* The `name` is just for the benefit of us humans.
-
-* The `location` specifies where this should be deployed.
-  If you've [set up passwordless localhost SSH access]({{ site.url }}/use/guide/locations/) 
-  you can use `localhost` as above, but if not, just wait ten seconds for the next example.
-  
-* The `services` block takes a list of the typed services we want to deploy.
-  This is the meat of the blueprint plan, as you'll see below.
-
-Finally, that clipboard in the corner lets you easily copy-and-paste into the web-console:
-simply [download and launch]({{ site.url }}/use/guide/quickstart/) Brooklyn,
-then in the "Add Application" dialog at the web console
-(usually [http://127.0.0.1:8081/](http://127.0.0.1:8081/). 
-There are several other ways to deploy, including `curl` and via the command-line,
-and you can configure https and security, and much more, as described [here](deploying-yaml.html).
-
-[![Web Console](web-console-yaml-700.png "YAML via Web Console")](web-console-yaml.png)
-
-
-### Setting Locations
-
-Brooklyn supports a very wide range of target locations -- localhost is mainly a convenience for testing.
-With deep integration to [Apache jclouds](http://jclouds.org), most well-known clouds and cloud platforms are supported.
-The following example is for Amazon EC2:
-
-{% highlight yaml %}
-{% readj example_yaml/simple-appserver-with-location.yaml %}
-{% endhighlight %}
-
-(You'll need to replace the `identity` and `credential` with the 
-"Access Key ID" and "Secret Access Key" for your account,
-as configured in the [AWS Console](https://console.aws.amazon.com/iam/home?#security_credential).)
-
-Other popular public clouds include `softlayer`, `google-compute-engine`, and `rackspace-cloudservers-us`.
-Private cloud systems including `openstack-nova` and `cloudstack` are also supported,
-although for these you'll supply an `endpoint: https://9.9.9.9:9999/v2.0/` 
-(or `client/api/` in the case of CloudStack) instead of the `region`.
-
-You can also specify pre-existing servers to use -- "bring-your-own-nodes".
-These can be a global pool or specific to a service.
-Both styles are shown here (though normally only one will be selected,
-<!-- TODO see #1377, currently it is *parent* location which is preferred typically --> 
-depending on the blueprint):
-
-{% highlight yaml %}
-{% readj example_yaml/simple-appserver-with-location-byon.yaml %}
-{% endhighlight %}
-
-You'll also note in this example that we've used JSON-style notation in the second `location` block.
-YAML supports this, and sometimes that makes more readable plans.
-(Although in this case a simple `location: localhost` is equivalent and even more succinct, but this is a tutorial.)
-
-For more information see the Locations section of the [YAML reference](yaml-reference.html) 
-and in the [User's Guide]({{ site.url }}/use/guide/locations/).
-Another good reference is the [template brooklyn.properties](/use/guide/quickstart/brooklyn.properties),
-which if you install in `~/.brooklyn/brooklyn.properties` and edit with your credentials,  
-allows you to refer to clouds simply as `location: jclouds:aws-ec2:eu-west-1` or
-set up "named locations" you can use as `location: named:my_cloudstack`.
-
-
-## Configuring VMs
-
-Another simple blueprint will just create a VM which you can use, without any software installed upon it:
-
-{% highlight yaml %}
-{% readj example_yaml/simple-vm.yaml %}
-{% endhighlight %}
-
-
-*We've omitted the `location` section here and in many of the examples below;
-add the appropriate choice when you paste your YAML. Note that the `provisioning.properties` will be
-ignored if deploying to `localhost` or `byon` fixed-IP machines.* 
-
-This will create a VM with the specified parameters in your choice of cloud.
-In the GUI (and in the REST API), the entity is called "VM",
-and the hostname and IP address(es) are reported as [sensors]({{ site.url }}/use/guide/defining-applications/basic-concepts.html).
-There are many more `provisioning.properties` supported here,
-including:
-
-* a `user` to create (if not specified it creates the same username as `brooklyn` is running under) 
-* a `password` for him or a `publicKeyFile` and `privateKeyFile` (defaulting to keys in `~/.ssh/id_rsa{.pub,}` and no password,
-  so if you have keys set up you can immediately ssh in!)
-* `machineCreateAttempts` (for dodgy clouds, and they nearly all fail occasionally!) 
-* and things like `imageId` and `userMetadata` and disk and networking options (e.g. `autoAssignFloatingIp` for private clouds)
-
-For more information, see the javadoc on `JcloudsLocationConfig`.
-
-
-### Clusters, Specs, and Composition
-
-What if you want multiple machines?
-
-One way is just to repeat the `- type: brooklyn.entity.basic.EmptySoftwareProcess` block,
-but there's another way which will keep your powder [DRY](http://en.wikipedia.org/wiki/Don't_repeat_yourself):
-
-{% highlight yaml %}
-{% readj example_yaml/cluster-vm.yaml %}
-{% endhighlight %}
-
-Here we've composed the previous blueprint introducing some new important concepts, the `DynamicCluster`
-the `$brooklyn` DSL, and the "entity-spec".  Let's unpack these. 
-
-The `DynamicCluster` creates a set of homogeneous instances.
-At design-time, you specify an initial size and the specification for the entity it should create.
-At runtime you can restart and stop these instances as a group (on the `DynamicCluster`) or refer to them
-individually. You can resize the cluster, attach enrichers which aggregate sensors across the cluster, 
-and attach policies which, for example, replace failed members or resize the cluster dynamically.
-
-The specification is defined in the `memberSpec` key.  As you can see it looks very much like the
-previous blueprint, with one extra line.  Entries in the blueprint which start with `$brooklyn:`
-refer to the Brooklyn DSL and allow a small amount of logic to be embedded
-(if there's a lot of logic, it's recommended to write a blueprint YAML plugin or write the blueprint itself
-as a plugin, in Java or a JVM-supported language).  
-
-In this case we want to indicate that the parameter to `memberSpec` is an entity specification
-(`EntitySpec` in the underlying type system); the `entitySpec` DSL command will do this for us.
-The example above thus gives us 5 VMs identical to the one we created in the previous section.
-
-
-## A Bigger Blueprint
-
-We've seen the configuration of machines and how to build up clusters.
-Now let's return to our app-server example and explore how more interesting
-services can be configured, composed, and combined.
-
-Also note there are some good overview materials [here]({{site.url}}//use/guide/defining-applications/basic-concepts.html)
-covering clusters, sensors, effectors and more, 
-if you're the kind of person who likes to learn more about concepts before seeing them in action.
-
-
-### Service Configuration
-
-We'll begin by using more key-value pairs to configure the JBoss server to run a real app:
-
-{% highlight yaml %}
-{% readj example_yaml/appserver-configured.yaml %}
-{% endhighlight %}
-
-(As before, you'll need to add the `location` info; `localhost` will work for these and subsequent examples.)
-
-When this is deployed, you can see management information in the Brooklyn Web Console,
-including a link to the deployed application (downloaded to the target machine from the `hello-world` URL),
-running on port 8080.
-
-**Top tip**:  If port 8080 might be in use, you can specify `8080+` to take the first available port >= 8080;
-the actual port will be reported as a sensor by Brooklyn.
-
-It's also worth indicating an alternate, more formal syntax.
-Not all configuration on entities is supported at the top level of the service specification
-(only those which are defined as "flags" in the underlying blueprint,
-e.g. the `@SetFromFlag("war")` in the `WebAppServiceConstants` parent of `JBoss7Server`).
-All configuration has a formal qualified name, and this can be supplied even where flags or config keys are not
-explicitly defined, by placing it into a `brooklyn.config` section:
-
-{% highlight yaml %}
-{% readj example_yaml/appserver-configured-in-config.yaml %}
-{% endhighlight %}
-
-
-
-### Multiple Services and Dependency Injection
-
-If you explored the `hello-world-sql` application we just deployed, 
-you'll have noticed it tries to access a database.
-And it fails, because we have not set one up.  Let's do that now:
-
-{% highlight yaml %}
-{% readj example_yaml/appserver-w-db.yaml %}
-{% endhighlight %}
-
-Here there are a few things going on:
-
-* We've added a second service, which will be the database;
-  you'll note the database has been configured to run a custom setup script
-* We've injected the URL of the second service into the appserver as a Java system property
-  (so our app knows where to find the database) 
-
-**Caution: Be careful if you write your YAML in an editor which attempts to put "smart-quotes" in.
-All quote characters must be plain ASCII, not fancy left-double-quotes and right-double-quotes!**
-
-There are as many ways to do dependency injection as there are developers,
-it sometimes seems; our aim in Brooklyn is not to say this has to be done one way,
-but to support the various mechanisms people might need to do, for whatever reasons.
-(We each have our opinions about what works well, of course;
-the one thing we do want to call out is that being able to dynamically update
-the injection is useful in a modern agile application -- so we are definitively **not**
-recommending this Java system property approach ... but it is an easy one to demo!)
-
-The way the dependency injection works is again by using the `$brooklyn:` DSL,
-this time referring to the `component("db")` (looked up by the `id` field on our DB component),
-and then to a sensor emitted by that component.
-All the database entities emit a `database.url` sensor when they are up and running;
-the `attributeWhenReady` DSL method will store a pointer to that sensor (a Java Future under the covers)
-in the Java system properties map which the JBoss entity reads at launch time, blocking if needed.
-
-This means that the deployment occurs in parallel, and if the database comes up first,
-there is no blocking; but if the JBoss entity completes its installation and 
-downloading the WAR, it will wait for the database before it launches.
-At that point the URL is injected, first passing it through `formatString`
-to include the credentials for the database (which are defined in the database creation script).
-
-
-
-### An Aside: Substitutability
-
-Don't like JBoss?  Is there something about Maria?
-One of the modular principles we follow in Brooklyn is substitutability:
-in many cases, the config keys, sensors, and effectors are defined
-in superclasses and are portable across multiple implementations.
-
-Here's an example deploying the same application but with different flavors of the components:
-
-{% highlight yaml %}
-{% readj example_yaml/appserver-w-db-other-flavor.yaml %}
-{% endhighlight %}
-
-We've also brought in the `provisioning.properties` from the VM example earlier
-so our database has 8GB RAM.
-Any of those properties, including `imageId` and `user`, can be defined on a per-entity basis.
-
-
-### Clusters and Policies
-
-Now let's bring the concept of the "cluster" back in.
-We could wrap our appserver in the same `DynamicCluster` we used earlier,
-although then we'd need to define and configure the load balancer.
-But another blueprint, the `ControlledDynamicWebAppCluster`, does this for us.
-It takes the same `memberSpec`, so we can build a fully functional elastic 3-tier
-deployment of our `hello-world-sql` application as follows:
-
-{% highlight yaml %}
-{% readj example_yaml/appserver-clustered-w-db.yaml %}
-{% endhighlight %}
-
-This sets up Nginx as the controller by default, but that can be configured
-using the `controllerSpec` key. In fact, JBoss is the default appserver,
-and because configuration in Brooklyn is inherited by default,
-the same blueprint can be expressed more concisely as:
-
-{% highlight yaml %}
-{% readj example_yaml/appserver-clustered-w-db-concise.yaml %}
-{% endhighlight %}
- 
-The other nicety supplied by the `ControlledDynamicWebAppCluster` blueprint is that
-it aggregates sensors from the appserver, so we have access to things like
-`webapp.reqs.perSec.windowed.perNode`.
-These are convenient for plugging in to policies!
-We can set up our blueprint to do autoscaling based on requests per second
-(keeping it in the range 10..100, with a maximum of 5 appserver nodes)
-as follows: 
-
-{% highlight yaml %}
-{% readj example_yaml/appserver-w-policy.yaml %}
-{% endhighlight %}
-
-Use your favorite load-generation tool (`jmeter` is one good example) to send a huge
-volume of requests against the server and see the policies kick in to resize it.
-
-
-## New Custom Entities
-
-So far we've covered how to configure and compose entities.
-There's a large library of blueprints available, but
-there are also times when you'll want to write your own.
-
-For complex use cases, you can write JVM, but for many common situations,
-some of the highly-configurable blueprints make it easy to write in YAML,
-including `bash` and Chef.
- 
-
-### Vanilla Software using `bash`
-
-The following blueprint shows how a simple script can be embedded in the YAML
-(the `|` character is special YAML which makes it easier to insert multi-line text):
-
-{% highlight yaml %}
-{% readj example_yaml/vanilla-bash-netcat.yaml %}
-{% endhighlight %}
-
-This starts a simple `nc` listener on port 4321 which will respond `hello` to the first
-session which connects to it. Test it by running `telnet localhost 4321`.  
-
-This is just a simple script, but it shows how any script can be easily embedded here,
-including a script to download and run other artifacts.
-Many artifacts are already packaged such that they can be downloaded and launched 
-with a simple script, and `VanillaSoftwareProcess` can also be used for them. 
-We can specify a `download.url` which downloads artifacts (unpacking TAR, TGZ, and ZIP archives)
-before running `launch.command` relative to where that file is installed (or unpacked),
-with `./start.sh` being the default `launch.command`.
-
-So if we create a file `/tmp/netcat-server.tgz` containing just `start.sh` in the root
-which consists of the two lines in the previous example,
-we can instead write our example as: 
-
-{% highlight yaml %}
-{% readj example_yaml/vanilla-bash-netcat-file.yaml %}
-{% endhighlight %}
-
-The one requirement of the script is that it store the process ID (PID) in the file
-pointed to by `$PID_FILE`, hence the second line of the script.
-This is because Brooklyn wants to monitor the services under management. 
-(There are other options; you can set `checkRunning.command` and `stop.command` instead,
-as documented on the Javadoc of the `VanillaSoftwareProcess` class,
-and those scripts will be used instead of checking and stopping the process whose PID is in `$PID_FILE`.)
-
-And indeed, once you've run one `telnet` to the server, you'll see that the 
-service has gone "on fire" in Brooklyn -- because the `nc` process has stopped. 
-Besides detecting this failure, Brooklyn policies can be added to the YAML to take appropriate 
-action. A simple recovery here might just be to restart the process:
-
-{% highlight yaml %}
-{% readj example_yaml/vanilla-bash-netcat-restarter.yaml %}
-{% endhighlight %}
-
-Autonomic management in Brooklyn often follows the principle that complex behaviours emerge
-from composing simple policies.
-The blueprint above uses one policy to triggering a failure sensor when the service is down,
-and another responds to such failures by restarting the service.
-This makes it easy to configure various aspects, such as to delay to see if the service itself recovers
-(which here we've set to 15 seconds) or to bail out on multiple failures within a time window (which again we are not doing).
-Running with this blueprint, you'll see that the service shows as on fire for 15s after a `telnet`,
-before the policy restarts it. 
-
-For an even more interesting way to test it, look at the blueprint defining
-[a netcat server and client](example_yaml/vanilla-bash-netcat-w-client.yaml).
-This uses `initializers` to define an effector to `sayHiNetcat` on the `Simple Pinger` client,
-using `env` variables to inject the `netcat-server` location and 
-`parameters` to pass in per-effector data:
-
-      env:
-        TARGET_HOSTNAME: $brooklyn:component("netcat-server").attributeWhenReady("host.name")
-      brooklyn.initializers:
-      - type: brooklyn.entity.software.ssh.SshCommandEffector
-        brooklyn.config:
-          name: sayHiNetcat
-          description: Echo a small hello string to the netcat entity
-          command: |
-            echo $message | nc $TARGET_HOSTNAME 4321
-          parameters:
-            message:
-              description: The string to pass to netcat
-              defaultValue: hi netcat
-
-This blueprint also uses initializers to define sensors on the `netcat-server` entity
-so that the `$message` we passed above gets logged and reported back:
-
-      launch.command: |
-        echo hello | nc -l 4321 >> server-input &
-        echo $! > $PID_FILE
-      brooklyn.initializers:
-      - type: brooklyn.entity.software.ssh.SshCommandSensor
-        brooklyn.config:
-          name: output.last
-          command: tail -1 server-input
-
-This is still a simple example, but worth going through carefully.
-It shows many of the building blocks used in real-world blueprints,
-and how they can often be easily described and combined in Brooklyn YAML blueprints.
-Next, if you need to drive off-piste, or you want to write tests against these blueprints,
-have a look at, for example, `VanillaBashNetcatYamlTest.java` in the Brooklyn codebase,
-or follow the other references below.
-
-<!--
-TODO building up children entities
-
--->
-
-<!--
-
-### Using Chef Recipes
-
-TODO
-
--->
-
-
-### More Information
-
-Plenty of examples of blueprints exist in the Brooklyn codebase,
-so a good starting point is to [`git clone`]({{ site.url }}/dev/code/index.html) it
-and search for `*.yaml` files therein.
-
-Brooklyn lived as a Java framework for many years before we felt confident
-to make a declarative front-end, so you can do pretty much anything you want to
-by dropping to the JVM. Information on that is available:
-* in the [user guide]({{site.url}}/use/guide/entities/index.html),
-* through a [Maven archetype]({{site.url}}/use/guide/defining-applications/archetype.html),
-* in the [codebase](https://github.com/brooklyncentral/brooklyn),
-* and in plenty of [examples]({{site.url}}/use/examples/index.html).
-
-You can also come talk to us, on IRC (#brooklyncentral on Freenode) or
-any of the usual [hailing frequencies]({{site.url}}/meta/contact.html),
-as these documents are a work in progress.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/deploying-yaml.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/deploying-yaml.md b/docs/use/guide/defining-applications/deploying-yaml.md
deleted file mode 100644
index d448cb1..0000000
--- a/docs/use/guide/defining-applications/deploying-yaml.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: Deploying YAML Blueprints
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide, defining-applications]
----
-
-Once you've [written a YAML blueprint](creating-yaml.md), there are several ways to deploy it.
-These insructions assume you have [installed]({{ site.url }}/use/guide/quickstart/) Brooklyn.
-You can then:
-
-- Supply the YAML blueprint file on the CLI when launching the server:
-
-{% highlight bash %}
-$ brooklyn launch --app ./blueprint.yaml
-{% endhighlight %}
-
-
-Or, assuming you've launched a server already 
-(usually on [http://127.0.0.1/](http://127.0.0.1/) unless you've 
-configured security in [`brooklyn.properties`](/use/guide/quickstart/brooklyn.properties)),
-you can:
-
-- Curl it to the Brooklyn REST API:
-
-{% highlight bash %}
-$ curl -T ./blueprint.yaml -X POST http://localhost:8081/v1/applications
-{% endhighlight %}
-
-
-- In the web-console, select the "YAML" tab in the "Add Application" wizard:
-
-[![Web Console](web-console-yaml-700.png "YAML via Web Console")](web-console-yaml.png)
-
-
-- The web-console also has an interactive "REST API" page,
-  where you can paste the YAML for uploading into the `POST` to `/v1/applications`.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_files/tomcat_multi-location.java
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_files/tomcat_multi-location.java b/docs/use/guide/defining-applications/example_files/tomcat_multi-location.java
deleted file mode 100644
index cb92766..0000000
--- a/docs/use/guide/defining-applications/example_files/tomcat_multi-location.java
+++ /dev/null
@@ -1,15 +0,0 @@
-// TODO Untested code; see brooklyn-example for better maintained examples!
-public class TomcatFabricApp extends AbstractApplication {
-    @Override
-    public void init() {
-        addChild(EntitySpec.create(DynamicFabric.class)
-                .configure("displayName", "WebFabric")
-                .configure("displayNamePrefix", "")
-                .configure("displayNameSuffix", " web cluster")
-                .configure("memberSpec", EntitySpec.create(ControlledDynamicWebAppCluster.class)
-                        .configure("initialSize", 2)
-                        .configure("memberSpec", : EntitySpec.create(TomcatServer.class)
-                                .configure("httpPort", "8080+")
-                                .configure("war", "/path/to/booking-mvc.war"))));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_files/tomcat_nginx.java
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_files/tomcat_nginx.java b/docs/use/guide/defining-applications/example_files/tomcat_nginx.java
deleted file mode 100644
index 20db33d..0000000
--- a/docs/use/guide/defining-applications/example_files/tomcat_nginx.java
+++ /dev/null
@@ -1,17 +0,0 @@
-// TODO Untested code; see brooklyn-example for better maintained examples!
-public class TomcatClusterWithNginxApp extends AbstractApplication {
-    @Override
-    public void init() {
-        addChild(EntitySpec.create(NginxController.class)
-                .configure("domain", "brooklyn.geopaas.org")
-                .configure("port", "8000+")
-                .configure("portNumberSensor", Attributes.HTTP_PORT));
-        
-        addChild(EntitySpec.create(ControlledDynamicWebAppCluster.class)
-                .configure("controller", nginxController)
-                .configure("memberSpec", : EntitySpec.create(TomcatServer.class)
-                        .configure("httpPort", "8080+")
-                        .configure("war", "/path/to/booking-mvc.war"))
-                .configure("initialSize", 2));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_files/tomcat_simple.java
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_files/tomcat_simple.java b/docs/use/guide/defining-applications/example_files/tomcat_simple.java
deleted file mode 100644
index 480a333..0000000
--- a/docs/use/guide/defining-applications/example_files/tomcat_simple.java
+++ /dev/null
@@ -1,9 +0,0 @@
-// TODO Untested code; see brooklyn-example for better maintained examples!
-public class TomcatServerApp extends AbstractApplication {
-    @Override
-    public void init() {
-        addChild(EntitySpec.create(TomcatServer.class)
-                .configure("httpPort", "8080+")
-                .configure("war", "/path/to/booking-mvc.war")));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml b/docs/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml
deleted file mode 100644
index 062c09f..0000000
--- a/docs/use/guide/defining-applications/example_yaml/appserver-clustered-w-db-concise.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: appserver-clustered-w-db-concise
-services:
-- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster
-  initialSize: 2
-  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+
-    java.sysprops: 
-      brooklyn.example.db.url: $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
-           component("db").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")
-- type: brooklyn.entity.database.mysql.MySqlNode
-  id: db
-  name: DB HelloWorld Visitors
-  brooklyn.config:
-    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml b/docs/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml
deleted file mode 100644
index a7b3c57..0000000
--- a/docs/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-name: appserver-clustered-w-db
-services:
-- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster
-  initialSize: 2
-  memberSpec:
-    $brooklyn:entitySpec:
-      type: 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+
-        java.sysprops: 
-          brooklyn.example.db.url: $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
-              component("db").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")
-- type: brooklyn.entity.database.mysql.MySqlNode
-  id: db
-  name: DB HelloWorld Visitors
-  brooklyn.config:
-    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/appserver-configured-in-config.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/appserver-configured-in-config.yaml b/docs/use/guide/defining-applications/example_yaml/appserver-configured-in-config.yaml
deleted file mode 100644
index 50c1873..0000000
--- a/docs/use/guide/defining-applications/example_yaml/appserver-configured-in-config.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: appserver-configured-in-config
-services:
-- type: 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/ba6612ec/docs/use/guide/defining-applications/example_yaml/appserver-configured.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/appserver-configured.yaml b/docs/use/guide/defining-applications/example_yaml/appserver-configured.yaml
deleted file mode 100644
index 04ec858..0000000
--- a/docs/use/guide/defining-applications/example_yaml/appserver-configured.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-name: appserver-configured
-services:
-- type: 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/ba6612ec/docs/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml b/docs/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml
deleted file mode 100644
index 784f7fd..0000000
--- a/docs/use/guide/defining-applications/example_yaml/appserver-w-db-other-flavor.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-name: appserver-w-db-other-flavor
-services:
-- type: 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.port: 8080+
-    java.sysprops: 
-      brooklyn.example.db.url: $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
-         component("db").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")
-- type: brooklyn.entity.database.mariadb.MariaDbNode
-  id: db
-  name: DB HelloWorld Visitors
-  brooklyn.config:
-    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql
-    provisioning.properties:
-      minRam: 8192

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/appserver-w-db.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/appserver-w-db.yaml b/docs/use/guide/defining-applications/example_yaml/appserver-w-db.yaml
deleted file mode 100644
index 5a16c0d..0000000
--- a/docs/use/guide/defining-applications/example_yaml/appserver-w-db.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: appserver-w-db
-services:
-- type: 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.port: 8080+
-    java.sysprops: 
-      brooklyn.example.db.url: $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
-         component("db").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")
-- type: brooklyn.entity.database.mysql.MySqlNode
-  id: db
-  name: DB HelloWorld Visitors
-  brooklyn.config:
-    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml b/docs/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml
deleted file mode 100644
index 757157e..0000000
--- a/docs/use/guide/defining-applications/example_yaml/appserver-w-policy.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-name: appserver-w-policy
-services:
-- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster
-  initialSize: 1
-  memberSpec:
-    $brooklyn:entitySpec:
-      type: 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+
-        java.sysprops: 
-          brooklyn.example.db.url: $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
-              component("db").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")
-  brooklyn.policies:
-  - policyType: brooklyn.policy.autoscaling.AutoScalerPolicy
-    brooklyn.config:
-      metric: $brooklyn:sensor("brooklyn.entity.webapp.DynamicWebAppCluster", "webapp.reqs.perSec.windowed.perNode")
-      metricLowerBound: 10
-      metricUpperBound: 100
-      minPoolSize: 1
-      maxPoolSize: 5
-- type: brooklyn.entity.database.mysql.MySqlNode
-  id: db
-  name: DB HelloWorld Visitors
-  brooklyn.config:
-    datastore.creation.script.url: https://github.com/brooklyncentral/brooklyn/raw/master/usage/launcher/src/test/resources/visitors-creation-script.sql

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/cluster-vm.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/cluster-vm.yaml b/docs/use/guide/defining-applications/example_yaml/cluster-vm.yaml
deleted file mode 100644
index a0a50da..0000000
--- a/docs/use/guide/defining-applications/example_yaml/cluster-vm.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-name: cluster-vm
-services:
-- type: brooklyn.entity.group.DynamicCluster
-  initialSize: 5
-  memberSpec:
-    $brooklyn:entitySpec:
-      type: brooklyn.entity.basic.EmptySoftwareProcess
-      name: VM
-      provisioning.properties:
-        minRam: 8g
-        minCores: 4
-        minDisk: 100g

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/mysql-chef-1.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/mysql-chef-1.yaml b/docs/use/guide/defining-applications/example_yaml/mysql-chef-1.yaml
deleted file mode 100644
index bdac530..0000000
--- a/docs/use/guide/defining-applications/example_yaml/mysql-chef-1.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: chef-mysql-sample
-services:
-- type: chef:mysql
-  
-  cookbook_urls:
-    # only needed for chef solo; URL can be local to brooklyn, or github, etc...
-    mysql: https://github.com/opscode-cookbooks/mysql/archive/v4.0.12.tar.gz
-    openssl: https://github.com/opscode-cookbooks/openssl/archive/v1.1.0.tar.gz
-    build-essential: https://github.com/opscode-cookbooks/build-essential/archive/v1.4.4.tar.gz
-  
-  launch_run_list: [ "mysql::server" ]
-  launch_attributes:
-    mysql:
-      # these attrs are required by the mysql cookbook under node['mysql']
-      server_root_password: p4ssw0rd
-      server_repl_password: p4ssw0rd
-      server_debian_password: p4ssw0rd
-      # many others are attrs are supported by the cookbook and can be passed here...
-      
-  # how to determine if the process is running and how to kill it
-  # (supported options are `service_name` and `pid_file`; normally you should just pick one.
-  # here we use the pid_file because the service_name varies, mysql on centos, mysqld on ubuntu!)
-  #service_name: mysqld
-  pid_file: /var/run/mysqld/mysqld.pid

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/mysql-chef-2.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/mysql-chef-2.yaml b/docs/use/guide/defining-applications/example_yaml/mysql-chef-2.yaml
deleted file mode 100644
index ced2dbe..0000000
--- a/docs/use/guide/defining-applications/example_yaml/mysql-chef-2.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-name: chef-mysql-sample
-services:
-- type: chef:mysql
-  id: db
-  
-  cookbook_urls:
-    # only needed for chef solo; URL can be local to brooklyn, or github, etc...
-    mysql: https://github.com/opscode-cookbooks/mysql/archive/v4.0.12.tar.gz
-    openssl: https://github.com/opscode-cookbooks/openssl/archive/v1.1.0.tar.gz
-    build-essential: https://github.com/opscode-cookbooks/build-essential/archive/v1.4.4.tar.gz
-  
-  launch_run_list: [ "mysql::server" ]
-  launch_attributes:
-    mysql:
-      # these attrs are required by the mysql cookbook under node['mysql']
-      server_root_password: $brooklyn:component("db").config("mysql.password")
-      server_repl_password: $brooklyn:component("db").config("mysql.password")
-      server_debian_password: $brooklyn:component("db").config("mysql.password")
-      # many others are attrs are supported by the cookbook and can be passed here...
-      
-  # how to determine if the process is running and how to kill it
-  # (supported options are `service_name` and `pid_file`; normally you should just pick one.
-  # here we use the pid_file because the service_name varies, mysql on centos, mysqld on ubuntu!)
-  #service_name: mysqld
-  pid_file: /var/run/mysqld/mysqld.pid
-    
-brooklyn.config:
-  mysql.password: p4ssw0rd

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/simple-appserver-with-location-byon.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/simple-appserver-with-location-byon.yaml b/docs/use/guide/defining-applications/example_yaml/simple-appserver-with-location-byon.yaml
deleted file mode 100644
index 7ba5b0c..0000000
--- a/docs/use/guide/defining-applications/example_yaml/simple-appserver-with-location-byon.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-name: simple-appserver-with-location-byon
-location:
-  byon:
-    user: brooklyn
-    privateKeyFile: ~/.ssh/brooklyn.pem
-    hosts:
-    - 192.168.0.18
-    - 192.168.0.19
-services:
-- type: brooklyn.entity.webapp.jboss.JBoss7Server
-  location:
-    byon: { hosts: [ 127.0.0.1 ] }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/simple-appserver-with-location.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/simple-appserver-with-location.yaml b/docs/use/guide/defining-applications/example_yaml/simple-appserver-with-location.yaml
deleted file mode 100644
index c241ab2..0000000
--- a/docs/use/guide/defining-applications/example_yaml/simple-appserver-with-location.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-name: simple-appserver-with-location
-location:
-  jclouds:aws-ec2:
-    region: us-east-1
-    identity: AKA_YOUR_ACCESS_KEY_ID
-    credential: <access-key-hex-digits>
-services:
-- type: brooklyn.entity.webapp.jboss.JBoss7Server

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/simple-appserver.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/simple-appserver.yaml b/docs/use/guide/defining-applications/example_yaml/simple-appserver.yaml
deleted file mode 100644
index 3850b26..0000000
--- a/docs/use/guide/defining-applications/example_yaml/simple-appserver.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-name: simple-appserver
-location: localhost
-services:
-- type: brooklyn.entity.webapp.jboss.JBoss7Server

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/simple-vm.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/simple-vm.yaml b/docs/use/guide/defining-applications/example_yaml/simple-vm.yaml
deleted file mode 100644
index 149a1b9..0000000
--- a/docs/use/guide/defining-applications/example_yaml/simple-vm.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-name: simple-vm
-services:
-- type: brooklyn.entity.basic.EmptySoftwareProcess
-  name: VM
-  provisioning.properties:
-    minRam: 8192mb
-    minCores: 4
-    minDisk: 100gb

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-file.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-file.yaml b/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-file.yaml
deleted file mode 100644
index 7950b8c..0000000
--- a/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-file.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: Simple Netcat Example From File
-location: localhost
-services:
-- type: brooklyn.entity.basic.VanillaSoftwareProcess
-  name: Simple Netcat Server
-  download.url: file:///tmp/netcat-server.tgz

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-restarter.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-restarter.yaml b/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-restarter.yaml
deleted file mode 100644
index 1fd70c3..0000000
--- a/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-restarter.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-name: Simple Netcat Example with Restarter Policy
-location: localhost
-services:
-- type: brooklyn.entity.basic.VanillaSoftwareProcess
-  id: netcat-server
-  name: Simple Netcat Server
-  launch.command: |
-    echo hello | nc -l 4321 &
-    echo $! > $PID_FILE
-  brooklyn.enrichers:
-  - type: brooklyn.policy.ha.ServiceFailureDetector
-    brooklyn.config:
-      # wait 15s after service fails before propagating failure
-      serviceFailedStabilizationDelay: 15s
-  brooklyn.policies:
-  - type: brooklyn.policy.ha.ServiceRestarter
-    brooklyn.config:
-      # repeated failures in a time window can cause the restarter to abort,
-      # propagating the failure; a time window of 0 will mean it always restarts!
-      failOnRecurringFailuresInThisDuration: 0

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-w-client.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-w-client.yaml b/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-w-client.yaml
deleted file mode 100644
index 50051db..0000000
--- a/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat-w-client.yaml
+++ /dev/null
@@ -1,72 +0,0 @@
-name: Simple Netcat with Client
-
-location: localhost
-
-services:
-
-# the netcat server instance, running in listener mode (-l)
-- type: brooklyn.entity.basic.VanillaSoftwareProcess
-  id: netcat-server
-  name: Simple Netcat Server
-  launch.command: |
-    echo hello | nc -l 4321 >> server-input &
-    echo $! > $PID_FILE
-
-  brooklyn.policies:
-  # restarter and 
-  - policyType: brooklyn.policy.ha.ServiceFailureDetector
-    brooklyn.config:
-      # wait 15s after service fails before propagating failure
-      serviceFailedStabilizationDelay: 15s
-  - policyType: brooklyn.policy.ha.ServiceRestarter
-    brooklyn.config:
-      # repeated failures in a time window can cause the restarter to abort,
-      # propagating the failure; a time window of 0 will mean it always restarts!
-      failOnRecurringFailuresInThisDuration: 0
-      
-  brooklyn.initializers:
-  # two sensors, recording the data sent to this netcat server:
-  
-  - type: brooklyn.entity.software.ssh.SshCommandSensor
-    brooklyn.config:
-      name: output.last
-      command: tail -1 server-input
-      
-  - type: brooklyn.entity.software.ssh.SshCommandSensor
-    brooklyn.config:
-      name: output.all
-      command: cat server-input
-
-# a client to hit netcat
-- type: brooklyn.entity.basic.VanillaSoftwareProcess
-  name: Simple Pinger
-  
-  # set the hostname of the netcat instance as an env var for the scripts 
-  env:
-    TARGET_HOSTNAME: $brooklyn:component("netcat-server").attributeWhenReady("host.name")
-    
-  # start/check/stop are no-op
-  launch.command: ""
-  checkRunning.command: ""
-  stop.command: ""
-  
-  brooklyn.initializers:
-  # but there is a sample effector which runs nc in client mode
-  
-  - type: brooklyn.entity.software.ssh.SshCommandEffector
-    brooklyn.config:
-      name: sayHiNetcat
-      description: Echo a small hello string to the netcat entity
-      command: |
-        echo $message | nc $TARGET_HOSTNAME 4321
-      parameters:
-        message:
-          description: The string to pass to netcat
-          defaultValue: hi netcat
-
-# and add an enricher at the root so all sensors from netcat-server are visible on the root
-brooklyn.enrichers:
-- enricherType: brooklyn.enricher.basic.Propagator
-  brooklyn.config:
-    enricher.producer: $brooklyn:component("netcat-server")
-    enricher.propagating.propagatingAll: true

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat.yaml b/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat.yaml
deleted file mode 100644
index d4cb37b..0000000
--- a/docs/use/guide/defining-applications/example_yaml/vanilla-bash-netcat.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-name: Simple Netcat Server Example
-location: localhost
-services:
-- type: brooklyn.entity.basic.VanillaSoftwareProcess
-  name: Simple Netcat Server
-  launch.command: |
-    echo hello | nc -l 4321 &
-    echo $! > $PID_FILE
-
-  # The following overrides demonstrate the use of a custom shell environment as well as
-  # check-running and stop commands. These are optional; default behavior will "do the
-  # right thing" with the pid file automatically.
-
-  env:                  { CHECK_MARKER: "checkRunning", STOP_MARKER: "stop" }
-  checkRunning.command: echo $CHECK_MARKER >> DATE && test -f "$PID_FILE" && ps -p `cat $PID_FILE` >/dev/null
-  stop.command:         echo $STOP_MARKER  >> DATE && test -f "$PID_FILE" && { kill -9 `cat $PID_FILE`; rm /tmp/vanilla.pid; }
-
-# can also define download.url, in which case the launch command defaults to ./start.sh in that (archive) file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/examples.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/examples.md b/docs/use/guide/defining-applications/examples.md
deleted file mode 100644
index a208bd7..0000000
--- a/docs/use/guide/defining-applications/examples.md
+++ /dev/null
@@ -1,120 +0,0 @@
----
-title: Examples
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide, defining-applications]
----
-
-** TODO: this examples page is deprecated;
-code is out-of-date, and better examples are described on the web site.
-need to figure out if this page should be kept at all
-(indeed if the "guide" is even still relevant)**
-
-
-### Integrating with a Maven project
-
-If you have a Maven-based project, integrate this XML fragment with your pom.xml:
-
-<!-- TODO this should import from the downloads page -->
-
-{% highlight xml %}
-<dependencies>
-	<dependency>
-		<groupId>io.brooklyn</groupId>
-		<artifactId>brooklyn-all</artifactId>
-		<version>0.7.0-SNAPSHOT</version>  <!-- BROOKLYN_VERSION -->
-	</dependency>
-</dependencies>
- 
-<repository>
-    <id>cloudsoft-releases</id>
-    <url>http://developers.cloudsoftcorp.com/download/maven2/</url>
-</repository>
-<repository>
-    <id>libs-snapshot-local</id>
-    <url>http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/</url>
-    <snapshots>
-        <enabled>true</enabled>
-        <updatePolicy>never</updatePolicy>
-        <checksumPolicy>fail</checksumPolicy>
-    </snapshots>
-</repository>
-{% endhighlight %}
-
-
-### Starting a Tomcat Server
-
-The code below starts a Tomcat server on the local machine.
-
-The ``main`` method defines the application, and passes it to the ``BrooklynLauncher`` to be managed. 
-It is then started in a localhost location (other locations are shown in the next section).
-
-The Tomcat's configuration indicates that the given WAR should be deployed to the Tomcat server when it is started.
-
-{% highlight java %}
-{% readj example_files/tomcat_simple.java %}
-{% endhighlight %}
-
-The ``wars`` config is also supported (with config keys ``ROOT_WAR`` and ``NAMED_WARS`` the long-hand syntax);
-they accept EARs and other common archives, and can be described as files or as URLs (as Strings), 
-with URLs supporting an optional ``classpath://org/acme/resources/xxx.war`` syntax.
-
-
-### Starting Tomcat in Amazon EC2
-
-To start a tomcat node or cluster in Amazon EC2, the application is identical to that for localhost. 
-The only difference is the location supplied.
-
-The Brooklyn CLI can be used to launch the application in your choice of location, such as:
-
-{% highlight bash %}
-brooklyn launch --app TomcatServerApp --location localhost
-brooklyn launch --app TomcatServerApp --location aws-ec2:eu-west-1
-{% endhighlight %}
-
- 
-### Starting a Tomcat Cluster with Nginx
-
-The code below starts a Tomcat cluster along with an Nginx instance, where each Tomcat server in the cluster is registered with the Nginx instance.
-
-{% highlight java %}
-{% readj example_files/tomcat_nginx.java %}
-{% endhighlight %}
-
-This creates a cluster that of Tomcat servers, along with an Nginx instance. The ``NginxController`` instance
-is notified whenever a member of the cluster joins or leaves; the entity is configured to look at the ``HTTP_PORT``
-attribute of that instance so that the Nginx configuration can be updated with the ip:port of the cluster member.
-
-<!---
-TODO things may need tidying (paragraphs, and/or eliminating any extra setConfig calls, though looks like these have gone)
--->
-
-
-Starting a Multi-location Tomcat Fabric
----------------------------------------
-
-<!---
-TODO this example should use several cloud providers, including Openshift, and use GeoDNS, 
-and maybe a data store and/or messaging service; it is the last "most advanced" example
--->
-
-<!---
-FIXME Discuss above comment with Aled/Alex as it is contentious
--->
-
-The ``ControlledDynamicWebAppCluster`` entity used above can also be used with a DynamicFabric to start
-a web-cluster in each location.
-
-{% highlight java %}
-{% readj example_files/tomcat_multi-location.java %}
-{% endhighlight %}
-
-
-Examples Source
----------------
-
-Source code for (more up-to-date!) examples is available for download from GitHub. To retrieve the source, execute the following command:
-
-    git clone git@github.com:brooklyncentral/brooklyn-examples.git
-
-You can also [browse the code](https://github.com/brooklyncentral/brooklyn-examples) on the web.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/service-state.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/service-state.md b/docs/use/guide/defining-applications/service-state.md
deleted file mode 100644
index 32212bc..0000000
--- a/docs/use/guide/defining-applications/service-state.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: Service State
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide, defining-applications]
----
-
-Any entity can use the standard "service-up" and "service-state" 
-sensors to inform other entities and the GUI about its status.
-
-In normal operation, entities should publish at least one "service not-up indicator",
-using the `ServiceNotUpLogic.updateNotUpIndicator` method.  Each such indicator should have
-a unique name or input sensor.  `Attributes.SERVICE_UP` will then be updated automatically
-when there are no not-up indicators.
-
-When there are transient problems that can be detected, to trigger `ON_FIRE` status
-entity code can similarly set `ServiceProblemsLogic.updateProblemsIndicator` with a unique namespace,
-and subsequently clear it when the problem goes away.
-These problems are reflected at runtime in the `SERVICE_PROBLEMS` sensor,
-allowing multiple problems to be tracked independently.
-
-When an entity is changing the expected state, e.g. starting or stopping,
-the expected state can be set using `ServiceStateLogic.setExpectedState`;
-this expected lifecycle state is considered together with `SERVICE_UP` and `SERVICE_PROBLEMS`
-to compute the actual state.  By default the logic in `ComputeServiceState` is applied.
-
-For common entities, good out-of-the-box logic is applied, as follows:
-
-* For `SoftwareProcess` entities, lifecycle service state is updated by the framework
-  and a service not-up indicator is linked to the driver `isRunning()` check.
-  
-* For common parents, including `AbstractApplication` and `AbstractGroup` subclasses (including clusters, fabrics, etc),
-  the default enrichers analyse children and members to set a not-up indicator
-  (requiring at least one child or member who is up) and a problem indicator
-  (if any children or members are on-fire).
-  In some cases other quorum checks are preferable; this can be set e.g. by overriding 
-  the `UP_QUORUM_CHECK` or the `RUNNING_QUORUM_CHECK`, as follows:
-  
-      public static final ConfigKey<QuorumCheck> UP_QUORUM_CHECK = ConfigKeys.newConfigKeyWithDefault(AbstractGroup.UP_QUORUM_CHECK, 
-          "Require all children and members to be up for this node to be up",
-          QuorumChecks.all());
-
-  Alternatively the `initEnrichers()` method can be overridden to specify a custom-configured
-  enricher or set custom config key values (as done e.g. in `DynamicClusterImpl` so that
-  zero children is permitted provided when the initial size is configured to be 0).
-
-
-For sample code to set and more information on these methods' behaviours,
-see javadoc in `ServiceStateLogic`,
-overrides of `AbstractEntity.initEnrichers()`
-and tests in `ServiceStateLogicTests`.
-
-<!-- TODO include more documentation, sample code (ideally extracted on the fly from test cases so we know it works!) -->
-
-
-## Notes on Advanced Use
-
-The enricher to derive `SERVICE_UP` and `SERVICE_STATE_ACTUAL` from the maps and expected state values discussed above
-is added by the `AbstractEntity.initEnrichers()` method.
-This method can be overridden -- or excluded altogether by by overriding `init()` --
-and can add enrichers created using the `ServiceStateLogic.newEnricherFromChildren()` method
-suitably customized using methods on the returned spec object, for instance to look only at members
-or specify a quorum function (from `QuorumChecks`). 
-If different logic is required for computing `SERVICE_UP` and `SERVICE_STATE_ACTUAL`,
-use `ServiceStateLogic.newEnricherFromChildrenState()` and `ServiceStateLogic.newEnricherFromChildrenUp()`,
-noting that the first of these will replace the enricher added by the default `initEnrichers()`,
-whereas the second one runs with a different namespace (unique tag).
-For more information consult the javadoc on those classes.
-
-Entities can set `SERVICE_UP` and `SERVICE_STATE_ACTUAL` directly.
-Provided these entities never use the `SERVICE_NOT_UP_INDICATORS` and `SERVICE_PROBLEMS` map,
-the default enrichers will not override these values.
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/toc.json
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/toc.json b/docs/use/guide/defining-applications/toc.json
deleted file mode 100644
index 08940a8..0000000
--- a/docs/use/guide/defining-applications/toc.json
+++ /dev/null
@@ -1,19 +0,0 @@
-[{ "title": "Basic Concepts",
-  "file":  "{{ site.url }}/use/guide/defining-applications/basic-concepts.html" }, 
-{ "title": "Advanced Concepts",
-  "file":  "{{ site.url }}/use/guide/defining-applications/advanced-concepts.html" }, 
-{ "title": "Common Usage",
-  "file":  "{{ site.url }}/use/guide/defining-applications/common-usage.html" },
-{ "title": "YAML Blueprints",
-  "file":  "{{ site.url }}/use/guide/defining-applications/creating-yaml.html" },
-{ "title": "Chef Blueprints",
-  "file":  "{{ site.url }}/use/guide/defining-applications/chef-blueprints.html" },
-{ "title": "Deploying YAML",
-  "file":  "{{ site.url }}/use/guide/defining-applications/deploying-yaml.html" },
-{ "title": "YAML Reference",
-  "file":  "{{ site.url }}/use/guide/defining-applications/yaml-reference.html" },
-{ "title": "Service State",
-  "file":  "{{ site.url }}/use/guide/defining-applications/service-state.html" },
-{ "title": "Maven Archetype",
-  "file":  "{{ site.url }}/use/guide/defining-applications/archetype.html" }
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/web-console-yaml-700.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/web-console-yaml-700.png b/docs/use/guide/defining-applications/web-console-yaml-700.png
deleted file mode 100644
index d6a2249..0000000
Binary files a/docs/use/guide/defining-applications/web-console-yaml-700.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/web-console-yaml.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/web-console-yaml.png b/docs/use/guide/defining-applications/web-console-yaml.png
deleted file mode 100644
index 3d65a99..0000000
Binary files a/docs/use/guide/defining-applications/web-console-yaml.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/yaml-reference.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/yaml-reference.md b/docs/use/guide/defining-applications/yaml-reference.md
deleted file mode 100644
index df19dd3..0000000
--- a/docs/use/guide/defining-applications/yaml-reference.md
+++ /dev/null
@@ -1,183 +0,0 @@
----
-title: Broooklyn YAML Blueprint Reference
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide, defining-applications]
----
-
-## Root Elements
-
-* `name`: human readable names
-* `services`: a list of `ServiceSpecification` elements
-* `location` (or `locations` taking a list): a `LocationSpecification` element as a string or a map
-
-
-## `ServiceSpecification` Elements
-
-Within the `services` block, a list of maps should be supplied, with each map
-defining a `ServiceSpecification`.  Each `ServiceSpecification` should declare the
-service `type` (synonyms `serviceType` and `service_type`), indicating what type of 
-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 -->
-
-A reference of some of the common service `type` instances used is included in a section below.
-
-Within the `ServiceSpecification`, other key-value pairs can be supplied to customize
-the entity being defined, with these being the most common:
-
-* `id`: an ID string, used to refer to this service
-
-* `location` (or `locations`): as defined in the root element 
-  
-* `brooklyn.config`: configuration key-value pairs passed to the service entity being created
-
-* `brooklyn.children`: a list of `ServiceSpecifications` which will be configured as children of this entity
-
-* `brooklyn.policies`: a list of policies, each as a map described with their `type` and their `brooklyn.config` as keys
-
-* `brooklyn.enrichers`: a list of enrichers, each as a map described with their `type` and their `brooklyn.config` as keys
-
-* `brooklyn.initializers`: a list of `EntityInitializer` instances to be constructed and run against the entity, 
-  each as a map described with their `type` and their `brooklyn.config` as keys.
-  An `EntityInitiailzer` can perform arbitrary customization to an entity whilst it is being constructed,
-  such as adding dynamic sensors and effectors. These classes must expose a public constructor taking
-  a single `Map` where the `brooklyn.config` is passed in.
-  Some common initializers are:
-  
-  * `brooklyn.entity.software.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`,
-    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) 
-
-Entities, policies, and initializers may accept additional key-value pairs, 
-usually documented in their documentation (e.g. javadoc), or in the case of Java
-often as static fields in the underlying Java class.
-Often there are config keys or flags (indicated by `@SetFromFlag`) declared on the class; 
-these declared flags and config keys may be passed in at the root of the `ServiceSpecification` or in `brooklyn.config`.
-(Undeclared config is only accepted in the `brooklyn.config` map.)
-
-
-## `LocationSpecification` Elements
-
-<!-- TODO - expand this, currently it's concise notes -->
-
-In brief, location specs are supplied as follows, either for the entire application (at the root)
-or for a specific `ServiceSpecification`:
-
-    location:
-      jclouds:aws-ec2:
-        region: us-east-1
-        identity: AKA_YOUR_ACCESS_KEY_ID
-        credential: <access-key-hex-digits>
-
-Or in many cases it can be in-lined:
-
-    location: localhost
-    location: named:my_openstack
-    location: aws-ec2:us-west-1
-
-For the first immediately, you'll need password-less ssh access to localhost.
-For the second, you'll need to define a named location in `brooklyn.properties`,
-using `brooklyn.location.named.my_openstack....` properties.
-For the third, you'll need to have the identity and credentials defined in
-`brooklyn.properties`, using `brooklyn.location.jclouds.aws-ec2....` properties.
-
-If specifying multiple locations, e.g. for a fabric:
-
-    locations:
-    - localhost
-    - named:my_openstack
-    - aws-ec2:us-east-2   # if credentials defined in `brooklyn.properties
-    - jclouds:aws-ec2:
-        region: us-east-1
-        identity: AKA_YOUR_ACCESS_KEY_ID
-        credential: <access-key-hex-digits>
-
-If you have pre-existing nodes, you can use the `byon` provider, either in this format:
-
-    location:
-      byon:
-        user: root
-        privateKeyFile: ~/.ssh/key.pem
-        hosts:
-        - 81.95.144.58
-        - 81.95.144.59
-        - brooklyn@159.253.144.139
-        - brooklyn@159.253.144.140
-
-or:
-
-    location:
-      byon:
-        user: root
-        privateKeyFile: ~/.ssh/key.pem
-        hosts: "{81.95.144.{58,59},brooklyn@159.253.144.{139-140}"
-
-You cannot use glob expansions with the list notation, nor can you specify per-host
-information apart from user within a single `byon` declaration.
-However you can combine locations using `multi`:
-
-    location:
-      multi:
-        targets:
-        - byon:
-            user: root
-            privateKeyFile: ~/.ssh/key.pem
-            hosts:
-            - 81.95.144.58
-            - 81.95.144.59
-        - byon:
-            privateKeyFile: ~/.ssh/brooklyn_key.pem
-            hosts: brooklyn@159.253.144{139-140}
-
-
-## DSL Commands
-
-Dependency injection other powerful references and types can be built up within the YAML using the
-concise DSL defined here:
- 
-* `$brooklyn:component("ID")` refers to a Brooklyn component with the given ID; you can then access the following subfields:
-  * `.attributeWhenReady("sensor")` will store a future which will be blocked when it is accessed,
-    until the given `sensor` from the component `ID` has a "truthy" (i.e. non-trivial, non-empty, non-zero) value
-  * `.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:component("scope", "ID")` is also supported, to limit scope to any of
-  * `global`: looks for the `ID` anywhere in the plan
-  * `child`: looks for the `ID` anywhere in the child only
-  * `descendant`: looks for the `ID` anywhere in children or their descendants
-  * `sibling`: looks for the `ID` anywhere among children of the parent entity
-  * `parent`: returns the parent entity (ignores the `ID`)
-  * `this`: returns this entity (ignores the `ID`)
-* `$brooklyn:formatString("pattern e.g. %s %s", "field 1", "field 2")` returns a future which creates the formatted string
-  with the given parameters, where parameters may be strings *or* other tasks such as `attributeWhenReady`
-* `$brooklyn:literal("string")` returns the given string as a literal (suppressing any `$brooklyn:` expansion)
-* `$brooklyn:sensor("io.brooklyn.ContainingEntityClass", "sensor.name")` returns the strongly typed sensor defined in the given class
-* `$brooklyn:entitySpec(Map)` returns a new `ServiceSpecification` as defined by the given `Map`,
-  but as an `EntitySpec` suitable for setting as the value of `ConfigKey<EntitySpec>` config items
-  (such as `memberSpec` in `DynamicCluster`)
-
-These can be supplied either as strings or as lists and maps in YAML. 
-
-
-## Some Powerful YAML Entities
-
-All entities support configuration via YAML, but these entities in particular 
-have been designed for general purpose use from YAML.  Consult the Javadoc for these
-elements for more information:
-
-* **Vanilla Software** in `VanillaSoftwareProcess`: makes it very easy to build entities
-  which use `bash` commands to install and the PID to stop and restart
-* **Chef** in `ChefSoftwareProcess`: makes it easy to use Chef cookbooks to build entities,
-  either with recipes following conventions or with configuration in the `ServiceSpecification`
-  to use artibitrary recipes 
-* `DynamicCluster`: provides resizable clusters given a `memberSpec` set with `$brooklyn.entitySpec(Map)` as described above 
-* `DynamicFabric`: provides a set of homogeneous instances started in different locations,
-  with an effector to `addLocation`, i.e. add a new instance in a given location, at runtime

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/entities/index.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/entities/index.md b/docs/use/guide/entities/index.md
deleted file mode 100644
index dc7df88..0000000
--- a/docs/use/guide/entities/index.md
+++ /dev/null
@@ -1,133 +0,0 @@
----
-title: Custom Entity Development
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide, entities]
----
-
-This section details how to create new custom application components or groups as brooklyn entities.
-
-<a name="entity-lifestyle"></a>
-The Entity Lifecycle
---------------------
-
-- Importance of serialization, ref to How mananagement works
-- Parents and Membership (groups)
-
-<a name="implementation-classes"></a>
-What to Extend -- Implementation Classes
-----------------------------------------
-
-- entity implementation class hierarchy
-
-  - ``SoftwareProcess`` as the main starting point for base entities (corresponding to software processes),
-    and subclasses such as ``VanillaJavaApp``
-  - ``DynamicCluster`` (multiple instances of the same entity in a location) and 
-    ``DynamicFabric`` (clusters in multiple location) for automatically creating many instances,
-    supplied with an ``EntityFactory`` (e.g. ``BaseEntityFactory``) in the ``factory`` flag
-  - abstract ``Group`` for collecting entities which are parented elsewhere in the hierachy
-  - ``AbstractEntity`` if nothing else fits
-  
-- traits (mixins, otherwise known as interfaces with statics) to define available config keys, sensors, and effectors;
-    and conveniences e.g. ``StartableMethods.{start,stop}`` is useful for entities which implement ``Startable``
-
-- the ``Entities`` class provides some generic convenience methods; worth looking at it for any work you do
-
-A common lifecycle pattern is that the ``start`` effector (see more on effectors below) is invoked, 
-often delegating either to a driver (for software processes) or children entities (for clusters etc).
-
-See ``JBoss7Server`` and ``MySqlNode`` for exemplars.
-
-
-<a name="configuration"></a>
-Configuration
--------------
-<!---
-TODO: why to use config?
--->
-
-- AttributeSensorAndConfigKey fields can be automatically converted for ``SoftwareProcess``. 
-  This is done in ``preStart()``. This must be done manually if required for other entities,
-  often with ``ConfigToAttributes.apply(this)``.
-
-- Setting ports is a special challenge, and one which the ``AttributeSensorAndConfigKey`` is particularly helpful for,
-  cf ``PortAttributeSensorAndConfigKey`` (a subclass),
-  causing ports automatically get assigned from a range and compared with the target ``PortSupplied`` location.
-  
-  Syntax is as described in the PortRange interface. For example, "8080-8099,8800+" will try port 8080, try sequentially through 8099, then try from 8800 until all ports are exhausted.
-  
-  This is particularly useful on a contended machine (localhost!). Like ordinary configuration, the config is done by the user, and the actual port used is reported back as a sensor on the entity.
- 
-<a name="implementing-sensors"></a>
-Implementing Sensors
---------------------
-
-- e.g. HTTP, JMX
-
-Sensors at base entities are often retrieved by feeds which poll the entity's corresponding instance in the real world.
-The ``SoftwareProcess`` provides a good example; by subclassing it and overriding the ``connectSensors()`` method
-you could wire some example sensors using the following: 
-
-{% highlight java %}
-public void connectSensors() {
-	super.connectSensors()
-	
-    httpFeed = HttpFeed.builder()
-            .entity(this)
-            .period(200)
-            .baseUri(mgmtUrl)
-            .poll(new HttpPollConfig<Boolean>(SERVICE_UP)
-                    .onSuccess(HttpValueFunctions.responseCodeEquals(200))
-                    .onError(Functions.constant(false)))
-            .poll(new HttpPollConfig<Integer>(REQUEST_COUNT)
-                    .onSuccess(HttpValueFunctions.jsonContents("requestCount", Integer.class)))
-            .build();
-}
-    
-@Override
-protected void disconnectSensors() {
-    super.disconnectSensors();
-    if (httpFeed != null) httpFeed.stop();
-}
-{% endhighlight %}
-
-In this example (a simplified version of ``JBoss7Server``), the url returns metrics in JSON. 
-We report the entity as up if we get back an http response code of 200, or down if any other response code or exception.
-We retrieve the request count from the response body, and convert it to an integer.
-
-Note the first line (``super.connectSensors()``); as one descends into specific convenience subclasses (such as for Java web-apps), the work done by the parent class's overridden methods may be relevant, and will want to be invoked or even added to a resulting list.
-
-For some sensors, and often at compound entities, the values are obtained by monitoring values of other sensors on the same (in the case of a rolling average) or different (in the case of the average of children nodes) entities. This is achieved by policies, described below.
-
-<a name="implementing-effectors"></a>
-Implementing Effectors
-----------------------
-
-The ``Entity`` interface defines the sensors and effectors available. The entity class provides 
-wiring for the sensors, and the effector implementations. In simple cases it may be straightforward 
-to capture the behaviour of the effectors in a simple methods.
-For example deploying a WAR to a cluster can be done as follows:
-
-*This section is not complete. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
-
-<!---
-TODO show an effector which recurses across children
--->
-
-For some entities, specifically base entities, the implementation of effectors might need other tools (such as SSH), and may vary by location, so having a single implementation is not appropriate.
-
-The problem of multiple inheritance (e.g. SSH functionality and entity inheritance) and multiple implementations (e.g. SSH versus Windows) is handled in brooklyn using delegates called _drivers_. 
-
-In the implementations of ``JavaWebApp`` entities, the behaviour which the entity always does is captured in the entity class (for example, breaking deployment of multiple WARs into atomic actions), whereas implementations which is specific to a particular entity and driver (e.g. using scp to copy the WARs to the right place and install them, which of course is different among appservers, or using an HTTP or JMX management API, again where details vary between appservers) is captured in a driver class.
-
-Routines which are convenient for specific drivers can then be inherited in the driver class hierarchy. For example, when passing JMX environment variables to Java over SSH, ``JavaSoftwareProcessSshDriver`` extends ``AbstractSoftwareProcessSshDriver`` and parents ``JBoss7SshDriver``.
-
-<!---
-TODO more drivers such as jmx, etc are planned
--->
-
-<a name="testing"></a>
-Testing
--------
-
-* Run in a mock ``SimulatedLocation``, defining new metaclass methods to be able to start there and assert the correct behaviour when that is invoked

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/entities/toc.json
----------------------------------------------------------------------
diff --git a/docs/use/guide/entities/toc.json b/docs/use/guide/entities/toc.json
deleted file mode 100644
index c6c68dd..0000000
--- a/docs/use/guide/entities/toc.json
+++ /dev/null
@@ -1,12 +0,0 @@
-[{ "title": "Entity Lifecycle",
-  "file":  "{{ site.url }}/use/guide/entities/index.html#entity-lifestyle" }, 
-{ "title": "What to Extend",
-  "file":  "{{ site.url }}/use/guide/entities/index.html#implementation-classes" }, 
-{ "title": "Configuration",
-  "file":  "{{ site.url }}/use/guide/entities/index.html#configuration" }, 
-{ "title": "Implementing Sensors",
-  "file":  "{{ site.url }}/use/guide/entities/index.html#implementing-sensors" }, 
-{ "title": "Implementing Effectors",
-  "file":  "{{ site.url }}/use/guide/entities/index.html#implementing-effectors" },
-{ "title": "Testing",
-  "file":  "{{ site.url }}/use/guide/entities/index.html#testing" }]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/extras/index.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/extras/index.md b/docs/use/guide/extras/index.md
deleted file mode 100644
index 7136dd1..0000000
--- a/docs/use/guide/extras/index.md
+++ /dev/null
@@ -1,160 +0,0 @@
----
-title: Systems Available Out-of-the-Box
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide]
----
-
-brooklyn comes bundled with support for a large number of systems and entities.
-
-*Some entities are in an early-access state, and documentation is incomplete. Please contact the Brooklyn Project for assistance and clarification.*
-<!---
-.. TODO fix
-.. TODO name entities
-.. TODO include the fully qualified name of the entity
--->
-
-<a name="web"></a>
-Web
----
-
-### Clusters and Interfaces
-
-The class ``ControlledDynamicWebAppCluster`` creates a load-balanced cluster of web servers.
-It defaults to Nginx and JBoss 7, but this is configurable with the ``controller`` or ``controllerSpec``, and 
-the ``memberSpec`` configuration options.
-
-Most web app server processes, and some clusters and PaaS implementations,
-support the interface ``WebAppService`` which defines many sensors including requests per second.
-This allows app server metrics to interoperable across implementations in many cases.
-
-
-### JBoss Application Server
-
-Brooklyn supports JBoss 7 in the calss ``JBoss7Server``, with a wide range of
-monitoring.
-
-JBoss 6 is also supported using the different class ``JBoss6Server``.
-(The different implementation is needed due to major differences between 6 and 7,
-including switching from JMX to HTTP/JSON as the preferred metrics mechanism.)
-
-
-### Apache Tomcat
-
-Apache Tomcat is supported in the class ``TomcatServer``.
-(Note that this currently uses a legacy Brooklyn class hierarchy,
-and could benefit from being ported to the ``JavaSoftwareProcessSshDriver`` implementation.)
-
-
-### Nginx Load Balancer
-
-Nginx provides clustering support for several web/app servers.
-
-The install process downloads the sources for both the service and the sticky session module, configures them using GNI
-autoconf and compiles them. This requires gcc and autoconf to be installed. The install script also uses the yum package manager (if available) to install openssl-devel which is required to build the service. This will only work on RHEL or CentOS Linux systems, but the install process should proceed on a vanilla system with development tools available.
-
-On debian/ubuntu to build nginx you can get the required libraries with: 
-``apt-get install zlib1g-dev libdigest-sha-perl libssl-dev``.
-(The entity install script will attempt to do this with sudo, 
-but that may fail if sudo access is not available.) 
-
-
-<a name="database"></a>
-Database
---------
-
-### MySQL
-
-MySQL is one of the most popular relational databases.
-Brooklyn supports setting up individual MySQL nodes with arbitrary configuration,
-which may be used to create multiple nodes using back-up and synchronization processes as desired.
-(If certain patterns for configuring multiple nodes become popular, these could be
-added as Brooklyn entities.)  
-
-
-### Apache Derby
-
-*This entity is in the sandbox.* 
-
-Brooklyn supports Apache Derby, a pure-Java SQL database. For setting up an instance of a server see ``DerbySetup``.
-
-
-<a name="nosql"></a>
-NoSQL
------
-
-*The NoSQL entities may not be complete.* 
-
-### Redis
-
-Redis is a distributed key-value store, supporting master/slave replication of a store as a clustered cache. This gives
-a series of read-only slaves and a single read-write master, which propagates to the slaves with eventual consistency.
-
-
-### MongoDB
-
-
-### Cassandra
-
-
-### CouchBase
-
-
-<a name="messaging"></a>
-Messaging
----------
-
-### Qpid
-
-
-Qpid support provides a JMS broker, running over AMQP. This exposes JMS queues and topics as entities as well.
-See ``QpidSetup`` for instantiating a broker.
-
-### ActiveMQ
-
-
-ActiveMQ support provides a JMS broker. This exposes JMS queues and topics as entities as well. See ``ActiveMQSetup`` for
-instantiating a broker.
-
-### RabbitMQ
-
-
-<a name="downstream-projects"></a>
-Downstream Projects
--------------------
-
-Downstream projects include those below.
-
-### Apache Whirr
-
-https://github.com/brooklyncentral/brooklyn-whirr
-
-Whirr allows running a variety of services on cloud providers and on localhost. This is done by providing a ``recipe`` which describes what services to launch. You can find an example of how Brooklyn integrates with Whirr [here](/use/examples/whirrhadoop/index.html#custom-whirr-recipe).
-
-### OpenShift
-
-https://github.com/cloudsoft/brooklyn-openshift
-
-### CloudFoundry
-
-https://github.com/cloudsoft/brooklyn-cloudfoundry and https://github.com/cloudsoft/brooklyn-cloudfoundry
-
-### MPI
-
-https://github.com/cloudsoft/brooklyn-openmpi
-
-### Waratek
-
-https://github.com/cloudsoft/brooklyn-waratek
-
-### MapR
-
-https://github.com/cloudsoft/brooklyn-mapr
-
-### Cloudera CDH
-
-https://github.com/cloudsoft/brooklyn-cdh
-
-### Drupal and Wordpress
-
-https://github.com/cloudsoft/brooklyn-social-apps

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/extras/toc.json
----------------------------------------------------------------------
diff --git a/docs/use/guide/extras/toc.json b/docs/use/guide/extras/toc.json
deleted file mode 100644
index edf5cc7..0000000
--- a/docs/use/guide/extras/toc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-[{ "title": "Web",
-  "file":  "{{ site.url }}/use/guide/extras/index.html#web" }, 
-{ "title": "Database",
-  "file":  "{{ site.url }}/use/guide/extras/index.html#database" }, 
-{ "title": "NoSQL",
-  "file":  "{{ site.url }}/use/guide/extras/index.html#nosql" }, 
-{ "title": "Messaging",
-  "file":  "{{ site.url }}/use/guide/extras/index.html#messaging" },
-{ "title": "Provisioning",
-  "file":  "{{ site.url }}/use/guide/extras/index.html#provisioning" }  
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/guide_toc.json
----------------------------------------------------------------------
diff --git a/docs/use/guide/guide_toc.json b/docs/use/guide/guide_toc.json
deleted file mode 100644
index a7cfff6..0000000
--- a/docs/use/guide/guide_toc.json
+++ /dev/null
@@ -1,25 +0,0 @@
-[
-{ "title": "Start",
-  "file":  "{{ site.url }}/start/index.html" },
-
-{ "title": "User Guide",
-  "file": "{{ site.url }}/use/guide/index.html",
-  "children": {% readj ./toc.json %} },
-{ "title": "Elsewhere",
-  "file":  "{{ site.url }}/start/index.html",
-  "children": [
-
-{ "title": "Examples",
-  "file":  "{{ site.url }}/use/examples/index.html", 
-  "children": {% readj /use/examples/toc.json %} },
-{ "title": "API Reference",
-  "file": "{{ site.url }}/use/api/index.html" },
-  
-{ "title": "Contributing",
-  "file": "{{ site.url }}/dev/code/index.html",
-  "children": {% readj /dev/toc.json %} },
-{ "title": "License",
-  "file": "{{ site.url }}/license/index.html" }  
-]}
-
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/index.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/index.md b/docs/use/guide/index.md
deleted file mode 100644
index 655d401..0000000
--- a/docs/use/guide/index.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-layout: guide-normal
-title: User Guide
-toc: guide_toc.json
-categories: use
----
-
-## Table of Contents
-
-{% capture ugtocs %}{% readj toc.json %}{% endcapture %}
-{% jsonball ugtoc from var ugtocs %}
-
-<div id="ug_toc_lists">
-<ul>
-{% for x in ugtoc %}
-	<li><a class='toc' href="{{ x.file }}">{{ x.title }}</a></li>
-	{% if x.children %}
-		<ul>
-		{% for x2 in x.children %}
-			<li><a class='toc' href="{{ x2.file }}">{{ x2.title }}</a></li>
-			{% if x2.children %}
-				<ul>
-				{% for x3 in x2.children %}
-					<li><a class='toc' href="{{ x3.file }}">{{ x3.title }}</a></li>
-				{% endfor %}
-				</ul>
-			{% endif %}
-		{% endfor %}
-		</ul>
-	{% endif %}
-{% endfor %} 
-</ul>
-</div>


[29/50] [abbrv] incubator-brooklyn git commit: add `--install` option and updated README, so website is automatically installed to svn staging area

Posted by he...@apache.org.
add `--install` option and updated README, so website is automatically installed to svn staging area


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

Branch: refs/heads/master
Commit: be3bdd7b6e68e24d269e6a4c87a2bed255c5683e
Parents: d6cfde4
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Dec 16 19:58:14 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:57 2014 +0000

----------------------------------------------------------------------
 docs/README.md       | 24 +++++++-----------------
 docs/_build/build.sh | 44 ++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 47 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/be3bdd7b/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
index 9a0aad4..b7ab49b 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -170,15 +170,15 @@ from the Apache subversion repository. We recommend setting this up as a sibling
 `incubator-brooklyn` git project directory:
 
     # verify we're in the right location and the site does not already exist
-    ls _build/build.sh || { echo "ERROR: you should be in the docs/ directory to run this command" ; exit 1 }
-    ls ../../incubator-brooklyn-site-public && { echo "ERROR: incubator-brooklyn-site-public dir already exists ; exit 1 }
-    pushd ../..
+    ls _build/build.sh || { echo "ERROR: you should be in the docs/ directory to run this command" ; exit 1 ; }
+    ls ../../incubator-brooklyn-site-public > /dev/null && { echo "ERROR: incubator-brooklyn-site-public dir already exists" ; exit 1 ; }
+    pushd `pwd -P`/../..
     
-    svn co https://svn.apache.org/repos/asf/incubator/brooklyn/site incubator-brooklyn-site-public
+    svn --non-interactive --trust-server-cert co https://svn.apache.org/repos/asf/incubator/brooklyn/site incubator-brooklyn-site-public
     
     # verify it
     cd incubator-brooklyn-site-public
-    ls style/css/website.css || { echo "ERROR: checkout is wrong" ; exit 1 }
+    ls style/img/apache-brooklyn-logo-244px-wide.png || { echo "ERROR: checkout is wrong" ; exit 1 ; }
     export BROOKLYN_SITE_DIR=`pwd`
     popd
     echo "SUCCESS: checked out site in $BROOKLYN_SITE_DIR"
@@ -188,10 +188,8 @@ with the `--install` option.  (This assumes the relative structure described abo
 structure, set BROOKLYN_SITE_DIR to point to the directory as above.  Alternatively you can copy files manually,
 using the instructions in `build.sh` as a guide.)
 
-**TODO: the `--install` option below is not yet implemented**
-
 A typical update consists of the following commands (or a subset),
-copied to `${BROOKLYN_SITE_DIR:../../incubator-brooklyn-site-public}`:
+copied to `${BROOKLYN_SITE_DIR-../../incubator-brooklyn-site-public}`:
 
     # main website, relative to / 
     _build/build.sh website-root --install
@@ -205,18 +203,10 @@ copied to `${BROOKLYN_SITE_DIR:../../incubator-brooklyn-site-public}`:
 Next it is recommended to go to the SVN dir and 
 review the changes using the usual `svn` commands -- `status`, `diff`, `add`, `rm`, etc:
 
-    cd ${BROOKLYN_SITE_DIR:../../incubator-brooklyn-site-public}
+    cd ${BROOKLYN_SITE_DIR-../../incubator-brooklyn-site-public}
 
 You must then check in the changes:
 
     svn ci -m 'Update Brooklyn website'
 
 The changes should become live within a few minutes.
-
-
-<!-- OLD notes:
-
-Synchronise the generated site into the Subversion working copy - please amend this command to include the correct paths for your setup:
-
-    rsync -rv --delete --exclude .svn --exclude v ~/incubator-brooklyn-site/_site/ ~/incubator-brooklyn-site-public
--->
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/be3bdd7b/docs/_build/build.sh
----------------------------------------------------------------------
diff --git a/docs/_build/build.sh b/docs/_build/build.sh
index ac10b73..66b50e4 100755
--- a/docs/_build/build.sh
+++ b/docs/_build/build.sh
@@ -23,6 +23,7 @@ function help() {
   echo "and supported ARGS are:"
   echo "* --skip-javadoc : to skip javadoc build"
   echo "* --serve : serve files from _site after building (for testing)"
+  echo "* --install : install files from _site to the appropriate place in "'$'"BROOKLYN_SITE_DIR (or ../../incubator-brooklyn-site-public)"
   echo 'with any remaining ARGS passed to jekyll as `jekyll build --config ... ARGS`.'
 }
 
@@ -36,6 +37,8 @@ function parse_command() {
     DIRS_TO_MOVE[0]=website
     DIRS_TO_MOVE_TARGET[0]=""
     SKIP_JAVADOC=true
+    INSTALL_RSYNC_OPTIONS="--exclude v"
+    INSTALL_RSYNC_SUBDIR=""
     SUMMARY="website files in the root"
     ;;
   guide-latest)
@@ -44,6 +47,8 @@ function parse_command() {
     DIRS_TO_MOVE_TARGET[0]=v/latest
     DIRS_TO_MOVE[1]=style
     DIRS_TO_MOVE_TARGET[1]=v/latest/style
+    INSTALL_RSYNC_OPTIONS=""
+    INSTALL_RSYNC_SUBDIR=${DIRS_TO_MOVE_TARGET[0]}/
     JAVADOC_TARGET=_site/${DIRS_TO_MOVE_TARGET[0]}/use/api/
     SUMMARY="user guide files in /${DIRS_TO_MOVE_TARGET[0]}"
     ;;
@@ -55,6 +60,8 @@ function parse_command() {
     DIRS_TO_MOVE_TARGET[0]=v/0.7.0-SNAPSHOT
     DIRS_TO_MOVE[1]=style
     DIRS_TO_MOVE_TARGET[1]=${DIRS_TO_MOVE_TARGET[0]}/style
+    INSTALL_RSYNC_OPTIONS=""
+    INSTALL_RSYNC_SUBDIR=${DIRS_TO_MOVE_TARGET[0]}/
     JAVADOC_TARGET=_site/${DIRS_TO_MOVE_TARGET[0]}/use/api/
     SUMMARY="user guide files in /${DIRS_TO_MOVE_TARGET[0]}"
     ;;
@@ -96,17 +103,22 @@ function parse_command() {
     echo "ERROR: invalid argument '$1'; try 'help'"
     exit 1 ;;
   esac
+  SUMMARY="$SUMMARY of `pwd`/_site"
 }
 
 function parse_arguments() {
   while (( "$#" )); do
     case $1 in
+    "--skip-javadoc")
+      SKIP_JAVADOC=true
+      shift
+      ;;
     "--serve")
       SERVE_AFTERWARDS=true
       shift
       ;;
-    "--skip-javadoc")
-      SKIP_JAVADOC=true
+    "--install")
+      INSTALL_AFTERWARDS=true
       shift
       ;;
     "--")
@@ -151,6 +163,24 @@ function make_javadoc() {
   fi
 }
 
+function make_install() {
+  if [ "$INSTALL_AFTERWARDS" != "true" ]; then
+    return
+  fi
+  SITE_DIR=${BROOKLYN_SITE_DIR-../../incubator-brooklyn-site-public}
+  ls $SITE_DIR/style/img/apache-brooklyn-logo-244px-wide.png > /dev/null || { echo "ERROR: cannot find incubator-brooklyn-site-public; set BROOKLYN_SITE_DIR" ; return 1 ; }
+  if [ -z ${INSTALL_RSYNC_OPTIONS+SET} ]; then echo "ERROR: --install not supported for this build" ; return 1 ; fi
+  if [ -z ${INSTALL_RSYNC_SUBDIR+SET} ]; then echo "ERROR: --install not supported for this build" ; return 1 ; fi
+  
+  RSYNC_COMMAND_BASE="rsync -rvi --delete --exclude .svn"
+  RSYNC_COMMAND="$RSYNC_COMMAND_BASE $INSTALL_RSYNC_OPTIONS ./_site/$INSTALL_RSYNC_SUBDIR $SITE_DIR/$INSTALL_RSYNC_SUBDIR"
+  echo INSTALLING to local site svn repo with: $RSYNC_COMMAND
+  $RSYNC_COMMAND || return 1
+  
+  SUMMARY="$SUMMARY, installed to $SITE_DIR"
+}
+
+
 rm -rf _site
 
 parse_command $@
@@ -163,8 +193,14 @@ make_javadoc || { echo ERROR: failed javadoc build ; exit 1 ; }
 
 # TODO build catalog
 
-echo FINISHED: $SUMMARY of `pwd`/_site 
+# TODO install
+
+if [ "$INSTALL_AFTERWARDS" == "true" ]; then
+  make_install || { echo ERROR: failed to install ; exit 1 ; }
+fi
+
+echo FINISHED: $SUMMARY 
 
-if [ $SERVE_AFTERWARDS == "true" ]; then
+if [ "$SERVE_AFTERWARDS" == "true" ]; then
   _build/serve-site.sh
 fi


[17/50] [abbrv] incubator-brooklyn git commit: fix paths and links so that guide/ subdir build works nicely

Posted by he...@apache.org.
fix paths and links so that guide/ subdir build works nicely


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

Branch: refs/heads/master
Commit: 2ac0c6d67eae1eeee6cb34827aaa1fdb1b67f11a
Parents: 2b8a491
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Dec 15 16:56:12 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:55 2014 +0000

----------------------------------------------------------------------
 docs/_build/tests/jsonball/toc.json             |  2 +-
 docs/_config.yml                                | 13 ++++++--
 docs/_includes/breadcrumbs.html                 |  4 +--
 docs/_includes/sidebar.html                     |  2 +-
 docs/_includes/topbar.html                      |  6 ++--
 docs/_layouts/guide-normal.html                 | 30 +++++++++---------
 .../dev/build/debugging-remote-brooklyn.md      |  2 +-
 docs/guide/dev/build/ide.md                     |  4 +--
 docs/guide/dev/build/index.md                   |  4 +--
 docs/guide/dev/build/tests.md                   |  2 +-
 docs/guide/dev/build/toc.json                   |  6 ++--
 docs/guide/dev/code/entity.md                   |  6 ++--
 docs/guide/dev/code/index.include.md            | 14 ++++-----
 docs/guide/dev/code/index.md                    |  2 +-
 docs/guide/dev/code/policy.md                   |  2 +-
 docs/guide/dev/code/toc.json                    |  6 ++--
 docs/guide/dev/how-to-contrib.md                |  8 ++---
 docs/guide/dev/index.md                         |  2 +-
 docs/guide/dev/tips/index.md                    |  6 ++--
 docs/guide/dev/tips/local-artifact-repo.md      |  2 +-
 docs/guide/dev/tips/logging.md                  |  2 +-
 docs/guide/dev/tips/release.md                  |  2 +-
 docs/guide/dev/tips/standards.md                |  2 +-
 docs/guide/dev/tips/toc.json                    | 12 ++++----
 docs/guide/dev/tips/update-docs.md              |  4 +--
 docs/guide/dev/toc.json                         | 16 +++++-----
 docs/guide/index.md                             |  2 +-
 docs/guide/license/index.md                     |  2 +-
 docs/guide/license/license.md                   |  2 +-
 docs/guide/license/toc.json                     |  2 +-
 docs/guide/meta/contact.md                      |  2 +-
 docs/guide/meta/irc.md                          |  2 +-
 docs/guide/meta/toc.json                        |  6 ++--
 docs/guide/meta/verify.md                       |  2 +-
 docs/guide/meta/versions.md                     |  8 ++---
 docs/guide/start/docs-summary.include.md        |  8 ++---
 docs/guide/start/docs-summary.md                |  2 +-
 docs/guide/start/download.md                    | 12 ++++----
 docs/guide/start/index.include.md               | 16 +++++-----
 docs/guide/start/index.md                       |  2 +-
 docs/guide/start/toc.json                       |  8 ++---
 docs/guide/start/walkthrough/index.md           | 20 ++++++------
 docs/guide/toc-menu.json                        | 20 ++++++------
 docs/guide/toc.json                             | 20 ++++++------
 docs/guide/use/api/index.md                     |  2 +-
 docs/guide/use/contact.md                       |  2 +-
 docs/guide/use/examples/before-begin.include.md |  6 ++--
 .../use/examples/global-web-fabric/index.md     |  4 +--
 docs/guide/use/examples/index.md                |  4 +--
 docs/guide/use/examples/messaging/index.md      |  6 ++--
 .../nosql-cassandra/cassandra.include.md        |  4 +--
 .../guide/use/examples/nosql-cassandra/index.md |  2 +-
 docs/guide/use/examples/simple-web-cluster.md   |  2 +-
 docs/guide/use/examples/toc.json                | 10 +++---
 docs/guide/use/examples/webcluster.md           |  2 +-
 docs/guide/use/examples/webcluster/index.md     |  2 +-
 .../examples/webcluster/webcluster.include.md   |  8 ++---
 .../defining-applications/advanced-concepts.md  |  4 +--
 .../defining-applications/basic-concepts.md     |  4 +--
 .../defining-applications/creating-yaml.md      | 20 ++++++------
 .../defining-applications/deploying-yaml.md     |  2 +-
 .../use/guide/defining-applications/toc.json    | 18 +++++------
 docs/guide/use/guide/entities/index.md          |  2 +-
 docs/guide/use/guide/entities/toc.json          | 12 ++++----
 docs/guide/use/guide/extras/toc.json            | 10 +++---
 docs/guide/use/guide/guide_toc.json             | 20 ++++++------
 docs/guide/use/guide/management/index.md        |  6 ++--
 docs/guide/use/guide/management/toc.json        | 18 +++++------
 docs/guide/use/guide/persistence/toc.json       | 16 +++++-----
 docs/guide/use/guide/policies/index.md          |  6 ++--
 docs/guide/use/guide/policies/toc.json          |  8 ++---
 docs/guide/use/guide/quickstart/index.md        |  6 ++--
 .../guide/quickstart/policies-and-catalogs.md   |  4 +--
 docs/guide/use/guide/quickstart/toc.json        |  4 +--
 docs/guide/use/guide/toc.json                   | 32 ++++++++++----------
 docs/guide/use/index.md                         |  2 +-
 docs/guide/use/toc.json                         | 12 ++++----
 77 files changed, 283 insertions(+), 274 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/_build/tests/jsonball/toc.json
----------------------------------------------------------------------
diff --git a/docs/_build/tests/jsonball/toc.json b/docs/_build/tests/jsonball/toc.json
index 4e129ae..cd01e1a 100644
--- a/docs/_build/tests/jsonball/toc.json
+++ b/docs/_build/tests/jsonball/toc.json
@@ -2,5 +2,5 @@
 { "title": "Test Jsonball",
   "file":  "test_jsonball.html" },
 { "title": "Home",
-  "file":  "{{ site.url }}/index.html" }
+  "file":  "{{ site.path.guide }}/index.html" }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/_config.yml
----------------------------------------------------------------------
diff --git a/docs/_config.yml b/docs/_config.yml
index a138339..6d18842 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -21,7 +21,16 @@ markdown: rdiscount
 
 brooklyn-version: 0.7.0-SNAPSHOT # BROOKLYN_VERSION
 brooklyn-snapshot-git-branch: master   # if line above is SNAPSHOT this should point to corresponding git branch (e.g. master, 0.4)
-brooklyn-root-url: /
 
+#@deprecated
+#brooklyn-root-url: /
 # url: /v/0.7.0-SNAPSHOT  # BROOKLYN_VERSION
-url: 
+# url: 
+
+url_root: http://0.0.0.0:4000/
+
+path:
+  style: /style
+  guide: /guide
+  v: /v
+

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/_includes/breadcrumbs.html
----------------------------------------------------------------------
diff --git a/docs/_includes/breadcrumbs.html b/docs/_includes/breadcrumbs.html
index 2435326..d3bcbea 100644
--- a/docs/_includes/breadcrumbs.html
+++ b/docs/_includes/breadcrumbs.html
@@ -26,7 +26,7 @@ under the License.
 {% capture toc_string %}{% readj p %}{% endcapture %}
 {% jsonball toc from var toc_string %}
 
-{% capture pagesiteurl %}{{ site.url }}{{ page.url }}{% endcapture %}
+{% capture pagesiteurl %}{{ page.url }}{% endcapture %}
 
 {% for x in toc %}
     {% if pagesiteurl == x.file %}
@@ -55,7 +55,7 @@ under the License.
 
 {% if l1name %}{% else %}
     {% capture l1name %}Home{% endcapture %}
-    {% capture l1link %}{{ site.url }}{% endcapture %}
+    {% capture l1link %}{{ site.todo_page }}{% endcapture %}
     {% capture l2name %}{{ page.title }}{% endcapture %}
     {% capture l2link %}{{ pagesiteurl }}{% endcapture %}
 {% endif %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/_includes/sidebar.html
----------------------------------------------------------------------
diff --git a/docs/_includes/sidebar.html b/docs/_includes/sidebar.html
index aea5e8e..cea3ba4 100644
--- a/docs/_includes/sidebar.html
+++ b/docs/_includes/sidebar.html
@@ -27,7 +27,7 @@ under the License.
 {% capture toc_string %}{% readj p %}{% endcapture %}
 {% jsonball toc from var toc_string %}
 
-{% capture pagesiteurl %}{{ site.url }}{{ page.url }}{% endcapture %}
+{% capture pagesiteurl %}{{ page.url }}{% endcapture %}
 
 <div id="sidebar_toc">
 {% for x in toc %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/_includes/topbar.html
----------------------------------------------------------------------
diff --git a/docs/_includes/topbar.html b/docs/_includes/topbar.html
index c865925..3c3cb7d 100644
--- a/docs/_includes/topbar.html
+++ b/docs/_includes/topbar.html
@@ -18,11 +18,11 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-{% assign p = '/toc-menu.json' %}
+{% assign p = '/guide/toc-menu.json' %}
 {% capture tocm_string %}{% readj p %}{% endcapture %}
 {% jsonball tocm from var tocm_string %}
 
-{% capture pagesiteurl %}{{ site.url }}{{ page.url }}{% endcapture %}
+{% capture pagesiteurl %}{{ page.url }}{% endcapture %}
 
 <ul id="mainmenu"><!-- INSERT LINKS -->
             
@@ -46,4 +46,4 @@ under the License.
   <li class="{{ifactive}}"><a href="{{ x.file }}">{{x.title}}</a></li>
 {% endfor %}
 
-</ul>
\ No newline at end of file
+</ul>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/_layouts/guide-normal.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/guide-normal.html b/docs/_layouts/guide-normal.html
index fcb8f7e..37dba39 100644
--- a/docs/_layouts/guide-normal.html
+++ b/docs/_layouts/guide-normal.html
@@ -25,19 +25,19 @@ under the License.
   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
   <title>{{ page.title }}</title>
 
-  <link rel="stylesheet" href="{{ site.url }}/style/css/guide.css" type="text/css" media="screen" />
-  <link rel="stylesheet" href="{{ site.url }}/style/css/guide-toc.css" type="text/css" media="screen" />
-  <link rel="stylesheet" href="{{ site.url }}/style/css/code.css" type="text/css" media="screen" />
+  <link rel="stylesheet" href="{{ site.path.style }}/css/guide.css" type="text/css" media="screen" />
+  <link rel="stylesheet" href="{{ site.path.style }}/css/guide-toc.css" type="text/css" media="screen" />
+  <link rel="stylesheet" href="{{ site.path.style }}/css/code.css" type="text/css" media="screen" />
 
     <script type="text/javascript" src="https://www.google.com/jsapi"></script>
   
 	<!-- Sidebar/ToC Scripts and CSS -->
-	<script src="{{ site.url }}/style/deps/jquery.js"></script>
-	<script src="{{ site.url }}/style/deps/jquery-ui/jquery-ui-1.8.18.custom.min.js"></script>
-	<link rel="stylesheet" type="text/css" href="{{ site.url }}/style/deps/jquery-ui/jquery-ui-1.8.18.custom.css" />
+	<script src="{{ site.path.style }}/deps/jquery.js"></script>
+	<script src="{{ site.path.style }}/deps/jquery-ui/jquery-ui-1.8.18.custom.min.js"></script>
+	<link rel="stylesheet" type="text/css" href="{{ site.path.style }}/deps/jquery-ui/jquery-ui-1.8.18.custom.css" />
 	
-	<script type="text/javascript" src="{{ site.url }}/style/deps/superfish.js"></script>
-	<script type="text/javascript" src="{{ site.url }}/style/deps/jquery.cookie.js"></script>
+	<script type="text/javascript" src="{{ site.path.style }}/deps/superfish.js"></script>
+	<script type="text/javascript" src="{{ site.path.style }}/deps/jquery.cookie.js"></script>
 	
 	
 <!-- Clipboard support -->
@@ -45,12 +45,12 @@ under the License.
 <style type="text/css">
 .clipboard_container { float: right; padding: 8px; }
 .clipboard_button {
-    background-image: url("{{ site.url }}/style/img/clipboard-green-normal.png");
+    background-image: url("{{ site.path.style }}/img/clipboard-green-normal.png");
     background-size: 18px 21px;
     width: 18px; height: 21px;
 }
-.clipboard_button:hover, .clipboard_button.zeroclipboard-is-hover { background-image: url("{{ site.url }}/style/img/clipboard-green-hover.png"); }
-.clipboard_button:active, .clipboard_button.zeroclipboard-is-active { background-image: url("{{ site.url }}/style/img/clipboard-green-click.png"); }'
+.clipboard_button:hover, .clipboard_button.zeroclipboard-is-hover { background-image: url("{{ site.path.style }}/img/clipboard-green-hover.png"); }
+.clipboard_button:active, .clipboard_button.zeroclipboard-is-active { background-image: url("{{ site.path.style }}/img/clipboard-green-click.png"); }'
 </style>
 <script type="text/javascript"> <!-- clipboard -->
   ZeroClipboard.config({ moviePath: '//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.1/ZeroClipboard.swf' });
@@ -123,7 +123,7 @@ console.log("setting text to "+txt);
 			if (!$.cookie('brooklyn_versions') || 
 			        (($.inArray('ALL', $.cookie('brooklyn_versions').split(",")) === -1) &&
 			        ($.inArray(thisversion, $.cookie('brooklyn_versions').split(",")) === -1)) ){
-			    msg += "<div class='warning_banner_image'><img src='{{ site.url }}/style/img/warning.png'/></div>";
+			    msg += "<div class='warning_banner_image'><img src='{{ site.path.style }}/img/warning.png'/></div>";
 				msg += "<p>This content is for <strong>Brooklyn "+thisversion+"</strong>, and may differ across versions.</p>";
 			    msg += "<p>Are you using version "+thisversion+"?</p>";
 				msg += "<p class='warning_banner_buttons'>";
@@ -191,11 +191,11 @@ console.log("setting text to "+txt);
         </div>
         
         <ul id="quicklinks">
-            <li><a href="{{site.url}}/meta/versions.html">{{ site.brooklyn-version }}</a></li>
-            <li><a href="{{site.url}}/start/download.html">Download</a></li>
+            <li><a href="{{site.path.guide}}/meta/versions.html">{{ site.brooklyn-version }}</a></li>
+            <li><a href="{{site.path.guide}}/start/download.html">Download</a></li>
             <li><a href="https://github.com/brooklyncentral">GitHub</a></li>
             <li><a href="https://twitter.com/#!/search?q=brooklyncentral">Twitter</a></li>
-            <li><a href="{{site.url}}/meta/contact.html">Contact</a></li>
+            <li><a href="{{site.path.guide}}/meta/contact.html">Contact</a></li>
         </ul>
 
         <div id="menubar">  

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/build/debugging-remote-brooklyn.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/debugging-remote-brooklyn.md b/docs/guide/dev/build/debugging-remote-brooklyn.md
index d924804..337aa21 100644
--- a/docs/guide/dev/build/debugging-remote-brooklyn.md
+++ b/docs/guide/dev/build/debugging-remote-brooklyn.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Brooklyn Remote Debugging
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 Usually during development, you will be running Brooklyn from your IDE (see [IDE Setup](ide.html)), in which case

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/build/ide.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/ide.md b/docs/guide/dev/build/ide.md
index bdc7478..3abae3c 100644
--- a/docs/guide/dev/build/ide.md
+++ b/docs/guide/dev/build/ide.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: IDE Setup
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 Gone are the days when IDE integration always just works...  Maven and Eclipse fight, 
@@ -77,7 +77,7 @@ find . \( -path "*/src/main" -or -path "*/src/test" \) -exec echo {} \; -exec mk
   or edit the ``.project`` manually adding it to the project properties).
   The tips [for jclouds maven-eclipse](http://www.jclouds.org/documentation/devguides/using-eclipse) might be helpful. 
 
-If the pain starts to be too much, come find us on IRC #brooklyncentral or [elsewhere]({{site.url}}/meta/contact.html) and we can hopefully share our pearls.
+If the pain starts to be too much, come find us on IRC #brooklyncentral or [elsewhere]({{site.path.guide}}/meta/contact.html) and we can hopefully share our pearls.
 (And if you have a tip we haven't mentioned please let us know that too!)
 
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/build/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/index.md b/docs/guide/dev/build/index.md
index 7dd3412..53b95f6 100644
--- a/docs/guide/dev/build/index.md
+++ b/docs/guide/dev/build/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Maven Build
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 ## The Basics
@@ -74,7 +74,7 @@ If there is a good reason that a file, pattern, or directory should be permanent
 
 * The **developers catalog** ([developers-catalog.xml](developers-catalog.xml)) uses artifacts from your local `~/.m2/repository/...` (after building from source). This avoids unnecessary web requests to Maven Central or Sonatype, and will allow you to work off-line.
   
-  ``wget {{site.url}}/dev/build/developers-catalog.xml > ~/.brooklyn/catalog.xml`` 
+  ``wget {{site.path.guide}}/dev/build/developers-catalog.xml > ~/.brooklyn/catalog.xml`` 
 
 ## Appendix: Sample Output
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/build/tests.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/tests.md b/docs/guide/dev/build/tests.md
index 16f6810..f202dc2 100644
--- a/docs/guide/dev/build/tests.md
+++ b/docs/guide/dev/build/tests.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Tests
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 We have the following tests groups:

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/build/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/toc.json b/docs/guide/dev/build/toc.json
index fca9b70..192f1e3 100644
--- a/docs/guide/dev/build/toc.json
+++ b/docs/guide/dev/build/toc.json
@@ -1,8 +1,8 @@
 [
 { "title": "Maven",
-  "file":  "{{ site.url }}/dev/build/index.html" },
+  "file":  "{{ site.path.guide }}/dev/build/index.html" },
 { "title": "IDE",
-  "file": "{{ site.url }}/dev/build/ide.html" },
+  "file": "{{ site.path.guide }}/dev/build/ide.html" },
 { "title": "Tests",
-  "file":  "{{ site.url }}/dev/build/tests.html" }
+  "file":  "{{ site.path.guide }}/dev/build/tests.html" }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/code/entity.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/entity.md b/docs/guide/dev/code/entity.md
index 7001612..f84e23c 100644
--- a/docs/guide/dev/code/entity.md
+++ b/docs/guide/dev/code/entity.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Writing an Entity
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 ## Ways to write an entity
@@ -86,6 +86,6 @@ hierarchy; it is suggested to avoid these, looking at the ones below instead):
 
 You might also find the following helpful:
 
-* **[Entity Design Tips]({{site.url}}/dev/tips/index.html#EntityDesign)**
-* The **[User Guide]({{site.url}}/use/guide/index.html)**
+* **[Entity Design Tips]({{site.path.guide}}/dev/tips/index.html#EntityDesign)**
+* The **[User Guide]({{site.path.guide}}/use/guide/index.html)**
 * The **[Mailing List](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/)**

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/code/index.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/index.include.md b/docs/guide/dev/code/index.include.md
index a213cd6..ab7f7ec 100644
--- a/docs/guide/dev/code/index.include.md
+++ b/docs/guide/dev/code/index.include.md
@@ -21,12 +21,12 @@ bin/brooklyn launch
 {% endhighlight %}
 
 Plenty of examples are in the **examples** sub-dir,
-described [here]({{site.url}}/use/examples),
+described [here]({{site.path.guide}}/use/examples),
 and pushed to the [brooklyn-examples](http://github.com/brooklyncentral/brooklyn-examples) 
 GitHub project when a version is released.
 
 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.url}}/use/guide/quickstart/index.html).
+and adding new projects to a catalog -- can be found in the [User's Guide]({{site.path.guide}}/use/guide/quickstart/index.html).
 This document is intended to help people become familiar with the codebase.
 
 ## Project Structure
@@ -71,8 +71,8 @@ Brooklyn is split into the following projects and sub-projects:
     * **scripts**: various scripts useful for building, updating, etc. (see comments in the scripts)
     * **qa**: longevity and stress tests
     * **test-support**: provides Brooklyn-specific support for tests, used by nearly all projects in scope ``test``
-* **``docs``**: the markdown source code for this documentation, as described [here]({{site.url}}/dev/tips/update-docs.html)
-* **``examples``**: some canonical examples, as listed [here]({{site.url}}/use/examples)
+* **``docs``**: the markdown source code for this documentation, as described [here]({{site.path.guide}}/dev/tips/update-docs.html)
+* **``examples``**: some canonical examples, as listed [here]({{site.path.guide}}/use/examples)
 * **``sandbox``**: various projects, entities, and policies which the Brooklyn Project is incubating
 
  
@@ -90,9 +90,9 @@ If you want to start writing your own policies and entities, have a look at:
 
 * [Writing a Brooklyn Entity](entity.html)
 * [Writing a Brooklyn Policy](policy.html)
-* Or see the [User Guide]({{ site.url }}/use/guide/index.html) 
-  on [policies]({{ site.url }}/use/guide/policies/index.html)
-  and [entities]({{ site.url }}/use/guide/entities/index.html)
+* Or see the [User Guide]({{ site.path.guide }}/use/guide/index.html) 
+  on [policies]({{ site.path.guide }}/use/guide/policies/index.html)
+  and [entities]({{ site.path.guide }}/use/guide/entities/index.html)
 
 Where things aren't documented **please ask us** at 
 [the brooklyn mailing list](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/code/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/index.md b/docs/guide/dev/code/index.md
index ecf9fcf..8220a8d 100644
--- a/docs/guide/dev/code/index.md
+++ b/docs/guide/dev/code/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Code Structure
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 {% readj index.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/code/policy.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/policy.md b/docs/guide/dev/code/policy.md
index 7bbbcad..a62bdd2 100644
--- a/docs/guide/dev/code/policy.md
+++ b/docs/guide/dev/code/policy.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Writing a Policy
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 Policies perform the active management enabled by Brooklyn.  

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/code/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/toc.json b/docs/guide/dev/code/toc.json
index d599dbe..144ea26 100644
--- a/docs/guide/dev/code/toc.json
+++ b/docs/guide/dev/code/toc.json
@@ -1,10 +1,10 @@
 [
 { "title": "Structure",
-  "file":  "{{ site.url }}/dev/code/index.html" },
+  "file":  "{{ site.path.guide }}/dev/code/index.html" },
 { "title": "Writing an Entity",
-  "file": "{{ site.url }}/dev/code/entity.html" },
+  "file": "{{ site.path.guide }}/dev/code/entity.html" },
 { "title": "Writing a Policy",
-  "file":  "{{ site.url }}/dev/code/policy.html" },
+  "file":  "{{ site.path.guide }}/dev/code/policy.html" },
 { "title": "brooklyn.git (github)",
   "file":  "http://github.com/brooklyncentral/brooklyn" }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/how-to-contrib.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/how-to-contrib.md b/docs/guide/dev/how-to-contrib.md
index b5a8306..120d3d9 100644
--- a/docs/guide/dev/how-to-contrib.md
+++ b/docs/guide/dev/how-to-contrib.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: How to Contribute
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 ### The Process
@@ -23,7 +23,7 @@ it's easy to give back to the community.  Just:
 1. **Issue a pull request** from your GitHub repo
 
 The same process holds for contributing to this documentation (web site and user guide),
-but see the additional [tips for updating documentation]({{ site.url }}/dev/tips/update-docs.html).
+but see the additional [tips for updating documentation]({{ site.path.guide }}/dev/tips/update-docs.html).
 
 
 ### Some Words of Advice
@@ -33,6 +33,6 @@ but see the additional [tips for updating documentation]({{ site.url }}/dev/tips
                
 * Include javadoc and tests
 
-* See the [tips here]({{site.url}}/dev/tips/index.html)
+* See the [tips here]({{site.path.guide}}/dev/tips/index.html)
 
-* If you get blocked, **[hollar]({{site.url}}/meta/contact.html)**!
+* If you get blocked, **[hollar]({{site.path.guide}}/meta/contact.html)**!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/index.md b/docs/guide/dev/index.md
index 11377d7..c6c9e33 100644
--- a/docs/guide/dev/index.md
+++ b/docs/guide/dev/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Getting to Code
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 {% readj code/index.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/tips/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/index.md b/docs/guide/dev/tips/index.md
index 664a95e..e809b7d 100644
--- a/docs/guide/dev/tips/index.md
+++ b/docs/guide/dev/tips/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Miscellaneous Tips and Tricks
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 ## General Good Ways of Working
@@ -13,7 +13,7 @@ toc: /toc.json
   
 * When debugging an entity, make sure the  [brooklyn.SSH logger](logging.html) is set to DEBUG and accessible.
  
-* Use tests heavily!  These are pretty good to run in the IDE (once you've completed [IDE setup]({{site.url}}/dev/build/ide.html)),
+* Use tests heavily!  These are pretty good to run in the IDE (once you've completed [IDE setup]({{site.path.guide}}/dev/build/ide.html)),
   and far quicker to spot problems than runtime, plus we get early-warning of problems introduced in the future.
   (In particular, Groovy's laxity with compilation means it is easy to introduce silly errors which good test coverage will find much faster.)
   
@@ -37,7 +37,7 @@ toc: /toc.json
   Clusters will take such a ``MachineProvisioningLocation`` (or a singleton list); fabircs take a list of locations.
   Some PaaS systems have their own location model, such as ``OpenShiftLocation``.
 
-Finally, don't be shy about [talking with others]({{site.url}}/meta/contact.html), 
+Finally, don't be shy about [talking with others]({{site.path.guide}}/meta/contact.html), 
 that's far better than spinning your wheels (or worse, having a bad experience),
 plus it means we can hopefully improve things for other people!
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/tips/local-artifact-repo.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/local-artifact-repo.md b/docs/guide/dev/tips/local-artifact-repo.md
index a96c62f..455a545 100644
--- a/docs/guide/dev/tips/local-artifact-repo.md
+++ b/docs/guide/dev/tips/local-artifact-repo.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Prepopulating a Local Artifact Repository
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 On occasion it can be useful to have/control/prepopulate a local repository of entity installers <small>[1]</small>.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/tips/logging.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/logging.md b/docs/guide/dev/tips/logging.md
index 4e6b001..d639762 100644
--- a/docs/guide/dev/tips/logging.md
+++ b/docs/guide/dev/tips/logging.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Logging
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 ## Logging: A Quick Overview

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/tips/release.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/release.md b/docs/guide/dev/tips/release.md
index 35c5904..f56f81e 100644
--- a/docs/guide/dev/tips/release.md
+++ b/docs/guide/dev/tips/release.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Release Process
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 <!--

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/tips/standards.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/standards.md b/docs/guide/dev/tips/standards.md
index 259ab20..66b77b0 100644
--- a/docs/guide/dev/tips/standards.md
+++ b/docs/guide/dev/tips/standards.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Code Standards
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 Without being too restrictive about how you have to code as part of Brooklyn,

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/tips/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/toc.json b/docs/guide/dev/tips/toc.json
index 0be0aba..43fddac 100644
--- a/docs/guide/dev/tips/toc.json
+++ b/docs/guide/dev/tips/toc.json
@@ -1,14 +1,14 @@
 [
 { "title": "Miscellany",
-  "file": "{{ site.url }}/dev/tips/index.html" },
+  "file": "{{ site.path.guide }}/dev/tips/index.html" },
 { "title": "Logging",
-  "file": "{{ site.url }}/dev/tips/logging.html" },
+  "file": "{{ site.path.guide }}/dev/tips/logging.html" },
 { "title": "Code Standards",
-  "file": "{{ site.url }}/dev/tips/standards.html" },
+  "file": "{{ site.path.guide }}/dev/tips/standards.html" },
 { "title": "Local Artifact Repo",
-  "file":  "{{ site.url }}/dev/tips/local-artifact-repo.html" },
+  "file":  "{{ site.path.guide }}/dev/tips/local-artifact-repo.html" },
 { "title": "Updating Docs",
-  "file":  "{{ site.url }}/dev/tips/update-docs.html" },
+  "file":  "{{ site.path.guide }}/dev/tips/update-docs.html" },
 { "title": "Release Process",
-  "file":  "{{ site.url }}/dev/tips/release.html" }
+  "file":  "{{ site.path.guide }}/dev/tips/release.html" }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/tips/update-docs.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/update-docs.md b/docs/guide/dev/tips/update-docs.md
index 5d72e47..0f2aafb 100644
--- a/docs/guide/dev/tips/update-docs.md
+++ b/docs/guide/dev/tips/update-docs.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Updating the Docs
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 The Brooklyn docs live in the **docs** project in the Brooklyn codebase.
@@ -65,6 +65,6 @@ for convenience.
 
 The latest stable version typically lives in the root of the `brooklyncentral.github.com` project.
 Archived versions are kept under `/v/*` with logic in the markdown for 
-[meta/versions]({{ site.url }}/meta/versions.html) to link to related versions.  
+[meta/versions]({{ site.path.guide }}/meta/versions.html) to link to related versions.  
 Additional instructions and scripts for automating the installs can be found in `/docs/_scripts/`.
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/dev/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/dev/toc.json b/docs/guide/dev/toc.json
index f22e840..53c9612 100644
--- a/docs/guide/dev/toc.json
+++ b/docs/guide/dev/toc.json
@@ -1,18 +1,18 @@
 [
 { "title": "The Code",
-  "file": "{{ site.url }}/dev/code/index.html",
+  "file": "{{ site.path.guide }}/dev/code/index.html",
   "exclude": true,
-  "children": {% readj ./code/toc.json %} },
+  "children": {% readj code/toc.json %} },
 { "title": "Build and Test",
-  "file": "{{ site.url }}/dev/build/index.html",
+  "file": "{{ site.path.guide }}/dev/build/index.html",
   "exclude": true,
-  "children": {% readj ./build/toc.json %} },
+  "children": {% readj build/toc.json %} },
 { "title": "Tips and Tricks",
-  "file": "{{ site.url }}/dev/tips/index.html",
+  "file": "{{ site.path.guide }}/dev/tips/index.html",
   "exclude": true,
-  "children": {% readj ./tips/toc.json %} },
+  "children": {% readj tips/toc.json %} },
 { "title": "Links",
-  "file": "{{ site.url }}/dev/links.html",
+  "file": "{{ site.path.guide }}/dev/links.html",
   "children": [
     { "title": "Github repo",
       "file": "https://github.com/brooklyncentral/" },
@@ -22,5 +22,5 @@
       "file": "http://ccweb.cloudsoftcorp.com/maven/libs-snapshot-local/io/brooklyn/" }      
   ] },
 { "title": "How to Contribute",
-  "file": "{{ site.url }}/dev/how-to-contrib.html" }
+  "file": "{{ site.path.guide }}/dev/how-to-contrib.html" }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/index.md b/docs/guide/index.md
index 8665cdf..41624d0 100644
--- a/docs/guide/index.md
+++ b/docs/guide/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Overview
-toc: /toc.json
+toc: /guide/toc.json
 categories: [start]
 ---
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/license/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/license/index.md b/docs/guide/license/index.md
index aed028d..af33ed0 100644
--- a/docs/guide/license/index.md
+++ b/docs/guide/license/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Brooklyn Licenses
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 ## License

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/license/license.md
----------------------------------------------------------------------
diff --git a/docs/guide/license/license.md b/docs/guide/license/license.md
index 75cceac..6fe8339 100644
--- a/docs/guide/license/license.md
+++ b/docs/guide/license/license.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: License
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 Brooklyn is licensed to the public as open source under the 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/license/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/license/toc.json b/docs/guide/license/toc.json
index 8194f80..384d368 100644
--- a/docs/guide/license/toc.json
+++ b/docs/guide/license/toc.json
@@ -1,4 +1,4 @@
 [
 { "title": "Apache License v2.0",
-  "file":  "{{ site.url }}/license/license.html" }
+  "file":  "{{ site.path.guide }}/license/license.html" }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/meta/contact.md
----------------------------------------------------------------------
diff --git a/docs/guide/meta/contact.md b/docs/guide/meta/contact.md
index 937e763..c318a1f 100644
--- a/docs/guide/meta/contact.md
+++ b/docs/guide/meta/contact.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Contact
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 {% readj contact.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/meta/irc.md
----------------------------------------------------------------------
diff --git a/docs/guide/meta/irc.md b/docs/guide/meta/irc.md
index 5827818..9324bd2 100644
--- a/docs/guide/meta/irc.md
+++ b/docs/guide/meta/irc.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: IRC
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 IRC is a basic group chat system used by many open source projects to enable developers to 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/meta/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/meta/toc.json b/docs/guide/meta/toc.json
index 694eaea..f01fa8e 100644
--- a/docs/guide/meta/toc.json
+++ b/docs/guide/meta/toc.json
@@ -1,8 +1,8 @@
 [
 { "title": "Versions",
-  "file":  "{{ site.url }}/meta/versions.html" },
+  "file":  "{{ site.path.guide }}/meta/versions.html" },
 { "title": "Verify",
-  "file":  "{{ site.url }}/meta/verify.html" },
+  "file":  "{{ site.path.guide }}/meta/verify.html" },
 { "title": "Contact",
-  "file":  "{{ site.url }}/meta/contact.html" }
+  "file":  "{{ site.path.guide }}/meta/contact.html" }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/meta/verify.md
----------------------------------------------------------------------
diff --git a/docs/guide/meta/verify.md b/docs/guide/meta/verify.md
index 889e5bd..74037fa 100644
--- a/docs/guide/meta/verify.md
+++ b/docs/guide/meta/verify.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Verify the Integrity of Downloads
-toc: /toc.json
+toc: /guide/toc.json
 ---
 {% include fields.md %}
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/meta/versions.md
----------------------------------------------------------------------
diff --git a/docs/guide/meta/versions.md b/docs/guide/meta/versions.md
index 53a6a0d..9466473 100644
--- a/docs/guide/meta/versions.md
+++ b/docs/guide/meta/versions.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Versions
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 <!--- display which version we are using, based on where it is written -->
@@ -22,7 +22,7 @@ Files must be copied to the brooklyncentral.github.com repo for these links to r
 {% if site.brooklyn-version contains 'SNAPSHOT' %}
 <!--- snapshot version -->
 
-  {% if site.url == '' %}
+  {% if site.path.guide == '' %}
 
 <!--- current version (served off root of site) is snapshot (unusual) -->
 
@@ -50,7 +50,7 @@ rather than a shapshot.
 {% else %}
 <!--- not snapshot -->
 
-  {% if site.url == '' %}
+  {% if site.path.guide == '' %}
    
 <!--- current version (served off root of site) -->
 
@@ -63,7 +63,7 @@ Other versions with documentation available are listed below.
 <!--- archive version -->
 
 This is the archived documentation for Brooklyn {{ site.brooklyn-version }}
-(generated {{ site.time }}, archived under {{ site.url }}).
+(generated {{ site.time }}, archived under {{ site.path.guide }}).
 
 [View current documentation here.](/meta/versions.html)
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/start/docs-summary.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/docs-summary.include.md b/docs/guide/start/docs-summary.include.md
index c08c06f..9dac44d 100644
--- a/docs/guide/start/docs-summary.include.md
+++ b/docs/guide/start/docs-summary.include.md
@@ -1,7 +1,7 @@
 To learn about Brooklyn, here are some recommended starting points:
 
-* [Developer's Walkthrough]({{site.url}}/start/walkthrough/index.html) 
-* [Examples]({{site.url}}/use/examples/)
-* [User Guide]({{site.url}}/use/guide/) 
-* [Code Overview]({{site.url}}/dev/code/)
+* [Developer's Walkthrough]({{site.path.guide}}/start/walkthrough/index.html) 
+* [Examples]({{site.path.guide}}/use/examples/)
+* [User Guide]({{site.path.guide}}/use/guide/) 
+* [Code Overview]({{site.path.guide}}/dev/code/)
 * [Code on Github](http://github.com/brooklyncentral/brooklyn/)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/start/docs-summary.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/docs-summary.md b/docs/guide/start/docs-summary.md
index 4e993fa..25ba02b 100644
--- a/docs/guide/start/docs-summary.md
+++ b/docs/guide/start/docs-summary.md
@@ -6,4 +6,4 @@ toc: ../toc.json
 
 {% readj docs-summary.include.md %}
 
-Beyond this, [just come chat to us]({{site.url}}/meta/contact.html).
+Beyond this, [just come chat to us]({{site.path.guide}}/meta/contact.html).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/start/download.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/download.md b/docs/guide/start/download.md
index 0e82a84..20f7261 100644
--- a/docs/guide/start/download.md
+++ b/docs/guide/start/download.md
@@ -5,7 +5,7 @@ toc: ../toc.json
 ---
 {% include fields.md %}
 
-First time user? The [getting started]({{ site.url }}/use/guide/quickstart/index.html) guide will walk you through downloading Brooklyn, setup of your `brooklyn.properties` and `catalog.xml` files, and then trying the [examples](#examples). 
+First time user? The [getting started]({{ site.path.guide }}/use/guide/quickstart/index.html) guide will walk you through downloading Brooklyn, setup of your `brooklyn.properties` and `catalog.xml` files, and then trying the [examples](#examples). 
 
 ## Download Version {{ site.brooklyn-version }}
 
@@ -31,7 +31,7 @@ First time user? The [getting started]({{ site.url }}/use/guide/quickstart/index
 </tr>
 <tr>
 	<td style='text-align:left'>Release notes</td>
-	<td style='text-align:left'><a href='{{ site.url }}/start/release-notes.html'>{{ site.brooklyn-version }}</a></td>
+	<td style='text-align:left'><a href='{{ site.path.guide }}/start/release-notes.html'>{{ site.brooklyn-version }}</a></td>
 	<td> - </td>
 </tr>
 </table>
@@ -72,7 +72,7 @@ This is a single JAR containing all of Brooklyn and its dependencies, for develo
 
 ## Release Notes
 
-Release notes can be found [here]({{ site.url }}/start/release-notes.html).
+Release notes can be found [here]({{ site.path.guide }}/start/release-notes.html).
 
 <a name="examples"></a>
 ## Examples
@@ -86,7 +86,7 @@ When this version is released, the [brooklyn-examples git repository](http://git
 
 You can checkout the examples from the [brooklyn-examples git repository](http://github.com/brooklyncentral/brooklyn-examples).
 
-Maven (v3) is required to build them, as described [here]({{ site.url }}/dev/build/).
+Maven (v3) is required to build them, as described [here]({{ site.path.guide }}/dev/build/).
 The examples for this version ({{ site.brooklyn-version }}) are in the branch 
 `{% if SNAPSHOT %}{{ site.brooklyn-snapshot-git-branch }}{% else %}{{ site.brooklyn-version }}{% endif %}`, so if you have `git` and `mvn` already, you can simply:
 
@@ -112,7 +112,7 @@ These commands should do the trick:
 {% endhighlight %}
 
 
-A good example to start with is the [Elastic Web Cluster]({{site.url}}/use/examples/webcluster.html).
+A good example to start with is the [Elastic Web Cluster]({{site.path.guide}}/use/examples/webcluster.html).
 
 {% endif %} 
 
@@ -176,7 +176,7 @@ or one of the additional snapshot repositories above.
 ## Source Code
 
 Full source is at [github.com/brooklyncentral/brooklyn](http://github.com/brooklyncentral/brooklyn).
-Information on working with the source is [here]({{ site.url }}/dev/code).
+Information on working with the source is [here]({{ site.path.guide }}/dev/code).
 
 Alternatively you can download archives of the source directly:
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/start/index.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/index.include.md b/docs/guide/start/index.include.md
index 1406337..0412ec9 100644
--- a/docs/guide/start/index.include.md
+++ b/docs/guide/start/index.include.md
@@ -33,18 +33,18 @@ open-sourced here and giving you full control over what you want to happen.
 More importantly, however, this code can be shared, improved, and extended.
 
 We're still near the beginning of figuring this out: 
-[join us to make it better]({{site.url}}/meta/contact.html).
+[join us to make it better]({{site.path.guide}}/meta/contact.html).
 
 
 ## To Get Started
 
-* See the [developer's walkthrough]({{site.url}}/start/walkthrough/index.html) for a quick tour
-* Check out the [examples]({{site.url}}/use/examples/), from a global web fabric with geo-DNS to a movable PaaS target
-* Jump in to the [user guide]({{site.url}}/use/guide/) describing the 
-  [concepts]({{site.url}}/use/guide/defining-applications/basic-concepts.html)
-  and including a [tutorial]({{site.url}}/use/guide/quickstart/)
-* Or dive straight in to the code, either [reading]({{site.url}}/dev/code/) about it
+* See the [developer's walkthrough]({{site.path.guide}}/start/walkthrough/index.html) for a quick tour
+* Check out the [examples]({{site.path.guide}}/use/examples/), from a global web fabric with geo-DNS to a movable PaaS target
+* Jump in to the [user guide]({{site.path.guide}}/use/guide/) describing the 
+  [concepts]({{site.path.guide}}/use/guide/defining-applications/basic-concepts.html)
+  and including a [tutorial]({{site.path.guide}}/use/guide/quickstart/)
+* Or dive straight in to the code, either [reading]({{site.path.guide}}/dev/code/) about it
   or [gitting](http://github.com/brooklyncentral/brooklyn/) it
 
 If you like it, or if you have ideas how it could be better,
-[join the discussion]({{site.url}}/meta/contact.html).
+[join the discussion]({{site.path.guide}}/meta/contact.html).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/start/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/index.md b/docs/guide/start/index.md
index b3e9983..eda9390 100644
--- a/docs/guide/start/index.md
+++ b/docs/guide/start/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Overview
-toc: /toc.json
+toc: /guide/toc.json
 categories: [start]
 ---
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/start/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/start/toc.json b/docs/guide/start/toc.json
index 43d79d7..532ce68 100644
--- a/docs/guide/start/toc.json
+++ b/docs/guide/start/toc.json
@@ -1,10 +1,10 @@
 [
 { "title": "Overview",
-  "file":  "{{ site.url }}/index.html" },
+  "file":  "{{ site.path.guide }}/index.html" },
 { "title": "Walkthrough",
-  "file": "{{ site.url }}/start/walkthrough/index.html" },
+  "file": "{{ site.path.guide }}/start/walkthrough/index.html" },
 { "title": "Download",
-  "file": "{{ site.url }}/start/download.html" },
+  "file": "{{ site.path.guide }}/start/download.html" },
 { "title": "Documentation",
-  "file": "{{ site.url }}/start/docs-summary.html" }
+  "file": "{{ site.path.guide }}/start/docs-summary.html" }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/start/walkthrough/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/walkthrough/index.md b/docs/guide/start/walkthrough/index.md
index de29f5c..d68aad4 100644
--- a/docs/guide/start/walkthrough/index.md
+++ b/docs/guide/start/walkthrough/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Walkthrough
-toc: /toc.json
+toc: /guide/toc.json
 ---
 {% include fields.md %}
 
@@ -44,7 +44,7 @@ $ cd brooklyn-sample
 {% endhighlight %}
 
 *Note*: As this is a snapshot version of Brooklyn, the code above includes a `-DarchetypeCatalog` specification.
-This can be omitted for release versions, or if you already have a local `mvn install` of Brooklyn installed as described [here]({{site.url}}/dev/code/index.html).
+This can be omitted for release versions, or if you already have a local `mvn install` of Brooklyn installed as described [here]({{site.path.guide}}/dev/code/index.html).
 
 {% else %}
 
@@ -84,7 +84,7 @@ provides a template to follow.
 ## Deploying the Application
 
 If you have not already done so, follow the section in the 
-[Getting Started Guide]({{site.url}}/use/guide/quickstart/index.html) to create a `brooklyn.properties` 
+[Getting Started Guide]({{site.path.guide}}/use/guide/quickstart/index.html) to create a `brooklyn.properties` 
 file containing credentials for your preferred cloud provider. 
 
 To launch this application, build the project and run the `start.sh` script in the resulting assembly:
@@ -187,16 +187,16 @@ Fire up a JMeter session (or other load testing tool) and blast the Nginx addres
  
 In addition to the sample project created by the archetype, with its README and
 `assembly` build, you can find additional code related to this example included with Brooklyn as the ``simple-web-cluster`` example,
-described [in detail here]({{site.url}}/use/examples/webcluster).
+described [in detail here]({{site.path.guide}}/use/examples/webcluster).
 
 For your applications, you might want to mix in other data stores, messaging systems, or on-line services including PaaS.
 Brooklyn supports some of these out-of-the-box, including a wide-range of tools which it can use Whirr to provision, such as Hadoop.
 But if you have something you don't see, 
-[let us know]({{site.url}}/meta/contact.html) -- 
+[let us know]({{site.path.guide}}/meta/contact.html) -- 
 we want to work with you to 
-[write a new entity]({{site.url}}/dev/code/entity.html) or
-[policy]({{site.url}}/dev/code/policy.html) 
-and [contribute it]({{site.url}}/dev/how-to-contrib.html).
+[write a new entity]({{site.path.guide}}/dev/code/entity.html) or
+[policy]({{site.path.guide}}/dev/code/policy.html) 
+and [contribute it]({{site.path.guide}}/dev/how-to-contrib.html).
 
 
 <!--
@@ -225,7 +225,7 @@ Alternatively you can just add a ``main`` method to the application class as fol
     }
 {% endhighlight %}
 
-Compile and run this with the [``brooklyn-all`` jar]({{site.url}}/start/download.html) on the classpath,
+Compile and run this with the [``brooklyn-all`` jar]({{site.path.guide}}/start/download.html) on the classpath,
 pointing at your favourite WAR on your filesystem. 
 (If the ``import`` packages aren't picked up correctly,
 you can cheat by looking at [the file in Github](https://github.com/brooklyncentral/brooklyn/blob/master/examples/simple-web-cluster/src/main/java/brooklyn/demo/WebClusterDatabaseExample.java);
@@ -235,6 +235,6 @@ and you'll find a sample WAR which uses the database as configured above
  
 If you want to adventure beyond ``localhost`` (the default),
 simply supply the your favourite cloud (e.g. ``aws-ec2:eu-west-1``)
-with credentials set up as described [here]({{ site.url }}/use/guide/management/index.html#startup-config).
+with credentials set up as described [here]({{ site.path.guide }}/use/guide/management/index.html#startup-config).
 
 -->

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/toc-menu.json
----------------------------------------------------------------------
diff --git a/docs/guide/toc-menu.json b/docs/guide/toc-menu.json
index 824bbbe..6c1e3c3 100644
--- a/docs/guide/toc-menu.json
+++ b/docs/guide/toc-menu.json
@@ -1,20 +1,20 @@
 [
 { "title": "Overview",
-  "file":  "{{ site.url }}/index.html" },
+  "file":  "{{ site.path.guide }}/index.html" },
 { "title": "Download",
-  "file": "{{ site.url }}/start/download.html" },
+  "file": "{{ site.path.guide }}/start/download.html" },
 { "title": "Getting Started",
-  "file": "{{ site.url }}/use/guide/quickstart/index.html" },
+  "file": "{{ site.path.guide }}/use/guide/quickstart/index.html" },
 { "title": "Walkthrough",
-  "file": "{{ site.url }}/start/walkthrough/index.html" },
+  "file": "{{ site.path.guide }}/start/walkthrough/index.html" },
 { "title": "User Guide",
-  "file":  "{{ site.url }}/use/guide/index.html",
-  "children": {% readj ./use/guide/toc.json %} },
+  "file":  "{{ site.path.guide }}/use/guide/index.html",
+  "children": {% readj use/guide/toc.json %} },
 { "title": "Examples",
-  "file":  "{{ site.url }}/use/examples/index.html", 
-  "children": {% readj ./use/examples/toc.json %} },
+  "file":  "{{ site.path.guide }}/use/examples/index.html", 
+  "children": {% readj use/examples/toc.json %} },
 { "title": "Contributing",
-  "file": "{{ site.url }}/dev/code/index.html",
+  "file": "{{ site.path.guide }}/dev/code/index.html",
   "exclude": true,
-  "children": {% readj /dev/toc.json %} }
+  "children": {% readj dev/toc.json %} }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/toc.json b/docs/guide/toc.json
index 79f9e5d..07d4c5c 100644
--- a/docs/guide/toc.json
+++ b/docs/guide/toc.json
@@ -1,21 +1,21 @@
 [
 { "title": "Start",
-  "file":  "{{ site.url }}/start/index.html",
+  "file":  "{{ site.path.guide }}/start/index.html",
   "exclude": true,
-  "children": {% readj /start/toc.json %} },
+  "children": {% readj start/toc.json %} },
 { "title": "Using brooklyn",
-  "file":  "{{ site.url }}/use/index.html",
-  "children": {% readj /use/toc.json %} },
+  "file":  "{{ site.path.guide }}/use/index.html",
+  "children": {% readj use/toc.json %} },
 { "title": "Contributing",
-  "file": "{{ site.url }}/dev/code/index.html",
+  "file": "{{ site.path.guide }}/dev/code/index.html",
   "exclude": true,
-  "children": {% readj /dev/toc.json %} },
+  "children": {% readj dev/toc.json %} },
 { "title": "License",
-  "file": "{{ site.url }}/license/index.html",
+  "file": "{{ site.path.guide }}/license/index.html",
   "exclude": true,
-  "children": {% readj /license/toc.json %} },
+  "children": {% readj license/toc.json %} },
 { "title": "Meta",
-  "file": "{{ site.url }}/meta/versions.html",
+  "file": "{{ site.path.guide }}/meta/versions.html",
   "exclude": true,
-  "children": {% readj /meta/toc.json %} }
+  "children": {% readj meta/toc.json %} }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/api/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/api/index.md b/docs/guide/use/api/index.md
index 143c345..c44b6e3 100644
--- a/docs/guide/use/api/index.md
+++ b/docs/guide/use/api/index.md
@@ -6,6 +6,6 @@ toc: ../../toc.json
 
 *Javadoc is not available as part of this build.*
 
-Please see the [source code]({{site.url}}/dev/code) to view javadoc.
+Please see the [source code]({{site.path.guide}}/dev/code) to view javadoc.
 
 <!-- This page is normally overwritten by generated javadoc. -->

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/contact.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/contact.md b/docs/guide/use/contact.md
index 008a5a1..622cf0a 100644
--- a/docs/guide/use/contact.md
+++ b/docs/guide/use/contact.md
@@ -4,4 +4,4 @@ title: Contact
 toc: ../toc.json
 ---
 
-{% readj /meta/contact.include.md %}
+{% readj ../meta/contact.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/examples/before-begin.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/before-begin.include.md b/docs/guide/use/examples/before-begin.include.md
index ad9bc19..2f71166 100644
--- a/docs/guide/use/examples/before-begin.include.md
+++ b/docs/guide/use/examples/before-begin.include.md
@@ -12,7 +12,7 @@ To use the examples, you'll need ``curl``, ``git``, ``java`` (1.6+), and ``maven
 
 First, grab a copy of the Brooklyn snapshot distribution you wish to use from 
 [the Sonatype snapshot repo]({{ sonatype_repo_groupid_url }}brooklyn-dist/)
-(or build it yourself following instructions [here]({{ site.url }}/dev/build/)),
+(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`:
 
@@ -52,6 +52,6 @@ For the latest stable version, go [here](/meta/versions.html).
 {% endif %}
 
 For more information on ways to download Brooklyn please
-see the [download page]({{site.url}}/start/download.html).
+see the [download page]({{site.path.guide}}/start/download.html).
 For more information on the Brooklyn CLI and launching apps,
-please visit [this section of the user guide]({{site.url}}/use/guide/management/index.html#cli).
+please visit [this section of the user guide]({{site.path.guide}}/use/guide/management/index.html#cli).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/examples/global-web-fabric/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/global-web-fabric/index.md b/docs/guide/use/examples/global-web-fabric/index.md
index 7231cda..b59eae0 100644
--- a/docs/guide/use/examples/global-web-fabric/index.md
+++ b/docs/guide/use/examples/global-web-fabric/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Global Web Fabric
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 This example shows how to build a multi-site web application *fabric*
@@ -375,4 +375,4 @@ Here are some questions to think about and code challenges to give you a steer f
     between the different clusters.
     This isn't for the faint-hearted, but whatever you create will certainly be of interest
     to people in the Brooklyn community.
-    Please [let us know]({{ site.url }}/meta/contact.html) what you've built!
+    Please [let us know]({{ site.path.guide }}/meta/contact.html) what you've built!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/examples/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/index.md b/docs/guide/use/examples/index.md
index 15e89dc..f55643f 100644
--- a/docs/guide/use/examples/index.md
+++ b/docs/guide/use/examples/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Examples
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 We currently have the following examples on the site:
@@ -15,4 +15,4 @@ We currently have the following examples on the site:
 
 There are examples in the code also, just check out the examples/ project.
 
-**Have one of your own?**  [Add it here!]({{site.url}}/dev/tips/update-docs.html)
+**Have one of your own?**  [Add it here!]({{site.path.guide}}/dev/tips/update-docs.html)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/examples/messaging/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/messaging/index.md b/docs/guide/use/examples/messaging/index.md
index 51fd0ae..0e38101 100644
--- a/docs/guide/use/examples/messaging/index.md
+++ b/docs/guide/use/examples/messaging/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Publish-Subscribe Messagiung
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 This example shows how a simple messaging application can be build
@@ -170,7 +170,7 @@ messages, as follows:
 ### Cloud Deployment
 
 With appropriate setup (as described
-[here]({{ site.url }}/use/guide/management/index.html#startup-config))
+[here]({{ site.path.guide }}/use/guide/management/index.html#startup-config))
 this can also be deployed to your favourite cloud, let's pretend
 it's Amazon Ireland, as follows:
 
@@ -179,5 +179,5 @@ it's Amazon Ireland, as follows:
 {% endhighlight %}
 
 If you encounter any difficulties, please
-[tell us]({{ site.url }}/meta/contact.html) and we'll do our best
+[tell us]({{ site.path.guide }}/meta/contact.html) and we'll do our best
 to help.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/examples/nosql-cassandra/cassandra.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/nosql-cassandra/cassandra.include.md b/docs/guide/use/examples/nosql-cassandra/cassandra.include.md
index 8fd04ae..56319f8 100644
--- a/docs/guide/use/examples/nosql-cassandra/cassandra.include.md
+++ b/docs/guide/use/examples/nosql-cassandra/cassandra.include.md
@@ -49,7 +49,7 @@ If you want to run with more than one node in the cluster, you'll need to use a
 that either points to multiple existing machines or to a cloud provider where you can 
 provision new machines.
 
-With appropriate setup of credentials (as described [here]({{ site.url }}/use/guide/management/index.html#startup-config)) 
+With appropriate setup of credentials (as described [here]({{ site.path.guide }}/use/guide/management/index.html#startup-config)) 
 this example can also be deployed to your favourite cloud. Let's pretend it's Amazon US East, as follows: 
 
 {% highlight bash %}
@@ -279,4 +279,4 @@ If you want to try this with a real example application using the Cassandra clus
 
 ## Contact us!
 
-If you encounter any difficulties or have any comments, please [tell us]({{ site.url }}/meta/contact.html) and we'll do our best to help.
+If you encounter any difficulties or have any comments, please [tell us]({{ site.path.guide }}/meta/contact.html) and we'll do our best to help.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/examples/nosql-cassandra/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/nosql-cassandra/index.md b/docs/guide/use/examples/nosql-cassandra/index.md
index 13caf53..88c1dce 100644
--- a/docs/guide/use/examples/nosql-cassandra/index.md
+++ b/docs/guide/use/examples/nosql-cassandra/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Cassandra Clusters
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 {% readj cassandra.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/examples/simple-web-cluster.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/simple-web-cluster.md b/docs/guide/use/examples/simple-web-cluster.md
index e9ddac6..cd2b659 100644
--- a/docs/guide/use/examples/simple-web-cluster.md
+++ b/docs/guide/use/examples/simple-web-cluster.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Elastic Web Cluster
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 <!-- file kept to preserve old links; remove when link not used -->

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/examples/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/toc.json b/docs/guide/use/examples/toc.json
index 2f36c50..4bca3a1 100644
--- a/docs/guide/use/examples/toc.json
+++ b/docs/guide/use/examples/toc.json
@@ -1,13 +1,13 @@
 [
 { "title": "Elastic Web Cluster",
-  "file":  "{{ site.url }}/use/examples/webcluster/index.html" },
+  "file":  "{{ site.path.guide }}/use/examples/webcluster/index.html" },
 { "title": "Global Web Fabric",
-  "file":  "{{ site.url }}/use/examples/global-web-fabric/index.html" },
+  "file":  "{{ site.path.guide }}/use/examples/global-web-fabric/index.html" },
 { "title": "Whirr Hadoop Cluster",
-  "file":  "{{ site.url }}/use/examples/whirrhadoop/index.html" },
+  "file":  "{{ site.path.guide }}/use/examples/whirrhadoop/index.html" },
 { "title": "Publish-Subscribe Messaging",
-  "file":  "{{ site.url }}/use/examples/messaging/index.html" },
+  "file":  "{{ site.path.guide }}/use/examples/messaging/index.html" },
 { "title": "Cassandra Cluster",
-  "file":  "{{ site.url }}/use/examples/nosql-cassandra/index.html" }
+  "file":  "{{ site.path.guide }}/use/examples/nosql-cassandra/index.html" }
 
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/examples/webcluster.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/webcluster.md b/docs/guide/use/examples/webcluster.md
index e9ddac6..cd2b659 100644
--- a/docs/guide/use/examples/webcluster.md
+++ b/docs/guide/use/examples/webcluster.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Elastic Web Cluster
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 <!-- file kept to preserve old links; remove when link not used -->

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/examples/webcluster/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/webcluster/index.md b/docs/guide/use/examples/webcluster/index.md
index 43ea980..1fd80dd 100644
--- a/docs/guide/use/examples/webcluster/index.md
+++ b/docs/guide/use/examples/webcluster/index.md
@@ -1,7 +1,7 @@
 ---
 layout: guide-normal
 title: Elastic Web Cluster
-toc: /toc.json
+toc: /guide/toc.json
 ---
 
 {% readj webcluster.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/examples/webcluster/webcluster.include.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/examples/webcluster/webcluster.include.md b/docs/guide/use/examples/webcluster/webcluster.include.md
index 11e801b..e135998 100644
--- a/docs/guide/use/examples/webcluster/webcluster.include.md
+++ b/docs/guide/use/examples/webcluster/webcluster.include.md
@@ -50,7 +50,7 @@ Note that the installation may take some time, because the default deployment do
 the official repos.  You can monitor start-up activity for each entity in the ``Activity`` pane in the management console,
 and see more detail by tailing the log file (``tail -f brooklyn.log``).
 
-With appropriate setup (as described [here]({{ site.url }}/use/guide/management/index.html#startup-config)) 
+With appropriate setup (as described [here]({{ site.path.guide }}/use/guide/management/index.html#startup-config)) 
 this can also be deployed to your favourite cloud, let's pretend it's Amazon Ireland, as follows: 
 
 {% highlight bash %}
@@ -68,7 +68,7 @@ Ready for something more interesting?  Try this:
   --location localhost
 {% endhighlight %}
 
-This launches the class ``WebClusterDatabaseExample`` (also described in the [walkthrough]({{ site.url }}/start/walkthrough/index.html))
+This launches the class ``WebClusterDatabaseExample`` (also described in the [walkthrough]({{ site.path.guide }}/start/walkthrough/index.html))
 which launches a pool of web-servers -- of size 1 initially,
 but manually configurable (if you stop the policy first, in the GUI, then use the ``resize`` effector) --
 with an Nginx load-balancer set up in front of them, and backed by a MySQL database.
@@ -119,6 +119,6 @@ and a web-only cluster (no database) in `WebClusterExample``.
 
 The webapp that is used is included under ``examples/hello-world-webapp``.
 
-You may wish to check out the [Global Web Fabric example]({{ site.url }}/use/examples/global-web-fabric/) next.
+You may wish to check out the [Global Web Fabric example]({{ site.path.guide }}/use/examples/global-web-fabric/) next.
 
-If you encounter any difficulties, please [tell us]({{ site.url }}/meta/contact.html) and we'll do our best to help.
+If you encounter any difficulties, please [tell us]({{ site.path.guide }}/meta/contact.html) and we'll do our best to help.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/defining-applications/advanced-concepts.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/advanced-concepts.md b/docs/guide/use/guide/defining-applications/advanced-concepts.md
index 3b808f2..25b73ca 100644
--- a/docs/guide/use/guide/defining-applications/advanced-concepts.md
+++ b/docs/guide/use/guide/defining-applications/advanced-concepts.md
@@ -19,7 +19,7 @@ An application entity (``Application`` class) is responsible for starting the de
 An ``Application``'s ``start()`` method begins provisioning the child entities of the application (and their entities, recursively). 
 
 Provisioning of entities typically happens in parallel automatically,
-although this can be customized. This is implemented as ***tasks*** which are tracked by the management plane and is visible in the [web-based management console]({{site.url}}/use/guide/management/index.html#console).
+although this can be customized. This is implemented as ***tasks*** which are tracked by the management plane and is visible in the [web-based management console]({{site.path.guide}}/use/guide/management/index.html#console).
 
 Customized provisioning can be useful where two starting entities depend on each other. For example, it is often necessary to delay start of one entity until another entity reaches a certain state, and to supply run-time information about the latter to the former.
 
@@ -132,6 +132,6 @@ For example, a ``TomcatServer`` may implement start and other effectors using a
 Particularly for sensors, some technologies are used so frequently that they are
 packaged as ***feeds*** which can discover their configuration (including from drivers). These include JMX and HTTP (see ``JmxFeed`` and ``HttpFeed``).
 
-Brooklyn comes with entity implementations for a growing number of commonly used systems, including various web application servers, databases and NoSQL data stores, and messaging systems. See: [Extras]({{site.url}}/use/guide/extras/index.html).
+Brooklyn comes with entity implementations for a growing number of commonly used systems, including various web application servers, databases and NoSQL data stores, and messaging systems. See: [Extras]({{site.path.guide}}/use/guide/extras/index.html).
 
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/defining-applications/basic-concepts.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/basic-concepts.md b/docs/guide/use/guide/defining-applications/basic-concepts.md
index 51d36a6..c9f6645 100644
--- a/docs/guide/use/guide/defining-applications/basic-concepts.md
+++ b/docs/guide/use/guide/defining-applications/basic-concepts.md
@@ -90,6 +90,6 @@ An entity consists of a Java interface (used when interacting with the entity) a
 the entity's state in attributes (see `getAttribute(AttributeKey)``). If internal fields can be used then the data will be lost on brooklyn 
 restart, and may cause problems if the entity is to be moved to a different brooklyn management node.
 
-Next: [Advanced Concepts]({{site.url}}/use/guide/defining-applications/advanced-concepts.html).
-See also: [Management > Sensors and Effectors]({{site.url}}/use/guide/management/index.html#sensors-and-effectors).
+Next: [Advanced Concepts]({{site.path.guide}}/use/guide/defining-applications/advanced-concepts.html).
+See also: [Management > Sensors and Effectors]({{site.path.guide}}/use/guide/management/index.html#sensors-and-effectors).
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/defining-applications/creating-yaml.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/creating-yaml.md b/docs/guide/use/guide/defining-applications/creating-yaml.md
index fab8426..7be1419 100644
--- a/docs/guide/use/guide/defining-applications/creating-yaml.md
+++ b/docs/guide/use/guide/defining-applications/creating-yaml.md
@@ -25,14 +25,14 @@ Here's a very simple YAML blueprint plan, to explain the structure:
 * The `name` is just for the benefit of us humans.
 
 * The `location` specifies where this should be deployed.
-  If you've [set up passwordless localhost SSH access]({{ site.url }}/use/guide/locations/) 
+  If you've [set up passwordless localhost SSH access]({{ site.path.guide }}/use/guide/locations/) 
   you can use `localhost` as above, but if not, just wait ten seconds for the next example.
   
 * The `services` block takes a list of the typed services we want to deploy.
   This is the meat of the blueprint plan, as you'll see below.
 
 Finally, that clipboard in the corner lets you easily copy-and-paste into the web-console:
-simply [download and launch]({{ site.url }}/use/guide/quickstart/) Brooklyn,
+simply [download and launch]({{ site.path.guide }}/use/guide/quickstart/) Brooklyn,
 then in the "Add Application" dialog at the web console
 (usually [http://127.0.0.1:8081/](http://127.0.0.1:8081/). 
 There are several other ways to deploy, including `curl` and via the command-line,
@@ -75,7 +75,7 @@ YAML supports this, and sometimes that makes more readable plans.
 (Although in this case a simple `location: localhost` is equivalent and even more succinct, but this is a tutorial.)
 
 For more information see the Locations section of the [YAML reference](yaml-reference.html) 
-and in the [User's Guide]({{ site.url }}/use/guide/locations/).
+and in the [User's Guide]({{ site.path.guide }}/use/guide/locations/).
 Another good reference is the [template brooklyn.properties](/use/guide/quickstart/brooklyn.properties),
 which if you install in `~/.brooklyn/brooklyn.properties` and edit with your credentials,  
 allows you to refer to clouds simply as `location: jclouds:aws-ec2:eu-west-1` or
@@ -97,7 +97,7 @@ ignored if deploying to `localhost` or `byon` fixed-IP machines.*
 
 This will create a VM with the specified parameters in your choice of cloud.
 In the GUI (and in the REST API), the entity is called "VM",
-and the hostname and IP address(es) are reported as [sensors]({{ site.url }}/use/guide/defining-applications/basic-concepts.html).
+and the hostname and IP address(es) are reported as [sensors]({{ site.path.guide }}/use/guide/defining-applications/basic-concepts.html).
 There are many more `provisioning.properties` supported here,
 including:
 
@@ -147,7 +147,7 @@ We've seen the configuration of machines and how to build up clusters.
 Now let's return to our app-server example and explore how more interesting
 services can be configured, composed, and combined.
 
-Also note there are some good overview materials [here]({{site.url}}//use/guide/defining-applications/basic-concepts.html)
+Also note there are some good overview materials [here]({{site.path.guide}}//use/guide/defining-applications/basic-concepts.html)
 covering clusters, sensors, effectors and more, 
 if you're the kind of person who likes to learn more about concepts before seeing them in action.
 
@@ -401,17 +401,17 @@ TODO
 ### More Information
 
 Plenty of examples of blueprints exist in the Brooklyn codebase,
-so a good starting point is to [`git clone`]({{ site.url }}/dev/code/index.html) it
+so a good starting point is to [`git clone`]({{ site.path.guide }}/dev/code/index.html) it
 and search for `*.yaml` files therein.
 
 Brooklyn lived as a Java framework for many years before we felt confident
 to make a declarative front-end, so you can do pretty much anything you want to
 by dropping to the JVM. Information on that is available:
-* in the [user guide]({{site.url}}/use/guide/entities/index.html),
-* through a [Maven archetype]({{site.url}}/use/guide/defining-applications/archetype.html),
+* in the [user guide]({{site.path.guide}}/use/guide/entities/index.html),
+* through a [Maven archetype]({{site.path.guide}}/use/guide/defining-applications/archetype.html),
 * in the [codebase](https://github.com/brooklyncentral/brooklyn),
-* and in plenty of [examples]({{site.url}}/use/examples/index.html).
+* and in plenty of [examples]({{site.path.guide}}/use/examples/index.html).
 
 You can also come talk to us, on IRC (#brooklyncentral on Freenode) or
-any of the usual [hailing frequencies]({{site.url}}/meta/contact.html),
+any of the usual [hailing frequencies]({{site.path.guide}}/meta/contact.html),
 as these documents are a work in progress.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/defining-applications/deploying-yaml.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/deploying-yaml.md b/docs/guide/use/guide/defining-applications/deploying-yaml.md
index d448cb1..a57e5c8 100644
--- a/docs/guide/use/guide/defining-applications/deploying-yaml.md
+++ b/docs/guide/use/guide/defining-applications/deploying-yaml.md
@@ -6,7 +6,7 @@ categories: [use, guide, defining-applications]
 ---
 
 Once you've [written a YAML blueprint](creating-yaml.md), there are several ways to deploy it.
-These insructions assume you have [installed]({{ site.url }}/use/guide/quickstart/) Brooklyn.
+These insructions assume you have [installed]({{ site.path.guide }}/use/guide/quickstart/) Brooklyn.
 You can then:
 
 - Supply the YAML blueprint file on the CLI when launching the server:

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/defining-applications/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/defining-applications/toc.json b/docs/guide/use/guide/defining-applications/toc.json
index 08940a8..b4eeeef 100644
--- a/docs/guide/use/guide/defining-applications/toc.json
+++ b/docs/guide/use/guide/defining-applications/toc.json
@@ -1,19 +1,19 @@
 [{ "title": "Basic Concepts",
-  "file":  "{{ site.url }}/use/guide/defining-applications/basic-concepts.html" }, 
+  "file":  "{{ site.path.guide }}/use/guide/defining-applications/basic-concepts.html" }, 
 { "title": "Advanced Concepts",
-  "file":  "{{ site.url }}/use/guide/defining-applications/advanced-concepts.html" }, 
+  "file":  "{{ site.path.guide }}/use/guide/defining-applications/advanced-concepts.html" }, 
 { "title": "Common Usage",
-  "file":  "{{ site.url }}/use/guide/defining-applications/common-usage.html" },
+  "file":  "{{ site.path.guide }}/use/guide/defining-applications/common-usage.html" },
 { "title": "YAML Blueprints",
-  "file":  "{{ site.url }}/use/guide/defining-applications/creating-yaml.html" },
+  "file":  "{{ site.path.guide }}/use/guide/defining-applications/creating-yaml.html" },
 { "title": "Chef Blueprints",
-  "file":  "{{ site.url }}/use/guide/defining-applications/chef-blueprints.html" },
+  "file":  "{{ site.path.guide }}/use/guide/defining-applications/chef-blueprints.html" },
 { "title": "Deploying YAML",
-  "file":  "{{ site.url }}/use/guide/defining-applications/deploying-yaml.html" },
+  "file":  "{{ site.path.guide }}/use/guide/defining-applications/deploying-yaml.html" },
 { "title": "YAML Reference",
-  "file":  "{{ site.url }}/use/guide/defining-applications/yaml-reference.html" },
+  "file":  "{{ site.path.guide }}/use/guide/defining-applications/yaml-reference.html" },
 { "title": "Service State",
-  "file":  "{{ site.url }}/use/guide/defining-applications/service-state.html" },
+  "file":  "{{ site.path.guide }}/use/guide/defining-applications/service-state.html" },
 { "title": "Maven Archetype",
-  "file":  "{{ site.url }}/use/guide/defining-applications/archetype.html" }
+  "file":  "{{ site.path.guide }}/use/guide/defining-applications/archetype.html" }
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/entities/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/entities/index.md b/docs/guide/use/guide/entities/index.md
index dc7df88..f679611 100644
--- a/docs/guide/use/guide/entities/index.md
+++ b/docs/guide/use/guide/entities/index.md
@@ -108,7 +108,7 @@ wiring for the sensors, and the effector implementations. In simple cases it may
 to capture the behaviour of the effectors in a simple methods.
 For example deploying a WAR to a cluster can be done as follows:
 
-*This section is not complete. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
+*This section is not complete. Feel free to [fork]({{site.path.guide}}/dev/code) the docs and lend a hand.*
 
 <!---
 TODO show an effector which recurses across children

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/entities/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/entities/toc.json b/docs/guide/use/guide/entities/toc.json
index c6c68dd..69dbfb9 100644
--- a/docs/guide/use/guide/entities/toc.json
+++ b/docs/guide/use/guide/entities/toc.json
@@ -1,12 +1,12 @@
 [{ "title": "Entity Lifecycle",
-  "file":  "{{ site.url }}/use/guide/entities/index.html#entity-lifestyle" }, 
+  "file":  "{{ site.path.guide }}/use/guide/entities/index.html#entity-lifestyle" }, 
 { "title": "What to Extend",
-  "file":  "{{ site.url }}/use/guide/entities/index.html#implementation-classes" }, 
+  "file":  "{{ site.path.guide }}/use/guide/entities/index.html#implementation-classes" }, 
 { "title": "Configuration",
-  "file":  "{{ site.url }}/use/guide/entities/index.html#configuration" }, 
+  "file":  "{{ site.path.guide }}/use/guide/entities/index.html#configuration" }, 
 { "title": "Implementing Sensors",
-  "file":  "{{ site.url }}/use/guide/entities/index.html#implementing-sensors" }, 
+  "file":  "{{ site.path.guide }}/use/guide/entities/index.html#implementing-sensors" }, 
 { "title": "Implementing Effectors",
-  "file":  "{{ site.url }}/use/guide/entities/index.html#implementing-effectors" },
+  "file":  "{{ site.path.guide }}/use/guide/entities/index.html#implementing-effectors" },
 { "title": "Testing",
-  "file":  "{{ site.url }}/use/guide/entities/index.html#testing" }]
\ No newline at end of file
+  "file":  "{{ site.path.guide }}/use/guide/entities/index.html#testing" }]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/extras/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/extras/toc.json b/docs/guide/use/guide/extras/toc.json
index edf5cc7..3a4f11f 100644
--- a/docs/guide/use/guide/extras/toc.json
+++ b/docs/guide/use/guide/extras/toc.json
@@ -1,11 +1,11 @@
 [{ "title": "Web",
-  "file":  "{{ site.url }}/use/guide/extras/index.html#web" }, 
+  "file":  "{{ site.path.guide }}/use/guide/extras/index.html#web" }, 
 { "title": "Database",
-  "file":  "{{ site.url }}/use/guide/extras/index.html#database" }, 
+  "file":  "{{ site.path.guide }}/use/guide/extras/index.html#database" }, 
 { "title": "NoSQL",
-  "file":  "{{ site.url }}/use/guide/extras/index.html#nosql" }, 
+  "file":  "{{ site.path.guide }}/use/guide/extras/index.html#nosql" }, 
 { "title": "Messaging",
-  "file":  "{{ site.url }}/use/guide/extras/index.html#messaging" },
+  "file":  "{{ site.path.guide }}/use/guide/extras/index.html#messaging" },
 { "title": "Provisioning",
-  "file":  "{{ site.url }}/use/guide/extras/index.html#provisioning" }  
+  "file":  "{{ site.path.guide }}/use/guide/extras/index.html#provisioning" }  
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/guide_toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/guide_toc.json b/docs/guide/use/guide/guide_toc.json
index a7cfff6..889353e 100644
--- a/docs/guide/use/guide/guide_toc.json
+++ b/docs/guide/use/guide/guide_toc.json
@@ -1,25 +1,25 @@
 [
 { "title": "Start",
-  "file":  "{{ site.url }}/start/index.html" },
+  "file":  "{{ site.path.guide }}/start/index.html" },
 
 { "title": "User Guide",
-  "file": "{{ site.url }}/use/guide/index.html",
-  "children": {% readj ./toc.json %} },
+  "file": "{{ site.path.guide }}/use/guide/index.html",
+  "children": {% readj toc.json %} },
 { "title": "Elsewhere",
-  "file":  "{{ site.url }}/start/index.html",
+  "file":  "{{ site.path.guide }}/start/index.html",
   "children": [
 
 { "title": "Examples",
-  "file":  "{{ site.url }}/use/examples/index.html", 
-  "children": {% readj /use/examples/toc.json %} },
+  "file":  "{{ site.path.guide }}/use/examples/index.html", 
+  "children": {% readj /guide/use/examples/toc.json %} },
 { "title": "API Reference",
-  "file": "{{ site.url }}/use/api/index.html" },
+  "file": "{{ site.path.guide }}/use/api/index.html" },
   
 { "title": "Contributing",
-  "file": "{{ site.url }}/dev/code/index.html",
-  "children": {% readj /dev/toc.json %} },
+  "file": "{{ site.path.guide }}/dev/code/index.html",
+  "children": {% readj /guide/dev/toc.json %} },
 { "title": "License",
-  "file": "{{ site.url }}/license/index.html" }  
+  "file": "{{ site.path.guide }}/license/index.html" }  
 ]}
 
 ]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/management/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/management/index.md b/docs/guide/use/guide/management/index.md
index 576da81..6f65c81 100644
--- a/docs/guide/use/guide/management/index.md
+++ b/docs/guide/use/guide/management/index.md
@@ -286,7 +286,7 @@ TODO Describe how and when objects become "live", pushed out to other nodes.
 Resilience
 ----------
 TODO
-*This section still needs to be written. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
+*This section still needs to be written. Feel free to [fork]({{site.path.guide}}/dev/code) the docs and lend a hand.*
 -->
 
 
@@ -296,7 +296,7 @@ Key APIs
 <!---
 TODO - brief overview of key APIs
 -->
-*This section still needs to be written. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
+*This section still needs to be written. Feel free to [fork]({{site.path.guide}}/dev/code) the docs and lend a hand.*
 
 - ``ManagementContext`` (Java management API)
 - ``EntityLocal`` (used by policies)
@@ -353,7 +353,7 @@ TODO , etc., example
 
 ### SubscriptionManager
 
-*This section is not complete. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
+*This section is not complete. Feel free to [fork]({{site.path.guide}}/dev/code) the docs and lend a hand.*
 
 *See the* ``SubscriptionManager`` *class.*
 <!---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2ac0c6d6/docs/guide/use/guide/management/toc.json
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/management/toc.json b/docs/guide/use/guide/management/toc.json
index f470c2d..e30d160 100644
--- a/docs/guide/use/guide/management/toc.json
+++ b/docs/guide/use/guide/management/toc.json
@@ -1,18 +1,18 @@
 [{ "title": "Introduction",
-  "file":  "{{ site.url }}/use/guide/management/index.html#introduction" }, 
+  "file":  "{{ site.path.guide }}/use/guide/management/index.html#introduction" }, 
 { "title": "Startup Configuration",
-  "file":  "{{ site.url }}/use/guide/management/index.html#startup-config" },
+  "file":  "{{ site.path.guide }}/use/guide/management/index.html#startup-config" },
 { "title": "Command Line Interface",
-  "file":  "{{ site.url }}/use/guide/management/index.html#cli" },
+  "file":  "{{ site.path.guide }}/use/guide/management/index.html#cli" },
 { "title": "Management Web Console",
-  "file":  "{{ site.url }}/use/guide/management/index.html#console" }, 
+  "file":  "{{ site.path.guide }}/use/guide/management/index.html#console" }, 
 { "title": "Observation APIs",
-  "file":  "{{ site.url }}/use/guide/management/index.html#observation-other" }, 
+  "file":  "{{ site.path.guide }}/use/guide/management/index.html#observation-other" }, 
 { "title": "Distributed Management",
-  "file":  "{{ site.url }}/use/guide/management/index.html#distributed-management" }, 
+  "file":  "{{ site.path.guide }}/use/guide/management/index.html#distributed-management" }, 
 { "title": "Resilience",
-  "file":  "{{ site.url }}/use/guide/management/index.html#resilience" }, 
+  "file":  "{{ site.path.guide }}/use/guide/management/index.html#resilience" }, 
 { "title": "Key APIs",
-  "file":  "{{ site.url }}/use/guide/management/index.html#key-apis" }, 
+  "file":  "{{ site.path.guide }}/use/guide/management/index.html#key-apis" }, 
 { "title": "Sensors and Effectors",
-  "file":  "{{ site.url }}/use/guide/management/index.html#sensors-and-effectors" }]
\ No newline at end of file
+  "file":  "{{ site.path.guide }}/use/guide/management/index.html#sensors-and-effectors" }]


[45/50] [abbrv] incubator-brooklyn git commit: support quick javadoc, and block install on error cases, including quick javadoc and another jekyll running

Posted by he...@apache.org.
support quick javadoc, and block install on error cases, including quick javadoc and another jekyll running


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

Branch: refs/heads/master
Commit: fe4de8a15cadd3e032a4a4dc0cc4a475727dd0d7
Parents: a2d9160
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 12:55:37 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 12:55:37 2014 +0000

----------------------------------------------------------------------
 docs/_build/build.sh        | 32 +++++++++++++++++++++++++++++++-
 docs/_build/make-javadoc.sh |  3 ++-
 2 files changed, 33 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/fe4de8a1/docs/_build/build.sh
----------------------------------------------------------------------
diff --git a/docs/_build/build.sh b/docs/_build/build.sh
index 129f0f4..8147c70 100755
--- a/docs/_build/build.sh
+++ b/docs/_build/build.sh
@@ -26,6 +26,7 @@ function help() {
   echo ""
   echo "and supported ARGS are:"
   echo "* --skip-javadoc : to skip javadoc build"
+  echo "* --quick-javadoc : to do a quick javadoc build (for testing)"
   echo "* --serve : serve files from _site after building (for testing)"
   echo "* --install : install files from _site to the appropriate place in "'$'"BROOKLYN_SITE_DIR (or ../../incubator-brooklyn-site-public)"
   echo ""
@@ -117,6 +118,10 @@ function parse_arguments() {
       SKIP_JAVADOC=true
       shift
       ;;
+    "--quick-javadoc")
+      QUICK_JAVADOC=true
+      shift
+      ;;
     "--serve")
       SERVE_AFTERWARDS=true
       shift
@@ -156,9 +161,18 @@ function make_javadoc() {
   fi
   pushd _build > /dev/null
   rm -rf target/apidocs
-  ./make-javadoc.sh || { echo ERROR: failed javadoc build ; exit 1 ; }
+  if [ "$QUICK_JAVADOC" == "true" ]; then
+    ./quick-make-few-javadoc.sh || { echo ERROR: failed javadoc build ; exit 1 ; }
+  else
+    ./make-javadoc.sh || { echo ERROR: failed javadoc build ; exit 1 ; }
+  fi
   popd > /dev/null
   if [ ! -z "$JAVADOC_TARGET" ]; then
+    if [ ! -d "$JAVADOC_TARGET" ]; then
+      echo "ERROR: javadoc target directory $JAVADOC_TARGET gone; is there a jekyll already watching?"
+      return 1
+    fi
+    echo mv _build/target/apidocs/* $JAVADOC_TARGET
     mv _build/target/apidocs/* $JAVADOC_TARGET
   fi
 }
@@ -167,6 +181,22 @@ function make_install() {
   if [ "$INSTALL_AFTERWARDS" != "true" ]; then
     return
   fi
+  if [ -d _site/website ]; then
+    echo "ERROR: _site/website dir exists, not installing as files may be corrupted; is there a jekyll already watching?"
+    return 1
+  fi
+  if [ -d _site/guide ]; then
+    echo "ERROR: _site/guide dir exists, not installing as files may be corrupted; is there a jekyll already watching?"
+    return 1
+  fi
+  if [ ! -z ${QUICK_JAVADOC+SET} ]; then echo "ERROR: --install not permitted when doing quick javadoc" ; return 1 ; fi
+  if [ ! -z ${JAVADOC_TARGET+SET} ]; then
+    if [ ! -z ${SKIP_JAVADOC+SET} ]; then
+      echo "ERROR: --install not permitted when skipping javadoc for this target which wants to install javadoc"
+      return 1
+    fi
+  fi
+
   SITE_DIR=${BROOKLYN_SITE_DIR-../../incubator-brooklyn-site-public}
   ls $SITE_DIR/style/img/apache-brooklyn-logo-244px-wide.png > /dev/null || { echo "ERROR: cannot find incubator-brooklyn-site-public; set BROOKLYN_SITE_DIR" ; return 1 ; }
   if [ -z ${INSTALL_RSYNC_OPTIONS+SET} ]; then echo "ERROR: --install not supported for this build" ; return 1 ; fi

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/fe4de8a1/docs/_build/make-javadoc.sh
----------------------------------------------------------------------
diff --git a/docs/_build/make-javadoc.sh b/docs/_build/make-javadoc.sh
index d0a5bbe..6e9dd27 100755
--- a/docs/_build/make-javadoc.sh
+++ b/docs/_build/make-javadoc.sh
@@ -29,7 +29,8 @@ fi
 rm -rf target/apidocs/
 
 export DATESTAMP=`date "+%Y-%m-%d"`
-echo "building javadoc from $SOURCE_PATH at $DATESTAMP"
+echo "building javadoc at $DATESTAMP from:
+$SOURCE_PATHS"
 
 
 $GROOVY_CMD -q << END


[21/50] [abbrv] incubator-brooklyn git commit: add website files, and update the build.sh script appropriately

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/libs/js/bloodhound.js
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/libs/js/bloodhound.js b/docs/website/learnmore/catalog/libs/js/bloodhound.js
new file mode 100644
index 0000000..96a4c43
--- /dev/null
+++ b/docs/website/learnmore/catalog/libs/js/bloodhound.js
@@ -0,0 +1,727 @@
+/*!
+ * typeahead.js 0.10.5
+ * https://github.com/twitter/typeahead.js
+ * Copyright 2013-2014 Twitter, Inc. and other contributors; Licensed MIT
+ */
+
+(function($) {
+    var _ = function() {
+        "use strict";
+        return {
+            isMsie: function() {
+                return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false;
+            },
+            isBlankString: function(str) {
+                return !str || /^\s*$/.test(str);
+            },
+            escapeRegExChars: function(str) {
+                return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
+            },
+            isString: function(obj) {
+                return typeof obj === "string";
+            },
+            isNumber: function(obj) {
+                return typeof obj === "number";
+            },
+            isArray: $.isArray,
+            isFunction: $.isFunction,
+            isObject: $.isPlainObject,
+            isUndefined: function(obj) {
+                return typeof obj === "undefined";
+            },
+            toStr: function toStr(s) {
+                return _.isUndefined(s) || s === null ? "" : s + "";
+            },
+            bind: $.proxy,
+            each: function(collection, cb) {
+                $.each(collection, reverseArgs);
+                function reverseArgs(index, value) {
+                    return cb(value, index);
+                }
+            },
+            map: $.map,
+            filter: $.grep,
+            every: function(obj, test) {
+                var result = true;
+                if (!obj) {
+                    return result;
+                }
+                $.each(obj, function(key, val) {
+                    if (!(result = test.call(null, val, key, obj))) {
+                        return false;
+                    }
+                });
+                return !!result;
+            },
+            some: function(obj, test) {
+                var result = false;
+                if (!obj) {
+                    return result;
+                }
+                $.each(obj, function(key, val) {
+                    if (result = test.call(null, val, key, obj)) {
+                        return false;
+                    }
+                });
+                return !!result;
+            },
+            mixin: $.extend,
+            getUniqueId: function() {
+                var counter = 0;
+                return function() {
+                    return counter++;
+                };
+            }(),
+            templatify: function templatify(obj) {
+                return $.isFunction(obj) ? obj : template;
+                function template() {
+                    return String(obj);
+                }
+            },
+            defer: function(fn) {
+                setTimeout(fn, 0);
+            },
+            debounce: function(func, wait, immediate) {
+                var timeout, result;
+                return function() {
+                    var context = this, args = arguments, later, callNow;
+                    later = function() {
+                        timeout = null;
+                        if (!immediate) {
+                            result = func.apply(context, args);
+                        }
+                    };
+                    callNow = immediate && !timeout;
+                    clearTimeout(timeout);
+                    timeout = setTimeout(later, wait);
+                    if (callNow) {
+                        result = func.apply(context, args);
+                    }
+                    return result;
+                };
+            },
+            throttle: function(func, wait) {
+                var context, args, timeout, result, previous, later;
+                previous = 0;
+                later = function() {
+                    previous = new Date();
+                    timeout = null;
+                    result = func.apply(context, args);
+                };
+                return function() {
+                    var now = new Date(), remaining = wait - (now - previous);
+                    context = this;
+                    args = arguments;
+                    if (remaining <= 0) {
+                        clearTimeout(timeout);
+                        timeout = null;
+                        previous = now;
+                        result = func.apply(context, args);
+                    } else if (!timeout) {
+                        timeout = setTimeout(later, remaining);
+                    }
+                    return result;
+                };
+            },
+            noop: function() {}
+        };
+    }();
+    var VERSION = "0.10.5";
+    var tokenizers = function() {
+        "use strict";
+        return {
+            nonword: nonword,
+            whitespace: whitespace,
+            obj: {
+                nonword: getObjTokenizer(nonword),
+                whitespace: getObjTokenizer(whitespace)
+            }
+        };
+        function whitespace(str) {
+            str = _.toStr(str);
+            return str ? str.split(/\s+/) : [];
+        }
+        function nonword(str) {
+            str = _.toStr(str);
+            return str ? str.split(/\W+/) : [];
+        }
+        function getObjTokenizer(tokenizer) {
+            return function setKey() {
+                var args = [].slice.call(arguments, 0);
+                return function tokenize(o) {
+                    var tokens = [];
+                    _.each(args, function(k) {
+                        tokens = tokens.concat(tokenizer(_.toStr(o[k])));
+                    });
+                    return tokens;
+                };
+            };
+        }
+    }();
+    var LruCache = function() {
+        "use strict";
+        function LruCache(maxSize) {
+            this.maxSize = _.isNumber(maxSize) ? maxSize : 100;
+            this.reset();
+            if (this.maxSize <= 0) {
+                this.set = this.get = $.noop;
+            }
+        }
+        _.mixin(LruCache.prototype, {
+            set: function set(key, val) {
+                var tailItem = this.list.tail, node;
+                if (this.size >= this.maxSize) {
+                    this.list.remove(tailItem);
+                    delete this.hash[tailItem.key];
+                }
+                if (node = this.hash[key]) {
+                    node.val = val;
+                    this.list.moveToFront(node);
+                } else {
+                    node = new Node(key, val);
+                    this.list.add(node);
+                    this.hash[key] = node;
+                    this.size++;
+                }
+            },
+            get: function get(key) {
+                var node = this.hash[key];
+                if (node) {
+                    this.list.moveToFront(node);
+                    return node.val;
+                }
+            },
+            reset: function reset() {
+                this.size = 0;
+                this.hash = {};
+                this.list = new List();
+            }
+        });
+        function List() {
+            this.head = this.tail = null;
+        }
+        _.mixin(List.prototype, {
+            add: function add(node) {
+                if (this.head) {
+                    node.next = this.head;
+                    this.head.prev = node;
+                }
+                this.head = node;
+                this.tail = this.tail || node;
+            },
+            remove: function remove(node) {
+                node.prev ? node.prev.next = node.next : this.head = node.next;
+                node.next ? node.next.prev = node.prev : this.tail = node.prev;
+            },
+            moveToFront: function(node) {
+                this.remove(node);
+                this.add(node);
+            }
+        });
+        function Node(key, val) {
+            this.key = key;
+            this.val = val;
+            this.prev = this.next = null;
+        }
+        return LruCache;
+    }();
+    var PersistentStorage = function() {
+        "use strict";
+        var ls, methods;
+        try {
+            ls = window.localStorage;
+            ls.setItem("~~~", "!");
+            ls.removeItem("~~~");
+        } catch (err) {
+            ls = null;
+        }
+        function PersistentStorage(namespace) {
+            this.prefix = [ "__", namespace, "__" ].join("");
+            this.ttlKey = "__ttl__";
+            this.keyMatcher = new RegExp("^" + _.escapeRegExChars(this.prefix));
+        }
+        if (ls && window.JSON) {
+            methods = {
+                _prefix: function(key) {
+                    return this.prefix + key;
+                },
+                _ttlKey: function(key) {
+                    return this._prefix(key) + this.ttlKey;
+                },
+                get: function(key) {
+                    if (this.isExpired(key)) {
+                        this.remove(key);
+                    }
+                    return decode(ls.getItem(this._prefix(key)));
+                },
+                set: function(key, val, ttl) {
+                    if (_.isNumber(ttl)) {
+                        ls.setItem(this._ttlKey(key), encode(now() + ttl));
+                    } else {
+                        ls.removeItem(this._ttlKey(key));
+                    }
+                    return ls.setItem(this._prefix(key), encode(val));
+                },
+                remove: function(key) {
+                    ls.removeItem(this._ttlKey(key));
+                    ls.removeItem(this._prefix(key));
+                    return this;
+                },
+                clear: function() {
+                    var i, key, keys = [], len = ls.length;
+                    for (i = 0; i < len; i++) {
+                        if ((key = ls.key(i)).match(this.keyMatcher)) {
+                            keys.push(key.replace(this.keyMatcher, ""));
+                        }
+                    }
+                    for (i = keys.length; i--; ) {
+                        this.remove(keys[i]);
+                    }
+                    return this;
+                },
+                isExpired: function(key) {
+                    var ttl = decode(ls.getItem(this._ttlKey(key)));
+                    return _.isNumber(ttl) && now() > ttl ? true : false;
+                }
+            };
+        } else {
+            methods = {
+                get: _.noop,
+                set: _.noop,
+                remove: _.noop,
+                clear: _.noop,
+                isExpired: _.noop
+            };
+        }
+        _.mixin(PersistentStorage.prototype, methods);
+        return PersistentStorage;
+        function now() {
+            return new Date().getTime();
+        }
+        function encode(val) {
+            return JSON.stringify(_.isUndefined(val) ? null : val);
+        }
+        function decode(val) {
+            return JSON.parse(val);
+        }
+    }();
+    var Transport = function() {
+        "use strict";
+        var pendingRequestsCount = 0, pendingRequests = {}, maxPendingRequests = 6, sharedCache = new LruCache(10);
+        function Transport(o) {
+            o = o || {};
+            this.cancelled = false;
+            this.lastUrl = null;
+            this._send = o.transport ? callbackToDeferred(o.transport) : $.ajax;
+            this._get = o.rateLimiter ? o.rateLimiter(this._get) : this._get;
+            this._cache = o.cache === false ? new LruCache(0) : sharedCache;
+        }
+        Transport.setMaxPendingRequests = function setMaxPendingRequests(num) {
+            maxPendingRequests = num;
+        };
+        Transport.resetCache = function resetCache() {
+            sharedCache.reset();
+        };
+        _.mixin(Transport.prototype, {
+            _get: function(url, o, cb) {
+                var that = this, jqXhr;
+                if (this.cancelled || url !== this.lastUrl) {
+                    return;
+                }
+                if (jqXhr = pendingRequests[url]) {
+                    jqXhr.done(done).fail(fail);
+                } else if (pendingRequestsCount < maxPendingRequests) {
+                    pendingRequestsCount++;
+                    pendingRequests[url] = this._send(url, o).done(done).fail(fail).always(always);
+                } else {
+                    this.onDeckRequestArgs = [].slice.call(arguments, 0);
+                }
+                function done(resp) {
+                    cb && cb(null, resp);
+                    that._cache.set(url, resp);
+                }
+                function fail() {
+                    cb && cb(true);
+                }
+                function always() {
+                    pendingRequestsCount--;
+                    delete pendingRequests[url];
+                    if (that.onDeckRequestArgs) {
+                        that._get.apply(that, that.onDeckRequestArgs);
+                        that.onDeckRequestArgs = null;
+                    }
+                }
+            },
+            get: function(url, o, cb) {
+                var resp;
+                if (_.isFunction(o)) {
+                    cb = o;
+                    o = {};
+                }
+                this.cancelled = false;
+                this.lastUrl = url;
+                if (resp = this._cache.get(url)) {
+                    _.defer(function() {
+                        cb && cb(null, resp);
+                    });
+                } else {
+                    this._get(url, o, cb);
+                }
+                return !!resp;
+            },
+            cancel: function() {
+                this.cancelled = true;
+            }
+        });
+        return Transport;
+        function callbackToDeferred(fn) {
+            return function customSendWrapper(url, o) {
+                var deferred = $.Deferred();
+                fn(url, o, onSuccess, onError);
+                return deferred;
+                function onSuccess(resp) {
+                    _.defer(function() {
+                        deferred.resolve(resp);
+                    });
+                }
+                function onError(err) {
+                    _.defer(function() {
+                        deferred.reject(err);
+                    });
+                }
+            };
+        }
+    }();
+    var SearchIndex = function() {
+        "use strict";
+        function SearchIndex(o) {
+            o = o || {};
+            if (!o.datumTokenizer || !o.queryTokenizer) {
+                $.error("datumTokenizer and queryTokenizer are both required");
+            }
+            this.datumTokenizer = o.datumTokenizer;
+            this.queryTokenizer = o.queryTokenizer;
+            this.reset();
+        }
+        _.mixin(SearchIndex.prototype, {
+            bootstrap: function bootstrap(o) {
+                this.datums = o.datums;
+                this.trie = o.trie;
+            },
+            add: function(data) {
+                var that = this;
+                data = _.isArray(data) ? data : [ data ];
+                _.each(data, function(datum) {
+                    var id, tokens;
+                    id = that.datums.push(datum) - 1;
+                    tokens = normalizeTokens(that.datumTokenizer(datum));
+                    _.each(tokens, function(token) {
+                        var node, chars, ch;
+                        node = that.trie;
+                        chars = token.split("");
+                        while (ch = chars.shift()) {
+                            node = node.children[ch] || (node.children[ch] = newNode());
+                            node.ids.push(id);
+                        }
+                    });
+                });
+            },
+            get: function get(query) {
+                var that = this, tokens, matches;
+                tokens = normalizeTokens(this.queryTokenizer(query));
+                _.each(tokens, function(token) {
+                    var node, chars, ch, ids;
+                    if (matches && matches.length === 0) {
+                        return false;
+                    }
+                    node = that.trie;
+                    chars = token.split("");
+                    while (node && (ch = chars.shift())) {
+                        node = node.children[ch];
+                    }
+                    if (node && chars.length === 0) {
+                        ids = node.ids.slice(0);
+                        matches = matches ? getIntersection(matches, ids) : ids;
+                    } else {
+                        matches = [];
+                        return false;
+                    }
+                });
+                return matches ? _.map(unique(matches), function(id) {
+                    return that.datums[id];
+                }) : [];
+            },
+            reset: function reset() {
+                this.datums = [];
+                this.trie = newNode();
+            },
+            serialize: function serialize() {
+                return {
+                    datums: this.datums,
+                    trie: this.trie
+                };
+            }
+        });
+        return SearchIndex;
+        function normalizeTokens(tokens) {
+            tokens = _.filter(tokens, function(token) {
+                return !!token;
+            });
+            tokens = _.map(tokens, function(token) {
+                return token.toLowerCase();
+            });
+            return tokens;
+        }
+        function newNode() {
+            return {
+                ids: [],
+                children: {}
+            };
+        }
+        function unique(array) {
+            var seen = {}, uniques = [];
+            for (var i = 0, len = array.length; i < len; i++) {
+                if (!seen[array[i]]) {
+                    seen[array[i]] = true;
+                    uniques.push(array[i]);
+                }
+            }
+            return uniques;
+        }
+        function getIntersection(arrayA, arrayB) {
+            var ai = 0, bi = 0, intersection = [];
+            arrayA = arrayA.sort(compare);
+            arrayB = arrayB.sort(compare);
+            var lenArrayA = arrayA.length, lenArrayB = arrayB.length;
+            while (ai < lenArrayA && bi < lenArrayB) {
+                if (arrayA[ai] < arrayB[bi]) {
+                    ai++;
+                } else if (arrayA[ai] > arrayB[bi]) {
+                    bi++;
+                } else {
+                    intersection.push(arrayA[ai]);
+                    ai++;
+                    bi++;
+                }
+            }
+            return intersection;
+            function compare(a, b) {
+                return a - b;
+            }
+        }
+    }();
+    var oParser = function() {
+        "use strict";
+        return {
+            local: getLocal,
+            prefetch: getPrefetch,
+            remote: getRemote
+        };
+        function getLocal(o) {
+            return o.local || null;
+        }
+        function getPrefetch(o) {
+            var prefetch, defaults;
+            defaults = {
+                url: null,
+                thumbprint: "",
+                ttl: 24 * 60 * 60 * 1e3,
+                filter: null,
+                ajax: {}
+            };
+            if (prefetch = o.prefetch || null) {
+                prefetch = _.isString(prefetch) ? {
+                    url: prefetch
+                } : prefetch;
+                prefetch = _.mixin(defaults, prefetch);
+                prefetch.thumbprint = VERSION + prefetch.thumbprint;
+                prefetch.ajax.type = prefetch.ajax.type || "GET";
+                prefetch.ajax.dataType = prefetch.ajax.dataType || "json";
+                !prefetch.url && $.error("prefetch requires url to be set");
+            }
+            return prefetch;
+        }
+        function getRemote(o) {
+            var remote, defaults;
+            defaults = {
+                url: null,
+                cache: true,
+                wildcard: "%QUERY",
+                replace: null,
+                rateLimitBy: "debounce",
+                rateLimitWait: 300,
+                send: null,
+                filter: null,
+                ajax: {}
+            };
+            if (remote = o.remote || null) {
+                remote = _.isString(remote) ? {
+                    url: remote
+                } : remote;
+                remote = _.mixin(defaults, remote);
+                remote.rateLimiter = /^throttle$/i.test(remote.rateLimitBy) ? byThrottle(remote.rateLimitWait) : byDebounce(remote.rateLimitWait);
+                remote.ajax.type = remote.ajax.type || "GET";
+                remote.ajax.dataType = remote.ajax.dataType || "json";
+                delete remote.rateLimitBy;
+                delete remote.rateLimitWait;
+                !remote.url && $.error("remote requires url to be set");
+            }
+            return remote;
+            function byDebounce(wait) {
+                return function(fn) {
+                    return _.debounce(fn, wait);
+                };
+            }
+            function byThrottle(wait) {
+                return function(fn) {
+                    return _.throttle(fn, wait);
+                };
+            }
+        }
+    }();
+    (function(root) {
+        "use strict";
+        var old, keys;
+        old = root.Bloodhound;
+        keys = {
+            data: "data",
+            protocol: "protocol",
+            thumbprint: "thumbprint"
+        };
+        root.Bloodhound = Bloodhound;
+        function Bloodhound(o) {
+            if (!o || !o.local && !o.prefetch && !o.remote) {
+                $.error("one of local, prefetch, or remote is required");
+            }
+            this.limit = o.limit || 5;
+            this.sorter = getSorter(o.sorter);
+            this.dupDetector = o.dupDetector || ignoreDuplicates;
+            this.local = oParser.local(o);
+            this.prefetch = oParser.prefetch(o);
+            this.remote = oParser.remote(o);
+            this.cacheKey = this.prefetch ? this.prefetch.cacheKey || this.prefetch.url : null;
+            this.index = new SearchIndex({
+                datumTokenizer: o.datumTokenizer,
+                queryTokenizer: o.queryTokenizer
+            });
+            this.storage = this.cacheKey ? new PersistentStorage(this.cacheKey) : null;
+        }
+        Bloodhound.noConflict = function noConflict() {
+            root.Bloodhound = old;
+            return Bloodhound;
+        };
+        Bloodhound.tokenizers = tokenizers;
+        _.mixin(Bloodhound.prototype, {
+            _loadPrefetch: function loadPrefetch(o) {
+                var that = this, serialized, deferred;
+                if (serialized = this._readFromStorage(o.thumbprint)) {
+                    this.index.bootstrap(serialized);
+                    deferred = $.Deferred().resolve();
+                } else {
+                    deferred = $.ajax(o.url, o.ajax).done(handlePrefetchResponse);
+                }
+                return deferred;
+                function handlePrefetchResponse(resp) {
+                    that.clear();
+                    that.add(o.filter ? o.filter(resp) : resp);
+                    that._saveToStorage(that.index.serialize(), o.thumbprint, o.ttl);
+                }
+            },
+            _getFromRemote: function getFromRemote(query, cb) {
+                var that = this, url, uriEncodedQuery;
+                if (!this.transport) {
+                    return;
+                }
+                query = query || "";
+                uriEncodedQuery = encodeURIComponent(query);
+                url = this.remote.replace ? this.remote.replace(this.remote.url, query) : this.remote.url.replace(this.remote.wildcard, uriEncodedQuery);
+                return this.transport.get(url, this.remote.ajax, handleRemoteResponse);
+                function handleRemoteResponse(err, resp) {
+                    err ? cb([]) : cb(that.remote.filter ? that.remote.filter(resp) : resp);
+                }
+            },
+            _cancelLastRemoteRequest: function cancelLastRemoteRequest() {
+                this.transport && this.transport.cancel();
+            },
+            _saveToStorage: function saveToStorage(data, thumbprint, ttl) {
+                if (this.storage) {
+                    this.storage.set(keys.data, data, ttl);
+                    this.storage.set(keys.protocol, location.protocol, ttl);
+                    this.storage.set(keys.thumbprint, thumbprint, ttl);
+                }
+            },
+            _readFromStorage: function readFromStorage(thumbprint) {
+                var stored = {}, isExpired;
+                if (this.storage) {
+                    stored.data = this.storage.get(keys.data);
+                    stored.protocol = this.storage.get(keys.protocol);
+                    stored.thumbprint = this.storage.get(keys.thumbprint);
+                }
+                isExpired = stored.thumbprint !== thumbprint || stored.protocol !== location.protocol;
+                return stored.data && !isExpired ? stored.data : null;
+            },
+            _initialize: function initialize() {
+                var that = this, local = this.local, deferred;
+                deferred = this.prefetch ? this._loadPrefetch(this.prefetch) : $.Deferred().resolve();
+                local && deferred.done(addLocalToIndex);
+                this.transport = this.remote ? new Transport(this.remote) : null;
+                return this.initPromise = deferred.promise();
+                function addLocalToIndex() {
+                    that.add(_.isFunction(local) ? local() : local);
+                }
+            },
+            initialize: function initialize(force) {
+                return !this.initPromise || force ? this._initialize() : this.initPromise;
+            },
+            add: function add(data) {
+                this.index.add(data);
+            },
+            get: function get(query, cb) {
+                var that = this, matches = [], cacheHit = false;
+                matches = this.index.get(query);
+                matches = this.sorter(matches).slice(0, this.limit);
+                matches.length < this.limit ? cacheHit = this._getFromRemote(query, returnRemoteMatches) : this._cancelLastRemoteRequest();
+                if (!cacheHit) {
+                    (matches.length > 0 || !this.transport) && cb && cb(matches);
+                }
+                function returnRemoteMatches(remoteMatches) {
+                    var matchesWithBackfill = matches.slice(0);
+                    _.each(remoteMatches, function(remoteMatch) {
+                        var isDuplicate;
+                        isDuplicate = _.some(matchesWithBackfill, function(match) {
+                            return that.dupDetector(remoteMatch, match);
+                        });
+                        !isDuplicate && matchesWithBackfill.push(remoteMatch);
+                        return matchesWithBackfill.length < that.limit;
+                    });
+                    cb && cb(that.sorter(matchesWithBackfill));
+                }
+            },
+            clear: function clear() {
+                this.index.reset();
+            },
+            clearPrefetchCache: function clearPrefetchCache() {
+                this.storage && this.storage.clear();
+            },
+            clearRemoteCache: function clearRemoteCache() {
+                this.transport && Transport.resetCache();
+            },
+            ttAdapter: function ttAdapter() {
+                return _.bind(this.get, this);
+            }
+        });
+        return Bloodhound;
+        function getSorter(sortFn) {
+            return _.isFunction(sortFn) ? sort : noSort;
+            function sort(array) {
+                return array.sort(sortFn);
+            }
+            function noSort(array) {
+                return array;
+            }
+        }
+        function ignoreDuplicates() {
+            return false;
+        }
+    })(this);
+})(window.jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/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
new file mode 100644
index 0000000..2e27b43
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.entity.pool.ServerPoolLocation.html
@@ -0,0 +1,62 @@
+<!--
+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/b86cbf04/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
new file mode 100644
index 0000000..857a635
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.AddressableLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.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>brooklyn.location.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 == "brooklyn.location.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/b86cbf04/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
new file mode 100644
index 0000000..dbd9455
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.MachineLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.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>brooklyn.location.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 == "brooklyn.location.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/b86cbf04/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
new file mode 100644
index 0000000..fdf531b
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.MachineManagementMixins$RichMachineProvisioningLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.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>brooklyn.location.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 == "brooklyn.location.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/b86cbf04/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
new file mode 100644
index 0000000..d63dc8b
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.MachineProvisioningLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.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>brooklyn.location.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 == "brooklyn.location.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/b86cbf04/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
new file mode 100644
index 0000000..6861236
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.AbstractLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.location.basic.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>brooklyn.location.basic.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 == "brooklyn.location.basic.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/b86cbf04/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
new file mode 100644
index 0000000..790d261
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.AggregatingMachineProvisioningLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.location.basic.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>brooklyn.location.basic.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 == "brooklyn.location.basic.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/b86cbf04/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
new file mode 100644
index 0000000..989c8ee
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.FixedListMachineProvisioningLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.location.basic.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>brooklyn.location.basic.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 == "brooklyn.location.basic.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/b86cbf04/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
new file mode 100644
index 0000000..2a26d53
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocalhostMachineProvisioningLocation$LocalhostMachine.html
@@ -0,0 +1,62 @@
+<!--
+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.location.basic.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>brooklyn.location.basic.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 == "brooklyn.location.basic.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/b86cbf04/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
new file mode 100644
index 0000000..47af495
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocalhostMachineProvisioningLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.location.basic.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>brooklyn.location.basic.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 == "brooklyn.location.basic.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/b86cbf04/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
new file mode 100644
index 0000000..009a41d
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.LocationInternal.html
@@ -0,0 +1,62 @@
+<!--
+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.location.basic.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>brooklyn.location.basic.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 == "brooklyn.location.basic.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/b86cbf04/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
new file mode 100644
index 0000000..cefe218
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.MultiLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.location.basic.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>brooklyn.location.basic.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 == "brooklyn.location.basic.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/b86cbf04/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
new file mode 100644
index 0000000..5fe7a58
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SimulatedLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.location.basic.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>brooklyn.location.basic.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 == "brooklyn.location.basic.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/b86cbf04/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
new file mode 100644
index 0000000..29abdf8
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SingleMachineProvisioningLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.location.basic.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>brooklyn.location.basic.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 == "brooklyn.location.basic.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/b86cbf04/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
new file mode 100644
index 0000000..3ee27ab
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.basic.SshMachineLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.location.basic.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>brooklyn.location.basic.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 == "brooklyn.location.basic.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/b86cbf04/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
new file mode 100644
index 0000000..6a41d3f
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.cloud.AbstractCloudMachineProvisioningLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.location.cloud.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>brooklyn.location.cloud.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 == "brooklyn.location.cloud.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/b86cbf04/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
new file mode 100644
index 0000000..7240131
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.AbstractJcloudsSubnetSshMachineLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.location.jclouds.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>brooklyn.location.jclouds.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 == "brooklyn.location.jclouds.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/b86cbf04/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
new file mode 100644
index 0000000..de80bcb
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.JcloudsLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.location.jclouds.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>brooklyn.location.jclouds.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 == "brooklyn.location.jclouds.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/b86cbf04/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
new file mode 100644
index 0000000..6ae6cc0
--- /dev/null
+++ b/docs/website/learnmore/catalog/locations/brooklyn.location.jclouds.JcloudsSshMachineLocation.html
@@ -0,0 +1,62 @@
+<!--
+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.location.jclouds.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>brooklyn.location.jclouds.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 == "brooklyn.location.jclouds.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>


[50/50] [abbrv] incubator-brooklyn git commit: This closes #398

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


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

Branch: refs/heads/master
Commit: d4cb22d10aa1ff660a950f64b917456a32b967ce
Parents: 3cb52e5 65ae7dc
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 17:22:33 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 17:22:33 2014 +0000

----------------------------------------------------------------------
 docs/Gemfile                                    |    27 +-
 docs/Gemfile.lock                               |    91 +-
 docs/README.md                                  |   260 +
 docs/_build/build.sh                            |   235 +
 docs/_build/config-exclude-all-but-guide.yml    |     1 +
 docs/_build/config-exclude-guide.yml            |     1 +
 docs/_build/config-exclude-root-index.yml       |     1 +
 docs/_build/config-guide-latest.yml             |     3 +
 docs/_build/config-guide-root.yml               |     2 +
 docs/_build/config-guide-version.yml            |     6 +
 docs/_build/config-production.yml               |     5 +
 docs/_build/config-style-latest.yml             |     2 +
 docs/_build/config-subpath-brooklyn.yml         |     9 +
 docs/_build/config-website-root.yml             |     3 +
 docs/_build/help.txt                            |    22 +
 docs/_build/make-javadoc.sh                     |    44 +
 docs/_build/quick-make-few-javadoc.sh           |     6 +
 docs/_build/serve-public-site.sh                |     1 +
 docs/_build/serve-site.sh                       |     1 +
 docs/_build/tests/jsonball/test_jsonball.md     |    18 +
 .../tests/jsonball/test_jsonball_file.json      |     1 +
 .../tests/jsonball/test_jsonball_page.json      |     2 +
 docs/_build/tests/jsonball/toc.json             |     6 +
 docs/_config.yml                                |    28 +-
 docs/_includes/breadcrumbs.html                 |     4 +-
 docs/_includes/fields.md                        |    52 +-
 docs/_includes/sidebar.html                     |     2 +-
 docs/_includes/topbar.html                      |     6 +-
 docs/_javadoc/make-javadoc.sh                   |    47 -
 docs/_javadoc/quick-make-few-javadoc.sh         |    39 -
 docs/_layouts/guide-normal.html                 |   247 +
 docs/_layouts/page.html                         |   247 -
 docs/_layouts/website-base.html                 |    76 +
 docs/_layouts/website-landing.html              |    30 +
 docs/_layouts/website-normal.html               |    41 +
 docs/_plugins/brooklyn_metadata.rb              |    60 +
 docs/_plugins/dependency_url.rb                 |    31 +
 docs/_plugins/read.rb                           |    56 +-
 docs/_plugins/site_structure.rb                 |    92 +
 docs/_scripts/build.sh                          |    21 -
 docs/_scripts/help.txt                          |    34 -
 docs/_scripts/jekyll-debug.sh                   |     6 -
 docs/_scripts/preview                           |    11 -
 docs/dev/build/debugging-remote-brooklyn.md     |   140 -
 docs/dev/build/developers-catalog.xml           |    87 -
 docs/dev/build/eclipse.include.md               |    15 -
 docs/dev/build/ide.md                           |   123 -
 docs/dev/build/index.md                         |   184 -
 docs/dev/build/tests.md                         |    26 -
 docs/dev/build/toc.json                         |     8 -
 docs/dev/code/entity.md                         |    91 -
 docs/dev/code/index.include.md                  |    99 -
 docs/dev/code/index.md                          |     7 -
 docs/dev/code/policy.md                         |    47 -
 docs/dev/code/toc.json                          |    10 -
 docs/dev/how-to-contrib.md                      |    38 -
 docs/dev/index.md                               |     7 -
 docs/dev/links.md                               |    18 -
 docs/dev/tips/index.md                          |    50 -
 docs/dev/tips/local-artifact-repo.md            |    32 -
 docs/dev/tips/logging.md                        |   144 -
 docs/dev/tips/release.md                        |   286 -
 docs/dev/tips/standards.md                      |    15 -
 docs/dev/tips/toc.json                          |    14 -
 docs/dev/tips/update-docs.md                    |    70 -
 docs/dev/toc.json                               |    26 -
 .../dev/build/debugging-remote-brooklyn.md      |   140 +
 docs/guide/dev/build/developers-catalog.xml     |    87 +
 docs/guide/dev/build/eclipse.include.md         |    15 +
 docs/guide/dev/build/ide.md                     |   123 +
 docs/guide/dev/build/index.md                   |   184 +
 docs/guide/dev/build/tests.md                   |    26 +
 docs/guide/dev/build/toc.json                   |     8 +
 docs/guide/dev/code/entity.md                   |    91 +
 docs/guide/dev/code/index.include.md            |    97 +
 docs/guide/dev/code/index.md                    |     7 +
 docs/guide/dev/code/policy.md                   |    47 +
 docs/guide/dev/code/toc.json                    |    10 +
 docs/guide/dev/how-to-contrib.md                |    38 +
 docs/guide/dev/index.md                         |     7 +
 docs/guide/dev/links.md                         |    22 +
 docs/guide/dev/tips/index.md                    |    50 +
 docs/guide/dev/tips/local-artifact-repo.md      |    32 +
 docs/guide/dev/tips/logging.md                  |   144 +
 docs/guide/dev/tips/release.md                  |   288 +
 docs/guide/dev/tips/standards.md                |    15 +
 docs/guide/dev/tips/toc.json                    |    14 +
 docs/guide/dev/tips/update-docs.md              |    14 +
 docs/guide/dev/toc.json                         |    26 +
 docs/guide/index.md                             |     8 +
 docs/guide/license/index.md                     |    18 +
 docs/guide/license/license.md                   |   194 +
 docs/guide/license/toc.json                     |     4 +
 docs/guide/meta/brooklyn-gpg-public-key.asc     |    21 +
 docs/guide/meta/contact.include.md              |     9 +
 docs/guide/meta/contact.md                      |     7 +
 docs/guide/meta/irc.md                          |    31 +
 docs/guide/meta/toc.json                        |     8 +
 docs/guide/meta/verify.md                       |    36 +
 docs/guide/meta/versions.md                     |   113 +
 docs/guide/start/docs-summary.include.md        |     7 +
 docs/guide/start/docs-summary.md                |     9 +
 docs/guide/start/download.md                    |   163 +
 docs/guide/start/index.include.md               |    50 +
 docs/guide/start/index.md                       |     8 +
 docs/guide/start/known-issues.md                |    28 +
 docs/guide/start/release-notes.md               |    51 +
 docs/guide/start/toc.json                       |    10 +
 docs/guide/start/video.md                       |     7 +
 docs/guide/start/walkthrough/index.md           |   240 +
 .../walkthrough/wt-deployed-application-700.png |   Bin 0 -> 176494 bytes
 .../walkthrough/wt-deployed-application.png     |   Bin 0 -> 127347 bytes
 .../guide/start/walkthrough/wt-starting-700.png |   Bin 0 -> 303892 bytes
 docs/guide/start/walkthrough/wt-starting.png    |   Bin 0 -> 332710 bytes
 .../walkthrough/wt-tree-jboss-sensors-700.png   |   Bin 0 -> 268853 bytes
 .../start/walkthrough/wt-tree-jboss-sensors.png |   Bin 0 -> 169929 bytes
 docs/guide/toc-menu.json                        |    20 +
 docs/guide/toc.json                             |    21 +
 docs/guide/use/api/index.md                     |    11 +
 docs/guide/use/contact.md                       |     7 +
 docs/guide/use/examples/before-begin.include.md |    56 +
 .../console-geoscaling-details-w700.png         |   Bin 0 -> 167441 bytes
 .../console-geoscaling-details.png              |   Bin 0 -> 176651 bytes
 .../global-web-fabric/console-map-w700.png      |   Bin 0 -> 201060 bytes
 .../examples/global-web-fabric/console-map.png  |   Bin 0 -> 331520 bytes
 .../geopaas-deployed-app-w700.png               |   Bin 0 -> 153738 bytes
 .../global-web-fabric/geopaas-deployed-app.png  |   Bin 0 -> 114615 bytes
 .../use/examples/global-web-fabric/index.md     |   378 +
 docs/guide/use/examples/index.md                |    18 +
 docs/guide/use/examples/messaging/index.md      |   181 +
 .../nosql-cassandra/cassandra.include.md        |   282 +
 .../guide/use/examples/nosql-cassandra/index.md |     7 +
 docs/guide/use/examples/simple-web-cluster.md   |     9 +
 docs/guide/use/examples/toc.json                |    13 +
 docs/guide/use/examples/webcluster.md           |     9 +
 docs/guide/use/examples/webcluster/index.md     |     7 +
 .../examples/webcluster/webcluster.include.md   |   124 +
 .../use/guide/defining-applications/Chef.png    |   Bin 0 -> 36222 bytes
 .../defining-applications/advanced-concepts.md  |   137 +
 .../guide/defining-applications/archetype.md    |    64 +
 .../defining-applications/basic-concepts.md     |    95 +
 ...ooklyn-flow-websequencediagrams.com-w400.png |   Bin 0 -> 58518 bytes
 .../brooklyn-flow-websequencediagrams.com.png   |   Bin 0 -> 106928 bytes
 .../defining-applications/chef-blueprints.md    |   277 +
 .../guide/defining-applications/common-usage.md |   145 +
 .../defining-applications/creating-yaml.md      |   417 +
 .../defining-applications/deploying-yaml.md     |    37 +
 .../example_files/tomcat_multi-location.java    |    15 +
 .../example_files/tomcat_nginx.java             |    17 +
 .../example_files/tomcat_simple.java            |     9 +
 .../appserver-clustered-w-db-concise.yaml       |    15 +
 .../example_yaml/appserver-clustered-w-db.yaml  |    18 +
 .../appserver-configured-in-config.yaml         |     6 +
 .../example_yaml/appserver-configured.yaml      |     5 +
 .../appserver-w-db-other-flavor.yaml            |    17 +
 .../example_yaml/appserver-w-db.yaml            |    15 +
 .../example_yaml/appserver-w-policy.yaml        |    26 +
 .../example_yaml/cluster-vm.yaml                |    12 +
 .../example_yaml/mysql-chef-1.yaml              |    24 +
 .../example_yaml/mysql-chef-2.yaml              |    28 +
 .../simple-appserver-with-location-byon.yaml    |    12 +
 .../simple-appserver-with-location.yaml         |     8 +
 .../example_yaml/simple-appserver.yaml          |     4 +
 .../example_yaml/simple-vm.yaml                 |     8 +
 .../example_yaml/vanilla-bash-netcat-file.yaml  |     6 +
 .../vanilla-bash-netcat-restarter.yaml          |    20 +
 .../vanilla-bash-netcat-w-client.yaml           |    72 +
 .../example_yaml/vanilla-bash-netcat.yaml       |    18 +
 .../use/guide/defining-applications/examples.md |   121 +
 .../defining-applications/service-state.md      |    73 +
 .../use/guide/defining-applications/toc.json    |    19 +
 .../web-console-yaml-700.png                    |   Bin 0 -> 138229 bytes
 .../defining-applications/web-console-yaml.png  |   Bin 0 -> 661136 bytes
 .../defining-applications/yaml-reference.md     |   183 +
 docs/guide/use/guide/entities/index.md          |   133 +
 docs/guide/use/guide/entities/toc.json          |    12 +
 docs/guide/use/guide/extras/index.md            |   160 +
 docs/guide/use/guide/extras/toc.json            |    11 +
 docs/guide/use/guide/guide_toc.json             |    25 +
 docs/guide/use/guide/index.md                   |    33 +
 docs/guide/use/guide/locations/index.md         |   104 +
 docs/guide/use/guide/locations/toc.json         |     1 +
 docs/guide/use/guide/management/index.md        |   407 +
 docs/guide/use/guide/management/toc.json        |    18 +
 .../management/webconsole-dashboard-w400.png    |   Bin 0 -> 137463 bytes
 .../guide/management/webconsole-dashboard.png   |   Bin 0 -> 214723 bytes
 .../guide/management/webconsole-detail-w400.png |   Bin 0 -> 111993 bytes
 .../use/guide/management/webconsole-detail.png  |   Bin 0 -> 165359 bytes
 docs/guide/use/guide/persistence/index.md       |   289 +
 docs/guide/use/guide/persistence/toc.json       |    16 +
 docs/guide/use/guide/policies/index.md          |   129 +
 docs/guide/use/guide/policies/toc.json          |     8 +
 .../use/guide/quickstart/brooklyn.properties    |   324 +
 docs/guide/use/guide/quickstart/catalog.xml     |    23 +
 ...cation-catalog-web-cluster-with-db-large.png |   Bin 0 -> 131618 bytes
 ...talog-web-cluster-with-db-location-large.png |   Bin 0 -> 152721 bytes
 ...ion-catalog-web-cluster-with-db-location.png |   Bin 0 -> 86425 bytes
 ...-application-catalog-web-cluster-with-db.png |   Bin 0 -> 76065 bytes
 .../images/add-application-modal-yaml.png       |   Bin 0 -> 68401 bytes
 .../images/jboss7-cluster-policies-large.png    |   Bin 0 -> 157883 bytes
 .../images/jboss7-cluster-policies.png          |   Bin 0 -> 94056 bytes
 .../images/my-db-activities-large.png           |   Bin 0 -> 208313 bytes
 .../quickstart/images/my-db-activities.png      |   Bin 0 -> 130262 bytes
 .../images/my-web-cluster-starting.png          |   Bin 0 -> 32948 bytes
 .../my-web-cluster-stop-confirm-large.png       |   Bin 0 -> 148155 bytes
 .../images/my-web-cluster-stop-confirm.png      |   Bin 0 -> 79280 bytes
 .../quickstart/images/my-web-summary-large.png  |   Bin 0 -> 178785 bytes
 .../guide/quickstart/images/my-web-summary.png  |   Bin 0 -> 80583 bytes
 .../use/guide/quickstart/images/my-web.png      |   Bin 0 -> 83081 bytes
 docs/guide/use/guide/quickstart/index.md        |   221 +
 .../use/guide/quickstart/my-web-cluster.yaml    |    19 +
 .../guide/quickstart/policies-and-catalogs.md   |    66 +
 docs/guide/use/guide/quickstart/toc.json        |     4 +
 docs/guide/use/guide/toc.json                   |    25 +
 docs/guide/use/index.md                         |     9 +
 docs/guide/use/toc.json                         |    12 +
 docs/index.md                                   |    21 +-
 docs/license/index.md                           |    18 -
 docs/license/license.md                         |   194 -
 docs/license/toc.json                           |     4 -
 docs/meta/brooklyn-gpg-public-key.asc           |    21 -
 docs/meta/contact.include.md                    |     9 -
 docs/meta/contact.md                            |     7 -
 docs/meta/irc.md                                |    31 -
 docs/meta/toc.json                              |     8 -
 docs/meta/verify.md                             |    36 -
 docs/meta/versions.md                           |   110 -
 docs/start/docs-summary.include.md              |     7 -
 docs/start/docs-summary.md                      |     9 -
 docs/start/download.md                          |   185 -
 docs/start/index.include.md                     |    50 -
 docs/start/index.md                             |     8 -
 docs/start/known-issues.md                      |    28 -
 docs/start/release-notes.md                     |    56 -
 docs/start/toc.json                             |    10 -
 docs/start/video.md                             |     7 -
 docs/start/walkthrough/index.md                 |   240 -
 .../walkthrough/wt-deployed-application-700.png |   Bin 176494 -> 0 bytes
 .../walkthrough/wt-deployed-application.png     |   Bin 127347 -> 0 bytes
 docs/start/walkthrough/wt-starting-700.png      |   Bin 303892 -> 0 bytes
 docs/start/walkthrough/wt-starting.png          |   Bin 332710 -> 0 bytes
 .../walkthrough/wt-tree-jboss-sensors-700.png   |   Bin 268853 -> 0 bytes
 .../start/walkthrough/wt-tree-jboss-sensors.png |   Bin 169929 -> 0 bytes
 docs/style/css/code.css                         |    79 +
 docs/style/css/guide-toc.css                    |    88 +
 docs/style/css/guide.css                        |   152 +
 docs/style/css/website.css                      |    49 +
 docs/style/deps/README.md                       |     3 +
 .../glyphicons-halflings-regular.eot            |   Bin 0 -> 20335 bytes
 .../glyphicons-halflings-regular.svg            |   229 +
 .../glyphicons-halflings-regular.ttf            |   Bin 0 -> 41280 bytes
 .../glyphicons-halflings-regular.woff           |   Bin 0 -> 23320 bytes
 docs/style/deps/bootstrap-theme.css             |   346 +
 docs/style/deps/bootstrap.css                   |  5784 ++++
 docs/style/deps/bootstrap.js                    |  1951 ++
 docs/style/deps/bootstrap.min.css               |     7 +
 docs/style/deps/bootstrap.min.js                |     6 +
 .../images/ui-bg_flat_0_aaaaaa_40x100.png       |   Bin 0 -> 180 bytes
 .../images/ui-bg_flat_75_ffffff_40x100.png      |   Bin 0 -> 178 bytes
 .../images/ui-bg_glass_55_fbf9ee_1x400.png      |   Bin 0 -> 120 bytes
 .../images/ui-bg_glass_65_ffffff_1x400.png      |   Bin 0 -> 105 bytes
 .../images/ui-bg_glass_75_dadada_1x400.png      |   Bin 0 -> 111 bytes
 .../images/ui-bg_glass_75_e6e6e6_1x400.png      |   Bin 0 -> 110 bytes
 .../images/ui-bg_glass_95_fef1ec_1x400.png      |   Bin 0 -> 119 bytes
 .../ui-bg_highlight-soft_75_cccccc_1x100.png    |   Bin 0 -> 101 bytes
 .../images/ui-icons_222222_256x240.png          |   Bin 0 -> 4369 bytes
 .../images/ui-icons_2e83ff_256x240.png          |   Bin 0 -> 4369 bytes
 .../images/ui-icons_454545_256x240.png          |   Bin 0 -> 4369 bytes
 .../images/ui-icons_888888_256x240.png          |   Bin 0 -> 4369 bytes
 .../images/ui-icons_cd0a0a_256x240.png          |   Bin 0 -> 4369 bytes
 .../deps/jquery-ui/jquery-ui-1.8.18.custom.css  |   565 +
 .../jquery-ui/jquery-ui-1.8.18.custom.min.js    |   356 +
 docs/style/deps/jquery.cookie.js                |    94 +
 docs/style/deps/jquery.js                       |  9190 ++++++
 docs/style/deps/jquery.min.js                   |     4 +
 docs/style/deps/superfish.js                    |   121 +
 docs/style/deps/underscore-min.js               |     6 +
 docs/style/deps/underscore-min.map              |     1 +
 docs/style/docs/code.css                        |    79 -
 docs/style/icons/clipboard-green-click.png      |   Bin 51832 -> 0 bytes
 docs/style/icons/clipboard-green-hover.png      |   Bin 51473 -> 0 bytes
 docs/style/icons/clipboard-green-normal.png     |   Bin 61853 -> 0 bytes
 docs/style/icons/clipboard.png                  |   Bin 3981 -> 0 bytes
 docs/style/icons/ok.png                         |   Bin 595 -> 0 bytes
 docs/style/icons/warning.png                    |   Bin 29886 -> 0 bytes
 docs/style/images/bridge.png                    |   Bin 20450 -> 0 bytes
 docs/style/images/brooklyn.gif                  |   Bin 4873 -> 0 bytes
 docs/style/images/divider-quicklinks.gif        |   Bin 817 -> 0 bytes
 .../img/apache-brooklyn-logo-244px-wide.png     |   Bin 0 -> 4892 bytes
 .../img/apache-brooklyn-logo-817px-wide.png     |   Bin 0 -> 10688 bytes
 docs/style/img/bridge-large-no-title.png        |   Bin 0 -> 66113 bytes
 docs/style/img/bridge.png                       |   Bin 0 -> 20450 bytes
 docs/style/img/brooklyn.gif                     |   Bin 0 -> 4873 bytes
 docs/style/img/clipboard-green-click.png        |   Bin 0 -> 51832 bytes
 docs/style/img/clipboard-green-hover.png        |   Bin 0 -> 51473 bytes
 docs/style/img/clipboard-green-normal.png       |   Bin 0 -> 61853 bytes
 docs/style/img/clipboard.png                    |   Bin 0 -> 3981 bytes
 docs/style/img/divider-quicklinks.gif           |   Bin 0 -> 817 bytes
 docs/style/img/ok.png                           |   Bin 0 -> 595 bytes
 docs/style/img/warning.png                      |   Bin 0 -> 29886 bytes
 docs/style/js/_readme.txt                       |     2 +
 docs/style/js/jquery.cookie.js                  |    94 -
 docs/style/js/jquery/jquery-1.7.1.min.js        |     4 -
 .../js/jquery/jquery-ui-1.8.18.custom.min.js    |   356 -
 .../images/ui-bg_flat_0_aaaaaa_40x100.png       |   Bin 180 -> 0 bytes
 .../images/ui-bg_flat_75_ffffff_40x100.png      |   Bin 178 -> 0 bytes
 .../images/ui-bg_glass_55_fbf9ee_1x400.png      |   Bin 120 -> 0 bytes
 .../images/ui-bg_glass_65_ffffff_1x400.png      |   Bin 105 -> 0 bytes
 .../images/ui-bg_glass_75_dadada_1x400.png      |   Bin 111 -> 0 bytes
 .../images/ui-bg_glass_75_e6e6e6_1x400.png      |   Bin 110 -> 0 bytes
 .../images/ui-bg_glass_95_fef1ec_1x400.png      |   Bin 119 -> 0 bytes
 .../ui-bg_highlight-soft_75_cccccc_1x100.png    |   Bin 101 -> 0 bytes
 .../images/ui-icons_222222_256x240.png          |   Bin 4369 -> 0 bytes
 .../images/ui-icons_2e83ff_256x240.png          |   Bin 4369 -> 0 bytes
 .../images/ui-icons_454545_256x240.png          |   Bin 4369 -> 0 bytes
 .../images/ui-icons_888888_256x240.png          |   Bin 4369 -> 0 bytes
 .../images/ui-icons_cd0a0a_256x240.png          |   Bin 4369 -> 0 bytes
 .../smoothness/jquery-ui-1.8.18.custom.css      |   565 -
 docs/style/js/superfish.js                      |   121 -
 docs/style/js/underscore-min.js                 |     6 +
 docs/style/js/underscore-min.map                |     1 +
 docs/style/style.css                            |   152 -
 docs/style/toc.css                              |    88 -
 docs/tests/jsonball/test_jsonball.md            |    18 -
 docs/tests/jsonball/test_jsonball_file.json     |     1 -
 docs/tests/jsonball/test_jsonball_page.json     |     2 -
 docs/tests/jsonball/toc.json                    |     6 -
 docs/toc-menu.json                              |    20 -
 docs/toc.json                                   |    21 -
 docs/use/api/index.md                           |    11 -
 docs/use/contact.md                             |     7 -
 docs/use/examples/before-begin.include.md       |    57 -
 .../console-geoscaling-details-w700.png         |   Bin 167441 -> 0 bytes
 .../console-geoscaling-details.png              |   Bin 176651 -> 0 bytes
 .../global-web-fabric/console-map-w700.png      |   Bin 201060 -> 0 bytes
 .../examples/global-web-fabric/console-map.png  |   Bin 331520 -> 0 bytes
 .../geopaas-deployed-app-w700.png               |   Bin 153738 -> 0 bytes
 .../global-web-fabric/geopaas-deployed-app.png  |   Bin 114615 -> 0 bytes
 docs/use/examples/global-web-fabric/index.md    |   378 -
 docs/use/examples/index.md                      |    18 -
 docs/use/examples/messaging/index.md            |   183 -
 .../nosql-cassandra/cassandra.include.md        |   282 -
 docs/use/examples/nosql-cassandra/index.md      |     7 -
 docs/use/examples/simple-web-cluster.md         |     9 -
 docs/use/examples/toc.json                      |    13 -
 docs/use/examples/webcluster.md                 |     9 -
 docs/use/examples/webcluster/index.md           |     7 -
 .../examples/webcluster/webcluster.include.md   |   124 -
 docs/use/guide/defining-applications/Chef.png   |   Bin 36222 -> 0 bytes
 .../defining-applications/advanced-concepts.md  |   137 -
 .../guide/defining-applications/archetype.md    |    64 -
 .../defining-applications/basic-concepts.md     |    95 -
 ...ooklyn-flow-websequencediagrams.com-w400.png |   Bin 58518 -> 0 bytes
 .../brooklyn-flow-websequencediagrams.com.png   |   Bin 106928 -> 0 bytes
 .../defining-applications/chef-blueprints.md    |   277 -
 .../guide/defining-applications/common-usage.md |   145 -
 .../defining-applications/creating-yaml.md      |   417 -
 .../defining-applications/deploying-yaml.md     |    37 -
 .../example_files/tomcat_multi-location.java    |    15 -
 .../example_files/tomcat_nginx.java             |    17 -
 .../example_files/tomcat_simple.java            |     9 -
 .../appserver-clustered-w-db-concise.yaml       |    15 -
 .../example_yaml/appserver-clustered-w-db.yaml  |    18 -
 .../appserver-configured-in-config.yaml         |     6 -
 .../example_yaml/appserver-configured.yaml      |     5 -
 .../appserver-w-db-other-flavor.yaml            |    17 -
 .../example_yaml/appserver-w-db.yaml            |    15 -
 .../example_yaml/appserver-w-policy.yaml        |    26 -
 .../example_yaml/cluster-vm.yaml                |    12 -
 .../example_yaml/mysql-chef-1.yaml              |    24 -
 .../example_yaml/mysql-chef-2.yaml              |    28 -
 .../simple-appserver-with-location-byon.yaml    |    12 -
 .../simple-appserver-with-location.yaml         |     8 -
 .../example_yaml/simple-appserver.yaml          |     4 -
 .../example_yaml/simple-vm.yaml                 |     8 -
 .../example_yaml/vanilla-bash-netcat-file.yaml  |     6 -
 .../vanilla-bash-netcat-restarter.yaml          |    20 -
 .../vanilla-bash-netcat-w-client.yaml           |    72 -
 .../example_yaml/vanilla-bash-netcat.yaml       |    18 -
 .../use/guide/defining-applications/examples.md |   120 -
 .../defining-applications/service-state.md      |    73 -
 docs/use/guide/defining-applications/toc.json   |    19 -
 .../web-console-yaml-700.png                    |   Bin 138229 -> 0 bytes
 .../defining-applications/web-console-yaml.png  |   Bin 661136 -> 0 bytes
 .../defining-applications/yaml-reference.md     |   183 -
 docs/use/guide/entities/index.md                |   133 -
 docs/use/guide/entities/toc.json                |    12 -
 docs/use/guide/extras/index.md                  |   160 -
 docs/use/guide/extras/toc.json                  |    11 -
 docs/use/guide/guide_toc.json                   |    25 -
 docs/use/guide/index.md                         |    33 -
 docs/use/guide/locations/index.md               |   104 -
 docs/use/guide/locations/toc.json               |     1 -
 docs/use/guide/management/index.md              |   407 -
 docs/use/guide/management/toc.json              |    18 -
 .../management/webconsole-dashboard-w400.png    |   Bin 137463 -> 0 bytes
 .../guide/management/webconsole-dashboard.png   |   Bin 214723 -> 0 bytes
 .../guide/management/webconsole-detail-w400.png |   Bin 111993 -> 0 bytes
 docs/use/guide/management/webconsole-detail.png |   Bin 165359 -> 0 bytes
 docs/use/guide/persistence/index.md             |   289 -
 docs/use/guide/persistence/toc.json             |    16 -
 docs/use/guide/policies/index.md                |   129 -
 docs/use/guide/policies/toc.json                |     8 -
 docs/use/guide/quickstart/brooklyn.properties   |   324 -
 docs/use/guide/quickstart/catalog.xml           |    23 -
 ...cation-catalog-web-cluster-with-db-large.png |   Bin 131618 -> 0 bytes
 ...talog-web-cluster-with-db-location-large.png |   Bin 152721 -> 0 bytes
 ...ion-catalog-web-cluster-with-db-location.png |   Bin 86425 -> 0 bytes
 ...-application-catalog-web-cluster-with-db.png |   Bin 76065 -> 0 bytes
 .../images/add-application-modal-yaml.png       |   Bin 68401 -> 0 bytes
 .../images/jboss7-cluster-policies-large.png    |   Bin 157883 -> 0 bytes
 .../images/jboss7-cluster-policies.png          |   Bin 94056 -> 0 bytes
 .../images/my-db-activities-large.png           |   Bin 208313 -> 0 bytes
 .../quickstart/images/my-db-activities.png      |   Bin 130262 -> 0 bytes
 .../images/my-web-cluster-starting.png          |   Bin 32948 -> 0 bytes
 .../my-web-cluster-stop-confirm-large.png       |   Bin 148155 -> 0 bytes
 .../images/my-web-cluster-stop-confirm.png      |   Bin 79280 -> 0 bytes
 .../quickstart/images/my-web-summary-large.png  |   Bin 178785 -> 0 bytes
 .../guide/quickstart/images/my-web-summary.png  |   Bin 80583 -> 0 bytes
 docs/use/guide/quickstart/images/my-web.png     |   Bin 83081 -> 0 bytes
 docs/use/guide/quickstart/index.md              |   221 -
 docs/use/guide/quickstart/my-web-cluster.yaml   |    19 -
 .../guide/quickstart/policies-and-catalogs.md   |    66 -
 docs/use/guide/quickstart/toc.json              |     4 -
 docs/use/guide/toc.json                         |    25 -
 docs/use/index.md                               |     9 -
 docs/use/toc.json                               |    12 -
 docs/website/community/committers.md            |   119 +
 docs/website/community/fork-after.png           |   Bin 0 -> 134377 bytes
 docs/website/community/fork-before.png          |   Bin 0 -> 131674 bytes
 docs/website/community/fork-new.png             |   Bin 0 -> 137626 bytes
 .../website/community/how-to-contribute-docs.md |   158 +
 docs/website/community/how-to-contribute.md     |    85 +
 docs/website/community/index.md                 |    86 +
 docs/website/community/migrate-to-apache.md     |   117 +
 docs/website/community/pull-request.png         |   Bin 0 -> 94166 bytes
 docs/website/documentation.md                   |    19 +
 docs/website/documentation/increase-entropy.md  |    31 +
 docs/website/documentation/install-on-server.md |   125 +
 docs/website/documentation/passwordless-ssh.md  |    29 +
 docs/website/documentation/ssh-key.md           |     9 +
 docs/website/download.md                        |    70 +
 docs/website/glossary.md                        |    92 +
 docs/website/index.md                           |    71 +
 docs/website/learnmore/catalog/common.js        |    94 +
 .../brooklyn.enricher.DeltaEnricher.html        |    59 +
 .../brooklyn.enricher.HttpLatencyDetector.html  |    59 +
 .../brooklyn.enricher.RollingMeanEnricher.html  |    59 +
 ....enricher.RollingTimeWindowMeanEnricher.html |    59 +
 ...klyn.enricher.TimeFractionDeltaEnricher.html |    59 +
 ...klyn.enricher.TimeWeightedDeltaEnricher.html |    59 +
 .../brooklyn.enricher.basic.Aggregator.html     |    59 +
 .../brooklyn.enricher.basic.Combiner.html       |    59 +
 .../brooklyn.enricher.basic.Propagator.html     |    59 +
 .../brooklyn.enricher.basic.Transformer.html    |    59 +
 ...ooklyn.policy.ha.ServiceFailureDetector.html |    59 +
 ...lyn.entity.basic.VanillaSoftwareProcess.html |    66 +
 ...ntity.brooklynnode.BrooklynEntityMirror.html |    66 +
 ...ooklyn.entity.brooklynnode.BrooklynNode.html |    66 +
 ...lyn.entity.database.mariadb.MariaDbNode.html |    66 +
 ...rooklyn.entity.database.mysql.MySqlNode.html |    66 +
 ...tity.database.postgresql.PostgreSqlNode.html |    66 +
 ...lyn.entity.database.rubyrep.RubyRepNode.html |    66 +
 .../brooklyn.entity.machine.MachineEntity.html  |    66 +
 ...ntity.messaging.activemq.ActiveMQBroker.html |    66 +
 ...lyn.entity.messaging.kafka.KafkaCluster.html |    66 +
 ...ooklyn.entity.messaging.qpid.QpidBroker.html |    66 +
 ...yn.entity.messaging.rabbit.RabbitBroker.html |    66 +
 .../brooklyn.entity.messaging.storm.Storm.html  |    66 +
 ....entity.messaging.storm.StormDeployment.html |    66 +
 ...oklyn.entity.monitoring.monit.MonitNode.html |    66 +
 ...oklyn.entity.network.bind.BindDnsServer.html |    66 +
 ...ity.nosql.cassandra.CassandraDatacenter.html |    66 +
 ....entity.nosql.cassandra.CassandraFabric.html |    66 +
 ...yn.entity.nosql.cassandra.CassandraNode.html |    66 +
 ...entity.nosql.couchbase.CouchbaseCluster.html |    66 +
 ...yn.entity.nosql.couchbase.CouchbaseNode.html |    66 +
 ...ooklyn.entity.nosql.couchdb.CouchDBNode.html |    66 +
 ...osql.elasticsearch.ElasticSearchCluster.html |    66 +
 ...y.nosql.elasticsearch.ElasticSearchNode.html |    66 +
 ...klyn.entity.nosql.mongodb.MongoDBServer.html |    66 +
 ...ty.nosql.mongodb.sharding.MongoDBRouter.html |    66 +
 ...ngodb.sharding.MongoDBShardedDeployment.html |    66 +
 ...rooklyn.entity.nosql.redis.RedisCluster.html |    66 +
 .../brooklyn.entity.nosql.redis.RedisStore.html |    66 +
 .../brooklyn.entity.nosql.riak.RiakCluster.html |    66 +
 .../brooklyn.entity.nosql.riak.RiakNode.html    |    66 +
 .../brooklyn.entity.nosql.solr.SolrServer.html  |    66 +
 ...ooklyn.entity.osgi.karaf.KarafContainer.html |    66 +
 .../brooklyn.entity.pool.ServerPool.html        |    66 +
 ...klyn.entity.proxy.nginx.NginxController.html |    66 +
 ...y.webapp.ControlledDynamicWebAppCluster.html |    66 +
 ...klyn.entity.webapp.DynamicWebAppCluster.html |    66 +
 ...ooklyn.entity.webapp.jboss.JBoss6Server.html |    66 +
 ...ooklyn.entity.webapp.jboss.JBoss7Server.html |    66 +
 ...ooklyn.entity.webapp.jetty.Jetty6Server.html |    66 +
 ...ntity.webapp.nodejs.NodeJsWebAppService.html |    66 +
 ...oklyn.entity.webapp.tomcat.TomcatServer.html |    66 +
 ...klyn.entity.zookeeper.ZooKeeperEnsemble.html |    66 +
 ...brooklyn.entity.zookeeper.ZooKeeperNode.html |    66 +
 docs/website/learnmore/catalog/index.html       |   147 +
 docs/website/learnmore/catalog/items.css        |   153 +
 docs/website/learnmore/catalog/items.js         | 24674 +++++++++++++++++
 .../learnmore/catalog/libs/js/bloodhound.js     |   727 +
 ...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 +
 ...lyn.policy.autoscaling.AutoScalerPolicy.html |    59 +
 ....policy.followthesun.FollowTheSunPolicy.html |    59 +
 ...lyn.policy.ha.ConnectionFailureDetector.html |    59 +
 .../brooklyn.policy.ha.ServiceReplacer.html     |    59 +
 .../brooklyn.policy.ha.ServiceRestarter.html    |    59 +
 ...olicy.loadbalancing.LoadBalancingPolicy.html |    59 +
 docs/website/learnmore/index.md                 |    11 +
 docs/website/learnmore/theory.md                |   177 +
 docs/website/learnmore/yaml-explained.md        |     9 +
 docs/website/quickstart/_my-web-cluster.yaml    |    19 +
 docs/website/quickstart/catalog.xml             |    22 +
 ...cation-catalog-web-cluster-with-db-large.png |   Bin 0 -> 131618 bytes
 ...talog-web-cluster-with-db-location-large.png |   Bin 0 -> 152721 bytes
 ...ion-catalog-web-cluster-with-db-location.png |   Bin 0 -> 86425 bytes
 ...-application-catalog-web-cluster-with-db.png |   Bin 0 -> 76065 bytes
 .../images/add-application-modal-yaml.png       |   Bin 0 -> 68401 bytes
 .../images/jboss7-cluster-policies-large.png    |   Bin 0 -> 157883 bytes
 .../images/jboss7-cluster-policies.png          |   Bin 0 -> 94056 bytes
 .../images/my-db-activities-large.png           |   Bin 0 -> 208313 bytes
 .../quickstart/images/my-db-activities.png      |   Bin 0 -> 130262 bytes
 .../images/my-web-cluster-starting.png          |   Bin 0 -> 32948 bytes
 .../my-web-cluster-stop-confirm-large.png       |   Bin 0 -> 148155 bytes
 .../images/my-web-cluster-stop-confirm.png      |   Bin 0 -> 79280 bytes
 .../quickstart/images/my-web-summary-large.png  |   Bin 0 -> 178785 bytes
 .../quickstart/images/my-web-summary.png        |   Bin 0 -> 80583 bytes
 docs/website/quickstart/images/my-web.png       |   Bin 0 -> 83081 bytes
 docs/website/quickstart/index.md                |   217 +
 .../website/quickstart/policies-and-catalogs.md |    67 +
 552 files changed, 60530 insertions(+), 9683 deletions(-)
----------------------------------------------------------------------



[15/50] [abbrv] incubator-brooklyn git commit: ensure host is included when needed

Posted by he...@apache.org.
ensure host is included when needed


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

Branch: refs/heads/master
Commit: 4824a945d978e72d6977a295263638d9c7e4c598
Parents: 2ac0c6d
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Dec 15 21:50:41 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:55 2014 +0000

----------------------------------------------------------------------
 docs/_config.yml                                         | 2 +-
 docs/guide/dev/build/index.md                            | 2 +-
 docs/guide/use/guide/quickstart/index.md                 | 2 +-
 docs/guide/use/guide/quickstart/policies-and-catalogs.md | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4824a945/docs/_config.yml
----------------------------------------------------------------------
diff --git a/docs/_config.yml b/docs/_config.yml
index 6d18842..bc0ac52 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -27,7 +27,7 @@ brooklyn-snapshot-git-branch: master   # if line above is SNAPSHOT this should p
 # url: /v/0.7.0-SNAPSHOT  # BROOKLYN_VERSION
 # url: 
 
-url_root: http://0.0.0.0:4000/
+url_root: http://0.0.0.0:4000
 
 path:
   style: /style

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4824a945/docs/guide/dev/build/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/build/index.md b/docs/guide/dev/build/index.md
index 53b95f6..90aa6fa 100644
--- a/docs/guide/dev/build/index.md
+++ b/docs/guide/dev/build/index.md
@@ -74,7 +74,7 @@ If there is a good reason that a file, pattern, or directory should be permanent
 
 * The **developers catalog** ([developers-catalog.xml](developers-catalog.xml)) uses artifacts from your local `~/.m2/repository/...` (after building from source). This avoids unnecessary web requests to Maven Central or Sonatype, and will allow you to work off-line.
   
-  ``wget {{site.path.guide}}/dev/build/developers-catalog.xml > ~/.brooklyn/catalog.xml`` 
+  ``wget {{site.url_root}}{{site.path.guide}}/dev/build/developers-catalog.xml > ~/.brooklyn/catalog.xml`` 
 
 ## Appendix: Sample Output
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4824a945/docs/guide/use/guide/quickstart/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/index.md b/docs/guide/use/guide/quickstart/index.md
index d12d6c0..515a9d2 100644
--- a/docs/guide/use/guide/quickstart/index.md
+++ b/docs/guide/use/guide/quickstart/index.md
@@ -85,7 +85,7 @@ this file can be installed with:
 {% highlight bash %}
 $ mkdir ~/.brooklyn
 $ cd ~/.brooklyn
-$ wget {{site.path.guide}}/use/guide/quickstart/brooklyn.properties
+$ wget {{site.url_root}}{{site.path.guide}}/use/guide/quickstart/brooklyn.properties
 {% endhighlight %}
 
 Open this file in a text editor and follow the instructions there. The main settings are summarized below:

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4824a945/docs/guide/use/guide/quickstart/policies-and-catalogs.md
----------------------------------------------------------------------
diff --git a/docs/guide/use/guide/quickstart/policies-and-catalogs.md b/docs/guide/use/guide/quickstart/policies-and-catalogs.md
index d52b8f8..3d8a6a2 100644
--- a/docs/guide/use/guide/quickstart/policies-and-catalogs.md
+++ b/docs/guide/use/guide/quickstart/policies-and-catalogs.md
@@ -17,7 +17,7 @@ Download the template [catalog.xml](catalog.xml) to your `~/.brooklyn/` folder,
 
 {% highlight bash %}
 $ cd ~/.brooklyn
-$ wget {{site.path.guide}}/use/guide/quickstart/catalog.xml
+$ wget {{site.url_root}}{{site.path.guide}}/use/guide/quickstart/catalog.xml
 
 $ brooklyn launch
 {% endhighlight %}


[12/50] [abbrv] incubator-brooklyn git commit: add bootstrap fonts, and point to subdir of deps for clean isolation

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/28db336c/docs/style/deps/bootstrap.min.css
----------------------------------------------------------------------
diff --git a/docs/style/deps/bootstrap.min.css b/docs/style/deps/bootstrap.min.css
index 679272d..1e05fc4 100644
--- a/docs/style/deps/bootstrap.min.css
+++ b/docs/style/deps/bootstrap.min.css
@@ -4,4 +4,4 @@
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
 
-/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:
 inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!
 important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-we
 bkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-onl
 y{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font
 -size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{backgroun
 d-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}bl
 ockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px
 ;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col
 -xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.co
 l-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-x
 s-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{r
 ight:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-
 offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md
 -push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667
 %}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.co
 l-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-chi
 ld>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;flo
 at:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tb
 ody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}
 .table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsiv
 e>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last
 -child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color
 :#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webki
 t-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .
 checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .for
 m-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-e
 rror .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio
 ,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 1
 2px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disa
 bled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[dis
 abled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[dis
 abled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info
 .disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#
 f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:
 400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:10
 0%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:
 "\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:befor
 e{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:
 before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward
 :before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"
 }.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{con
 tent:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"
 \e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.g
 lyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-
 video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background
 -color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTrans
 form.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>
 .btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radi
 us:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-gro
 up>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:
 table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn
 >.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-
 control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.inp
 ut-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>
 li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.n
 av-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a
 {text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-head
 er{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;bo
 rder-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-
 width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px so
 lid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-w
 ebkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navb
 ar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-
 default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar
 -nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu
  .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";paddi
 ng:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;
 cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:
 inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{backg
 round-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{
 margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .ale
 rt-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{back
 ground-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear
  infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f
 0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block
 }.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.act
 ive:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.activ
 e,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a
 94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:la
 st-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.
 panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius
 :3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.ta
 ble:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsi
 ve>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.
 table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel
 >.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-col
 or:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:
 #ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:
 1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-t

<TRUNCATED>

[39/50] [abbrv] incubator-brooklyn git commit: update javadoc datestamp and simplify it, and remove old stuff from help file

Posted by he...@apache.org.
update javadoc datestamp and simplify it, and remove old stuff from help file


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

Branch: refs/heads/master
Commit: d3c0469df2d9113a88b3e26e8b10f8ca48e7bc57
Parents: 816f803
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 11:05:48 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 11:05:48 2014 +0000

----------------------------------------------------------------------
 docs/_build/help.txt                  | 18 +++-----------
 docs/_build/make-javadoc.sh           | 21 +++++++++++++---
 docs/_build/quick-make-few-javadoc.sh | 39 +++---------------------------
 3 files changed, 24 insertions(+), 54 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d3c0469d/docs/_build/help.txt
----------------------------------------------------------------------
diff --git a/docs/_build/help.txt b/docs/_build/help.txt
index ed52aa2..e855c10 100644
--- a/docs/_build/help.txt
+++ b/docs/_build/help.txt
@@ -1,4 +1,3 @@
-#
 # 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
@@ -17,18 +16,7 @@
 # under the License.
 #
 
-OVERVIEW
-========
-
-_scripts/jekyll-debug.sh
-    will launch the docs for viewing at http://localhost:4000/
-
-_scripts/build.sh 
-    will build the site in _site including javadoc for offline browsing
-
-
-Release Process
-===============
+See the README.md in the parent directory,
+or run:
 
-Docs release instructions can be found at:
-http://brooklyncentral.github.io/dev/tips/release.html
+    _build/build.sh help

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d3c0469d/docs/_build/make-javadoc.sh
----------------------------------------------------------------------
diff --git a/docs/_build/make-javadoc.sh b/docs/_build/make-javadoc.sh
index 4df6462..d0a5bbe 100755
--- a/docs/_build/make-javadoc.sh
+++ b/docs/_build/make-javadoc.sh
@@ -1,5 +1,10 @@
 #!/bin/bash
 
+if [ ! -x make-javadoc.sh ]; then
+  echo This command must be run from the _build directory, not its parent.
+  exit 1
+fi
+
 if [ -z "$GROOVY_CMD" ] ; then
   if [ ! -z "$GROOVY_HOME" ] ; then
     GROOVY_CMD=$GROOVY_HOME/bin/groovysh
@@ -13,11 +18,19 @@ if [ ! -x "$GROOVY_CMD" ] ; then
   exit 1
 fi
 
-export SOURCE_PATHS=`find ../.. -name java | grep "src/main/java$" | grep -v web-console/plugins | grep -v "^../../sandbox"`
+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 web-console/plugins | grep -v "^../../sandbox"`
+else
+  echo using pre-defined source paths $BROOKLYN_JAVADOC_SOURCE_PATHS
+  export SOURCE_PATHS=$BROOKLYN_JAVADOC_SOURCE_PATHS
+fi
 
 rm -rf target/apidocs/
 
-echo "building javadoc from "$SOURCE_PATHS
+export DATESTAMP=`date "+%Y-%m-%d"`
+echo "building javadoc from $SOURCE_PATH at $DATESTAMP"
+
 
 $GROOVY_CMD -q << END
 sourcePaths = System.env['SOURCE_PATHS'].split('\\\\s+').join(':')
@@ -32,7 +45,7 @@ ant.groovydoc(
     windowtitle  : "\${title}",
     doctitle     : "\${title}",
     header       : "\${title}",
-    footer       : '<b>Apache Brooklyn - Multi-Cloud Application Management Platform</b> <br/> <a href="http://brooklyn.io/" target="_top">brooklyn.io</a>. Apache License. &copy; 2014.',
+    footer       : '<b>Apache Brooklyn - Multi-Cloud Application Management Platform</b> <br/> <a href="http://brooklyn.io/" target="_top">brooklyn.io</a>. Apache License. &copy; '+System.env['DATESTAMP']+'.',
     private      : "false")
 println "\njavadoc built in target/apidocs\n" 
 END
@@ -40,6 +53,8 @@ END
 if (($!)) ; then echo ; echo ; echo "Groovy docs had an error." ; exit 1 ; fi
 echo ; echo
 
+if [ -z 'ls target/apidocs' ]; then echo ; echo ; echo "Error - no content. Are the paths right?" ; exit 1 ; fi
+
 if [ -d ../_site/use/api/ ] ; then
   echo "API directory detected in parent, installing docs there"
   cp -r target/apidocs/* ../_site/use/api/

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d3c0469d/docs/_build/quick-make-few-javadoc.sh
----------------------------------------------------------------------
diff --git a/docs/_build/quick-make-few-javadoc.sh b/docs/_build/quick-make-few-javadoc.sh
index e7b6ae7..b51e0d1 100755
--- a/docs/_build/quick-make-few-javadoc.sh
+++ b/docs/_build/quick-make-few-javadoc.sh
@@ -1,39 +1,6 @@
 #!/bin/bash
 
-if [ -z "$GROOVY_CMD" ] ; then
-  if [ ! -z "$GROOVY_HOME" ] ; then
-    GROOVY_CMD=$GROOVY_HOME/bin/groovysh
-  else
-    GROOVY_CMD=`which groovysh`
-  fi
-fi
+export BROOKLYN_JAVADOC_SOURCE_PATHS="../../api"
+echo LIMITING build to $BROOKLYN_JAVADOC_SOURCE_PATHS for speed
+./make-javadoc.sh
 
-if [ ! -x "$GROOVY_CMD" ] ; then
-  echo groovy executable must be available on the path or in \$GROOVY_HOME/bin
-  exit 1
-fi
-
-rm -rf target/apidocs/
-
-echo "building javadoc for api package (run quickly, generate just a bit of sample output, to test styles or other things)"
-
-$GROOVY_CMD -q << END
-sourcePaths = "../../api"
-title = "Brooklyn"
-ant = new AntBuilder()
-ant.taskdef(name: "groovydoc", classname: "org.codehaus.groovy.ant.Groovydoc")
-ant.groovydoc(
-    destdir      : "target/apidocs/",
-    sourcepath   : "\${sourcePaths}",
-    packagenames : "**.*",
-    use          : "true",
-    windowtitle  : "\${title}",
-    doctitle     : "\${title}",
-    header       : "\${title}",
-    footer       : '<b>Brooklyn Multi-Cloud Application Management Platform</b> <br/> <a href="http://brooklyncentral.github.com/" target="_top">brooklyncentral.github.com</a>. Apache License. &copy; 2012.',
-    private      : "false")
-println "\njavadoc built in target/apidocs\n" 
-END
-
-if (($!)) ; then echo ; echo ; echo "Groovy docs had an error." ; exit 1 ; fi
-echo ; echo


[02/50] [abbrv] incubator-brooklyn git commit: move version-specific things to "guide"

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/locations/index.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/locations/index.md b/docs/use/guide/locations/index.md
deleted file mode 100644
index c2eff2f..0000000
--- a/docs/use/guide/locations/index.md
+++ /dev/null
@@ -1,104 +0,0 @@
----
-title: Locations
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide]
-
----
-
-Locations are the environments to which Brooklyn deploys applications.
-These can be clouds (public or private), fixed infrastructure environments, or your laptop.
-
-Brooklyn looks for Location configuration in `~/.brooklyn/brooklyn.properties`.
-
-## Setting up an SSH key
-
-While some locations can be accessed using *user:password* credentials it is more common to use authentication keys.
-
-To use keyfile based authentication, Brooklyn requires that the management machine has an SSH key. By default Brooklyn looks for a key at `~/.ssh/id_rsa` and `~/.ssh/id_dsa`.
-
-If you do not already have an SSH key installed, create a new id_rsa key:
-
-{% highlight bash %}
-$ ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
-{% endhighlight %}
-
-If you wish to use an existing key SSH, or an SSH key
-that has a passphrase, or a location other than `~/.ssh`, you can specify this in
-`brooklyn.properties` using `brooklyn.location.localhost.privateKeyFile` and
-`brooklyn.location.localhost.privateKeyPassphrase`.
-
-## Localhost
-
-Brooklyn can access localhost if there is an SSH key on the machine and if the SSH key has been added to the list of  `authorized_keys` on that machine.
-
-{% highlight bash %}
-# _Appends_ id_rsa.pub to authorized_keys. Other keys are unaffected.
-$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
-{% endhighlight %}
-
-MacOS user? In addition to the above, enable 'Remote Login' in System Preferences >
- Sharing.
-
-
-## Cloud Endpoints (via jclouds)
-
-[Apache jclouds](http://www.jclouds.org) is a multi-cloud library that Brooklyn uses to access many clouds. The [full list of supported providers](http://jclouds.apache.org/reference/providers/) is available on jclouds.apache.org.
-
-Add your cloud provider's (API) credentials to `brooklyn.properties` and create an SSH key on the management machine.
-
-Some clouds provide both API keys and SSH keys. In this case add only the API credentials to `brooklyn.properties`. (jclouds will transparently use the API credentials to setup access using the management machine's SSH key.)
-
-### Example: AWS Virginia Large Centos
-
-{% highlight bash %}
-## Snippet from ~/.brooklyn/brooklyn.properties.
-
-# Provide jclouds with AWS API credentials.
-brooklyn.location.jclouds.aws-ec2.identity = AKA_YOUR_ACCESS_KEY_ID
-brooklyn.location.jclouds.aws-ec2.credential = YourSecretKeyWhichIsABase64EncodedString
-
-# Name this location 'AWS Virginia Large Centos' and wire to AWS US-East-1
-brooklyn.location.named.AWS\ Virginia\ Large\ Centos = jclouds:aws-ec2:us-east-1
-
-# (Using the same name) specify image, user and minimum ram size (ie instance size)
-brooklyn.location.named.AWS\ Virginia\ Large\ Centos.imageId=us-east-1/ami-7d7bfc14
-brooklyn.location.named.AWS\ Virginia\ Large\ Centos.user=root
-brooklyn.location.named.AWS\ Virginia\ Large\ Centos.minRam=4096
-
-
-{% endhighlight %}
-
-This will  appear as 'AWS Virginia Large Centos' in the web console, but will need to be escaped on the command line as:  `AWS\ Virginia\ Large\ Centos`.
-
-See the Getting Started [template brooklyn.properties](/use/guide/quickstart/brooklyn.properties) for more examples of using cloud endpoints.
-
-
-## Fixed Infrastructure
-
-Bringing your own nodes (BYON) to Brooklyn is straightforward.
-
-You will need the IP addresses of the nodes and the access credentials. Both SSH and password based login are supported.
-
-### Example: On-Prem Iron
-
-{% highlight bash %}
-## Snippet from ~/.brooklyn/brooklyn.properties.
-
-# Use the byon prefix, and provide the IP addresss (or IP ranges)
-brooklyn.location.named.On-Prem\ Iron\ Example=byon:(hosts="10.9.1.1,10.9.1.2,produser2@10.9.2.{10,11,20-29}")
-brooklyn.location.named.On-Prem\ Iron\ Example.user=produser1
-brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyFile=~/.ssh/produser_id_rsa
-brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyPassphrase=s3cr3tpassphrase
-
-{% endhighlight %}
-
-
-## Advanced Options
-
-Unusual provider? 'Featureful' API? Brooklyn can cope.
-
-[This spreadsheet](https://docs.google.com/a/cloudsoftcorp.com/spreadsheet/ccc?key=0Avy7Tdf2EOIqdGQzSlNiT2M0V19SejBScDhSdzMtT2c) provides explanation, guidance, and examples for the majority of location options.
-
-
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/locations/toc.json
----------------------------------------------------------------------
diff --git a/docs/use/guide/locations/toc.json b/docs/use/guide/locations/toc.json
deleted file mode 100644
index 0637a08..0000000
--- a/docs/use/guide/locations/toc.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/management/index.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/management/index.md b/docs/use/guide/management/index.md
deleted file mode 100644
index 576da81..0000000
--- a/docs/use/guide/management/index.md
+++ /dev/null
@@ -1,407 +0,0 @@
----
-title: Runtime Management
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide]
-
----
-<a name="introduction"></a>
-brooklyn uses many of the ideas from autonomic computing to implement management of entities in a structured and reusable fashion (including provisioning, 
-healing, and optimising).
-
-Each external system, process or service is represented as an entity within brooklyn, with collections of these being represented and
-managed by other entities, and so forth through a hierarchy rooted in entities referred to as "Applications". Each entity has:
-
-- provisioning and tear-down logic for the external system(s) it represents
-- sensors which it publishes to report on its state and activity
-- effectors which can be invoked to change it
-- policies which perform analysis, enrichment (sensors), and execution (effectors). It is the policies in brooklyn which
-  perform the self-management (in autonomic terms) by monitoring sensors and invoking effectors.
-
-There are several ways to launch applications with brooklyn, and useful configuration options,
-as well as a debug-view web console.
-This chapter describes these high-level runtime concepts, then proceeds to present more
-detailed information on the underlying implementation of management within brooklyn.
-
-
-<a name="startup-config"></a>
-Startup Configuration
----------------------
-
-brooklyn can read configuration from a variety of places:
-
-* the file ``~/.brooklyn/brooklyn.properties``
-* ``-D`` defines on the brooklyn (java) command-line
-* shell environment variables
-
-Default properties are described in the Javadoc and code of the class ``BrooklynProperties``,
-but some of the most common ones are:
- 
-{% highlight properties %}
-brooklyn.location.jclouds.aws-ec2.identity=AKA50M30N3S1DFR0MAW55
-brooklyn.location.jclouds.aws-ec2.credential=aT0Ps3cr3tC0D3wh1chAW5w1llG1V3y0uTOus333
-brooklyn.location.jclouds.aws-ec2.privateKeyFile=~/path/to/id_rsa       # use specified key (default is ~/.ssh/id_rsa)
-brooklyn.location.jclouds.aws-ec2.publicKeyFile=~/path/to/id_rsa.pub    # (optional, inferred from previous if omitted)
-{% endhighlight %} 
-
-These can be specified as a shell environment variable or as a Java system property,
-although in those contexts the conventional format ``BROOKLYN_JCLOUDS_AWS_EC2_IDENTITY`` 
-is supported and recommended. 
-
-
-
-<a name="cli"></a>
-Command Line Interface
-----------------------
-
-Brooklyn comes with a Command Line Interface (cli) that makes it easier to launch an application.
-
-In order to have easy access to the cli it is useful to configure the PATH environment variable to also point to the cli's bin directory:
-
-{% highlight bash %}
-BROOKLYN_HOME=/path/to/brooklyn/
-export PATH=$PATH:$BROOKLYN_HOME/usage/dist/target/brooklyn-dist/bin/
-{% endhighlight %}
-
-If you have set this up correctly you should be able to invoke the ```brooklyn``` command:
-
-{% highlight bash %}
-brooklyn
-{% endhighlight %}
-
-To get information about all the supported cli options just run:
-
-{% highlight bash %}
-brooklyn help
-usage: brooklyn [(-q | --quiet)] [(-v | --verbose)] <command> [<args>]
-
-The most commonly used brooklyn commands are:
-    help     Display help information about brooklyn
-    info     Display information about brooklyn
-    launch   Starts a brooklyn application. Note that a BROOKLYN_CLASSPATH environment variable needs to be set up beforehand to point to the user application classpath.
-
-See 'brooklyn help <command>' for more information on a specific command.
-{% endhighlight %}
-
-Here is an example of the commands you might run to get the Brooklyn code, compile it and launch an application:
-
-{% highlight bash %}
-git clone https://github.com/brooklyncentral/brooklyn.git
-cd brooklyn
-mvn clean install -DskipTests
-BROOKLYN_HOME=$(pwd)
-export PATH=${PATH}:${BROOKLYN_HOME}/usage/dist/target/brooklyn-dist/bin/
-export BROOKLYN_CLASSPATH=${BROOKLYN_HOME}/examples/simple-web-cluster/target/classes
-brooklyn launch --app brooklyn.demo.SingleWebServerExample --location localhost
-{% endhighlight %}
-
-You can add things to the brooklyn classpath in a number of ways:
-
-* Add ``.jar`` files to brooklyn's ``./lib/dropins/`` directory. These are added at the end of the classpath.
-* Add ``.jar`` files to brooklyn's ``./lib/patch/`` directory. These are added at the front of the classpath.
-* Add resources to brooklyn's ``./conf/`` directory. This directory is at the very front of the classpath.
-* Use the ``BROOKLYN_CLASSPATH`` environment variable. If set, this is prepended to the brooklyn classpath.
-
-
-<a name="console"></a>
-Management Web Console
-----------------------
-
-The web-based management console that comes with brooklyn serves as a way to observe and manage brooklyn entities.
-It provides low-level details of activity (including stack-traces), sensor values, and policies,
-and some visual widgets for observing what is happening.
-This console is not designed as a management dashboard or portal -- 
-many good options exist in that space --
-but what could be useful is to embed widgets from the brooklyn portal for selected high-level views.
-
-<!-- FIXME Update to use new construction pattern, rather than calling app's constructor -->
-To start a management console from your own code, use ``BrooklynLaucher.launch``:
-{% highlight java %}
-public static void main(String[] argv) {
-	Application app = new MyApplicationExample(displayName:"myapp")
-    BrooklynServerDetails server = BrooklynLauncher.newLauncher()
-            .managing(app)
-            .launch();
-	// ...
-}
-{% endhighlight %}
-
-This will start an embedded brooklyn management node, including the web console.
-The URL for the web console defaults to http://127.0.0.1:8081, .
-
-The mechanism for launching brooklyn management will change in a future release. For this release, the brooklyn management node is embedded.
-
-The console contains two main views: Dashboard and Detail. These update in real-time.
-
-**Dashboard**
-
-The dashboard is a high level overview of the state of the application:
-
-[![Screenshot of the Webconsole Dashboard](webconsole-dashboard-w400.png "Screenshot of the Webconsole Dashboard")](webconsole-dashboard.png)
-
-
-**Detail**
-
-The Detail view gives an in-depth view of the application and its entities. 
-Child-parent relationships between entities are navigable using the entity tree;
-each entity is shown with its children (or, in the case of childless group entities, the members). 
-Selecting a specific entity allows you to access detailed information about that entity.
-
-[![Screenshot of the Webconsole Detail](webconsole-detail-w400.png "Screenshot of the Webconsole Detail")](webconsole-detail.png)
-
-The Detail view contains a breadcrumb trail, showing the current entitiy's position in the heirarchy, and six tabs:
-
-**Summary:** Description of the selected entity.
-
-**Sensors:** Lists the attribute sensors that the entity has and their values.
-
-**Effectors:** Lists the effectors that can be invoked on the selected entity.
-
-**Activity:** Current and historic activity of the entity, currently running effectors, finished effectors.
-
-**Location:** The geographical location of the selected entity.
-
-**Policies:** Lists the policies associated with the current entity. Policies can be suspended, resumed and removed through the UI.
-
-### Security
-
-Security providers can be configured by specifying `brooklyn.webconsole.security.provider` equal 
-to the name of a class implementing `SecurityProvider`.
-An implementation of this could point to Spring, LDAP, OpenID or another identity management system.
-
-The default implementation, `ExplicitUsersSecurityProvider`, reads from a list of users and passwords
-which should be specified as configuration parameters e.g. in `brooklyn.properties`.
-This configuration could look like:
-
-{% highlight properties %}
-brooklyn.webconsole.security.users=admin
-brooklyn.webconsole.security.user.admin.salt=OHDf
-brooklyn.webconsole.security.user.admin.sha256=91e16f94509fa8e3dd21c43d69cadfd7da6e7384051b18f168390fe378bb36f9
-{% endhighlight %}
-
-The `users` line should contain a comma-separated list. The special value `*` is accepted to permit all users.
-
-To generate this, the brooklyn CLI can be used:
-{% highlight bash %}
-brooklyn generate-password --user admin
-
-Enter password: 
-Re-enter password: 
-
-Please add the following to your brooklyn.properies:
-
-brooklyn.webconsole.security.users=admin
-brooklyn.webconsole.security.user.admin.salt=OHDf
-brooklyn.webconsole.security.user.admin.sha256=91e16f94509fa8e3dd21c43d69cadfd7da6e7384051b18f168390fe378bb36f9
-{% endhighlight %}
-
-For legacy and dev purposes, the password can also be stored in plain text:
-
-{% highlight properties %}
-brooklyn.webconsole.security.users=admin
-brooklyn.webconsole.security.user.admin.password=mypassword
-{% endhighlight %}
-
-If not using the web console, you can specify
-`brooklyn.webconsole.security.provider=brooklyn.rest.security.provider.BlackholeSecurityProvider` to prevent inadvertant logins.
-During dev/test you can specify `brooklyn.webconsole.security.provider=brooklyn.rest.security.provider.AnyoneSecurityProvider`
-to allow logins with no credentials. 
-
-To enable https, you will need a server certificate in a java keystore. To create a self-signed certificate, you can use the
-following command:
-
-`keytool -genkey -keyalg RSA -alias brooklyn -keystore <path-to-keystore-directory>/server.key -storepass mypassword -validity 360 -keysize 2048`
-
-You will then be prompted to enter you name and organization details. This will create a keystore with the password `mypassword`
-- you should use your own secure password, which will be the same password used in your brooklyn.properties (below). 
-You will also need to replace `<path-to-keystore-directory>` with the full path of the folder where you wish to store your
-keystore. 
-
-The certificate generated will be a self-signed certificate and will not have a CN field identifying the website server 
-name, which will cause a warning to be displayed by the browser when viewing the page. For production servers, a valid signed 
-certificate from a trusted certifying authority should be used instead
-
-To enable HTTPS in Brooklyn, add the following to your brooklyn.properties:
-
-```
-# HTTPS
-brooklyn.webconsole.security.https.required=true
-brooklyn.webconsole.security.keystore.url=<path-to-keystore-directory>/server.key
-brooklyn.webconsole.security.keystore.password=mypassword
-brooklyn.webconsole.security.keystore.certificate.alias=brooklyn
-```
-
-In order to access the Brooklyn console, you will also need to enable security, and setup a user as described above
-
-<a name="observation-other"></a>
-Other Ways to Observe Activity
-------------------------------
-
-### Java API
-
-``ManagementContext`` provides a Java programmatic API. 
-
-More information can be found in the javadoc for ``ManagementContext``.
-
-### Command-line Console
-
-*Not available yet.*
-
-### Management REST API
-
-Brooklyn does not yet expose a REST API. This was to allow the APi to be designed to align with emerging standards.
-
-Selected management operations are possible remotely using links exposed by the GUI (after authenticating with the GUI).
-
-### Logging
-
-Brooklyn uses the SLF4J logging facade,  which allows use of many popular frameworks including java.util.logging, log4j, and logback.
-
-The convention for log levels is as follows:
-* ERROR and above:  exceptional situations which indicate that something has unexpectedly failed or
-some other problem has occured which the user is expected to attend to
-* WARN:  exceptional situations which the user may which to know about but which do not necessarily indicate failure or require a response
-* INFO:  a synopsis of activity, but which should not generate large volumes of events nor overwhelm a human observer
-* DEBUG and lower:  detail of activity which is not normally of interest, but which might merit closer inspection under certain circumstances.
-
-Loggers follow the ``package.ClassName`` naming standard.  
-
-It is possible for entities to emit logging activity sensors so that an operator can observe what is occurring within their application through the web console or via programmatic means.
-
-Examples for testing can be found in some of the poms.
-
-
-<!---
-
-<a name="distributed-management"></a>
-Distributed Management
-----------------------
-
-TODO Describe how and when objects become "live", pushed out to other nodes.
--->
-
-<!---
-
-<a name="resilience"></a>
-Resilience
-----------
-TODO
-*This section still needs to be written. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
--->
-
-
-<a name="key-apis"></a>
-Key APIs
---------
-<!---
-TODO - brief overview of key APIs
--->
-*This section still needs to be written. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
-
-- ``ManagementContext`` (Java management API)
-- ``EntityLocal`` (used by policies)
-
-
-<!---
-TODO - describe how to simply configure logging slf4j
--->
-<a name="sensors-and-effectors"></a>
-Sensors and Effectors
----------------------
-
-### Sensors
-
-Sensors are typically defined as static named fields on the Entity subclass. These define the channels of events and activity that interested parties can track remotely. For example:
-{% highlight java %}
-/** a sensor for saying hi (illustrative), carrying a String value 
-	which is typically the name of the person to whom we are saying hi */
-public static final Sensor<String> HELLO_SENSOR = ...
-
-{% endhighlight %}
-
-If the entity is local (e.g. to a policy) these can be looked up using ``get(Sensor)``. If it may be remote, you can subscribe to it through various APIs.
-
-<!---
-TODO probably say about events now, quick reference about SubscriptionManager (either here or in next section on management context)
-TODO remaining section on Sensors perhaps should be moved to Writing Entities section? as reader won't need to know too much detail of sensor types to understand policies... though perhaps saying some is right. (Talking about JSON is almost certainly overkill...)
--->
-
-Sensors are used by operators and policies to monitor health and know when to invoke the effectors. The sensor data forms a nested map (i.e. JSON), which can be subscribed to through the ``ManagementContext``.
-
-Often ``Policy`` instances will subscribe to sensor events on their associated entity or its children; these events might be an ``AttributeValueEvent`` – an attribute value being reported on change or periodically – or something transient such as ``LogMessage`` or a custom ``Event`` such as "TOO_HOT".
-
-<!---
-TODO check classes above; is this much detail needed here?
--->
-
-Sensor values form a map-of-maps. An example of some simple sensor information is shown below in JSON:
-		
-	{
-	  config : {
-		url : "jdbc:mysql://ec2-50-17-19-65.compute-1.amazonaws.com:3306/mysql"
-		status : "running"
-	  }
-	  workrate : {
-		msgsPerSec : 432
-	  }
-	}
-
-Sensor values are defined as statics, which can be used to programmatically drive the subscription.
-<!---
-TODO , etc., example
--->
-
-### SubscriptionManager
-
-*This section is not complete. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
-
-*See the* ``SubscriptionManager`` *class.*
-<!---
-TODO
--->
-
-### Effectors
-
-Like sensors and config info, effectors are also static fields on the Entity class. These describe actions available on the entity, similar to methods. Their implementation includes details of how to invoke them, typically this is done by calling a method on the entity. Effectors are typically defined as follows:
-
-{% highlight java %}
-/** an effector which returns no value,
-	but which causes the entity to emit a HELLO sensor event */
-public static Effector<Void> SAY_HI = ...
-
-{% endhighlight %}
-
-Effectors are invoked by calling ``invoke(SAY_HI, name:"Bob")`` or similar. The method may take an entity if context is not clear, and it takes parameters as named parameters or a Map.
-
-Invocation returns a ``Task`` object (extending ``Future``). This allows the caller to understand progress and errors on the task, as well as ``Task.get()`` the return value. Be aware that ``task.get()`` is a blocking function that will wait until a value is available before returning.
-
-The management framework ensures that execution occurs on the machine where the ``Entity`` is mastered, with progress, result, and/or any errors reported back to the caller. It does this through the ``ExecutionManager`` which, where necessary, creates proxy ``Task`` instances. The ``ExecutionManager`` associates ``Tasks`` with the corresponding ``Entity`` so that these can be tracked externally (and relocated if the Entity is remastered to a different location).
-
-It is worth noting that where a method corresponds to an effector, direct invocation of that method on an ``Entity`` will implicitly generate the ``Task`` object as though the effector had been invoked. For example, invoking ``Cluster.resize(int)``, where ``resize`` provides an ``Effector RESIZE``, will generate a ``Task`` which can be observed remotely.
-
-### ExecutionManager
-
-The ``ExecutionManager`` is responsible for tracking simultaneous executing tasks and associating these with given **tags**.
-Arbitrary tasks can be run by calling ``Task submit(Runnable)`` (similarly to the standard ``Executor``, although it also supports ``Callable`` arguments including Groovy closures, and can even be passed ``Task`` instances which have not been started). ``submit`` also accepts a few other named parameters, including ``description``, which allow additional metadata to be kept on the ``Task``. The main benefit then is to have rich metadata for executing tasks, which can be inspected through methods on the ``Task`` interface.
-
-By using the ``tag`` or ``tags`` named parameters on ``submit`` (or setting ``tags`` in a ``Task`` that is submitted), execution can be associated with various categories. This allows easy viewing can be examined by calling
-``ExecutionManager.getTasksWithTag(...)``.
-
-The following example uses Groovy, with time delays abused for readability. brooklyn's test cases check this using mutexes, which is recommended.
-	
-	ExecutionManager em = []
-	em.submit(tag:"a", description:"One Mississippi", { Thread.sleep(1000) })
-	em.submit(tags:["a","b"], description:"Two Mississippi", { Thread.sleep(1000) })
-	assert em.getTasksWithTag("a").size()==2
-	assert em.getTasksWithTag("a").every { Task t -> !t.isDone() }
-	Thread.sleep(1500)
-	assert em.getTasksWithTag("a").size()==2
-	assert em.getTasksWithTag("a").every { Task t -> t.isDone() }
-
-It is possible to define ParallelTasks and SequentialTasks and to specify inter-task relationships with TaskPreprocessors. This allows building quite sophisticated workflows relatively easily. 
-
-Continuing the example above, submitting a SequentialTasks or specifying ``em.setTaskPreprocessorForTag("a", SingleThreadedExecution.class)`` will cause ``Two Mississippi`` to run after ``One Mississippi`` completes.
-
-For more information consult the javadoc on these classes and associated tests.
-
-Note that it is currently necessary to prune dead tasks, either periodically or by the caller. By default they are kept around for reference. It is expected that an enhancement in a future release will allow pruning completed and failed tasks after a specified amount of time.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/management/toc.json
----------------------------------------------------------------------
diff --git a/docs/use/guide/management/toc.json b/docs/use/guide/management/toc.json
deleted file mode 100644
index f470c2d..0000000
--- a/docs/use/guide/management/toc.json
+++ /dev/null
@@ -1,18 +0,0 @@
-[{ "title": "Introduction",
-  "file":  "{{ site.url }}/use/guide/management/index.html#introduction" }, 
-{ "title": "Startup Configuration",
-  "file":  "{{ site.url }}/use/guide/management/index.html#startup-config" },
-{ "title": "Command Line Interface",
-  "file":  "{{ site.url }}/use/guide/management/index.html#cli" },
-{ "title": "Management Web Console",
-  "file":  "{{ site.url }}/use/guide/management/index.html#console" }, 
-{ "title": "Observation APIs",
-  "file":  "{{ site.url }}/use/guide/management/index.html#observation-other" }, 
-{ "title": "Distributed Management",
-  "file":  "{{ site.url }}/use/guide/management/index.html#distributed-management" }, 
-{ "title": "Resilience",
-  "file":  "{{ site.url }}/use/guide/management/index.html#resilience" }, 
-{ "title": "Key APIs",
-  "file":  "{{ site.url }}/use/guide/management/index.html#key-apis" }, 
-{ "title": "Sensors and Effectors",
-  "file":  "{{ site.url }}/use/guide/management/index.html#sensors-and-effectors" }]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/management/webconsole-dashboard-w400.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/management/webconsole-dashboard-w400.png b/docs/use/guide/management/webconsole-dashboard-w400.png
deleted file mode 100644
index 6364dc5..0000000
Binary files a/docs/use/guide/management/webconsole-dashboard-w400.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/management/webconsole-dashboard.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/management/webconsole-dashboard.png b/docs/use/guide/management/webconsole-dashboard.png
deleted file mode 100644
index cac5567..0000000
Binary files a/docs/use/guide/management/webconsole-dashboard.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/management/webconsole-detail-w400.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/management/webconsole-detail-w400.png b/docs/use/guide/management/webconsole-detail-w400.png
deleted file mode 100644
index b372e55..0000000
Binary files a/docs/use/guide/management/webconsole-detail-w400.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/management/webconsole-detail.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/management/webconsole-detail.png b/docs/use/guide/management/webconsole-detail.png
deleted file mode 100644
index 17829cd..0000000
Binary files a/docs/use/guide/management/webconsole-detail.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/persistence/index.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/persistence/index.md b/docs/use/guide/persistence/index.md
deleted file mode 100644
index 8cd063b..0000000
--- a/docs/use/guide/persistence/index.md
+++ /dev/null
@@ -1,289 +0,0 @@
----
-title: Persistence
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide]
-
----
-<a name="introduction"></a>
-Brooklyn can be configured to persist its state so that the Brooklyn server can be restarted, 
-or so that a high availability standby server can take over.
-
-Brooklyn can persist its state to one of two places: the file system, or to an Object Store
-of your choice.
-
-<a name="command-line-options"></a>
-Command Line Options
---------------------
-
-To configure brooklyn, the relevant command line options for the `launch` commands are:
-
-* `--persist` <persistence mode>
-  The persistence mode.
-* `--persistenceDir` <persistence dir>
-  The directory to read/write persisted state (or container name if using an object store).
-* `--persistenceLocation` <persistence location>
-  The location spec for an object store to read/write persisted state.
-
-For the persistence mode, the possible values are:
-
-* `disabled` means that no state will be persisted or read; when Brooklyn stops all state is lost.
-* `rebind` means that it will read existing state, and recreate entities, locations and policies 
-  from that. If there is no existing state, startup will fail.
-* `clean` means that any existing state will be deleted, and Brooklyn will be started afresh.
-* `auto` means Brooklyn will rebind if there is any existing state, or will start afresh if 
-  there is no state.
-
-The persistence directory and location can instead be specified from `brooklyn.properties` using
-the following config keys:
-
-* `brooklyn.persistence.dir`
-* `brooklyn.persistence.location.spec`
-
-
-<a name="file-based-persistence"></a>
-File-based Persistence
-----------------------
-
-To persist to the file system, start brooklyn with:
-
-{% highlight bash %}
-brooklyn launch --persist auto --persistenceDir /path/to/myPersistenceDir
-{% endhighlight %}
-
-If there is already data at `/path/to/myPersistenceDir`, then a backup of the directory will 
-be made. This will have a name like `/path/to/myPersistenceDir.20140701-142101345.bak`.
-
-The state is written to the given path. The file structure under that path is:
-
-* `./entities/`
-* `./locations/`
-* `./policies/`
-* `./enrichers/`
-
-In each of those directories, an XML file will be created per item - for example a file per
-entity in ./entities/. This file will capture all of the state - for example, an
-entity's: id; display name; type; config; attributes; tags; relationships to locations, child 
-entities, group membership, policies and enrichers; and dynamically added effectors and sensors.
-
-
-<a name="object-store-persistence"></a>
-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.
-
-To configure the Object Store, add the credentials to `~/.brooklyn/brooklyn.properties` such as:
-
-{% highlight properties %}
-brooklyn.location.named.aws-s3-eu-west-1:aws-s3:eu-west-1
-brooklyn.location.named.aws-s3-eu-west-1.identity=ABCDEFGHIJKLMNOPQRSTU
-brooklyn.location.named.aws-s3-eu-west-1.credential=abcdefghijklmnopqrstuvwxyz1234567890ab/c
-{% endhighlight %} 
-
-or:
-
-{% highlight properties %}
-brooklyn.location.named.softlayer-swift-ams01=jclouds:swift:https://ams01.objectstorage.softlayer.net/auth/v1.0
-brooklyn.location.named.softlayer-swift-ams01.identity=ABCDEFGHIJKLM:myname
-brooklyn.location.named.softlayer-swift-ams01.credential=abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12
-{% endhighlight %} 
-
-Start Brooklyn pointing at this target object store, e.g.:
-
-{% highlight bash %}
-brooklyn launch --persist auto --persistenceDir myContainerName --persistenceLocation named:softlayer-swift-ams01
-{% endhighlight %}
-
-
-<a name="rebind"></a>
-Rebind
-------
-
-When Brooklyn starts up pointing at existing state, it will recreate the entities, locations 
-and policies based on that persisted state.
-
-Once all have been created, Brooklyn will "manage" the entities. This will bind to the 
-underlying entities under management to update the each entity's sensors (e.g. to poll over 
-HTTP or JMX). This new state will be reported in the web-console and can also trigger 
-any registered policies.
-
-
-<a name="copy-state"></a>
-Copying Persistence State
--------------------------
-
-Brooklyn includes a command to copy persistence state easily between two locations.
-The `copy-state` CLI command takes the following arguments:
-
-* `--persistenceDir` <source persistence dir>
-  The directory to read persisted state (or container name if using an object store).
-* `--persistenceLocation` <source persistence location>
-  The location spec for an object store to read persisted state.
-* `--destinationDir` <target persistence dir>
-  The directory to copy persistence data to (or container name if using an object store).
-* `--destinationLocation` <target persistence location>
-  The location spec for an object store to copy data to.
-* `--transformations` <transformations>
-  The local transformations file to be applied to the copy of the data before uploading it.
-
-
-<a name="handling-rebind-failures"></a>
-Handling Rebind Failures
-------------------------
-If rebind were to fail for any reason, details of the underlying failures will be reported 
-in the brooklyn.debug.log. There are several approaches to resolving problems.
-
-<a name="rebind-failures-determine-underlying-cause"></a>
-### Determine Underlying Cause
-
-The problems reported in brooklyn.debug.log will indicate where the problem lies - which 
-entities, locations or policies, and in what way it failed.
-
-<a name="rebind-failures-ignore-errors"></a>
-### Ignore Errors
-
-The `~/.brooklyn/brooklyn.properties` has several configuration options:
-
-{% highlight properties %}
-rebind.failureMode.danglingRef=continue
-rebind.failureMode.loadPolicy=continue
-rebind.failureMode.addPolicy=continue
-rebind.failureMode.rebind=fail_at_end
-{% endhighlight %} 
-
-For each of these configuration options, the possible values are:
-
-* `fail_fast`: stop rebind immediately upon errors; do not try to rebind other entities
-* `fail_at_end`: continue rebinding all entities, but then fail so that all errors 
-  encountered are reported
-* `continue`: log a warning, but ignore the error to continue rebinding. Depending on the 
-  type of error, this can cause serious problems later (e.g. if the state of an entity
-  was entirely missing, then all its children would be orphaned).
-
-The meaning of the configuration options is:
-
-* `rebind.failureMode.dangingRef`: if there is a reference to an entity, location or policy 
-  that is missing... whether to continue (discarding the reference) or fail.
-* `rebind.failureMode.loadPolicy`: if there is an error instantiate or reconstituting the 
-  state of a policy or enricher... whether to continue (discarding the policy or enricher) 
-  or fail.
-* `rebind.failureMode.addPolicy`: if there is an error re-adding the policy or enricher to
-  its associated entity... whether to continue (discarding the policy or enricher) 
-  or fail.
-* `rebind.failureMode.rebind`: any errors on rebind not covered by the more specific error cases described above.
-
-
-<a name="rebind-failures-seek-help"></a>
-### Seek Help
-
-Help can be found at `dev@brooklyn.incubator.apache.org`, where folk will be able to investigate 
-issues and suggest work-arounds.
-
-By sharing the persisted state (with credentials removed), Brooklyn developers will be able to 
-reproduce and debug the problem.
-
-
-<a name="rebind-failures-determine-fix-up-the-state"></a>
-### Fix-up the State
-
-The state of each entity, location, policy and enricher is persisted in XML. 
-It is thus human readable and editable.
-
-After first taking a backup of the state, it is possible to modify the state. For example,
-an offending entity could be removed, or references to that entity removed, or its XML 
-could be fixed to remove the problem.
-
-
-### Fixing with Groovy Scripts
-
-The final (powerful and dangerous!) tool is to execute Groovy code on the running Brooklyn 
-instance. If authorized, the REST api allows arbitrary Groovy scripts to be passed in and 
-executed. This allows the state of entities to be modified (and thus fixed) at runtime.
-
-If used, it is strongly recommended that Groovy scripts are run against a disconnected Brooklyn
-instance. After fixing the entities, locations and/or policies, the Brooklyn instance's 
-new persisted state can be copied and used to fix the production instance.
-
-
-<a name="high-availability"></a>
-High Availability
------------------
-
-Brooklyn will automatically run in HA mode if multiple Brooklyn instances are started
-pointing at the same persistence store.  One Brooklyn node (e.g. the first one started)
-is elected as HA master:  all *write operations* against Brooklyn entities, such as creating
-an application or invoking an effector, should be directed to the master.
-
-Once one node is running as `MASTER`, other nodes start in either `STANDBY` or `HOT_STANDBY` mode:
-
-* In `STANDBY` mode, a Brooklyn instance will monitor the master and will be a candidate
-  to become `MASTER` should the master fail. Standby nodes do *not* attempt to rebind
-  until they are elected master, so the state of existing entities is not available at
-  the standby node.  However a standby server consumes very little resource until it is
-  promoted.
-  
-* In `HOT_STANDBY` mode, a Brooklyn instance will read and make available the live state of
-  entities.  Thus a hot-standby node is available as a read-only copy.
-  As with the standby node, if a hot-standby node detects that the master fails,
-  it will be a candidate for promotion to master.
-
-To explicitly specify what HA mode a node should be in, the following CLI options are available
-for the parameter `--highAvailability`:
-
-* `disabled`: management node works in isolation; it will not cooperate with any other standby/master nodes in management plane
-* `auto`: will look for other management nodes, and will allocate itself as standby or master based on other nodes' states
-* `master`: will startup as master; if there is already a master then fails immediately
-* `standby`: will start up as lukewarm standby; if there is not already a master then fails immediately
-* `hot_standby`: will start up as hot standby; if there is not already a master then fails immediately
-
-The REST API offers live detection and control of the HA mode,
-including setting priority to control which nodes will be promoted on master failure:
-
-* `/server/ha/state`: Returns the HA state of a management node (GET),
-  or changes the state (POST)
-* `/server/ha/states`: Returns the HA states and detail for all nodes in a management plane
-* `/server/ha/priority`: Returns the HA node priority for MASTER failover (GET),
-  or sets that priority (POST)
-
-Note that when POSTing to a non-master server it is necessary to pass a `Brooklyn-Allow-Non-Master-Access: true` header.
-For example, the following cURL command could be used to change the state of a `STANDBY` node on `localhost:8082` to `HOT_STANDBY`:
-
-    curl -v -X POST -d mode=HOT_STANDBY -H "Brooklyn-Allow-Non-Master-Access: true" http://localhost:8082/v1/server/ha/state
-
-
-<a name="writing-persistable-code"></a>
-Writing Persistable Code
-------------------------
-The most common problem on rebind is that custom entity code has not been written in a way
-that can be persisted and/or rebound.
-
-The rule of thumb when implementing new entities, locations and policies is that all state
-must be persistable. All state must be stored as config or as attributes, and must be
-serializable (e.g. avoid the use of anonymous inner classes).
-
-Below is a guide for when implementing an entity in Java (or any other JVM language):
-
-* Don't store state in artibrary fields - the field will not be persisted (this is a design
-  decision, because Brooklyn cannot intercept the field being written to, so cannot know
-  when to persist).
-* Store runtime state as attributes.
-* Ensure values can be serialized. This (currently) uses xstream, which means it does not
-  need to implement `Serializable`. However, if declaring your own classes that are to be
-  persisted as state of the entity then declare them as static (or top-level) classes 
-  rather than anonymous inner classes or non-static inner classes.
-* By extending `SoftwareProcess`, entities get a lot of the rebind logic for free. For 
-  example, the default `rebind()` method will call `connectSensors()`.
-* If necessary, implement rebind. The `entity.rebind()` is called automatically by the
-  Brooklyn framework on rebind, after configuring the entity's config/attributes but before 
-  the entity is managed.
-  Note that `init()` will not be called on rebind.
-* For special cases, it is possible to call `entity.requestPerist()` which will trigger
-  asynchronous persistence of the entity.
-
-For locations, policies and enrichers they (currently) do not have attributes. However,
-config is persisted automatically. Normally the state of a policy or enricher is transient - 
-on rebind it starts afresh, for example with monitoring the performance or health metrics
-rather than relying on the persisted values.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/persistence/toc.json
----------------------------------------------------------------------
diff --git a/docs/use/guide/persistence/toc.json b/docs/use/guide/persistence/toc.json
deleted file mode 100644
index b49602e..0000000
--- a/docs/use/guide/persistence/toc.json
+++ /dev/null
@@ -1,16 +0,0 @@
-[{ "title": "Introduction",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#introduction" }, 
-{ "title": "Command Line Options",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#command-line-options" },
-{ "title": "File-based Persistence",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#file-based-persistence" },
-{ "title": "Object Store Persistence",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#object-store-persistence" }, 
-{ "title": "Rebind",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#rebind" }, 
-{ "title": "Handling Rebind Failures",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#handling-rebind-failures" }, 
-{ "title": "High Availability",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#high-availability" }, 
-{ "title": "Writing Persistable Code",
-  "file":  "{{ site.url }}/use/guide/persistence/index.html#writing-persistable-code" }]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/policies/index.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/policies/index.md b/docs/use/guide/policies/index.md
deleted file mode 100644
index 9dea286..0000000
--- a/docs/use/guide/policies/index.md
+++ /dev/null
@@ -1,129 +0,0 @@
----
-title: Policies
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide]
-
----
-<a name="introduction"></a>
-
-Policies perform the active management enabled by Brooklyn.  
-They can subscribe to entity sensors and be triggered by them or they can run periodically.
-
-<!---
-TODO, clarify below, memebers of what?
--->
-Policies can add subscriptions to sensors on any entity. Normally a policy will subscribe to its related entity, to the child entities, and/or those entities which are members.
-
-When a policy runs it can:
-
-*	perform calculations,
-*	look up other values,
-*	invoke efectors  (management policies) or,
-*	cause the entity associated with the policy to emit sensor values (enricher policies). 
-
-Entities can have zero or more ``Policy`` instances attached to them.
-
-<a name="writing-policies"></a>
-Writing Policies
-----------------
-
-### Sample Policy
-
-<!---
-TODO
--->
-
-*This section is not complete. Feel free to [fork]({{site.url}}/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.url}}/dev/code) the docs and lend a hand.*
-
-- extend ``AbstractPolicy``, or override an existing policy
-
-
-<a name="off-the-shelf-policies"></a>
-Off-the-Shelf Policies
-----------------------
-
-Policies are highly reusable as their inputs, thresholds and targets are customizable.
-
-### Management Policies
-- Resizer 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.
-
-   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.
-  
-<!---
-TODO - list some
-TODO - describe how they can be customised (briefly mention sensors)
--->
-
-
-###  Enricher Policies
-
-*	Delta
-
-	Converts absolute sensor values into a delta.
-	
-
-*	Time-weighted Delta
-
-	Converts absolute sensor values into a delta/second.
-	
-*	Rolling Mean
-
-	Converts the last *N* sensor values into a mean.
-	
-*	Rolling Time-window Mean
-
-	Converts the last *N* seconds of sensor values into a weighted mean.
-
-*	Custom Aggregating
-
-	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. 
-
-<a name="implementing-policies"></a>
-Implementing Policies
----------------------
-
-<!---
-TODO
--->
-
-*This section is not yet complete. Feel free to [fork]({{site.url}}/dev/code) the docs and lend a hand.*
-
-Please see the class* ``brooklyn.policy.Policy`` *and implementations.
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/policies/toc.json
----------------------------------------------------------------------
diff --git a/docs/use/guide/policies/toc.json b/docs/use/guide/policies/toc.json
deleted file mode 100644
index 7257dd7..0000000
--- a/docs/use/guide/policies/toc.json
+++ /dev/null
@@ -1,8 +0,0 @@
-[{ "title": "Introduction",
-  "file":  "{{ site.url }}/use/guide/policies/index.html#introduction" }, 
-{ "title": "Writing Policies",
-  "file":  "{{ site.url }}/use/guide/policies/index.html#writing-policies" },
-{ "title": "Off-the-Shelf Policies",
-  "file":  "{{ site.url }}/use/guide/policies/index.html#off-the-shelf-policies" },
-{ "title": "Implementing Policies",
-  "file":  "{{ site.url }}/use/guide/policies/index.html#implementing-policies" }]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/brooklyn.properties
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/brooklyn.properties b/docs/use/guide/quickstart/brooklyn.properties
deleted file mode 100644
index 59a6f06..0000000
--- a/docs/use/guide/quickstart/brooklyn.properties
+++ /dev/null
@@ -1,324 +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.
-#
-# This is Brooklyn's dot-properties file.
-# It should be located at "~/.brooklyn/brooklyn.properties" for automatic loading,
-# or can be specified as a CLI option with --localProperties /path/to/these.properties.
-
-##################################  Welcome!  ############################################
-
-# It's great to have you here.
-
-# Getting Started options have been pulled to the top. There's a formatting guide at the
-# very bottom.
-
-############################ Getting Started Options  ####################################
-
-## GUI Security
-
-## NOTE: in production it is highly recommended to set this, as otherwise it will not require login,
-## not will it be encrypted (though for safety if security is not set it will only bind to loopback)
-
-## Edit the name(s) and passwords as appropriate to your system:
-
-# brooklyn.webconsole.security.users=admin,bob
-# brooklyn.webconsole.security.user.admin.password=password
-# brooklyn.webconsole.security.user.bob.password=bobsword
-
-## If you prefer to run with https (on port 8443 by default), uncomment this:
-
-# brooklyn.webconsole.security.https.required=true
-
-
-# By default we have AWS set up (but with invalid credentials!).  Many, many other
-# providers are supported.
-
-## Amazon EC2 Credentials
-# These should be an "Access Key ID" and "Secret Access Key" for your account.
-# This is configured at https://console.aws.amazon.com/iam/home?#security_credential .
-
-brooklyn.location.jclouds.aws-ec2.identity = AKA_YOUR_ACCESS_KEY_ID
-brooklyn.location.jclouds.aws-ec2.credential = <access-key-hex-digits>
-
-# Beware of trailing spaces in your cloud credentials. This will cause unexpected
-# 401: unauthorized responses.
-
-## Using Other Clouds
-# 1. Cast your eyes down this document to find your preferred cloud in the Named Locations
-#    section, and the examples.
-# 2. Uncomment the relevant line(s) for your provider.
-# 3. ADD  -.identity and -.credential lines for your provider, similar to the AWS ones above,
-#    replacing 'aws-ec2' with jcloud's id for your cloud.
-
-
-## Deploying to Localhost
-## see: brooklyncentral.github.io/use/guide/locations/
-#
-## ~/.ssh/id_rsa is Brooklyn's default location
-# brooklyn.location.localhost.privateKeyFile = ~/.ssh/id_rsa
-## Passphrases are supported, but not required
-# brooklyn.location.localhost.privateKeyPassphrase = s3cr3tpassphrase
-
-## Geoscaling Service - used for the Global Web Fabric demo
-## see: brooklyncentral.github.io/use/examples/global-web-fabric/ and
-## https://www.geoscaling.com/dns2/
-## other services may take similar configuration similarly; or can usually be set in YAML
-# brooklyn.geoscaling.username = USERNAME
-# brooklyn.geoscaling.password = PASSWORD
-# brooklyn.geoscaling.primaryDomain = DOMAIN
-
-
-##########################  Getting Started Complete!  ###################################
-
-# That's it, although you may want to read through these options...
-
-################################ Brooklyn Options ########################################
-
-## Brooklyn Management Base Directory: specify where management data should be stored on this server;
-## ~/.brooklyn/ is the default but you could use something like /opt/brooklyn/state/
-## (provided this process has write permissions) 
-# brooklyn.base.dir=~/.brooklyn/
-
-## Brooklyn On-Box Directory: specify where data should be stored on managed hosts; 
-## for most locations a directory off home is the default (but using /tmp/brooklyn-user/ on localhost),
-## however you could specify something like /opt/brooklyn-managed-process/ (creation and permissions are handled)
-# onbox.base.dir=~/brooklyn-managed-process/
-
-## Additional security: Allow all - if you know what you are doing! 
-## (Or you can also plug in e.g. LDAP security etc here)
-# brooklyn.webconsole.security.provider = brooklyn.rest.security.provider.AnyoneSecurityProvider
-
-## Optionally disallow deployment to localhost (or any other location)
-# brooklyn.location.localhost.enabled=false
-
-## Scripting Behaviour
-
-## keep scripts around after running them (usually in /tmp) 
-# brooklyn.ssh.config.noDeleteAfterExec = true
-
-## Misc Cloud Settings
-## brooklyn will fail a node if the cloud machine doesn't come up, but you can tell it to retry:
-# brooklyn.location.jclouds.machineCreateAttempts = 3
-## many cloud machines don't have sufficient entropy for lots of encrypted networking, so fake it:
-# brooklyn.location.jclouds.installDevUrandom=true
-
-## Sets a minimium ram property for all jclouds locations. Recommended to avoid getting m1.micros on AWS!
-brooklyn.location.jclouds.minRam = 2048
-
-## When setting up a new cloud machine Brooklyn creates a user with the same name as the user running
-## Brooklyn on the management server, but you can force a different user here:
-# brooklyn.location.jclouds.user=brooklyn
-## And you can force a password or key (by default it will use the keys in ~/.ssh/id_rsa{,.pub}
-# brooklyn.location.jclouds.password=s3cr3t
-
-################################ Named Locations ########################################
-
-# Named locations appear in the web console. If using the command line or YAML it may be 
-# just as easy to use the jclouds:<provider> locations and specify additional properties there.
-
-## Example: AWS Virginia using Rightscale 6.3 64bit Centos AMI and Large Instances
-# brooklyn.location.named.aws-va-centos-large = jclouds:aws-ec2:us-east-1
-# brooklyn.location.named.aws-va-centos-large.imageId=us-east-1/ami-7d7bfc14
-# brooklyn.location.named.aws-va-centos-large.user=brooklyn
-# brooklyn.location.named.aws-va-centos-large.minRam=4096
-
-## You can also nest these:
-# brooklyn.location.named.aws-acct-two = jclouds:aws-ec2
-# brooklyn.location.named.aws-acct-two.identity = AKA_ACCT_TWO
-# brooklyn.location.named.aws-acct-two.credential = <access-key-hex-digits>
-# brooklyn.location.named.aws-acct-two-singapore = named:aws-acct-two
-# brooklyn.location.named.aws-acct-two-singapore.region = ap-southeast-1
-# brooklyn.location.named.aws-acct-two-singapore.displayName = AWS Singapore (Acct Two)
-
-# For convenience some common defaults:
-brooklyn.location.named.aws-california = jclouds:aws-ec2:us-west-1
-brooklyn.location.named.aws-oregon = jclouds:aws-ec2:us-west-2
-brooklyn.location.named.aws-ireland = jclouds:aws-ec2:eu-west-1
-brooklyn.location.named.aws-tokyo = jclouds:aws-ec2:ap-northeast-1
-
-## Google Compute
-## Note at present you have to create and download the P12 key from the Google "APIs & auth -> Registered Apps" interface,
-## then convert to PEM private key format using  `openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes`
-## then embed that on one line as the 'credential, replacing new lines with \n as below
-## (hopefully this will be improved in jclouds in the future)
-# brooklyn.location.jclouds.google-compute-engine.identity=1234567890-somet1mesArand0mU1Dhere@developer.gserviceaccount.com
-# brooklyn.location.jclouds.google-compute-engine.credential=-----BEGIN PRIVATE KEY----- \nMIIblahablahblah \nblahblahblah \n-----END PRIVATE KEY-----
-# brooklyn.location.named.Google\ US = jclouds:google-compute-engine
-# brooklyn.location.named.Google\ US.region=us-central1-a
-# brooklyn.location.named.Google\ EU = jclouds:google-compute-engine
-# brooklyn.location.named.Google\ EU.region=europe-west1-a
-## the following flags for GCE are recommended
-## specify the network to use - otherwise it creates new networks each time and you hit quotas pretty quickly
-## you may have to manually create this network AND enable a firewall rule EG  tcp:1-65535;udp:1-65535;icmp  
-## (fix for this is in progress)
-# brooklyn.location.jclouds.google-compute-engine.networkName=brooklyn-default-network
-## gce images have bad entropy, this ensures they have noisy /dev/random (even if the "randomness" is not quite as random)
-# brooklyn.location.jclouds.google-compute-engine.installDevUrandom=true
-## gce images often start with iptables turned on; turn it off 
-# brooklyn.location.jclouds.google-compute-engine.stopIptables=true
-
-## HP Cloud - also Ubuntu 12.04 LTS
-## You specify your HP Credentials like this:
-# brooklyn.location.jclouds.hpcloud-compute.identity = projectname:username
-# brooklyn.location.jclouds.hpcloud-compute.credential = password
-## where username and password are the same as logging in to the web console, and
-## projectname can be found here: https://account.hpcloud.com/projects
-#�brooklyn.location.named.HP\ Cloud\ Arizona-1 = jclouds:hpcloud-compute:az-1.region-a.geo-1
-# brooklyn.location.named.HP\ Cloud\ Arizona-1.imageId = az-1.region-a.geo-1/75845
-# brooklyn.location.named.HP\ Cloud\ Arizona-1.user = ubuntu
-
-## Softlayer - need a key from the gui, under "administrative -> user administration -> api-access 
-# brooklyn.location.jclouds.softlayer.identity=username
-# brooklyn.location.jclouds.softlayer.credential=<private-key-hex-digits>
-## locations
-# brooklyn.location.named.Softlayer\ Dallas=jclouds:softlayer:dal05
-# brooklyn.location.named.Softlayer\ Seattle=jclouds:softlayer:sea01
-# brooklyn.location.named.Softlayer\ Washington\ DC=jclouds:softlayer:wdc01
-# brooklyn.location.named.Softlayer\ Singapore\ 1=jclouds:softlayer:sng01
-# brooklyn.location.named.Softlayer\ Amsterdam\ 1=jclouds:softlayer:ams01
-
-
-## Brooklyn uses the jclouds multi-cloud library to access many clouds.
-## http://www.jclouds.org/documentation/reference/supported-providers/
-
-## Templates for many other clouds, but remember to add identity and credentials:
-
-# brooklyn.location.named.Bluelock = jclouds:bluelock-vcloud-zone01
-
-# brooklyn.location.named.CloudSigma\ Nevada = jclouds:cloudsigma-lvs
-# brooklyn.location.named.CloudSigma\ Zurich = jclouds:cloudsigma-zrh
-
-# brooklyn.location.named.ElasticHosts\ London = jclouds:elastichosts-lon-p
-# brooklyn.location.named.ElasticHosts\ Texas = jclouds:elastichosts-sat-p
-
-# brooklyn.location.named.GleSYS = jclouds:glesys
-
-# brooklyn.location.named.Go2Cloud = jclouds:go2cloud-jhb1
-
-# brooklyn.location.named.GoGrid = jclouds:gogrid
-
-# brooklyn.location.named.Green\ House\ Data = jclouds:greenhousedata-element-vcloud
-
-# brooklyn.location.named.Ninefold = jclouds:ninefold-compute
-
-# brooklyn.location.named.OpenHosting = jclouds:openhosting-east1
-
-# brooklyn.location.named.Rackspace\ Chicago\ (ord) = jclouds:rackspace-cloudservers-us:ORD
-# brooklyn.location.named.Rackspace\ Dallas\ (dfw) = jclouds:rackspace-cloudservers-us:DFW
-# brooklyn.location.named.Rackspace\ Hong\ Kong\ (hkg) = jclouds:rackspace-cloudservers-us:HKG
-# brooklyn.location.named.Rackspace\ Northern\ Virginia\ (iad) = jclouds:rackspace-cloudservers-us:IAD
-# brooklyn.location.named.Rackspace\ Sydney\ (syd) = jclouds:rackspace-cloudservers-us:SYD
-## for UK you will need a separate account with rackspace.co.uk
-# brooklyn.location.named.Rackspace\ London\ (lon) = jclouds:rackspace-cloudservers-uk
-
-## if you need to use Rackspace "first gen" API
-## (note the "next gen" api configured above seems to be faster)
-# brooklyn.location.jclouds.cloudservers-us.identity = YOURAPIKEY
-# brooklyn.location.jclouds.cloudservers-us.credential = YOURSECRETKEY
-# brooklyn.location.named.Rackspace\ US\ (First Gen) = jclouds:cloudservers-us
-## and as with next gen, first gen requires a separate acct for the UK:
-# brooklyn.location.jclouds.cloudservers-uk.identity = YOURAPIKEY
-# brooklyn.location.jclouds.cloudservers-uk.credential = YOURSECRETKEY
-# brooklyn.location.named.Rackspace\ UK\ (First Gen) = jclouds:cloudservers-uk
-
-# brooklyn.location.named.SeverLove = jclouds:serverlove-z1-man
-
-# brooklyn.location.named.SkaliCloud = jclouds:skalicloud-sdg-my
-
-# brooklyn.location.named.Stratogen = jclouds:stratogen-vcloud-mycloud
-
-# brooklyn.location.named.TryStack\ (Openstack) = jclouds:trystack-nova
-
-
-## Production pool of machines for my application (deploy to named:On-Prem\ Iron\ Example)
-# brooklyn.location.named.On-Prem\ Iron\ Example=byon:(hosts="10.9.1.1,10.9.1.2,produser2@10.9.2.{10,11,20-29}")
-# brooklyn.location.named.On-Prem\ Iron\ Example.user=produser1
-# brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyFile=~/.ssh/produser_id_rsa
-# brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyPassphrase=s3cr3tpassphrase
-
-## Various Private Clouds
-
-## Example: OpenStack Nova
-
-## openstack identity and credential are random strings of letters and numbers (TBC - still the case?)
-# brooklyn.location.named.My\ Openstack=jclouds:openstack-nova:https://9.9.9.9:9999/v2.0/
-
-## OpenStack Nova access information can be downloaded from the openstack web interface; for example, as openrc.sh file
-# brooklyn.location.named.My\ Openstack=jclouds:openstack-nova:keystone-url
-# brooklyn.location.named.My\ OpenStack.identity=your-tenant-name:your-user-name
-# brooklyn.location.named.My\ OpenStack.credential=your-password
-# brooklyn.location.named.My\ OpenStack.endpoint=your-keystone-url 
-
-## The ID of the image must be configured according to the local OpenStack settings
-## Use the command nova image-list to list all the available images
-## Use the command nova show <image-name> to get more details
-# brooklyn.location.named.My\ OpenStack.imageId=the-region-name/the-image-id
-
-## Virtual Machine flavors must match the ones created upfront according to the local OpenStack settings
-## Use the command nova flavor-list to list all the available options
-## Use the command nova flavor-show <flavor-name> to get more details
-# brooklyn.location.named.My\ OpenStack.hardwareId=the-region-name/the-flavor-id
-
-## (Optional) Configurations
-
-# brooklyn.location.named.My\ OpenStack.user=user-name-inside-the-instance
-
-## The keyPair must by created upfront. Both the following two options are required at the same time.
-# brooklyn.location.named.My\ OpenStack.keyPair=the-key-pair-name
-# brooklyn.location.named.My\ OpenStack.loginUser.privateKeyFile=/path/to/keypair.pem
-
-## Security groups must be created upfront (TBC - How to specify many security groups at one ?)
-# brooklyn.location.named.My\ OpenStack.securityGroups=universal
-
-# brooklyn.location.named.My\ OpenStack.openIptables=true
-# brooklyn.location.named.My\ OpenStack.selinux.disabled=true
-# brooklyn.location.named.My\ OpenStack.auto-create-floating-ips=true
-# brooklyn.location.named.My\ OpenStack.openstack-nova.auto-generate-keypairs=false
-
-## cloudstack identity and credential are rather long random strings of letters and numbers
-## you generate this in the cloudstack gui, under accounts, then "view users", then "generate key"
-## use the "api key" as the identity and "secret key" as the credential
-# brooklyn.location.named.My\ Cloudstack=jclouds:cloudstack:http://9.9.9.9:9999/client/api/
-
-## abiquo identity and credential are your login username/passed
-# brooklyn.location.named.My\ Abiquo=jclouds:abiquo:http://demonstration.abiquo.com/api/
-
-###############################  Formatting Guide  #######################################
-
-! Both # and ! mark lines as comments
-# The follow syntax are ALL valid.
-# example_key example_value
-# example_key : example_value
-# example_key = example_value
-# example_key=example_value
-
-# The backslash below tells Brooklyn to continue reading the value onto the next line.
-# example_key = A very \
-#          	long string!
-# Note all white space before 'long...' is ignored. Also '!' is kept as part of the string
-
-
-# Keys with spaces should be escaped with backslashes.
-# This is useful for named locations, as the name displayed in Brooklyn's web
-# interface is derived from the key name.
-# key\ with\ spaces = some\ value
-
-# Encoding for .properties must be ISO-8859-1, aka Latin-1.
-# All non-latin1 characters must be entered using unicode escape characters
-# polish_pangram = P\u00F3jd\u017A\u017Ce, ki\u0144 \
-#                  t\u0119 chmurno\u015B\u0107 w g\u0142\u0105b flaszy!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/catalog.xml
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/catalog.xml b/docs/use/guide/quickstart/catalog.xml
deleted file mode 100644
index cbb5584..0000000
--- a/docs/use/guide/quickstart/catalog.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<catalog>
-    <name>Brooklyn Demos</name>
-
-
-    <template type="brooklyn.demo.WebClusterDatabaseExample" name="Demo Web Cluster with DB">
-      <description>Deploys a demonstration web application to a managed JBoss cluster with elasticity, persisting to a MySQL</description>
-      <iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/JBoss_by_Red_Hat.png</iconUrl>
-    </template>
-
-    <template type="brooklyn.demo.GlobalWebFabricExample" name="Demo GeoDNS Web Fabric DB">
-      <description>Deploys a demonstration web application to JBoss clusters around the world</description>
-      <iconUrl>http://downloads.cloudsoftcorp.com/brooklyn/catalog/logos/JBoss_by_Red_Hat.png</iconUrl>
-    </template>
-    
-    <classpath>
-      <entry>https://oss.sonatype.org/service/local/artifact/maven/redirect?r=releases&amp;g=io.brooklyn.example&amp;a=brooklyn-example-simple-web-cluster&amp;v=0.7.0-SNAPSHOT&amp;e=jar</entry> <!-- BROOKLYN_VERSION -->
-      <entry>https://oss.sonatype.org/service/local/artifact/maven/redirect?r=releases&amp;g=io.brooklyn.example&amp;a=brooklyn-example-global-web-fabric&amp;v=0.7.0-SNAPSHOT&amp;e=jar</entry> <!-- BROOKLYN_VERSION -->
-    </classpath>
-
-
-</catalog>
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-large.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-large.png b/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-large.png
deleted file mode 100644
index b566b1a..0000000
Binary files a/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location-large.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location-large.png b/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location-large.png
deleted file mode 100644
index 05e9b0c..0000000
Binary files a/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location.png b/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location.png
deleted file mode 100644
index c13fdd8..0000000
Binary files a/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db-location.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db.png b/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db.png
deleted file mode 100644
index ebb6f42..0000000
Binary files a/docs/use/guide/quickstart/images/add-application-catalog-web-cluster-with-db.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/add-application-modal-yaml.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/add-application-modal-yaml.png b/docs/use/guide/quickstart/images/add-application-modal-yaml.png
deleted file mode 100644
index c50b7ab..0000000
Binary files a/docs/use/guide/quickstart/images/add-application-modal-yaml.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/jboss7-cluster-policies-large.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/jboss7-cluster-policies-large.png b/docs/use/guide/quickstart/images/jboss7-cluster-policies-large.png
deleted file mode 100644
index 3d84477..0000000
Binary files a/docs/use/guide/quickstart/images/jboss7-cluster-policies-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/jboss7-cluster-policies.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/jboss7-cluster-policies.png b/docs/use/guide/quickstart/images/jboss7-cluster-policies.png
deleted file mode 100644
index 2f85328..0000000
Binary files a/docs/use/guide/quickstart/images/jboss7-cluster-policies.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/my-db-activities-large.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/my-db-activities-large.png b/docs/use/guide/quickstart/images/my-db-activities-large.png
deleted file mode 100644
index c214d9e..0000000
Binary files a/docs/use/guide/quickstart/images/my-db-activities-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/my-db-activities.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/my-db-activities.png b/docs/use/guide/quickstart/images/my-db-activities.png
deleted file mode 100644
index 0f2327c..0000000
Binary files a/docs/use/guide/quickstart/images/my-db-activities.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/my-web-cluster-starting.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/my-web-cluster-starting.png b/docs/use/guide/quickstart/images/my-web-cluster-starting.png
deleted file mode 100644
index c389b0b..0000000
Binary files a/docs/use/guide/quickstart/images/my-web-cluster-starting.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/my-web-cluster-stop-confirm-large.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/my-web-cluster-stop-confirm-large.png b/docs/use/guide/quickstart/images/my-web-cluster-stop-confirm-large.png
deleted file mode 100644
index c9bdab6..0000000
Binary files a/docs/use/guide/quickstart/images/my-web-cluster-stop-confirm-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/my-web-cluster-stop-confirm.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/my-web-cluster-stop-confirm.png b/docs/use/guide/quickstart/images/my-web-cluster-stop-confirm.png
deleted file mode 100644
index 179b00a..0000000
Binary files a/docs/use/guide/quickstart/images/my-web-cluster-stop-confirm.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/my-web-summary-large.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/my-web-summary-large.png b/docs/use/guide/quickstart/images/my-web-summary-large.png
deleted file mode 100644
index fc4bffe..0000000
Binary files a/docs/use/guide/quickstart/images/my-web-summary-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/my-web-summary.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/my-web-summary.png b/docs/use/guide/quickstart/images/my-web-summary.png
deleted file mode 100644
index e85752f..0000000
Binary files a/docs/use/guide/quickstart/images/my-web-summary.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/images/my-web.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/images/my-web.png b/docs/use/guide/quickstart/images/my-web.png
deleted file mode 100644
index 2bd6ac3..0000000
Binary files a/docs/use/guide/quickstart/images/my-web.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/index.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/index.md b/docs/use/guide/quickstart/index.md
deleted file mode 100644
index 150a163..0000000
--- a/docs/use/guide/quickstart/index.md
+++ /dev/null
@@ -1,221 +0,0 @@
----
-title: Getting Started
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide]
----
-
-{% include fields.md %}
-
-This guide will walk you through deploying an application to a public cloud.
-
-We will be deploying an example 3-tier web application, described using this blueprint: 
-
-{% highlight yaml %}
-{% readj my-web-cluster.yaml %}
-{% endhighlight %}
-
-(This is written in YAML, following the [camp specification](https://www.oasis-open.org/committees/camp/). )
-
-
-## Install Brooklyn
-
-Download the [Brooklyn distribution]({{ this_dist_url_tgz }}) and expand it to your home directory ( `~/` ), or in a location of your choice. (Other [download options]({{site.url}}/start/download.html) are available.)
-
-{% if site.brooklyn-version contains 'SNAPSHOT' %}
-Expand the `tar.gz` archive (note: as this is a -SNAPSHOT version, your filename will be slightly different):
-{% else %}
-Expand the `tar.gz` archive:
-{% endif %}
-
-{% if site.brooklyn-version contains 'SNAPSHOT' %}
-{% highlight bash %}
-$ tar -zxf brooklyn-dist-{{ site.brooklyn-version }}-timestamp-dist.tar.gz
-{% endhighlight %}
-{% else %}
-{% highlight bash %}
-$ tar -zxf brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz
-{% endhighlight %}
-{% endif %}
-
-This will create a `brooklyn-{{ site.brooklyn-version }}` folder.
-
-Note: You'll need a Java JRE or SDK installed (version 6 or later), as Brooklyn is Java under the covers.
-
-## Launch Brooklyn
-
-Let's setup some paths for easy commands.
-
-(Click the clipboard on these code snippets for easier c&p.)
-
-{% highlight bash %}
-$ cd brooklyn-{{ site.brooklyn-version }}
-$ BROOKLYN_DIR="$(pwd)"
-$ export PATH=$PATH:$BROOKLYN_DIR/bin/
-{% endhighlight %}
-
-We can do a quick test drive by launching Brooklyn:
-
-{% highlight bash %}
-$ brooklyn launch
-{% endhighlight %}
-
-Brooklyn will output the address of the management interface:
-
-    INFO  Starting brooklyn web-console on loopback interface because no security config is set
-    INFO  Started Brooklyn console at http://127.0.0.1:8081/, running classpath://brooklyn.war and []
-
-But before we really use Brooklyn, we need to configure security and locations.
-In particular, if you are running on a remote server, you'll notice that Brooklyn has
-bound only to the loopback device, not a public network interface, and you won't be able
-to access the server. This is for security reasons; you can override by passing `-b 0.0.0.0`,
-or once you have configured security it will automatically bind to all interfaces by default.
- 
-Stop Brooklyn with ctrl-c, or in the web-browser (under "Help"), or with `kill`.
-(The PID is written to a file in the directory where you launch.) 
-
-
-<a name="properties"></a>
-## Configuring Brooklyn with brooklyn.properties
-
-Brooklyn reads startup configuration from a file `~/.brooklyn/brooklyn.properties`, by default.
-You can create this from a template [brooklyn.properties](brooklyn.properties) file which you edit;
-this file can be installed with:
-
-{% highlight bash %}
-$ mkdir ~/.brooklyn
-$ cd ~/.brooklyn
-$ wget {{site.url}}/use/guide/quickstart/brooklyn.properties
-{% endhighlight %}
-
-Open this file in a text editor and follow the instructions there. The main settings are summarized below:
-
-<a name="security"></a>
-## Configuring Security
-
-To configure Brooklyn to run on a public IP address, security should be enabled.
-The simplest way is to define a user and password in `~/.brooklyn/brooklyn.properties`
-(described above): 
-
-    brooklyn.webconsole.security.users=admin
-    brooklyn.webconsole.security.user.admin.password=s3cr3t
-
-Other modes, including LDAP, are described in this file.
-
-The other common setting is to run under https (on port 8443 by default):
-
-    brooklyn.webconsole.security.https.required=true
-
-These settings require a restart to Brooklyn.
-
-
-<a name="location"></a>
-## Configuring a Location
-
-Brooklyn deploys applications to ``locations''. These locations
-can be clouds, machines with fixed IPs or localhost (for testing).
-Their configuration can be specified in `~/.brooklyn/brooklyn.properties` (described above),
-and then these locations can be easily selected within Brooklyn.
-Alternatively this information can be specified in the YAML when applications are deployed,
-without needing to set it in `brooklyn.properties`.
-
-Some sample settings for this are:
-
-    brooklyn.location.jclouds.aws-ec2.identity = AKA_YOUR_ACCESS_KEY_ID
-    brooklyn.location.jclouds.aws-ec2.credential = <access-key-hex-digits>
-    brooklyn.location.named.aws-california = jclouds:aws-ec2:us-west-1
-    brooklyn.location.named.aws-california.displayName = AWS US West 1 (CA)
-
-    brooklyn.location.jclouds.softlayer.identity = username
-    brooklyn.location.jclouds.softlayer.credential = <private-key-hex-digits>
-    brooklyn.location.named.softlayer-dal05 = jclouds:softlayer:dal05
-    brooklyn.location.named.softlayer-dal05.displayName = Softlayer Dallas
-
-If you want to test Brooklyn on localhost, follow [these instructions]({{site.url}}/use/guide/locations/) 
-to ensure that your Brooklyn can access your machine.
-
-Once updated, restart Brooklyn (or reload the properties within the web GUI).
-
-
-## Launching an Application in Brooklyn
-
-There are several ways to deploy a YAML blueprint (including specifying the blueprint on the command line or submitting it via the REST API).
-
-For now, we will simply copy-and-paste the raw YAML blueprint into the web console.
-
-Open the web console ([127.0.0.1:8081](http://127.0.0.1:8081)). As Brooklyn is not currently managing any applications the 'Create Application' dialog opens automatically. Select the YAML tab.
-
-![Brooklyn web console, showing the YAML tab of the Add Application dialog.](images/add-application-modal-yaml.png)
-
-
-### Chose your Cloud / Location
-
-Edit the 'location' parameter in the YAML template (repeated below) to use the location you configured.
-
-For example, replace:
-{% highlight yaml %}
-location: location
-{% endhighlight %}
-
-with (one of):
-{% highlight yaml %}
-location: aws-ec2:us-east-1
-location: rackspace-cloudservers-us:ORD
-location: google-compute-engine:europe-west1-a
-location: localhost
-{% endhighlight %}
-
-**My Web Cluster Blueprint**
-
-{% highlight yaml %}
-{% readj my-web-cluster.yaml %}
-{% endhighlight %}
-
-Paste the modified YAML into the dialog and click 'Finish'.
-The dialog will close and Brooklyn will begin deploying your application.
-
-Your application will be shown as 'Starting' on the web console's front page.
-
-![My Web Cluster is STARTING.](images/my-web-cluster-starting.png)
-
-
-## Monitoring and Managing Applications
-
-Click on the application name, or open the Applications tab.
-
-We can explore the management hierarchy of the application, which will show us the entities it is composed of.
-
- * My Web Cluster (A `BasicApplication`)
-     * My DB (A `MySqlNode`)
-     * My Web (A `ControlledDynamicWebAppCluster`)
-        * Cluster of JBoss7 Servers (A `DynamicWebAppCluster`)
-        * NginxController (An `NginxController`)
-
-
-
-Clicking on the 'My Web' entity will show the Summary tab. Here we can see if the cluster is ready to serve and, when ready, grab the web address for the front of the loadbalancer.
-
-![Exploring My Web.](images/my-web.png)
-
-
-The Activity tab allows us to drill down into what activities each entity is currently doing or has recently done. It is possible to drill down to all child tasks, and view the commands issued, and any errors or warnings that occured.
-
-Drill into the 'My DB' start operation. Working down through  'Start (processes)', then 'launch', we can discover the ssh command used including the stdin, stdout and stderr.
-
-[![My DB Activities.](images/my-db-activities.png)](images/my-db-activities-large.png)
-
-
-## Stopping the Application
-
-To stop an application, select the application in the tree view (the top/root entity), click on the Effectors tab, and invoke the 'Stop' effector. This will cleanly shutdown all components in the application and return any cloud machines that were being used.
-
-[![My DB Activities.](images/my-web-cluster-stop-confirm.png)](images/my-web-cluster-stop-confirm-large.png)
-
-
-### Next 
-
-So far we have touched on Brooklyn's ability to *deploy* an application blueprint to a cloud provider, but this a very small part of Brooklyn's capabilities!
-
-Brooklyn's real power is in using Policies to automatically *manage* applications. There is also the (very useful) ability to store a catalog of application blueprints, ready to go.
-
-[Getting Started - Policies and Catalogs](policies-and-catalogs.html)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/quickstart/my-web-cluster.yaml
----------------------------------------------------------------------
diff --git a/docs/use/guide/quickstart/my-web-cluster.yaml b/docs/use/guide/quickstart/my-web-cluster.yaml
deleted file mode 100644
index bbafa00..0000000
--- a/docs/use/guide/quickstart/my-web-cluster.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: My Web Cluster
-location: location
-services:
-
-- serviceType: 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/{{ site.brooklyn-version }}/brooklyn-example-hello-world-sql-webapp-{{ site.brooklyn-version }}.war
-    java.sysprops:
-      brooklyn.example.db.url: >
-        $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
-        component("db").attributeWhenReady("datastore.url"),
-        "visitors", "brooklyn", "br00k11n")
-
-- serviceType: brooklyn.entity.database.mysql.MySqlNode
-  id: db
-  name: My DB
-  brooklyn.config:
-    creationScriptUrl: https://bit.ly/brooklyn-visitors-creation-script
\ No newline at end of file


[04/50] [abbrv] incubator-brooklyn git commit: move version-specific things to "guide"

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/messaging/index.md
----------------------------------------------------------------------
diff --git a/docs/use/examples/messaging/index.md b/docs/use/examples/messaging/index.md
deleted file mode 100644
index 51fd0ae..0000000
--- a/docs/use/examples/messaging/index.md
+++ /dev/null
@@ -1,183 +0,0 @@
----
-layout: guide-normal
-title: Publish-Subscribe Messagiung
-toc: /toc.json
----
-
-This example shows how a simple messaging application can be build
-in brooklyn, starting with configuring and launching a broker. For
-these examples we will use the Apache [Qpid](http://qpid.apache.org/)
-Java AMQP message broker and clients using the
-[JMS](http://docs.oracle.com/javaee/6/tutorial/doc/bnceh.html) API.
-
-{% readj ../before-begin.include.md %}
-
-Now, go to this particular example's directory:
-
-{% highlight bash %}
-% cd simple-messaging-pubsub
-{% endhighlight %}
-
-The CLI needs to know where to find your compiled examples. You can set this up by exporting
-the ``BROOKLYN_CLASSPATH`` environment variable in the following way:
-
-{% highlight bash %}
-% export BROOKLYN_CLASSPATH=$(pwd)/target/classes
-{% endhighlight %}
-
-The project ``simple-messaging-pubsub`` includes a deployment
-descriptor for our example messaging application and simple _Publish_
-and _Subscribe_ JMS test client scripts.
-
-## Single Broker
-
-The first example will include a Qpid broker, which we will customize
-to use the Oracle [BDB](http://www.oracle.com/technetwork/products/berkeleydb/overview/index.html)
-message store as an example of a typical production setup. We will
-also create a queue for use by a pair of test clients.
-
-The ``QpidBroker`` entity is created like this, which uses the
-default configuration, specifying only the AMQP port and creates
-no queues or topics:
-
-{% highlight java %}
-public class StandaloneQpidBrokerExample extends AbstractApplication {
-    @Override
-    public void init() {
-        // Configure the Qpid broker entity
-    	QpidBroker broker = addChild(EntitySpec.create(QpidBroker.class)
-    	        .configure("amqpPort", 5672));
-    }
-}
-{% endhighlight %}
-
-To install the custom configuration files and extra libraries for
-BDB, we specify some files to copy to the broker installation, using
-the ``runtimeFiles`` property. These files should be available in
-the classpath of the application when it is running, usually by
-copying them to the ``src/main/resources`` directory. For example,
-here we copy a custom XML configuration file and a new password
-file:
-
-{% highlight java %}
-        final String CUSTOM_CONFIG_PATH = "classpath://custom-config.xml";
-        final String PASSWD_PATH = "classpath://passwd";
-
-    	QpidBroker broker = addChild(EntitySpec.create(QpidBroker.class)
-    	        .configure("amqpPort", 5672)
-    	        .configure("amqpVersion", AmqpServer.AMQP_0_10)
-    	        .configure("runtimeFiles", ImmutableMap.builder()
-    	                .put(QpidBroker.CONFIG_XML, CUSTOM_CONFIG_PATH)
-    	                .put(QpidBroker.PASSWD, PASSWD_PATH)
-    	                .build()));
-{% endhighlight %}
-
-Finally, we come to the complete configuration of our ``QpidBroker``
-entity using the BDB store. The additional properties here specify
-the AMQP version and that a queue named _testQueue_ should be created
-on startup.
-
-{% highlight java %}
-        final String CUSTOM_CONFIG_PATH = "classpath://custom-config.xml";
-        final String PASSWD_PATH = "classpath://passwd";
-        final String QPID_BDBSTORE_JAR_PATH = "classpath://qpid-bdbstore-0.14.jar";
-        final String BDBSTORE_JAR_PATH = "classpath://je-5.0.34.jar";
-
-    	QpidBroker broker = addChild(EntitySpec.create(QpidBroker.class)
-    	        .configure("amqpPort", 5672)
-    	        .configure("amqpVersion", AmqpServer.AMQP_0_10)
-    	        .configure("runtimeFiles", ImmutableMap.builder()
-    	                .put(QpidBroker.CONFIG_XML, CUSTOM_CONFIG_PATH)
-    	                .put(QpidBroker.PASSWD, PASSWD_PATH)
-    	                .put("lib/opt/qpid-bdbstore-0.14.jar", QPID_BDBSTORE_JAR_PATH)
-    	                .put("lib/opt/je-5.0.34.jar", BDBSTORE_JAR_PATH)
-    	                .build())
-    	        .configure("queue", "testQueue"));
-{% endhighlight %}
-
-
-### Running the Example
-
-You can build and run the example (on *nix or Mac) after checking
-out the Brooklyn [repository](https://www.github.com/brooklyncentral/brooklyn)
-as follows:
-
-{% highlight bash %}
-% ${BROOKLYN_HOME}/bin/brooklyn -v launch --app brooklyn.demo.StandaloneQpidBrokerExample --location localhost
-{% endhighlight %}
-
-Now, visit the Brooklyn web console on port 8081 (for pre 0.6 releases,
-use the credentials admin/password). This allows you to view the Brooklyn 
-entities and their current state for debugging.
-
-Note that the installation may take some time, because the default
-deployment downloads the software from the official repos.  You can
-monitor start-up activity for each entity in the ``Activity`` pane
-in the management console, and see more detail by tailing the log
-file (``tail -f brooklyn.log``).
-
-After starting up, the demo script should display a summary of all
-the Brooklyn managed entities and their attributes. This will show
-both the Qpid broker and its child entity, the queue _testQueue_
-which was created at startup. The queue entity has sensors that
-monitor the depth of unread messages, which you can check while
-running the test client scripts later.
-
-If the ``-v`` flag is passed to the startup command, all configured
-entity and sensor details will be output. This includes the broker URL,
-which is used to configure JMS clients to connect to this broker.
-This URL can also be viewed as a sensor attribute in the web console,
-named _broker.url_.
-
-This sensor is common to _all_ messaging brokers that Brooklyn
-provides, and is usually accessed by applications to allow them to
-provide it as a parameter to other entities, as shown in the code
-fragment below.
-
-{% highlight java %}
-String url = broker.getAttribute(MessageBroker.BROKER_URL)
-{% endhighlight %}
-
-Using the URL the demo script printed, you can run the test ``Subscribe``
-and then ``Publish`` classes, to send messages using the broker. Simply
-run the commands in another window, with the provided URL as the
-only argument. Note that the URLs may be different to those printed
-below, and that any unquoted ``&`` characters *must* be escaped,
-if present.
-
-{% highlight bash %}
-% URL="amqp://guest:guest@/localhost?brokerlist='tcp://localhost:5672'"
-% java -cp "./resources/lib/*:./target/classes" brooklyn.demo.Subscribe ${URL}
-% java -cp "./resources/lib/*:./target/classes" brooklyn.demo.Publish ${URL}
-{% endhighlight %}
-
-In the _Publish_ window you should see a log message every time a
-message is sent, like this:
-
-{% highlight bash %}
-2012-05-02 14:04:38,521 INFO  Sent message 65
-2012-05-02 14:04:39,522 INFO  Sent message 66
-{% endhighlight %}
-
-Similarly, the _Subscribe_ windows should log on reciept of these
-messages, as follows:
-
-{% highlight bash %}
-2012-05-02 14:04:32,522 INFO  got message 41 test message 41
-2012-05-02 14:04:33,523 INFO  got message 42 test message 42
-{% endhighlight %}
-
-### Cloud Deployment
-
-With appropriate setup (as described
-[here]({{ site.url }}/use/guide/management/index.html#startup-config))
-this can also be deployed to your favourite cloud, let's pretend
-it's Amazon Ireland, as follows:
-
-{% highlight bash %}
-% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.StandaloneQpidBrokerExample --location aws-ec2:eu-west-1
-{% endhighlight %}
-
-If you encounter any difficulties, please
-[tell us]({{ site.url }}/meta/contact.html) and we'll do our best
-to help.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/nosql-cassandra/cassandra.include.md
----------------------------------------------------------------------
diff --git a/docs/use/examples/nosql-cassandra/cassandra.include.md b/docs/use/examples/nosql-cassandra/cassandra.include.md
deleted file mode 100644
index 8fd04ae..0000000
--- a/docs/use/examples/nosql-cassandra/cassandra.include.md
+++ /dev/null
@@ -1,282 +0,0 @@
-      
-{% readj ../before-begin.include.md %}
-
-## Simple Cassandra Cluster
-
-Go to this particular example's directory:
-
-{% highlight bash %}
-% cd simple-nosql-cluster
-{% endhighlight %}
-
-The CLI needs to know where to find your compiled examples. You can set this up by exporting
-the ``BROOKLYN_CLASSPATH`` environment variable in the following way:
-
-{% highlight bash %}
-% export BROOKLYN_CLASSPATH=$(pwd)/target/classes
-{% endhighlight %}
-
-The project ``simple-nosql-cluster`` includes several deployment descriptors
-for deploying and managing Cassandra, under ``src/main/java``.
-
-The simplest of these, ``SimpleCassandraCluster``, will start a Cassandra cluster. The code is:
-
-{% highlight java %}
-public class SimpleCassandraCluster extends AbstractApplication {
-  public void init() {
-    addChild(EntitySpec.create(CassandraCluster.class)
-        .configure(CassandraCluster.INITIAL_SIZE, 1)
-        .configure(CassandraCluster.CLUSTER_NAME, "Brooklyn"));
-  }
-}
-{% endhighlight %}
-
-To run that example on localhost (on *nix or Mac, assuming `ssh localhost` requires no password or passphrase):
-
-{% highlight bash %}
-% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.SimpleCassandraCluster \
-  --location localhost
-{% endhighlight %}
-
-Then visit the Brooklyn console on ``localhost:8081``.
-Note that the installation may take some time, because the default deployment downloads the software from
-the official repos.  You can monitor start-up activity for each entity in the ``Activity`` pane in the management console,
-and see more detail by tailing the log file (``tail -f brooklyn.log``).
-
-This example runs successfully on a local machine because ``INITIAL_SIZE`` is configured to just one node
-(a limitation of Cassandra is that every node must be on a different machine/VM).
-If you want to run with more than one node in the cluster, you'll need to use a location 
-that either points to multiple existing machines or to a cloud provider where you can 
-provision new machines.
-
-With appropriate setup of credentials (as described [here]({{ site.url }}/use/guide/management/index.html#startup-config)) 
-this example can also be deployed to your favourite cloud. Let's pretend it's Amazon US East, as follows: 
-
-{% highlight bash %}
-% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.SimpleCassandraCluster \
-  --location aws-ec2:us-east-1
-{% endhighlight %}
-
-If you want more nodes in your cluster, you can either modify the deployment descriptor (i.e. change the ``INITIAL_SIZE`` value),
-or dynamically add more nodes by calling the ``resize`` effector through the web-console. 
-To do the latter, select cluster entity in the tree on the left, then click on the "effectors" tab, and invoke ``resize`` 
-with the desired number of nodes.
-
-
-### Testing your Cluster
-
-An easy way to test your cluster is to use the ``cassandra-stress`` command line tool.
-For example, run:
-
-{% highlight bash %}
-# Substitute the id below for your VM
-NODE_IDS=ec2-54-221-69-95.compute-1.amazonaws.com
-/tmp/brooklyn-aled/installs/CassandraNode/1.2.9/apache-cassandra-1.2.9/tools/bin/cassandra-stress \
-	--nodes ${NODE_IDS} \
-    --replication-factor 1 \
-    --progress-interval 1 \
-    --num-keys 10000 \
-    --operation INSERT
-{% endhighlight %}
-
-This command will fire 10000 inserts at the cluster, via the nodes specified in the comma-separated node list. 
-If you change ``INSERT`` to ``READ``, it will read each of those 10000 values.
-
-
-## High Availability Cassandra Cluster
-
-Ready for something more interesting?  Try this:
-
-{% highlight bash %}
-% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.HighAvailabilityCassandraCluster \
-  --location aws-ec2:us-east-1
-{% endhighlight %}
-
-This launches the class ``HighAvailabilityCassandraCluster``,
-which launches a Cassandra cluster configured to replicate across availability zones.
-
-To give some background for that statement, in 
-[AWS](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html)
-(and various other clouds), a region is a 
-separate geographic area, consisting of multiple isolated locations known as availability zones.
-To ensure high availability, the Cassandra cluster and thus the data should be spread across the 
-availability zones. Cassandra should be configured to ensure there is at least one replica in
-each availability zone. In 
-[Cassandra terminology](http://www.datastax.com/docs/1.1/cluster_architecture/replication)
-a region is normally mapped to a "datacenter" and an availability zone to a "rack".
-
-To be properly highly available, we need some automated policies to restart failed servers 
-and to replace unhealthy nodes. Brooklyn has these policies available out-of-the-box.
-To wire them up, the essential code fragment looks like this:
-
-{% highlight java %}
-public class HighAvailabilityCassandraCluster extends AbstractApplication {
-  public void init() {
-    addChild(EntitySpec.create(CassandraCluster.class)
-        .configure(CassandraCluster.CLUSTER_NAME, "Brooklyn")
-        .configure(CassandraCluster.INITIAL_SIZE, 1)
-        .configure(CassandraCluster.ENABLE_AVAILABILITY_ZONES, true)
-        .configure(CassandraCluster.NUM_AVAILABILITY_ZONES, 3)
-        .configure(CassandraCluster.ENDPOINT_SNITCH_NAME, "GossipingPropertyFileSnitch")
-        .configure(CassandraCluster.MEMBER_SPEC, EntitySpec.create(CassandraNode.class)
-            .policy(PolicySpec.create(ServiceFailureDetector.class))
-            .policy(PolicySpec.create(ServiceRestarter.class)
-                .configure(ServiceRestarter.FAILURE_SENSOR_TO_MONITOR, ServiceFailureDetector.ENTITY_FAILED)))
-        .policy(PolicySpec.create(ServiceReplacer.class)
-            .configure(ServiceReplacer.FAILURE_SENSOR_TO_MONITOR, ServiceRestarter.ENTITY_RESTART_FAILED)));
-  }
-}
-{% endhighlight %}
-
-This code is doing a lot and deserves some more detailed explanation:
-
-* The ``MEMBER_SPEC`` describes the configuration of the Cassandra nodes to be created in the cluster.
-  Assuming you're happy to use all the default thrift port etc, then the only configuration to add is
-  a couple of policies.
-* The ``ServiceFailureDetector`` policy watches the node's sensors, and generates
-  an ``ENTITY_FAILED`` event if the node goes down.
-* The ``ServiceRestarter`` policy responds to this failure-event
-  by restarting the node. Its default configuration is that: if a node does not come back up, or if it 
-  fails again within three minutes, then it will emit an ``ENTITY_RESTART_FAILED`` event.
-* Finally, the ``SERVICE_REPLACER`` policy on the cluster responds to this event by replacing the
-  entire VM. It sets up a new VM in the same location, and then tears down the faulty node.
-
-> *Troubleshooting:*
-
-> *In AWS, some availability zones can be constrained for particular instance sizes (see
-  [this bug report](https://github.com/brooklyncentral/brooklyn/issues/973)
-  If you get this error, the workaround is to specify explicitly the availability zones to use. 
-  This requires an additional line of code such as:*
-
-{% highlight java %}
-  .configure(AVAILABILITY_ZONE_NAMES, ImmutableList.of("us-east-1b", "us-east-1c", "us-east-1e"))
-{% endhighlight %}
-
-> *However, this prevents the blueprint from being truly portable. We're looking at fixing this issue.*
-
-
-## Wide Area Cassandra Cluster
-
-For critical enterprise use-cases, you'll want to run your Cassandra cluster across multiple regions, 
-or better yet across multiple cloud providers. This gives the highest level of availability for 
-the service.
-
-Try running:
-
-{% highlight bash %}
-% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.WideAreaCassandraCluster \
-  --location "aws-ec2:us-east-1,aws-ec2:us-west-2"
-{% endhighlight %}
-
-This launches the class ``WideAreaCassandraCluster`` across two AWS regions.
-
-Cassandra provides some great support for this with the 
-[EC2MultiRegionSnitch](http://www.datastax.com/docs/1.1/cluster_architecture/replication)
-The 
-[snitch](http://www.datastax.com/docs/1.1/cluster_architecture/replication#snitches)
-maps IPs to racks and data centers; it defines how the nodes are grouped together within the overall 
-network topology. For wide-area deployments, it must also deal with when to use the private IPs 
-(within a region) and the public IPs (between regions).
-You'll need a more generic snitch if you're going to span different cloud providers.
-Brooklyn has a custom MultiCloudSnitch that we're looking to contribute back to Cassandra.
-
-The important piece of code in ``WideAreaCassandraCluster`` is:
-
-{% highlight java %}
-public class WideAreaCassandraCluster extends AbstractApplication {
-  public void init() {
-    addChild(EntitySpec.create(CassandraFabric.class)
-        .configure(CassandraCluster.CLUSTER_NAME, "Brooklyn")
-        .configure(CassandraCluster.INITIAL_SIZE, 2) // per location
-        .configure(CassandraCluster.ENDPOINT_SNITCH_NAME, "brooklyn.entity.nosql.cassandra.customsnitch.MultiCloudSnitch")
-        .configure(CassandraNode.CUSTOM_SNITCH_JAR_URL, "classpath://brooklyn/entity/nosql/cassandra/cassandra-multicloud-snitch.jar"));
-  }
-}
-{% endhighlight %}
-
-The code below shows the wide-area example with the high-availability policies from the previous section also configured:
-
-{% highlight java %}
-public class WideAreaCassandraCluster extends AbstractApplication {
-  public void init() {
-    addChild(EntitySpec.create(CassandraFabric.class)
-        .configure(CassandraCluster.CLUSTER_NAME, "Brooklyn")
-        .configure(CassandraCluster.INITIAL_SIZE, 2) // per location
-        .configure(CassandraCluster.ENDPOINT_SNITCH_NAME, "brooklyn.entity.nosql.cassandra.customsnitch.MultiCloudSnitch")
-        .configure(CassandraNode.CUSTOM_SNITCH_JAR_URL, "classpath://brooklyn/entity/nosql/cassandra/cassandra-multicloud-snitch.jar")
-        .configure(CassandraFabric.MEMBER_SPEC, EntitySpec.create(CassandraCluster.class)
-            .configure(CassandraCluster.MEMBER_SPEC, EntitySpec.create(CassandraNode.class)
-                .policy(PolicySpec.create(ServiceFailureDetector.class))
-                .policy(PolicySpec.create(ServiceRestarter.class)
-                    .configure(ServiceRestarter.FAILURE_SENSOR_TO_MONITOR, ServiceFailureDetector.ENTITY_FAILED)))
-            .policy(PolicySpec.create(ServiceReplacer.class)
-                 .configure(ServiceReplacer.FAILURE_SENSOR_TO_MONITOR, ServiceRestarter.ENTITY_RESTART_FAILED))));
-  }
-}
-{% endhighlight %}
-
-To run Cassandra across multiple clouds, try running:
-
-{% highlight bash %}
-% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.WideAreaCassandraCluster \
-  --location "aws-ec2:us-east-1,google-compute-engine,rackspace-cloudservers-uk"
-{% endhighlight %}
-
-
-### Testing your Wide-Area Cluster
-
-You can again use the ``cassandra-stress`` command line tool to test the wide-area cluster.
-
-Note that the replication strategy (such as 
-[NetworkTopologyStrategy](http://www.datastax.com/docs/1.0/cluster_architecture/replication#networktopologystrategy)
-is specified when creating a 
-[keyspace](http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/configuration/configStorage_r.html).
-The example below specifies a minimum of 1 replica in each datacenter.
-
-To do updates against a node in a given availability zone:
-
-{% highlight bash %}
-NODE_IDS=<your node hostname>
-/tmp/brooklyn-aled/installs/CassandraNode/1.2.9/apache-cassandra-1.2.9/tools/bin/cassandra-stress \
-    --nodes ${NODE_IDS} \
-    --replication-strategy NetworkTopologyStrategy \
-    --strategy-properties=us-east-1:1,us-west-2:1 \
-    --progress-interval 1 \
-    --num-keys 10000 \
-    --operation INSERT
-{% endhighlight %}
-
-To check that the same data is available from a different region, target the reads
-against an appropriate node:
-
-{% highlight bash %}
-NODE_IDS=<your node hostname>
-/tmp/brooklyn-aled/installs/CassandraNode/1.2.9/apache-cassandra-1.2.9/tools/bin/cassandra-stress \
-    --nodes ${NODE_IDS} \
-    --replication-strategy NetworkTopologyStrategy \
-    --strategy-properties=us-east-1:1,us-west-2:1 \
-    --progress-interval 1 \
-    --num-keys 10000 \
-    --operation READ
-{% endhighlight %}
-
-To really test this, you may want to simulate the failure of a region first.
-You can kill the VMs or ``kill -9`` the processes. But remember that if Brooklyn policies are configured
-they will by default restart the processes automatically! You can disable the Brooklyn policies through 
-the brooklyn web-console (select the entity, go the policies tab, select the policy, and click "disable").
-
-
-## Putting it all together: CumulusRDF
-
-If you want to try this with a real example application using the Cassandra cluster, take a look at
-[CumulusRDF](https://code.google.com/p/cumulusrdf). There is an example Brooklyn application at:
-
-{% highlight bash %}
-% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.CumulusRDFApplication \
-  --location "aws-ec2:us-east-1"
-{% endhighlight %}
-
-
-## Contact us!
-
-If you encounter any difficulties or have any comments, please [tell us]({{ site.url }}/meta/contact.html) and we'll do our best to help.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/nosql-cassandra/index.md
----------------------------------------------------------------------
diff --git a/docs/use/examples/nosql-cassandra/index.md b/docs/use/examples/nosql-cassandra/index.md
deleted file mode 100644
index 13caf53..0000000
--- a/docs/use/examples/nosql-cassandra/index.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-layout: guide-normal
-title: Cassandra Clusters
-toc: /toc.json
----
-
-{% readj cassandra.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/simple-web-cluster.md
----------------------------------------------------------------------
diff --git a/docs/use/examples/simple-web-cluster.md b/docs/use/examples/simple-web-cluster.md
deleted file mode 100644
index e9ddac6..0000000
--- a/docs/use/examples/simple-web-cluster.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: guide-normal
-title: Elastic Web Cluster
-toc: /toc.json
----
-
-<!-- file kept to preserve old links; remove when link not used -->
-
-{% readj webcluster/webcluster.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/toc.json
----------------------------------------------------------------------
diff --git a/docs/use/examples/toc.json b/docs/use/examples/toc.json
deleted file mode 100644
index 2f36c50..0000000
--- a/docs/use/examples/toc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-[
-{ "title": "Elastic Web Cluster",
-  "file":  "{{ site.url }}/use/examples/webcluster/index.html" },
-{ "title": "Global Web Fabric",
-  "file":  "{{ site.url }}/use/examples/global-web-fabric/index.html" },
-{ "title": "Whirr Hadoop Cluster",
-  "file":  "{{ site.url }}/use/examples/whirrhadoop/index.html" },
-{ "title": "Publish-Subscribe Messaging",
-  "file":  "{{ site.url }}/use/examples/messaging/index.html" },
-{ "title": "Cassandra Cluster",
-  "file":  "{{ site.url }}/use/examples/nosql-cassandra/index.html" }
-
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/webcluster.md
----------------------------------------------------------------------
diff --git a/docs/use/examples/webcluster.md b/docs/use/examples/webcluster.md
deleted file mode 100644
index e9ddac6..0000000
--- a/docs/use/examples/webcluster.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: guide-normal
-title: Elastic Web Cluster
-toc: /toc.json
----
-
-<!-- file kept to preserve old links; remove when link not used -->
-
-{% readj webcluster/webcluster.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/webcluster/index.md
----------------------------------------------------------------------
diff --git a/docs/use/examples/webcluster/index.md b/docs/use/examples/webcluster/index.md
deleted file mode 100644
index 43ea980..0000000
--- a/docs/use/examples/webcluster/index.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-layout: guide-normal
-title: Elastic Web Cluster
-toc: /toc.json
----
-
-{% readj webcluster.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/examples/webcluster/webcluster.include.md
----------------------------------------------------------------------
diff --git a/docs/use/examples/webcluster/webcluster.include.md b/docs/use/examples/webcluster/webcluster.include.md
deleted file mode 100644
index 11e801b..0000000
--- a/docs/use/examples/webcluster/webcluster.include.md
+++ /dev/null
@@ -1,124 +0,0 @@
-      
-{% readj ../before-begin.include.md %}
-
-## Simple Web Server
-
-Go to this particular example's directory:
-
-{% highlight bash %}
-% cd simple-web-cluster
-{% endhighlight %}
-
-The CLI needs to know where to find your compiled examples. You can set this up by exporting
-the ``BROOKLYN_CLASSPATH`` environment variable in the following way:
-
-{% highlight bash %}
-% export BROOKLYN_CLASSPATH=$(pwd)/target/classes
-{% endhighlight %}
-
-The project ``simple-web-cluster`` includes several deployment descriptors
-for rolling out a web application, under ``src/main/java``.
-
-
-
-The simplest of these, ``SingleWebServerExample``, starts JBoss on a single machine with a "Hello World" war deployed,
-with a single line:
-
-{% highlight java %}
-public class SingleWebServerExample extends AbstractApplication {
-    private static final String WAR_PATH = "classpath://hello-world-webapp.war";
-
-    @Override
-    public void init() {
-        addChild(EntitySpec.create(JBoss7Server.class)
-                .configure("war", WAR_PATH)
-                .configure("httpPort", 8080));
-    }
-}
-{% endhighlight %}
-
-You can run this as follows (on *nix or Mac, assuming `ssh localhost` requires no password or passphrase):
-
-{% highlight bash %}
-% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.SingleWebServerExample \
-  --location localhost
-{% endhighlight %}
-
-
-Then visit the webapp on port 8080, or the Brooklyn console on localhost:8081.
-Note that the installation may take some time, because the default deployment downloads the software from
-the official repos.  You can monitor start-up activity for each entity in the ``Activity`` pane in the management console,
-and see more detail by tailing the log file (``tail -f brooklyn.log``).
-
-With appropriate setup (as described [here]({{ site.url }}/use/guide/management/index.html#startup-config)) 
-this can also be deployed to your favourite cloud, let's pretend it's Amazon Ireland, as follows: 
-
-{% highlight bash %}
-% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.SingleWebServerExample \
-  --location aws-ec2:eu-west-1
-{% endhighlight %}
-
-
-## Elastic Three-Tier
-
-Ready for something more interesting?  Try this:
-
-{% highlight bash %}
-% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.WebClusterDatabaseExample \
-  --location localhost
-{% endhighlight %}
-
-This launches the class ``WebClusterDatabaseExample`` (also described in the [walkthrough]({{ site.url }}/start/walkthrough/index.html))
-which launches a pool of web-servers -- of size 1 initially,
-but manually configurable (if you stop the policy first, in the GUI, then use the ``resize`` effector) --
-with an Nginx load-balancer set up in front of them, and backed by a MySQL database.
-
-The essential code fragment looks like this:
-
-{% highlight java %}
-public class WebClusterDatabaseExample extends AbstractApplication {
-    public static final String WAR_PATH = "classpath://hello-world-sql-webapp.war";
-    
-    public static final String DB_SETUP_SQL_URL = "classpath://visitors-creation-script.sql";
-    
-    public static final String DB_TABLE = "visitors";
-    public static final String DB_USERNAME = "brooklyn";
-    public static final String DB_PASSWORD = "br00k11n";
-
-    @Override
-    public void init() {
-        MySqlNode mysql = addChild(EntitySpec.create(MySqlNode.class)
-                .configure("creationScriptUrl", DB_SETUP_SQL_URL));
-        
-        ControlledDynamicWebAppCluster web = addChild(EntitySpec.create(ControlledDynamicWebAppCluster.class)
-                .configure("memberSpec", EntitySpec.create(JBoss7Server.class)
-                        .configure("httpPort", "8080+")
-                        .configure("war", WAR_PATH)
-                        .configure(javaSysProp("brooklyn.example.db.url"), 
-                                formatString("jdbc:%s%s?user=%s\\&password=%s", 
-                                        attributeWhenReady(mysql, MySqlNode.MYSQL_URL), DB_TABLE, DB_USERNAME, DB_PASSWORD))));
-        
-        web.getCluster().addPolicy(AutoScalerPolicy.builder().
-                        metric(DynamicWebAppCluster.AVERAGE_REQUESTS_PER_SECOND).
-                        sizeRange(1, 5).
-                        metricRange(10, 100).
-                        build());
-    }
-}
-{% endhighlight %}
-
-You can, of course, try this with your favourite cloud, 
-tweak the database start script, or drop in your favourite WAR.
-
-
-## A Few Other Things
-
-The project includes variants of the examples shown here, 
-including alternative syntax (the `*Alt*` files), 
-and a web-only cluster (no database) in `WebClusterExample``.
-
-The webapp that is used is included under ``examples/hello-world-webapp``.
-
-You may wish to check out the [Global Web Fabric example]({{ site.url }}/use/examples/global-web-fabric/) next.
-
-If you encounter any difficulties, please [tell us]({{ site.url }}/meta/contact.html) and we'll do our best to help.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/Chef.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/Chef.png b/docs/use/guide/defining-applications/Chef.png
deleted file mode 100644
index d899de2..0000000
Binary files a/docs/use/guide/defining-applications/Chef.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/advanced-concepts.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/advanced-concepts.md b/docs/use/guide/defining-applications/advanced-concepts.md
deleted file mode 100644
index 3b808f2..0000000
--- a/docs/use/guide/defining-applications/advanced-concepts.md
+++ /dev/null
@@ -1,137 +0,0 @@
----
-title: Advanced Concepts
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide, defining-applications]
----
-
-Lifecycle and ManagementContext
--------------------------------
-
-Under-the-covers, at heart of the brooklyn management plane is the ``ManagementContext``. 
-This is started automatically when using launching an application using the brooklyn CLI. For programmatic use, see 
-``BrooklynLauncher.newLauncher().launch()``.
-
-A Brooklyn deployment consists of many entities in a hierarchical tree, with the privileged *application* entity at the top level.
-
-An application entity (``Application`` class) is responsible for starting the deployment of all its child entities (i.e. the entire entity tree under its ownership).
-
-An ``Application``'s ``start()`` method begins provisioning the child entities of the application (and their entities, recursively). 
-
-Provisioning of entities typically happens in parallel automatically,
-although this can be customized. This is implemented as ***tasks*** which are tracked by the management plane and is visible in the [web-based management console]({{site.url}}/use/guide/management/index.html#console).
-
-Customized provisioning can be useful where two starting entities depend on each other. For example, it is often necessary to delay start of one entity until another entity reaches a certain state, and to supply run-time information about the latter to the former.
-
-<!-- TODO ambiguous language; need a better description of the "manage" lifecycle -->
-When new entities are created, the entity is wired up to an application by giving it a parent. The entity is then explicitly "managed", which allows other entities to discover it.
-
-Typically a Brooklyn deployment has a single management context which records:
-
-*   all entities under management that are reachable by the application(s) via the parent-child relationships,
-*	the state associated with each entity,
-*	subscribers (listeners) to sensor events arising from the entities,
-*	active tasks (jobs) associated with any the entity,
-*	which Brooklyn management node is mastering (managing) each entity.
-
-<!-- TODO Distributed brooklyn not yet supported; needs clarification in docs -->
-
-In a multi-location deployment, management operates in all regions, with brooklyn entity instances being mastered in the relevant region.
-
-When management is distributed a Brooklyn deployment may consist of multiple Brooklyn management nodes each with a ``ManagementContext`` instance.
-
-<!-- TODO - Clarify the following statements.
-The management context entity forms part of the management plane. 
-The management plane is responsible for the distribution of the ``Entity`` instances across multiple machines and multiple locations, 
-tracking the transfer of events (subscriptions) between ``Entity`` instances, and the execution of tasks (often initiated by management policies).
--->
-
-<a name="dependent"></a>
-Dependent Configuration
------------------------
-
-Under the covers Brooklyn has a sophisticated sensor event and subscription model, but conveniences around this model make it very simple to express cross-entity dependencies. Consider the example where Tomcat instances need to know the URL of a database (or a set of URLs to connect to a Monterey processing fabric, or other entities)
-
-{% highlight java %}
-setConfiguration(UsesJava.JAVA_OPTIONS, ImmutableMap.of("mysql.url", 
-	    attributeWhenReady(mysql, MySqlNode.MY_SQL_URL) ))
-{% endhighlight %}
-
-The ``attributeWhenReady(Entity, Sensor)`` call (a static method on the class ``DependentConfiguration``)
-causes the configuration value to be set when that given entity's attribue is ready. 
-In the example, ``attributeWhenReady()`` causes the JVM system property ``mysql.url`` to be set to the value of the ``MySqlNode.MY_SQL_URL`` sensor from ``mysql`` when that value is ready. As soon as the database URL is announced by the MySql entity, the configuration value will be available to the Tomcat cluster. 
-
-By default "ready" means being *set* (non-null) and, if appropriate, *non-empty* (for collections and strings) or *non-zero* (for numbers). Formally the interpretation of ready is that of "Groovy truth" defined by an ``asBoolean()`` method on the class and in the Groovy language extensions. 
-
-You can customize "readiness" by supplying a ``Predicate`` (Google common) or ``Closure`` (Groovy) in a third parameter. 
-This evaluates candidate values reported by the sensor until one is found to be ``true``. 
-For example, passing ``{ it.size()>=3 }`` as the readiness argument would require at least three management plane URLs.
-
-More information on this can be found in the javadoc for ``DependentConfiguration``,
-along with a few other methods such as ``valueWhenAttributeReady`` which allow post-processing of an attribute value.
-
-Note that if the value of ``CONFIG_KEY`` passed to ``Entity.getConfig`` is a Closure or Task (such as returned by ``attributeWhenReady``),
-the first access of ``Entity.getConfig(CONFIG_KEY)`` will block until the task completes.
-Typically this does the right thing, blocking when necessary to generate the right start-up sequence
-without the developer having to think through the order, but it can take some getting used to.
-Be careful not to request config information until really necessary (or to use non-blocking "raw" mechanisms),
-and in complicated situations be ready to attend to circular dependencies.
-The management console gives useful information for understanding what is happening and resolving the cycle.
-
-Location
---------
-<!-- TODO, Clarify is how geographical location works.
--->
-
-Entities can be provisioned/started in the location of your choice. Brooklyn transparently uses [jclouds](http://www.jclouds.org) to support different cloud providers and to support BYON (Bring Your Own Nodes). 
-
-The implementation of an entity (e.g. Tomcat) is agnostic about where it will be installed/started. When writing the application definition specify the location or list of possible locations (``Location`` instances) for hosting the entity.
-
-``Location`` instances represent where they run and indicate how that location (resource or service) can be accessed.
-
-For example, a ``JBoss7Server`` will usually be running in an ``SshMachineLocation``, which contains the credentials and address for sshing to the machine. A cluster of such servers may be running in a ``MachineProvisioningLocation``, capable of creating new ``SshMachineLocation`` instances as required.
-
-<!-- TODO, incorporate the following.
-
-The idea is that you could specify the location as AWS and also supply an image id. You could configure the Tomcat entity accordingly: specify the path if the image already has Tomcat installed, or specify that Tomcat must be downloaded/installed. Entities typically use _drivers_ (such as SSH-based) to install, start, and interact with their corresponding real-world instance. 
--->
-
-Policies
---------
-Policies perform the active management enabled by Brooklyn. Entities can have zero or more ``Policy`` instances attached to them. 
-
-Policies can subscribe to sensors from entities or run periodically, and
-when they run they can perform calculations, look up other values, and if deemed necessary invoke effectors or emit sensor values from the entity with which they are associated.
-
-Execution
----------
-
-All processing, whether an effector invocation or a policy cycle, are tracked as ***tasks***. This allows several important capabilities:
-
-*	active and historic processing can be observed by operators
-*	the invocation context is available in the thread, to check entitlement (permissions) and maintain a
-hierarchical causal chain even when operations are run in parallel
-*	processing can be managed across multiple management nodes
-
-Some executions create new entities, which can then have tasks associated with them, and the system will record, for example, that a start efector on the new entity is a task associated with that entity, with that task
-created by a task associated with a different entity.
-
-The execution of a typical overall start-up sequence is shown below:
-
-[![Brooklyn Flow Diagram](brooklyn-flow-websequencediagrams.com-w400.png "Brooklyn Flow Diagram" )](brooklyn-flow-websequencediagrams.com.png)
-
-
-## Integration
-
-One vital aspect of Brooklyn is its ability to communicate with the systems it starts. This is abstracted using a ***driver*** facility in Brooklyn, where a
-driver describes how a process or service can be installed and managed using a particular technology.
-
-For example, a ``TomcatServer`` may implement start and other effectors using a ``TomcatSshDriver`` which inherits from ``JavaSoftwareProcessSshDriver`` (for JVM and JMX start confguration), inheriting from ``AbstractSoftwareProcessSshDriver``
-(for SSH scripting support).
-
-Particularly for sensors, some technologies are used so frequently that they are
-packaged as ***feeds*** which can discover their configuration (including from drivers). These include JMX and HTTP (see ``JmxFeed`` and ``HttpFeed``).
-
-Brooklyn comes with entity implementations for a growing number of commonly used systems, including various web application servers, databases and NoSQL data stores, and messaging systems. See: [Extras]({{site.url}}/use/guide/extras/index.html).
-
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/archetype.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/archetype.md b/docs/use/guide/defining-applications/archetype.md
deleted file mode 100644
index 4894af7..0000000
--- a/docs/use/guide/defining-applications/archetype.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: Common Usage
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide, defining-applications]
----
-
-### Maven Archetype
-
-Brooklyn includes a maven archetype, which can be used to create the project structure for a new application.
-
-This can be done interactively using:
-{% highlight bash %}
-$ mvn archetype:generate
-{% endhighlight %}
-
-The user will be prompted for the archetype to use (i.e. group "io.brooklyn" 
-and artifact "brooklyn-archetype-quickstart"), as well as options for the project 
-to be created.
-
-Alternatively, all options can be supplied at the command line. For example, 
-if creating a project named "autobrick" for "com.acme":
-
-{% highlight bash %}
-$ mvn archetype:generate \
-	-DarchetypeGroupId=io.brooklyn \
-	-DarchetypeArtifactId=brooklyn-archetype-quickstart \
-	-DarchetypeVersion={{ site.brooklyn-version }} \
-	-DgroupId=com.acme -DartifactId=autobrick \
-	-Dversion=0.1.0-SNAPSHOT \
-	-DpackageName=com.acme.autobrick \
-	-DinteractiveMode=false
-{% endhighlight %}
-
-This will create a directory with the artifact name (e.g. "autobrick" in the example above).
-Note that if run from a directory containing a pom, it will also modify that pom to add this as a module!
-
-The project will contain an example app. You can run this, and also replace it with your own
-application code.
-
-To build, run the commands:
-
-{% highlight bash %}
-$ cd autobrick
-$ mvn clean install assembly:assembly
-{% endhighlight %}
-
-The assembly command will build a complete standalone distribution archive in `target/autobrick-0.1.0-SNAPSHOT-dist.tar.gz`,
-suitable for redistribution and containing `./start.sh` in the root.
-
-An unpacked equivalent is placed in `target/autobrick-0.1.0-SNAPSHOT-dist`,
-thus you can run the single-node sample locally with:
-
-{% highlight bash %}
-$ cd target/autobrick-0.1.0-SNAPSHOT-dist/autobrick-0.1.0-SNAPSHOT/
-$ ./start.sh launch --single
-{% endhighlight %}
-
-This `start.sh` script has all of the same options as the default `brooklyn` script, 
-including `./start.sh help` and the `--location` argument for `launch`,
-with a couple of extra `launch` options for the sample blueprints in the archetype project:
-
-- `./start.sh launch --single` will launch a single app-server instance
-- `./start.sh launch --cluster` will launch a cluster of app-servers

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/basic-concepts.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/basic-concepts.md b/docs/use/guide/defining-applications/basic-concepts.md
deleted file mode 100644
index 51d36a6..0000000
--- a/docs/use/guide/defining-applications/basic-concepts.md
+++ /dev/null
@@ -1,95 +0,0 @@
----
-title: Basic Concepts
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide, defining-applications]
----
-
-This introduces brooklyn and describes how it simplifies the deployment and management of big applications. It is
-intended for people who are using brooklyn-supported application components (such as web/app servers, data stores)
-to be able to use brooklyn to easily start their application in multiple locations with off-the-shelf management
-policies.
-
-Entities
---------
-
-The central concept in a Brooklyn deployment is that of an ***entity***. 
-An entity represents a resource under management, either *base* entities (individual machines or software processes) 
-or logical collections of these entities.
-
-Fundamental to the processing model is the capability of entities to be the *parent* of other entities (the mechanism by which collections are formed), 
-with every entity having a single parent entity, up to the privileged top-level ***application*** entity.
-
-Entities are code, so they can be extended, overridden, and modified. Entities can have events, operations, and processing logic associated with them, and it is through this mechanism that the active management is delivered.
-
-The main responsibilities of an entity are:
-
-- Provisioning the entity in the given location or locations
-- Holding configuration and state (attributes) for the entity
-- Reporting monitoring data (sensors) about the status of the entity
-- Exposing operations (effectors) that can be performed on the entity
-- Hosting management policies and tasks related to the entity
-
-
-Application, Parent and Membership
--------------------------------------
-
-All entities have a ***parent*** entity, which creates and manages it, with one important exception: *applications*.
-Application entities are the top-level entities created and managed externally, manually or programmatically.
-
-Applications are typically defined in Brooklyn as an ***application descriptor***. 
-This is a Java class specifying the entities which make up the application,
-by extending the class ``AbstractApplication``, and specifying how these entities should be configured and managed.
-
-All entities, including applications, can be the parent of other entities. 
-This means that the "child" is typically started, configured, and managed by the parent.
-For example, an application may be the parent of a web cluster; that cluster in turn is the parent of web server processes.
-In the management console, this is represented hierarchically in a tree view.
-
-A parallel concept is that of ***membership***: in addition to one fixed parent,
-and entity may be a ***member*** of any number of special entities called ***groups***.
-Membership of a group can be used for whatever purpose is required; 
-for example, it can be used to manage a collection of entities together for one purpose 
-(e.g. wide-area load-balancing between locations) even though they may have been
-created by different parents (e.g. a multi-tier stack within a location).
-
-
-Configuration, Sensors and Effectors
-------------------------------------
-
-### Configuration
-
-All entities contain a map of config information. This can contain arbitrary values, typically keyed under static ``ConfigKey`` fields on the ``Entity`` sub-class. These values are inherited, so setting a configuration value at the
-application level will make it available in all entities underneath unless it is overridden.
-
-Configuration is propagated when an application "goes live" (i.e. it becomes "managed", either explicitly or when its ``start()`` method is invoked), so config values must be set before this occurs. 
-
-Configuration values can be specified in a configuration file (``~/.brooklyn/brooklyn.properties``)
-to apply universally, and/or programmatically to a specific entity and its descendants 
-by calling `.configure(KEY, VALUE)` in the entity spec when creating it.
-There is also an ``entity.setConfig(KEY, VALUE)`` method.
-
-Additionally, many common configuration parameters are available as "flags" which can be supplied as Strings when constructing
-then entity, in the form
-``EntitySpec.create˙(MyEntity.class).configure("config1", "value1").configure("config2", "value2")``. 
-
-Documentation of the flags available for individual entities can normally be found in the javadocs. 
-The ``@SetFromFlag`` annotations on ``ConfigKey`` static field definitions
-in the entity's interface is the recommended mechanism for exposing configuration options.
-
-
-### Sensors and Effectors
-
-***Sensors*** (activity information and notifications) and ***effectors*** (operations that can be invoked on the entity) are defined by entities as static fields on the ``Entity`` subclass.
-
-Sensors can be updated by the entity or associated tasks, and sensors from an entity can be subscribed to by its parent or other entities to track changes in an entity's activity.
-
-Effectors can be invoked by an entity's parent remotely, and the invoker is able to track the execution of that effector. Effectors can be invoked by other entities, but use this functionality with care to prevent too many managers!
-
-An entity consists of a Java interface (used when interacting with the entity) and a Java class. For resilience. it is recommended to store 
-the entity's state in attributes (see `getAttribute(AttributeKey)``). If internal fields can be used then the data will be lost on brooklyn 
-restart, and may cause problems if the entity is to be moved to a different brooklyn management node.
-
-Next: [Advanced Concepts]({{site.url}}/use/guide/defining-applications/advanced-concepts.html).
-See also: [Management > Sensors and Effectors]({{site.url}}/use/guide/management/index.html#sensors-and-effectors).
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com-w400.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com-w400.png b/docs/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com-w400.png
deleted file mode 100644
index c2b48ba..0000000
Binary files a/docs/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com-w400.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com.png
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com.png b/docs/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com.png
deleted file mode 100644
index 78eb5c8..0000000
Binary files a/docs/use/guide/defining-applications/brooklyn-flow-websequencediagrams.com.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/chef-blueprints.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/chef-blueprints.md b/docs/use/guide/defining-applications/chef-blueprints.md
deleted file mode 100644
index 4f9612a..0000000
--- a/docs/use/guide/defining-applications/chef-blueprints.md
+++ /dev/null
@@ -1,277 +0,0 @@
----
-title: Using Chef in YAML Blueprints
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide, defining-applications]
----
-
-This guide describes how Brooklyn entities can be easily created from Chef cookbooks.
-As of this writing (May 2014) some of the integration points are under active development,
-and comments are welcome.
-A plan for the full integration is online [here](https://docs.google.com/a/cloudsoftcorp.com/document/d/18ZwzmncbJgJeQjnSvMapTWg6N526cvGMz5jaqdkxMf8).  
-
-This guide assumes you are familiar with the basics of [creating YAML blueprints](creating-yaml.html).
-
-
-## What you need to know about Chef
-
-Chef works in two different modes, *server* and *solo*. *Server* is where the Chef client talks to a central server
-to retrieve information about its roles, policies and cookbooks (where a cookbook defines how to install and
-configure a particular piece of software). With *solo*, the client works in isolation, therefore its configuration
-and cookbooks must be supplied by another means.
-
-Chef *client* is the Chef agent. This is a Ruby application which is installed on each and every managed host. When
-invoked in server mode, it will contact the Chef server to check for updates to cookbooks and policy; it then "runs"
-the recipes in its run lists, to converge the machine to a known state. In solo mode, it reads the locally-maintained
-cookbooks and policies. The client may be run as a daemon that checks the server regularly, or it could merely be
-run manually when required.
-
-The *policy* is a set of rules on the Chef server. A client starts with a set of *attributes*, which could be as
-simple as its name and a recipe runlist, or which may involve a more complex set of attributes about how it is to be
-configured. The client then augments this with auto-detected metadata - a tool called `ohai` is run that collects
-detailed information about the host. Next, the policy on the server modifies these attributes - overriding some,
-setting defaults for others - to produce a final set of attributes. It is these which are the input to the recipes.
-Finally, the attributes are uploaded to the server where they are stored as metadata for the node, where they can be
-inspected and modified by the system operator.
-
-Also of interest is `knife`, which is the workstation toolkit for Chef. Typically this would be installed on the
-operation engineer's workstation, where it would be used to interact with the Chef server and clients. Of particular
-interest to us is the *bootstrap* operation, which is used for setting up new Chef clients - given a virtual machine,
-it will install the Chef client on it, configure it with enough information to find the Chef server and performs its
-first run, and then kicks off the Chef client for the first time.
-
-There is often a preconception about how a Chef client is bootstrapped; mistakenly, there is the belief that the
-`knife` tool configures the Chef server with information about the client, and the client finds out about itself from
-the server. This is not the case - the bootstrap operation does not involve `knife` talking to the server. Instead,
-`knife` packages up all of the required information and sends it to the client - the client will then introduce
-itself to the server, passing on its configuration.
-
-This diagram summarises the interaction between Brooklyn, the new node, and the various Chef tools. Note that there
-is no interaction between the AMP Server and the Chef Server.
-
-[![Chef Flow Diagram](Chef.png "Chef Flow Diagram" )](Chef.png)
-
-### How Brooklyn interacts with Chef
-
-Brooklyn understands both the *server* and *solo* modes of operation. Server mode utilises the `knife` toolkit, and
-therefore `knife` must be installed onto the AMP server and configured appropriately. Solo mode does not have any
-special requirements; when running in solo mode, Brooklyn will install and configure the Chef client over SSH, just
-like it does most other kinds of entities.
-
-
-## Creating Blueprints from Chef
-
-In a nutshell, a new Chef-based entity can be defined as a service by specifying
-`chef:cookbook_name` as the `service_type`, along with a collection of optional configuration.
-An illustrative example is below:
-
-{% highlight yaml %}
-{% readj example_yaml/mysql-chef-1.yaml %}
-{% endhighlight %}
-
-*This works without any installation: try it now, copying-and-pasting to the Brooklyn console.
-(Don't forget to add your preferred `location: some-cloud` to the spec.)*  
-
-We'll now walk through the important constituent parts,
-and then proceed to describing things which can be done to simplify the deployment.
-
-
-### Cookbook Primary Name
-
-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`) 
-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.
-
-
-### Importing Cookbooks
-
-Next we specify which cookbooks are required and where they can be pulled from:
-
-      cookbook_urls:
-        mysql: https://github.com/opscode-cookbooks/mysql/archive/v4.0.12.tar.gz
-        openssl: https://github.com/opscode-cookbooks/openssl/archive/v1.1.0.tar.gz
-        build-essential: https://github.com/opscode-cookbooks/build-essential/archive/v1.4.4.tar.gz
-
-Here, specific versions are being downloaded from the canonical github repository.
-Any URL can be used, so long as it is resolvable on either the target machine or the
-Brooklyn server; this includes `file:` and `classpath:` URLs.
-
-The archive can be ZIP or TAR or TGZ.
-
-The structure of the archive must be that a single folder is off the root,
-and in that folder contains the usual Chef recipe and auxiliary files.
-For example, the archive might contain `mysql-master/recipes/server.rb`.
-Archives such as those above from github match this format.  
-The name of that folder does not matter, as often they contain version information.
-When deployed, these will be renamed to match the short name (the key in the `cookbooks_url` map,
-for instance `mysql` or `openssl`).
-
-If Chef server is configured (see below), this section can be omitted.
-
-
-### Launch Run List and Attributes
-
-The next part is to specify the Chef run list and attributes to store when launching the entity: 
-
-      launch_run_list:
-      - mysql::server
-      
-      launch_attributes:
-        mysql:
-          server_root_password: p4ssw0rd
-          server_repl_password: p4ssw0rd
-          server_debian_password: p4ssw0rd
-
-For the `launch_run_list`, you can use either the YAML `- recipe` syntax or the JSON `[ "recipe" ]` syntax.
-
-The `launch_attributes` key takes a map which will be stored against the `node` object in Chef.
-Thus in this example, the parameter `node['mysql']['server_root_password']` required by the mysql blueprint
-is set as specified.
-
-You can of course set many other attributes in this manner, in addition to those that are required!  
-
-
-### Simple Monitoring
-
-The final section determines how Brooklyn confirms that the service is up.
-Sophisticated solutions may install monitoring agents as part of the `launch_run_list`,
-with Brooklyn configured to read monitoring information to confirm the launch was successful.
-However for convenience, two common mechanisms are available out of the box:
-
-      #service_name: mysqld
-      pid_file: /var/run/mysqld/mysqld.pid
-
-If `service_name` is supplied, Brooklyn will check the return code of the `status` command
-run against that service, ensuring it is 0.  (Note that this is not universally reliable,
-although it is the same mechanism which Chef typically uses to test status when determining
-whether to start a service. Some services, e.g. postgres, will return 0 even if the service
-is not running.)
-
-If a `pid_file` is supplied, Brooklyn will check whether a process with the PID specified in that
-file is running. This has been selected for mysql because it appears to be more portable:
-the service name varies among OS's:  it is `mysqld` on CentOS but `mysql` on Ubuntu!
-
-
-## Making it Simpler: Writing Chef for Blueprints
-
-The example we've just seen shows how existing Chef cookbooks can be
-used as the basis for entities.  If you're *writing* the Chef recipes, 
-there are a few simple techniques we've established with the Chef community
-which make blueprints literally as simple as:
-
-    - type: chef:mysql
-      brooklyn.config:
-        mysql_password: p4ssw0rd
-        pid_file: /var/run/mysqld/mysqld.pid
-
-
-### Some Basic Conventions
-
-* **A `start` recipe**:
-  The first step is to provide a `start` recipe in `recipes/start.rb`;
-  if no `launch_run_list` is supplied, this is what will be invoked to launch the entity.
-  It can be as simple as a one-line file:
-
-      include_recipe 'mysql::server'
-
-* **Using `brooklyn.config`**:
-  All the `brooklyn.config` is passed to Chef as node attributes in the `node['brooklyn']['config']` namespace.
-  Thus if the required attributes in the mysql recipe are set to take a value set in
-  `node['brooklyn']['config']['mysql_password']`, you can dispense with the `launch_attributes` section.
-
-
-## Using Chef Server
-
-The examples so far have not required Chef Server, so they will work without any external
-Chef dependencies (besides the built-in install from `https://www.opscode.com/chef/install.sh`
-and the explicitly referenced cookbooks).  If you use Chef Server, however, you'll want your
-managed nodes to be integrated with it.  This is easy to set up, with a few options:
-
-If you have `knife` set up in your shell environment, the Brooklyn Chef support will use it
-by default. If the recipes are installed in your Chef server, you can go ahead and remove
-the `cookbooks_url` section!
-
-Use of `solo` or `knife` can be forced by setting the `chef_mode` flag (`brooklyn.chef.mode` config key)
-to either of those values.  (It defaults to `autodetect`, which will use `knife` if it is on the path and satisfies
-sanity checks).
-
-If you want to specify a different configuration, there are a number of config keys you can use:
-
-* `brooklyn.chef.knife.executableFile`: this should be point to the knife binary to use
-* `brooklyn.chef.knife.configFile`: this should point to the knife configuration to use
-* `brooklyn.chef.knife.setupCommands`: an optional set of commands to run prior to invoking knife,
-  for example to run `rvm` to get the right ruby version on the Brooklyn server
-
-If you're interested in seeing the Chef REST API be supported directly (without knife),
-please let us know.  We'd like to see this too, and we'll help you along the way!
- 
-
-## Tips and Tricks
-
-To help you on your way writing Chef blueprints, here are a handful of pointers
-particularly useful in this context:
-
-* Configuration keys can be inherited from the top-level and accessed using `$brooklyn:component('id').config('key_name')`.
-  An example of this is shown in the `mysql-chef.yaml` sample recipe contained in the Brooklyn code base
-  and [here](example_yaml/mysql-chef-2.yaml) for convenience.
-  Here, `p4ssw0rd` is specified only once and then used for all the attributes required by the stock mysql cookbook.  
-
-* Github tarball downloads! You'll have noticed these in the example already, but they are so useful we thought
-  we'd call them out again. Except when you're developing, we recommend using specific tagged versions rather than master.
-
-* The usual machine `provisioning.properties` are supported with Chef blueprints, 
-  so you can set things like `minRam` and `osFamily`
-
-* To see more configuration options, and understand the ones presented here in more detail, see the javadoc or
-  the code for the class `ChefConfig` in the Brooklyn code base.
-
-
-## Advanced Chef Integration
-
-### Adding Sensors and Effectors
-
-Custom sensors and effectors can be added using an `entity.initializer` section in the YAML blueprint.
-
-One common pattern is to have sensors which extract information from Ohai.
-Another common pattern is to install a monitoring agent as part of the run list,
-configured to talk to a monitoring store, and then to add a sensor feed which reads data from that store.
-
-On the effector side, you can add SSH-based effectors in the usual way.
-You can also describe additional chef converge targets following the pattern set down in
-`ChefLifecycleEffectorTasks`, making use of conveniences in `ChefSoloTasks` and `ChefServerTasks`,
-or provide effectors which invoke network API's of the systems under management
-(for example to supply the common `executeScript` effector as on the standard `MySqlNode`). 
-   
-
-### Next Steps: Simpifying sensors and effectors, transferring files, and configuring ports
-
-The Brooklyn-Chef integration is work in progress, with a few open issues we'd still like to add.
-Much of the thinking for this is set forth in the [Google document](https://docs.google.com/a/cloudsoftcorp.com/document/d/18ZwzmncbJgJeQjnSvMapTWg6N526cvGMz5jaqdkxMf8)
-indicated earlier.  If you'd like to work with us to implement these, please let us know.
-
-
-## Reference
-
-A general schema for the supported YAML is below: 
-
-```
-- type: chef:cookbook_name
-  cookbook_urls:
-    cookbook_name: url://for/cookbook.tgz
-    dependency1: url://for/dependency1.tgz
-  launch_run_list: [ "cookbook_name::start" ]
-  launch_attributes: # map of arguments to set in the chef node
-  service_name: cookbook_service
-  pid_file: /var/run/cookbook.pid
-```
-
-If you are interested in exploring the Java code for creating blueprints,
-start with the `TypedToyMySqlEntiyChef` class, which essentially does what this tutorial has shown;
-and then move on to the `DynamicToyMySqlEntiyChef` which starts to look at more sophisticated constructs.
-(Familiarity with BASH and basic Java blueprints may be useful at that stage.)
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ba6612ec/docs/use/guide/defining-applications/common-usage.md
----------------------------------------------------------------------
diff --git a/docs/use/guide/defining-applications/common-usage.md b/docs/use/guide/defining-applications/common-usage.md
deleted file mode 100644
index a3beed6..0000000
--- a/docs/use/guide/defining-applications/common-usage.md
+++ /dev/null
@@ -1,145 +0,0 @@
----
-title: Common Usage
-layout: guide-normal
-toc: ../guide_toc.json
-categories: [use, guide, defining-applications]
----
-
-### Entity Class Hierarchy
-
-By convention in Brooklyn the following words have a particular meaning, both as types (which extend ``Group``, which extends ``Entity``) and when used as words in other entities (such as ``TomcatFabric``):
-
-- *Cluster* - a homogeneous collection of entities
-- *Fabric* - a multi-location collection of entities, with one per location; often used with a cluster per location
-- *Stack* - heterogeneous (mixed types of children)
-- *Application* - user's entry point
-
-<!---
-TODO
--->
-
-- *entity spec* defines an entity, so that one or more such entities can be created; often used by clusters/groups to define how to instantiate new children.
-- *entity factories* are often used by clusters/groups to define how to instantiate new children.
-- *traits* (mixins) providing certain capabilities, such as Resizable and Balanceable
-- *Resizable* entities can re-sized dynamically, to increase/decrease the number of child entities.
-- *Movable* entities can be migrated between *balanceable containers*.
-- *Balanceable containers* can contain *movable* entities, where each contained entity is normally associated with
-    a piece of work within that container.
-
-### Off-the-Shelf Entities
-
-brooklyn includes a selection of entities already available for use in applications,
-including appropriate sensors and effectors, and in some cases include Cluster and Fabric variants.
-(These are also useful as templates for writing new entities.)
- 
-These include:
-
-- **Web**: Tomcat, JBoss, Jetty (external), Play (external); nginx; GeoScaling
-- **Data**: MySQL, Redis, MongoDB, Infinispan, GemFire (external)
-- **Containers**: Karaf
-- **Messaging**: ActiveMQ, Qpid, Rabbit MQ
-- **PaaS**: Cloud Foundry, Stackato; OpenShift
-
-
-### <a id="locations"></a> Off-the-Shelf Locations
-
-<a id="locations"></a>
-
-Brooklyn supports deploying to any machine which admits SSH access, as well as to
-a huge variety of external and on-premise clouds.  You can also connect to services,
-or use whatever technique for deployment suits you best (such as Xebia Overthere, in development!).
-
-Configuration is typically set in `~/.brooklyn/brooklyn.properties` using keys such as the following:
-
-{% highlight bash %}
-# use this key for localhost (this is the default, although if you have a passphrase you must set it)
-brooklyn.location.localhost.privateKeyFile=~/.ssh/id_rsa
-
-brooklyn.location.localhost.privateKeyPassphrase=s3cr3tPASSPHRASE
-   
-# use a special key when connecting to public clouds, and a particularly special one for AWS
-brooklyn.location.jclouds.privateKeyFile=~/.ssh/public_clouds/id_rsa
-brooklyn.location.jclouds.aws-ec2.privateKeyFile=~/.ssh/public_clouds/aws_id_rsa
-
-# AWS credentials (when deploying to location jclouds:aws-ec2)
-brooklyn.location.jclouds.aws-ec2.identity=ABCDEFGHIJKLMNOPQRST  
-brooklyn.location.jclouds.aws-ec2.credential=s3cr3tsq1rr3ls3cr3tsq1rr3ls3cr3tsq1rr3l
-
-# credentials for 'geoscaling' service
-brooklyn.geoscaling.username=cloudsoft  
-brooklyn.geoscaling.password=xxx
-{% endhighlight %}
-
-These can also be set as environment variables (in the shell) or system properties (java command line).
-(There are also ``BROOKLYN_JCLOUDS_PRIVATE_KEY_FILE`` variants accepted.)
-
-For any jclouds provider you will typically need to set ``identity`` and ``credential``
-in the ``brooklyn.location.jclouds.provider`` namespace.
-
-To deploy to sets of machines with known IP's, assuming you have the credentials,
-use the syntax ``byon:(hosts="user@10.9.1.1,user@10.9.1.2,user@10.9.1.3")``
-(this requires your default private key to have access; 
-see the ``prod1`` example below for specifying other credentials). 
-
-A wide range of other fields is available, because in the real world sometimes things do get complicated.
-The following is supported from the configuration file (with whatever customization you might want available in code): 
-
-- If there is a passphrase on the key file being used, you must supply it to Brooklyn for it to work, of course!
-  ``privateKeyPassphrase`` does the trick (as in ``brooklyn.location.jclouds.privateKeyPassphrase``, or other places
-  where ``privateKeyFile`` is valid).  If you don't like keys, you can just use a plain old ``password``.
-
-- Hardware requirements such as ``minRam`` and ``minCores`` can be supplied, or a ``hardwareId``  (jclouds only)
-
-- Specific Secury Groups can be specified using `securityGroups`, if you want to reuse set of existing ones (jclouds only)
-
-- Specific KeyPair can be specified using `keyPair`, if you want to reuse an existing keypair (jclouds only).
-
-- Specific VM images can be specified using ``imageId`` or ``imageNameRegex`` (jclouds only)
-
-- User metadata can be attached, using the syntax ``userMetadata=key=value,key2="value 2"`` (jclouds only)
-
-- A ``user`` can be specified, with the property that -- in a jclouds world -- the user will be *created* on the machine,
-  with admin rights, authorizing the relevant public key (corresponding to the private key, or as described below). 
-  Login for the root account will be disabled, as will login by password if a public key is supplied. 
-  (This is skipped if ``user`` is the ``root`` or other initial login user.)
-  
-- You can specify the user account to use to login to jclouds initially with the ``loginUser`` property.
-  Typically this is auto-detected by jclouds
-  (often ``root``, or ``ubuntu`` or ``ec2-user`` for known Ubuntu or Amazon Linux images), 
-  but the strategy isn't foolproof, particularly in some private cloud setups. (jclouds only). In some cases, you may need to specify a `loginUser.privateKeyFile` if the image you are using doesn't allow ssh password login.
-
-- Public keys can be specified using ``publicKeyFile``, 
-  although these can usually be omitted if they follow the common pattern of being
-  the private key file with the suffix ``.pub`` appended.
-  (It is useful in the case of ``loginUser.publicKeyFile``, where you shouldn't need,
-  or might not even have, the private key of the ``root`` user in order to log in.)
-
-- You can specify the number of attempts Brooklyn should make to create
-  machines with ``machineCreateAttempts`` (jclouds only). This is useful for
-  working around the rare occasions in which cloud providers give machines that
-  are dead on arrival.
-
-You can also define named locations for commonly used groups of properties, 
-with the syntax ``brooklyn.location.named.your-group-name.``
-followed by the relevant properties.
-These can be accessed at runtime using the syntax ``named:your-group-name`` as the deployment location.
-
-Some more advanced examples showing the syntax and properties above are as follows:
-
-{% highlight bash %}
-# Production pool of machines for my application (deploy to named:prod1)
-brooklyn.location.named.prod1=byon:(hosts="10.9.1.1,10.9.1.2,produser2@10.9.2.{10,11,20-29}")
-brooklyn.location.named.prod1.user=produser1
-brooklyn.location.named.prod1.privateKeyFile=~/.ssh/produser_id_rsa
-brooklyn.location.named.prod1.privateKeyPassphrase=s3cr3tCOMPANYpassphrase
-
-# AWS using my company's credentials and image standard, then labelling images so others know they're mine
-brooklyn.location.named.company-jungle=jclouds:aws-ec2:us-west-1
-brooklyn.location.named.company-jungle.identity=BCDEFGHIJKLMNOPQRSTU  
-brooklyn.location.named.company-jungle.privateKeyFile=~/.ssh/public_clouds/company_aws_id_rsa
-brooklyn.location.named.company-jungle.imageId=ami-12345
-brooklyn.location.named.company-jungle.minRam=2048
-brooklyn.location.named.company-jungle.userMetadata=application=my-jungle-app,owner="Bob Johnson"
-brooklyn.location.named.company-jungle.machineCreateAttempts=2
-{% endhighlight %}
-


[24/50] [abbrv] incubator-brooklyn git commit: add website files, and update the build.sh script appropriately

Posted by he...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.cassandra.CassandraNode.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.cassandra.CassandraNode.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.cassandra.CassandraNode.html
new file mode 100644
index 0000000..cc9496e
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.cassandra.CassandraNode.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Apache Cassandra Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.cassandra.CassandraNode");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.couchbase.CouchbaseCluster.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.couchbase.CouchbaseCluster.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.couchbase.CouchbaseCluster.html
new file mode 100644
index 0000000..493abc7
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.couchbase.CouchbaseCluster.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - CouchBase Cluster</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.couchbase.CouchbaseCluster");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.couchbase.CouchbaseNode.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.couchbase.CouchbaseNode.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.couchbase.CouchbaseNode.html
new file mode 100644
index 0000000..3e42ae1
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.couchbase.CouchbaseNode.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - CouchBase Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.couchbase.CouchbaseNode");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.couchdb.CouchDBNode.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.couchdb.CouchDBNode.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.couchdb.CouchDBNode.html
new file mode 100644
index 0000000..ca1ab15
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.couchdb.CouchDBNode.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - CouchDB Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.couchdb.CouchDBNode");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.elasticsearch.ElasticSearchCluster.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.elasticsearch.ElasticSearchCluster.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.elasticsearch.ElasticSearchCluster.html
new file mode 100644
index 0000000..ab90e66
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.elasticsearch.ElasticSearchCluster.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Elastic Search Cluster</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.elasticsearch.ElasticSearchCluster");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.elasticsearch.ElasticSearchNode.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.elasticsearch.ElasticSearchNode.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.elasticsearch.ElasticSearchNode.html
new file mode 100644
index 0000000..b5e6581
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.elasticsearch.ElasticSearchNode.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Elastic Search Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.elasticsearch.ElasticSearchNode");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.mongodb.MongoDBServer.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.mongodb.MongoDBServer.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.mongodb.MongoDBServer.html
new file mode 100644
index 0000000..d66cfd4
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.mongodb.MongoDBServer.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - MongoDB Server</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.mongodb.MongoDBServer");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.mongodb.sharding.MongoDBRouter.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.mongodb.sharding.MongoDBRouter.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.mongodb.sharding.MongoDBRouter.html
new file mode 100644
index 0000000..4aa3d58
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.mongodb.sharding.MongoDBRouter.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - MongoDB Router</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.mongodb.sharding.MongoDBRouter");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeployment.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeployment.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeployment.html
new file mode 100644
index 0000000..32407e8
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeployment.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - MongoDB Sharded Deployment</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeployment");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.redis.RedisCluster.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.redis.RedisCluster.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.redis.RedisCluster.html
new file mode 100644
index 0000000..b89a515
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.redis.RedisCluster.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Redis Cluster</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.redis.RedisCluster");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.redis.RedisStore.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.redis.RedisStore.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.redis.RedisStore.html
new file mode 100644
index 0000000..a0a5504
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.redis.RedisStore.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Redis Server</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.redis.RedisStore");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.riak.RiakCluster.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.riak.RiakCluster.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.riak.RiakCluster.html
new file mode 100644
index 0000000..e588e09
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.riak.RiakCluster.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Riak Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.riak.RiakCluster");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.riak.RiakNode.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.riak.RiakNode.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.riak.RiakNode.html
new file mode 100644
index 0000000..d70b0b0
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.riak.RiakNode.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Riak Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.riak.RiakNode");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.solr.SolrServer.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.solr.SolrServer.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.solr.SolrServer.html
new file mode 100644
index 0000000..45514a6
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.nosql.solr.SolrServer.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Apache Solr Node</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.nosql.solr.SolrServer");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.osgi.karaf.KarafContainer.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.osgi.karaf.KarafContainer.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.osgi.karaf.KarafContainer.html
new file mode 100644
index 0000000..3583da1
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.osgi.karaf.KarafContainer.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Karaf</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.osgi.karaf.KarafContainer");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.pool.ServerPool.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.pool.ServerPool.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.pool.ServerPool.html
new file mode 100644
index 0000000..c20cdd1
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.pool.ServerPool.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Server Pool</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.pool.ServerPool");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.proxy.nginx.NginxController.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.proxy.nginx.NginxController.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.proxy.nginx.NginxController.html
new file mode 100644
index 0000000..d0a0c61
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.proxy.nginx.NginxController.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Nginx Server</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.proxy.nginx.NginxController");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.ControlledDynamicWebAppCluster.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.ControlledDynamicWebAppCluster.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.ControlledDynamicWebAppCluster.html
new file mode 100644
index 0000000..3c8ebff
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.ControlledDynamicWebAppCluster.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Controlled Dynamic Web-app Cluster</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.webapp.ControlledDynamicWebAppCluster");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.DynamicWebAppCluster.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.DynamicWebAppCluster.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.DynamicWebAppCluster.html
new file mode 100644
index 0000000..046604f
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.DynamicWebAppCluster.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Dynamic Web-app Cluster</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.webapp.DynamicWebAppCluster");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.jboss.JBoss6Server.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.jboss.JBoss6Server.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.jboss.JBoss6Server.html
new file mode 100644
index 0000000..668ce5a
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.jboss.JBoss6Server.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - JBoss Application Server 6</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.webapp.jboss.JBoss6Server");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.jboss.JBoss7Server.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.jboss.JBoss7Server.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.jboss.JBoss7Server.html
new file mode 100644
index 0000000..7b2c3f5
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.jboss.JBoss7Server.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - JBoss Application Server 7</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.webapp.jboss.JBoss7Server");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.jetty.Jetty6Server.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.jetty.Jetty6Server.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.jetty.Jetty6Server.html
new file mode 100644
index 0000000..1d0cbd5
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.jetty.Jetty6Server.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Jetty6 Server</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.webapp.jetty.Jetty6Server");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.nodejs.NodeJsWebAppService.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.nodejs.NodeJsWebAppService.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.nodejs.NodeJsWebAppService.html
new file mode 100644
index 0000000..1ea921b
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.nodejs.NodeJsWebAppService.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Node.JS Application</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.webapp.nodejs.NodeJsWebAppService");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b86cbf04/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.tomcat.TomcatServer.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.tomcat.TomcatServer.html b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.tomcat.TomcatServer.html
new file mode 100644
index 0000000..a18368c
--- /dev/null
+++ b/docs/website/learnmore/catalog/entities/brooklyn.entity.webapp.tomcat.TomcatServer.html
@@ -0,0 +1,66 @@
+<!--
+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 Entity - Tomcat Server</title>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+    <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="summary"></div>
+
+      <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>
+      </ul>
+
+      <div class="tab-content">
+        <div class="tab-pane active" id="configKeys"></div>
+        <div class="tab-pane" id="sensors"></div>
+        <div class="tab-pane" id="effectors"></div>
+      </div>
+    </div>
+
+    <script src="../../../style/js/underscore-min.js" type="text/javascript"></script>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+    <script src="../common.js" type="text/javascript"></script>
+    <script src="../items.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            var item = brooklyn.findItemOfType(items.entities, "brooklyn.entity.webapp.tomcat.TomcatServer");
+            $("#summary").html(brooklyn.typeSummary(item));
+            item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
+            item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+            if (item.effectors != undefined) {
+                item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+            }
+        });
+    </script>
+  </body>
+</html>


[18/50] [abbrv] incubator-brooklyn git commit: use Pathname ruby api in plugin so relative paths are resolved better

Posted by he...@apache.org.
use Pathname ruby api in plugin so relative paths are resolved better


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

Branch: refs/heads/master
Commit: 2b8a4910fad5a7a4edff1f2665c6c38cde4a0a5c
Parents: ba6612e
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Dec 15 21:12:58 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 02:02:55 2014 +0000

----------------------------------------------------------------------
 docs/_plugins/read.rb | 47 ++++++++++++++++++++++++----------------------
 1 file changed, 25 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2b8a4910/docs/_plugins/read.rb
----------------------------------------------------------------------
diff --git a/docs/_plugins/read.rb b/docs/_plugins/read.rb
index aedbceb..74a7613 100644
--- a/docs/_plugins/read.rb
+++ b/docs/_plugins/read.rb
@@ -28,6 +28,8 @@
 # the argument can be a variable or a filename literal (not quoted)
 # TODO: figure out how to accept a quoted string as an argument
 
+require 'pathname'
+
 module JekyllRead
   class ReadTag < Liquid::Tag
     def initialize(tag_name, text, tokens)
@@ -35,17 +37,17 @@ module JekyllRead
       @text = text
     end
     def render(context)
-	jekyllSite = context.registers[:site]
-	dir = jekyllSite.source+'/'+File.dirname(context['page']['url'])
 	filename = @text.strip
         filename = context[filename] || filename
-	if !filename.match(/^\/.*/) 
-		filename = dir + '/' + filename
-	else
-		filename = jekyllSite.source+'/'+filename
-	end
-	filename = filename.gsub(/\/\/+/,'/')
-	file = File.open(filename, "rb")
+
+        # Pathname API ignores first arg below if second is absolute
+        file = Pathname.new(File.dirname(context['page']['path'])) + filename
+        file = file.cleanpath
+        # is there a better way to trim a leading / ?
+        file = file.relative_path_from(Pathname.new("/")) unless file.relative?
+        raise "No such file #{file} in read call (from #{context['page']['path']})" unless file.exist?
+
+	file = File.open(file, "rb")
 	return file.read
     end
   end
@@ -56,20 +58,21 @@ module JekyllRead
       @text = text
     end
     def render(context)
-	jekyllSite = context.registers[:site]
-	filename = @text.strip
-	filename = context[filename] || filename
-# support vars (above) and relative paths in filename (below - need the right path if there is a subsequent link)
-        dir = filename
-	if !filename.match(/^\/.*/) 
-		dir = File.dirname(context['page']['url']) + '/' + filename
-	end
-	dir = dir.gsub(/\/\/+/,'/')
-	filename = dir.sub(/^.*\//, '')
-	dir = dir.gsub(/\/[^\/]*$/, '/')
-	targetPage = Jekyll::Page.new(jekyllSite, jekyllSite.source, dir, filename)
+        filename = @text.strip
+        filename = context[filename] || filename
+
+        # Pathname API ignores first arg below if second is absolute
+        file = Pathname.new(File.dirname(context['page']['path'])) + filename
+        file = file.cleanpath
+        # is there a better way to trim a leading / ?
+        file = file.relative_path_from(Pathname.new("/")) unless file.relative?
+        raise "No such file #{file} in readj call (from #{context['page']['path']})" unless file.exist?
+
+        # with readj we support vars and paths relative to a file being readj'd
+        jekyllSite = context.registers[:site]
+	targetPage = Jekyll::Page.new(jekyllSite, jekyllSite.source, File.dirname(file), File.basename(file))
 	targetPage.render(jekyllSite.layouts, jekyllSite.site_payload)
-	targetPage.output
+	return targetPage.output
     end
   end
 end


[40/50] [abbrv] incubator-brooklyn git commit: put content in release notes

Posted by he...@apache.org.
put content in release notes

the template looked foolish (insincere thanks!), plus we are best off updating this as we go along i think


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

Branch: refs/heads/master
Commit: 2373c35299c835d24daea0b31141bcd07494d60b
Parents: d3c0469
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Dec 17 11:06:25 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Dec 17 11:06:25 2014 +0000

----------------------------------------------------------------------
 docs/guide/start/release-notes.md | 41 +++++++++++++++-------------------
 1 file changed, 18 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2373c352/docs/guide/start/release-notes.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/release-notes.md b/docs/guide/start/release-notes.md
index 1f2fa4e..44f5bb7 100644
--- a/docs/guide/start/release-notes.md
+++ b/docs/guide/start/release-notes.md
@@ -4,9 +4,11 @@ title: Release Notes
 toc: ../toc.json
 ---
 
-## Brooklyn Version (Version)
+## Brooklyn Version ({{ site.brooklyn-version }})
 
-You are viewing a SNAPSHOT release (master branch), so this is a template for the release notes.
+{% if SNAPSHOT %}
+**You are viewing a SNAPSHOT release (master branch), so this list is incomplete.**
+{% endif %}
 
 * Introduction
 * New Features
@@ -15,42 +17,35 @@ You are viewing a SNAPSHOT release (master branch), so this is a template for th
 
 ### Introduction
 
-This milestone release includes many big features, and brings us much closer to NEXT VERSION.
+This version includes many big features,
+incorporating a lot of improvements and feedback from our community. Thank you!
 
-It incorporates a lot of improvements and feedback from our community. Thank you!
+Thanks also go to Brooklyn's commercial users who have funded this development and
+made some major contributions. 
 
-Thanks also go to Brooklyn's commercial users. Already Brooklyn has been adopted into some very exciting projects including 
+For more information, please visit [brooklyn.io](http://brooklyn.io).
 
-For more information, please checkout [brooklyncentral.github.io](http://brooklyncentral.github.io), and our
-[mailing list at Apache](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/).
 
 ### New Features
 
-The major changes between M1 and M2 are:
+* A huge expansion of what can be done in YAML.
 
-1. Entry
+* First-class Chef integration
 
-2. Entry
-	* With sublist
-	* list item
-	* list item
-3. [Links](#) formatting. (Example.)
+* New clouds:  GCE, Softlayer
 
-4. List of new providers
+* Networking
 
-5. List of new entities
+* Docker support:  see [clocker.io](clocker.io)
 
 
 ### Backwards Compatibility
 
-For upgrading from OLD to NEW version.
+* Persistence has been radically overhauled. In most cases the state files from previous versions are compatible,
+  but some items have had to change. For most users this should not be an issue as persistence in the previous version
+  was not working well in any case. 
 
-1. Entry
-
-1. Lists can use 1. 1. 1. 1. 
-
-1. (Jekyll counts for you.)
 
 ### Community Activity
 
-Any activity related to Brooklyn, but not part of Brooklyn itself.
+Brooklyn has moved into the Apache Software Foundation.