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 2016/02/01 18:44:16 UTC

[01/50] brooklyn-docs git commit: update catalog docs for the new planned multi-item syntax

Repository: brooklyn-docs
Updated Branches:
  refs/heads/0.7.0-incubating [created] 57bafeda3


update catalog docs for the new planned multi-item syntax


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

Branch: refs/heads/0.7.0-incubating
Commit: 7a001b8d9a29a5c324201616f5a2885d0aa3e97e
Parents: f76d54f
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Sun Mar 29 21:03:23 2015 -0500
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Apr 15 20:05:19 2015 -0500

----------------------------------------------------------------------
 docs/guide/ops/catalog/index.md | 317 +++++++++++++++++++++++------------
 1 file changed, 207 insertions(+), 110 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/7a001b8d/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md
index dd1b991..8f627d4 100644
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@ -2,93 +2,237 @@
 title: Catalog
 layout: website-normal
 children:
-- { section: Catalog Items }
+- { section: General YAML Schema }
+- { section: Catalog Metadata }
+- { section: Catalog YAML Examples }
 - { section: Adding to the Catalog, title: Adding and Deleting } 
+- { section: Templates and the Add-Application Wizard, title: Templates }
 - { section: Versioning } 
-- { section: special-reqs, title: Wizard } 
 ---
 
-Brooklyn provides a **catalog**, which is a persisted collection of versioned blueprints. 
-These can be deployed directly or referenced by other blueprints. 
-Blueprints in the catalog can be deployed via the Brooklyn REST API, or from 
-the web-console's "Catalog" tab of the "Create Application" wizard dialog box.
+Brooklyn provides a **catalog**, which is a persisted collection of versioned blueprints and other resources. 
+Blueprints in the catalog can be deployed directly, via the Brooklyn REST API or the web console,
+or referenced in other blueprints.
 
+ 
+### Catalog Items YAML Syntax
 
-<!--
-TODO: Clean up confusion in terminology between Catalog item and Blueprint (and Java blueprint?)?
--->
+An item or items to be added to the catalog is defined by a YAML file,
+specifying the catalog metadata for the items and the actual blueprint or resource definition.
 
-### Catalog Items
 
-An item to be added to the catalog is defined in YAML. This follows the syntax of a 
-YAML blueprint with an addition `brooklyn.catalog` section giving 
-the metadata needed to register the blueprint in the catalog:
+#### General YAML Schema
+ 
+A single catalog item can be defined following this general structure:
 
-{% highlight yaml %}
+```yaml
 brooklyn.catalog:
-  id: my-MySQL
-  version: 1.0
-  iconUrl: classpath://mysql.png
-  description: MySql is an open source relational database management system (RDBMS)
-  libraries:
-    - url: http://example.com/path/to/my-dependency-1.2.3.jar
-    - url: http://example.com/path/to/my-other-dependency-4.5.6.jar
+  <catalog-metadata>
+  item:
+    <blueprint-or-resource-definition>
+```
 
-services:
-- type: brooklyn.entity.database.mysql.MySqlNode
-{% endhighlight %}
-
-To explain the `brooklyn.catalog` fields:
-
-- The `id: MySQL` line specifies a unique ID used by Brooklyn to identify the catalog item. 
-  Other blueprints can reference the catalog item using this id.
-- The `version: 1.0` line provides a unique version for the *blueprint*. 
-  Note that this is typically *not* the version of the software being installed (in this case MySQL).
-- The `iconUrl: classpath://...` is an optional line where an icon can be specified 
-  for use with the item (in the "Add Application" dialog and elsewhere).
-  Note that `classpath` URLs *cannot* refer to items in the OSGi bundle 
-  (to prevent requiring all OSGi bundles to be loaded at launch);
-  use the server supplying the OSGi bundles or the `conf` folder of the Brooklyn distro instead.
-- The `description: ...` line, also optional, allows supplying a free-format description of the blueprint.
-
-
-The `libraries` section references OSGi bundles required for the blueprint. It can be omitted if everything
-required by the blueprint is already on the Brooklyn classpath.
-These URL's should be to stable OSGi bundles;
-if the contents at any of these URLs changes, the behaviour of the blueprint may change 
-whenever a bundle is reloaded in a Brooklyn server,
-and if entities have been deployed against that version, their behavior may change in subtle or potentially incompatible ways.
-To avoid this situation, it is highly recommended to use OSGi version stamps as part of the URL.
+
+To define multiple catalog items in a single YAML,
+where they may share some metadata,
+use the following structure:
+
+```yaml
+brooklyn.catalog:
+  <catalog-metadata>
+  items:
+  - <additional-catalog-metadata>
+    item:
+      <blueprint-or-resource-definition>
+  - <additional-catalog-metadata>
+    item:
+      <blueprint-or-resource-definition>
+```
+
+In some cases it is desired to define a default blueprint in a catalog file,
+so that the catalog file can be used unchanged to launch an application.
+To support this use case, the following format is also supported:
+
+```yaml
+<blueprint-definition>
+brooklyn.catalog:
+  <catalog-metadata>
+```
+
+
+
+#### Catalog Metadata
+
+Catalog metadata fields supply the additional information required In order to register an item in the catalog. 
+These fields can be supplied as `key: value` entries 
+where either the `<catalog-metadata>` or `<additional-catalog-metadata>` placeholders are,
+with the latter overriding the former unless otherwise specfied below.
+
+The following metadata is *required* for all items:
+
+- `id`: a human-friendly unique identifier for how this catalog item will be referenced from blueprints
+- `version`: multiple versions of a blueprint can be installed and used simultaneously;
+  this field disambiguates between blueprints of the same `id`.
+  Note that this is typically *not* the version of the software being installed,
+  but rather the version of the blueprint. For more information on versioning, see below.
 
 To reference a catalog item in another blueprint, simply reference its ID and optionally its version number.
 For example: 
 
-{% highlight yaml %}
+```yaml
 services:
-- type: my-MySQL:1.0
-{% endhighlight %}
+- type: datastore:1.0
+```
+
+In addition, exactly **one** of the following is also required:
+
+- `item`: the blueprint (in the usual YAML format) for an entity or application template,
+  or a map containing `type` and optional `brooklyn.config` for policies and locations; **or**
+- `items`: a list of catalog items, where each entry in the map follows the same schema as
+  the `brooklyn.catalog` value, and the keys in these map override any metadata specified as
+  a sibling of this `items` key (or, in the case of `libraries` they add to the list)
+
+The following optional catalog metadata is supported:
+  
+- `item.type`: the type of the item being defined.
+  If omitted, all `item` definitions are taken to be entities;
+  for any type other than an entity, this field must be supplied.
+  The supported types are:
+  - `entity`
+  - `template`
+  - `policy`
+  - `location`
+- `name`: a nicely formatted display name for the item, used when presenting it in a GUI
+- `description`: supplies an extended textual description for the item
+- `icon.url`: points to an icon for the item, used when presenting it in a GUI.
+  The URL prefix `classpath` is supported but these URLs may *not* refer items in any OSGi bundle in the `libraries` section 
+  (to prevent requiring all OSGi bundles to be loaded at launch).
+  Icons are instead typically installed either at the server from which the OSGi bundles or catalog items are supplied 
+  or in the `conf` folder of the Brooklyn distro.
+- `libraries`: a list of pointers to OSGi bundles required for the catalog item.
+  This can be omitted if blueprints are pure YAML and everything required is included in the catalog file, at URLs, 
+  or in the Brooklyn classpath. If custom Java code or bundled resources is used, the OSGi JARs supply
+  a convenient packaging format and a very powerful versioning format.
+  Note that these URL's should point at immutable OSGi bundles;
+  if the contents at any of these URLs changes, the behaviour of the blueprint may change 
+  whenever a bundle is reloaded in a Brooklyn server,
+  and if entities have been deployed against that version, their behavior may change in subtle or potentially incompatible ways.
+  To avoid this situation, it is highly recommended to use OSGi version stamps as part of the URL.
+
+
+#### Catalog YAML Examples
+
+##### A Simple Example
+
+The following example installs the `RiakNode` entity, making it also available as an application template,
+with a nice display name, description, and icon.
+It can be referred in other blueprints to as `datastore:1.0`, 
+and its implementation will be the Java `brooklyn.entity.nosql.riak.RiakNode`
+loaded from a classpath including an OSGi bundle and Brooklyn.
+
+```yaml
+brooklyn.catalog:
+  id: datastore
+  version: 1.0
+  item.type: template
+  icon.url: classpath://brooklyn/entity/nosql/riak/riak.png
+  name: Datastore (Riak)
+  description: Riak is an open-source NoSQL key-value data store.
+  libraries:
+    - url: http://example.com/path/to/my-dependency-1.2.3.jar
+  item:
+    - type: brooklyn.entity.nosql.riak.RiakNode
+      name: Riak Node
+```
+
+
+##### Multiple Items
+
+This YAML will install three items:
+
+```yaml
+brooklyn.catalog:
+  version: 1.1
+  icon.url: classpath://brooklyn/entity/nosql/riak/riak.png
+  description: Riak is an open-source NoSQL key-value data store.
+  libraries:
+    - url: http://example.com/path/to/my-dependency-1.2.3.jar
+  items:
+    - id: datastore
+      name: Datastore (Riak Cluster)
+      item.type: template
+      item:
+        - type: riak-cluster
+          location: 
+            jclouds:softlayer:
+              region: sjc01
+              # identity and credential must be set unless they are specified in your brooklyn.properties
+              # identity: XXX
+              # credential: XXX
+          brooklyn.config:
+            # the default size is 3 but this can be changed to suit your requirements
+            initial.size: 3
+            provisioning.properties:
+              # you can also define machine specs
+              minRam: 8gb
+    - id: riak-cluster
+      item:
+        - type: brooklyn.entity.nosql.riak.RiakCluster
+          name: Riak Cluster
+    - id: riak-node
+      item:
+        - type: brooklyn.entity.nosql.riak.RiakNode
+          name: Riak Node
+```
+
+The items this will install are:
+
+- `riak-cluster` is available as a convenience short name for the full class, as an entity,
+  with an additional OSGi bundle installed
+- `datastore` provides the `riak-cluster` blueprint, in SoftLayer and with the given size and machine spec, 
+  as the default implementation for anyone
+  requesting a `datastore` (and if installed atop the previous example, new references to `datastore` 
+  will access this version because it is a higher number);
+  because it is a template, users will have the opportunity to edit the YAML (see below)
+- `riak-node` is also installed, as before (but with a different name)
+
+
+
+### Templates and the Add-Application Wizard
+
+When a `template` is added to the catalog, the blueprint will appear in the 'Create Application' dialog
+as shown here:
+
+[![MySQL in Brooklyn Catalog](mysql-in-catalog-w700.png "MySQL in Brooklyn Catalog")](mysql-in-catalog.png) 
+
+
+
+### Catalog Management
+
+The Catalog tab in the web console will show all versions of catalog items,
+and allow you to add new items.
 
 
-### Adding to the Catalog
+##### Adding to the Catalog
 
-To add a catalog item to the catalog, `POST` the YAML file to `/v1/catalog` endpoint in
-Brooklyn's REST API.
+In addition to the GUI, items can be added to the catalog via the REST API
+with a `POST` of the YAML file to `/v1/catalog` endpoint.
 To do this using `curl`:
 
-{% highlight bash %}
-curl http://127.0.0.1:8081/v1/catalog --data-binary @/path/to/mysql-catalog.yaml
-{% endhighlight %}
+```bash
+curl http://127.0.0.1:8081/v1/catalog --data-binary @/path/to/riak.catalog.bom
+```
 
 
 
-### Deleting from the Catalog
+##### Deleting from the Catalog
 
 You can delete a versioned item from the catalog using the same endpoint as the REST API. 
-For example, to delete the item with id `my-MySQL` and version `1.0` with `curl`:
+For example, to delete the item with id `datastore` and version `1.0` with `curl`:
 
-{% highlight bash %}
-curl -X DELETE http://127.0.0.1:8081/v1/catalog/entities/MySQL/1.0
-{% endhighlight %}
+```bash
+curl -X DELETE http://127.0.0.1:8081/v1/catalog/entities/datastore/1.0
+```
 
 **Note:** Catalog items should not be deleted if there are running apps which were created using the same item. 
 During rebinding the catalog item is used to reconstruct the entity.
@@ -101,9 +245,10 @@ in a future release.
 Deprecation applies to a specific version of a catalog item, so the full
 id including the version number is passed to the REST API as follows:
 
-{% highlight bash %}
+```bash
 curl -X POST http://127.0.0.1:8081/v1/catalog/entities/MySQL:1.0/deprecated/true
-{% endhighlight %}
+```
+
 
 ### Versioning
 
@@ -122,41 +267,7 @@ When referencing a blueprint, if a version number is not specified
 the latest non-snapshot version will be loaded when an entity is instantiated.
 
 
-<a id="special-reqs"/>
-
-### Special Requirements for the "Create Application" Wizard Dialog
 
-For a blueprint in the catalog to be accessible via the 'Create Application' dialog, it must be an Application 
-(i.e. the entity at the root of the blueprint must implement `brooklyn.entity.Application`).
-In contrast, if a YAML blueprint is deployed direct via the REST API, then this is not necessary.
-
-For example, the MySql catalog item defined previously could be re-written to use a
-`brooklyn.entity.basic.BasicApplication`, because no application-specific logic is 
-required other than to pass-through the start and stop commands.
-the `MySqlNode` is added as a child of the `BasicApplication`.
-
-{% highlight yaml %}
-brooklyn.catalog:
-  id: my-MySQL
-  version: 1.0
-  iconUrl: classpath://mysql.png
-  description: MySql is an open source relational database management system (RDBMS)
-
-name: MySQL Database
-services:
-- type: brooklyn.entity.basic.BasicApplication
-  brooklyn.children:
-  - type: brooklyn.entity.database.mysql.MySqlNode
-{% endhighlight %}
-
-When added to the catalog via the HTTP `POST` command, the blueprint will appear in the 'Create Application' dialog
-as shown here:
-
-[![MySQL in Brooklyn Catalog](mysql-in-catalog-w700.png "MySQL in Brooklyn Catalog")](mysql-in-catalog.png) 
-
-When deploying a new version of a blueprint, the catalog will show both the previous and the new versions 
-of the blueprint. You may wish to delete the older version, assuming no applications currently running
-are using that old version.
 
 <!--
 TODO: Should improve the 'Create Application' dialog, so that the two versions don't appear on the front page.
@@ -169,17 +280,3 @@ TODO: Add section that explains how to add plain entities to the catalog and use
 (and entity UI) or embed the catalog id + version in another YAML
 -->
 
-<!--
-TODO: Add documentation to explain that the brooklyn.catalog section can contain a libraries array, each item pointing to 
-an OSGi bundle where the code for the blueprint is hosted. Every type from the blueprint will be searched for in the 
-libraries first and then on the standard Brooklyn classpath.*
--->
-
-<!--
-TODO: Add documentation about adding policies to the catalog, and explaining how to add items to 
-the UI using the plus icon on the catalog tab*
-
-TODO: describe entity addition (this just covers app addition)
-
-TODO: describe how to use the web-console GUI
--->


[39/50] brooklyn-docs git commit: Add link to GitHub blueprint library

Posted by he...@apache.org.
Add link to GitHub blueprint library


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

Branch: refs/heads/0.7.0-incubating
Commit: 53685f05fbd634b36d512baca8c194cc6f2484d6
Parents: 6fa7c6b
Author: Mike Zaccardo <mi...@cloudsoftcorp.com>
Authored: Thu Jun 11 12:51:11 2015 -0400
Committer: Mike Zaccardo <mi...@cloudsoftcorp.com>
Committed: Thu Jun 11 12:51:11 2015 -0400

----------------------------------------------------------------------
 docs/guide/yaml/index.md | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/53685f05/docs/guide/yaml/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/index.md b/docs/guide/yaml/index.md
index c16dab2..c431d1a 100644
--- a/docs/guide/yaml/index.md
+++ b/docs/guide/yaml/index.md
@@ -11,6 +11,7 @@ children:
 - custom-entities.md
 - chef/
 - { path: yaml-reference.md, title: YAML Blueprint Reference }
+- { link: 'https://github.com/brooklyncentral/blueprint-library', title: 'GitHub Blueprint Library' }
 ---
 
 


[19/50] brooklyn-docs git commit: This closes #608

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


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

Branch: refs/heads/0.7.0-incubating
Commit: 2db56359d00d7b9850cf79e22774e1a2de6cc614
Parents: f67784f a8f3268
Author: Aled Sage <al...@gmail.com>
Authored: Thu Apr 23 15:10:27 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Apr 23 15:10:27 2015 +0100

----------------------------------------------------------------------
 docs/README.md                    | 4 ++--
 docs/guide/index.md               | 1 +
 docs/guide/ops/locations/index.md | 4 ++--
 3 files changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------



[45/50] brooklyn-docs git commit: This closes #715

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


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

Branch: refs/heads/0.7.0-incubating
Commit: 756aaf47dcbeab33babb4f78818f89d2acbb72bc
Parents: f6173dc ab651e7
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri Jun 26 12:18:48 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri Jun 26 12:18:48 2015 +0100

----------------------------------------------------------------------
 docs/guide/misc/release-notes.md | 100 +++++++++++++++++++++++++++-------
 1 file changed, 80 insertions(+), 20 deletions(-)
----------------------------------------------------------------------



[22/50] brooklyn-docs git commit: yaml catalog supports scanning, experimental, and default

Posted by he...@apache.org.
yaml catalog supports scanning, experimental, and default

this restores catalog scanning as the default, based on brooklyn/default.catalog.bom in the cli project;
there are some limitations on what can be scanned, described in the doc.
some of the tests configure other catalogs (with core's brooklyn/empty.catalog.bom used in many)


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

Branch: refs/heads/0.7.0-incubating
Commit: 3d9651fcf8d1831ebe5c2dc7569b354a85f24d63
Parents: 0b60bf2
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Apr 29 13:27:09 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 8 18:22:21 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/catalog/index.md | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/3d9651fc/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md
index 8477204..dcedcd8 100644
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@ -103,6 +103,11 @@ The following optional catalog metadata is supported:
   (to prevent requiring all OSGi bundles to be loaded at launch).
   Icons are instead typically installed either at the server from which the OSGi bundles or catalog items are supplied 
   or in the `conf` folder of the Brooklyn distro.
+- `scanJavaAnnotations` [experimental]: if provided (as `true`), this will scan any locally provided
+  libraries for types annotated `@Catalog` and extract metadata to include them as catalog items.
+  If no libraries are specified this will scan the default classpath.
+  This feature is experimental and may change or be removed.
+  Also note that other metadata (such as versions, etc) may not be applied.
 - `brooklyn.libraries`: a list of pointers to OSGi bundles required for the catalog item.
   This can be omitted if blueprints are pure YAML and everything required is included in the classpath and catalog.
   Where custom Java code or bundled resources is needed, however, OSGi JARs supply


[18/50] brooklyn-docs git commit: Add passwordless sudo as listed requirement for localhost blueprint deployment without config

Posted by he...@apache.org.
Add passwordless sudo as listed requirement for localhost blueprint deployment without config


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

Branch: refs/heads/0.7.0-incubating
Commit: a8f3268b4bdbf435ec903e35d39b0b59b4c9bc08
Parents: 397e485
Author: Mike Zaccardo <mi...@cloudsoftcorp.com>
Authored: Tue Apr 21 17:21:22 2015 -0400
Committer: Mike Zaccardo <mi...@cloudsoftcorp.com>
Committed: Tue Apr 21 17:21:22 2015 -0400

----------------------------------------------------------------------
 docs/guide/ops/locations/index.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/a8f3268b/docs/guide/ops/locations/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/locations/index.md b/docs/guide/ops/locations/index.md
index 18c9810..803c000 100644
--- a/docs/guide/ops/locations/index.md
+++ b/docs/guide/ops/locations/index.md
@@ -237,8 +237,8 @@ brooklyn.location.named.my-aws.KEY=VAL5
 
 ### Localhost
 
-If passwordless ssh login to `localhost` is enabled on your machine,
-you should be able to deploy blueprints with no special configuration,
+If passwordless ssh login to `localhost` and passwordless `sudo` is enabled on your 
+machine, you should be able to deploy blueprints with no special configuration,
 just by specifying `location: localhost` in YAML.
 
 If you use a passpharse or prefer a different key, these can be configured as follows: 


[16/50] brooklyn-docs git commit: Add link direct link to downloads from guide

Posted by he...@apache.org.
Add link direct link to downloads from guide


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

Branch: refs/heads/0.7.0-incubating
Commit: 397e48598dbcf0d9efad6370a220e458677303cb
Parents: d099ab0
Author: Mike Zaccardo <mi...@cloudsoftcorp.com>
Authored: Tue Apr 21 16:44:58 2015 -0400
Committer: Mike Zaccardo <mi...@cloudsoftcorp.com>
Committed: Tue Apr 21 16:44:58 2015 -0400

----------------------------------------------------------------------
 docs/guide/index.md | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/397e4859/docs/guide/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/index.md b/docs/guide/index.md
index 2e2dadf..cdb3b46 100644
--- a/docs/guide/index.md
+++ b/docs/guide/index.md
@@ -6,6 +6,7 @@ breadcrumbs:
 - index.md
 children:
 - { path: /guide/start/index.md }
+- { path: /guide/misc/download.md }
 - { path: /guide/concepts/index.md }
 - { path: /guide/yaml/index.md }
 - { path: /guide/java/index.md }


[09/50] brooklyn-docs git commit: Different LICENSE/NOTICE for usage/cli

Posted by he...@apache.org.
Different LICENSE/NOTICE for usage/cli


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

Branch: refs/heads/0.7.0-incubating
Commit: 11d79cae4128df3028bdf14286291153fdb0b8d4
Parents: e147e20
Author: Richard Downer <ri...@apache.org>
Authored: Thu Apr 16 12:02:15 2015 +0100
Committer: Richard Downer <ri...@apache.org>
Committed: Thu Apr 16 16:01:01 2015 +0100

----------------------------------------------------------------------
 usage/cli/src/test/license/NOTICE | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/11d79cae/usage/cli/src/test/license/NOTICE
----------------------------------------------------------------------
diff --git a/usage/cli/src/test/license/NOTICE b/usage/cli/src/test/license/NOTICE
new file mode 100644
index 0000000..f790f13
--- /dev/null
+++ b/usage/cli/src/test/license/NOTICE
@@ -0,0 +1,5 @@
+Apache Brooklyn
+Copyright 2014-2015 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).


[43/50] brooklyn-docs git commit: Clarify operation of `templateOptions` config key

Posted by he...@apache.org.
Clarify operation of `templateOptions` config key

Resolves the ambiguity around single parameters of type list. Extracts
the bulk of the code into a new standalone class and adds tests. Adds
documentation.


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

Branch: refs/heads/0.7.0-incubating
Commit: f6173dcca96fddaa596ee531320add807da506b2
Parents: 0c88c44
Author: Richard Downer <ri...@apache.org>
Authored: Wed Jun 24 10:58:11 2015 +0100
Committer: Richard Downer <ri...@apache.org>
Committed: Wed Jun 24 11:03:48 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/locations/index.md | 43 ++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/f6173dcc/docs/guide/ops/locations/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/locations/index.md b/docs/guide/ops/locations/index.md
index e6c7035..6fc5b4b 100644
--- a/docs/guide/ops/locations/index.md
+++ b/docs/guide/ops/locations/index.md
@@ -210,6 +210,49 @@ For more keys and more detail on the keys below, see
   This setting prevents scripts executed on the VMs from being deleted on completion.
   Note that some scripts run periodically so this can eventually fill a disk; it should only be used for dev/test. 
 
+###### Custom template options
+
+jclouds supports many additional options for configuring how a virtual machine is created and deployed, many of which
+are for cloud-specific features and enhancements. Brooklyn supports some of these, but if what you are looking for is
+not supported directly by Brooklyn, we instead offer a mechanism to set any parameter that is supported by the jclouds
+template options for your cloud.
+
+Part of the process for creating a virtual machine is the creation of a jclouds `TemplateOptions` object. jclouds
+providers extends this with extra options for each cloud - so when using the AWS provider, the object will be of
+type `AWSEC2TemplateOptions`. By [examining the source code](https://github.com/jclouds/jclouds/blob/jclouds-1.9.0/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateOptions.java),
+you can see all of the options available to you.
+
+The `templateOptions` config key takes a map. The keys to the map are method names, and Brooklyn will find the method on
+the `TemplateOptions` instance; it then invokes the method with arguments taken from the map value. If a method takes a
+single parameter, then simply give the argument as the value of the key; if the method takes multiple parameters, the
+value of the key should be an array, containing the argument for each parameter.
+
+For example, here is a complete blueprint that sets some AWS EC2 specific options:
+
+    location: AWS_eu-west-1
+    services:
+    - type: brooklyn.entity.basic.EmptySoftwareProcess
+      provisioningProperties:
+        templateOptions:
+          subnetId: subnet-041c8373
+          mapNewVolumeToDeviceName: ["/dev/sda1", 100, true]
+          securityGroupIds: ['sg-4db68928']
+
+Here you can see that we set three template options:
+
+- `subnetId` is an example of a single parameter method. Brooklyn will effectively try to run the statement
+  `templateOptions.subnetId("subnet-041c88373");`
+- `mapNewVolumeToDeviceName` is an example of a multiple parameter method, so the value of the key is an array.
+  Brooklyn will effectively true to run the statement `templateOptions.mapNewVolumeToDeviceName("/dev/sda1", 100, true);`
+- `securityGroupIds` demonstrates an ambiguity between the two types; Brooklyn will first try to parse the value as
+  a multiple parameter method, but there is no method that matches this parameter. In this case, Brooklyn will next try
+  to parse the value as a single parameter method which takes a parameter of type `List`; such a method does exist so
+  the operation will succeed.
+
+If the method call cannot be matched to the template options available - for example if you are trying to set an AWS EC2
+specific option but your location is an OpenStack cloud - then a warning is logged and the option is ignored.
+
+
 ### AWS VPC issues which may affect users with older AWS accounts
 
 AWS now has different default behaviour depending on the age of your AWS account and whether you used the target region before, or during, 2013.


[04/50] brooklyn-docs git commit: support for multi-item catalog yaml

Posted by he...@apache.org.
support for multi-item catalog yaml

adds many tests, and the rest of the features - template and policy and location; and source yaml.

also a few significant REST API changes:
* /v1/catalog/create API change returns a map (breaking)
* catalog items include more information for entity and policies


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

Branch: refs/heads/0.7.0-incubating
Commit: 687cfd6440b8dd5e63b9019e22f521f046eacaa1
Parents: 7a001b8
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri Apr 3 13:29:28 2015 -0400
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Apr 16 01:25:39 2015 -0500

----------------------------------------------------------------------
 docs/guide/misc/release-notes.md | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/687cfd64/docs/guide/misc/release-notes.md
----------------------------------------------------------------------
diff --git a/docs/guide/misc/release-notes.md b/docs/guide/misc/release-notes.md
index 2b6dadf..1a324d6 100644
--- a/docs/guide/misc/release-notes.md
+++ b/docs/guide/misc/release-notes.md
@@ -47,6 +47,10 @@ For more information, please visit [brooklyn.io](http://brooklyn.io).
 * If `brooklyn.webconsole.security.https.required=true` is specified with no explicit port, 
   it now defaults to 8443; previously it would default to 8081 even in the case of `https`.
 
+* The /v1/catalog/create method now returns a map of ID to item map, instead of an item map, 
+  as the call supports multiple items defined in the YAML.
+  
+
 ### Community Activity
 
 Brooklyn has moved into the Apache Software Foundation.


[31/50] brooklyn-docs git commit: Add new page resources

Posted by he...@apache.org.
Add new page resources


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

Branch: refs/heads/0.7.0-incubating
Commit: 10f8a5dd62ac726b10fd6bd78a292f34dbc2d214
Parents: fcf38fa
Author: Mike Zaccardo <mi...@cloudsoftcorp.com>
Authored: Tue May 26 16:22:50 2015 -0400
Committer: Mike Zaccardo <mi...@cloudsoftcorp.com>
Committed: Tue May 26 16:22:50 2015 -0400

----------------------------------------------------------------------
 .../guide/dev/rest/images/rest-api-gui-link.png | Bin 0 -> 43426 bytes
 docs/guide/dev/rest/rest-api-doc.md             |  19 +++++++++++++++++++
 2 files changed, 19 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/10f8a5dd/docs/guide/dev/rest/images/rest-api-gui-link.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/rest/images/rest-api-gui-link.png b/docs/guide/dev/rest/images/rest-api-gui-link.png
new file mode 100644
index 0000000..f77bf10
Binary files /dev/null and b/docs/guide/dev/rest/images/rest-api-gui-link.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/10f8a5dd/docs/guide/dev/rest/rest-api-doc.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/rest/rest-api-doc.md b/docs/guide/dev/rest/rest-api-doc.md
new file mode 100644
index 0000000..c05750c
--- /dev/null
+++ b/docs/guide/dev/rest/rest-api-doc.md
@@ -0,0 +1,19 @@
+---
+title: REST API Documentation
+layout: website-normal
+---
+
+## API Overview
+
+Brooklyn has a comprehensive REST API which can be used to perform all of the actions that 
+are possible through the web console, as well as additional functionality exclusive to the API.
+
+Brooklyn uses [Swagger](http://swagger.io/) to generate its REST API and documentation.
+
+## Accessing the API Documentation
+
+The complete REST API can be found in the web console (link pictured below) of your running 
+Brooklyn instance.
+Here you can view, as well as execute, every API call that Brooklyn has to offer.
+
+![Brooklyn web console, showing the link to the REST API documentation.](images/rest-api-gui-link.png) 
\ No newline at end of file


[27/50] brooklyn-docs git commit: tidying and bug-fixing around domain names and hostname salting

Posted by he...@apache.org.
tidying and bug-fixing around domain names and hostname salting


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

Branch: refs/heads/0.7.0-incubating
Commit: f5ace35fe0cba7594fcd3249055c88411fb3e151
Parents: e78ffca
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri May 8 17:48:12 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 8 18:51:51 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/locations/index.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/f5ace35f/docs/guide/ops/locations/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/locations/index.md b/docs/guide/ops/locations/index.md
index 02e82bb..78f185d 100644
--- a/docs/guide/ops/locations/index.md
+++ b/docs/guide/ops/locations/index.md
@@ -136,8 +136,9 @@ For more keys and more detail on the keys below, see
   `cloudMachineNamer: brooklyn.location.cloud.names.CustomMachineNamer`.
   {% include java_link.html class_name="CustomMachineNamer" package_path="brooklyn/location/cloud/names" project_subpath="core" %}
   will use the entity's name or following a template you supply.
-  For all names, a random suffix will be appended to help guarantee uniqueness;
-  this can be removed by setting `vmNameSaltLength: 0`.
+  On many clouds, a random suffix will be appended to help guarantee uniqueness;
+  this can be removed by setting `vmNameSaltLength: 0` (selected clouds only).
+  <!-- TODO jclouds softlayer includes a 3-char hex suffix -->
   
 - A DNS domain name where this host should be placed can be specified with `domainName`
   (in selected clouds only)


[36/50] brooklyn-docs git commit: This closes #665

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


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

Branch: refs/heads/0.7.0-incubating
Commit: 6fa7c6b19496b04cfab1fdc3d45abdb1b65b44d0
Parents: b33587e a08fe6d
Author: Aled Sage <al...@gmail.com>
Authored: Fri May 29 18:18:43 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Fri May 29 18:18:43 2015 +0100

----------------------------------------------------------------------
 .gitattributes                             |   2 +-
 docs/guide/yaml/winrm/about-winrm.md       |   0
 docs/guide/yaml/winrm/index.md             | 154 ++++++++++++++++++++++++
 docs/guide/yaml/winrm/re-authentication.md |  36 ++++++
 docs/guide/yaml/winrm/stdout-and-stderr.md |  25 ++++
 5 files changed, 216 insertions(+), 1 deletion(-)
----------------------------------------------------------------------



[06/50] brooklyn-docs git commit: explain the top-level-blueprint catalog syntax, and discourage it

Posted by he...@apache.org.
explain the top-level-blueprint catalog syntax, and discourage it

addresses @neykov 's code review comment


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

Branch: refs/heads/0.7.0-incubating
Commit: b8d8ad4ddeae46c7ee9dee4306b5eb236669f0bc
Parents: 9669f86
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Sun Apr 12 23:02:22 2015 -0500
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Apr 16 01:25:40 2015 -0500

----------------------------------------------------------------------
 docs/guide/ops/catalog/index.md | 37 ++++++++++++++++++++++++------------
 1 file changed, 25 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/b8d8ad4d/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md
index 9eeca9c..401979c 100644
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@ -49,17 +49,6 @@ brooklyn.catalog:
       <blueprint-or-resource-definition>
 ```
 
-In some cases it is desired to define a default blueprint in a catalog file,
-so that the catalog file can be used unchanged to launch an application.
-To support this use case, the following format is also supported:
-
-```yaml
-<blueprint-definition>
-brooklyn.catalog:
-  <catalog-metadata>
-```
-
-
 
 #### Catalog Metadata
 
@@ -93,7 +82,8 @@ In addition to the above fields, exactly **one** of the following is also requir
 - `items`: a list of catalog items, where each entry in the map follows the same schema as
   the `brooklyn.catalog` value, and the keys in these map override any metadata specified as
   a sibling of this `items` key (or, in the case of `libraries` they add to the list);
-  if there are references between items, then order is important, with forward references not supported.
+  if there are references between items, then order is important, 
+  `items` are processed in order, depth-first, and forward references are not supported.
 
 The following optional catalog metadata is supported:
   
@@ -204,6 +194,29 @@ The items this will install are:
   (This must be supplied after `riak-cluster`, because it refers to `riak-cluster`.)
 
 
+#### Legacy Syntax
+
+The following legacy and experimental syntax is also supported:
+
+```yaml
+<blueprint-definition>
+brooklyn.catalog:
+  <catalog-metadata>
+```
+
+In this format, the `brooklyn.catalog` block is optional;
+and an `id` in the `<blueprint-definition>` will be used to determine the catalog ID. 
+This is primarily supplied for OASIS CAMP 1.1 compatibility,
+where the same YAML blueprint can be POSTed to the catalog endpoint to add to a catalog
+or POSTed to the applications endpoint to deploy an instance.
+(This syntax is discouraged as the latter usage, 
+POSTing to the applications endpoint,
+will ignored the `brooklyn.catalog` information;
+this means references to any `item` blocks in the `<catalog-metadata>` will not be resolved,
+and any OSGi `libraries` defined there will not be loaded.)
+
+
+
 ### Templates and the Add-Application Wizard
 
 When a `template` is added to the catalog, the blueprint will appear in the 'Create Application' dialog


[32/50] brooklyn-docs git commit: Adds basic documentation for re-authentication and redirecting stdout/stderr

Posted by he...@apache.org.
Adds basic documentation for re-authentication and redirecting stdout/stderr


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

Branch: refs/heads/0.7.0-incubating
Commit: 4709bb9eb093c12b999736cdc0a213a69fff0474
Parents: 96f45c1
Author: Martin Harris <gi...@nakomis.com>
Authored: Fri May 22 16:23:04 2015 +0100
Committer: Richard Downer <ri...@apache.org>
Committed: Thu May 28 17:27:35 2015 +0100

----------------------------------------------------------------------
 docs/guide/yaml/winrm/about-winrm.md       |  0
 docs/guide/yaml/winrm/index.md             | 17 +++++++++++
 docs/guide/yaml/winrm/re-authentication.md | 38 +++++++++++++++++++++++++
 docs/guide/yaml/winrm/stdout-and-stderr.md | 27 ++++++++++++++++++
 4 files changed, 82 insertions(+)
----------------------------------------------------------------------


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

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/4709bb9e/docs/guide/yaml/winrm/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/winrm/index.md b/docs/guide/yaml/winrm/index.md
new file mode 100644
index 0000000..76091ff
--- /dev/null
+++ b/docs/guide/yaml/winrm/index.md
@@ -0,0 +1,17 @@
+---
+title: Windows blueprints using WinRM
+layout: website-normal
+children:
+- about-winrm.md
+- re-authentication.md
+- stdout-and-stderr.md
+---
+
+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](../).
+
+{% include list-children.html %}

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/4709bb9e/docs/guide/yaml/winrm/re-authentication.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/winrm/re-authentication.md b/docs/guide/yaml/winrm/re-authentication.md
new file mode 100644
index 0000000..52337e5
--- /dev/null
+++ b/docs/guide/yaml/winrm/re-authentication.md
@@ -0,0 +1,38 @@
+---
+title: Re-authenticating within a powershell script
+title_in_menu: Re-authentication
+layout: website-normal
+---
+
+## How and Why to re-authenticate withing a powershell script
+
+Brooklyn will run powershell scripts by making a WinRM call over HTTP. For most scripts this will work, however for
+some scripts (e.g. MSSQL installation), this will fail even if the script can be run locally (e.g. by using RDP to
+connect to the machine and running the script manually)
+
+In the case of MS SQL server installation, there was no clear indication of why this would not work. The only clue was
+a security exception in the installation log
+
+It appears that when a script is run over WinRM over HTTP, the credentials under which the script are run are marked as
+'remote' credentials, which are prohibited from running certain security-related operations. The solution was to obtain
+a new set of credentials within the script and use those credentials to exeute the installer, so this:
+
+```
+( $driveLetter + "setup.exe") /ConfigurationFile=C:\ConfigurationFile.ini
+```
+
+became this:
+
+$pass = '${attribute['windows.password']}'
+$secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force
+$mycreds = New-Object System.Management.Automation.PSCredential ($($env:COMPUTERNAME + "\Administrator"), $secpasswd)
+
+Invoke-Command -ComputerName localhost -credential $mycreds -scriptblock {
+    param($driveLetter)
+    Start-Process ( $driveLetter + "setup.exe") -ArgumentList "/ConfigurationFile=C:\ConfigurationFile.ini" -RedirectStandardOutput "C:\sqlout.txt" -RedirectStandardError "C:\sqlerr.txt" -Wait
+} -Authentication CredSSP -argumentlist $driveLetter
+
+The `$pass=` line simply reads the Windows password from the entity before the script is copied to the server. This is
+then encrypted on the next line before being used to create a new credential object. Then, rather than calling the executable
+directly, the `Start-Process` scriptlet is used. This allows us to pass in the newly created credentials, under which
+the process will be run

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/4709bb9e/docs/guide/yaml/winrm/stdout-and-stderr.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/winrm/stdout-and-stderr.md b/docs/guide/yaml/winrm/stdout-and-stderr.md
new file mode 100644
index 0000000..b4e2502
--- /dev/null
+++ b/docs/guide/yaml/winrm/stdout-and-stderr.md
@@ -0,0 +1,27 @@
+---
+title: Redirecting stdout and stderr
+title_in_menu: Redirecting stdout/stderr
+layout: website-normal
+---
+
+## Redirecting stdout and stderr in a powershell script
+
+When calling an executable in a powershell script, the stdout and stderr will usually be output to the console,
+which is not currently captured by Brooklyn. In order to facilitate debugging, it is usually possible to redirect
+stdout and stderr to a file by using the Start-Process scriptlet. So instead of running the following:
+
+```
+D:\setup.exe /ConfigurationFile=C:\ConfigurationFile.ini
+```
+
+You would run the following:
+
+```
+Start-Process D:\setup.exe -ArgumentList "/ConfigurationFile=C:\ConfigurationFile.ini" -RedirectStandardOutput "C:\sqlout.txt" -RedirectStandardError "C:\sqlerr.txt" -PassThru -Wait
+```
+
+The -ArgumentList is simply the arguments that are to be passed to the executable, -RedirectStandardOutput and -RedirectStandardError take file locations for the output (if
+the file already exists, it will be overwritten). The -PassThru argument indicates that PowerShell should write to the file *in addition* to the console, rather than *instead* of the console.
+The -Wait augument will cause the scriptlet to block until the process is complete
+
+Further details can be found here: https://technet.microsoft.com/en-us/library/hh849848.aspx


[26/50] brooklyn-docs git commit: clean up jclouds location docs, and add bits for hostname and for tags

Posted by he...@apache.org.
clean up jclouds location docs, and add bits for hostname and for tags


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

Branch: refs/heads/0.7.0-incubating
Commit: e168bfcadc4ed3276a6768e4d97ac8f438f13620
Parents: 5bd3de6
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri May 8 16:18:15 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 8 18:51:50 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/locations/index.md | 115 +++++++++++++++++++--------------
 1 file changed, 68 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/e168bfca/docs/guide/ops/locations/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/locations/index.md b/docs/guide/ops/locations/index.md
index 803c000..3c1f6b8 100644
--- a/docs/guide/ops/locations/index.md
+++ b/docs/guide/ops/locations/index.md
@@ -108,6 +108,55 @@ cloud provisioning.
 For more keys and more detail on the keys below, see 
 {% include java_link.html class_name="JcloudsLocationConfig" package_path="brooklyn/location/jclouds" project_subpath="locations/jclouds" %}.
 
+###### VM Creation
+    
+- Most providers require exactly one of either `region` (e.g. `us-east-1`) or `endpoint` (the URL, usually for private cloud deployments)
+
+- Hardware requirements can be specified, including 
+  `minRam`, `minCores`, and `os64Bit`; or as a specific `hardwareId`
+
+- VM image constraints can be set using `osFamily` (e.g. `Ubuntu`, `CentOS`, `Debian`, `RHEL`)
+  and `osVersionRegex`, or specific VM images can be specified using `imageId` or `imageNameRegex`
+
+- Specific VM images can be specified using `imageId` or `imageNameRegex`
+
+- Specific Security Groups can be specified using `securityGroups`, as a list of strings (the existing security group names),
+  or `inboundPorts` can be set, as a list of numeric ports (selected clouds only)
+
+- A specific existing key pair known at the cloud to use can be specified with `keyPair`
+  (selected clouds only)
+
+- A specific VM name (often the hostname) base to be used can be specified by setting `groupId`.
+  By default, this name is constructed based on the entity which is creating it,
+  including the ID of the app and of the entity.
+  (As many cloud portals let you filter views, this can help find a specific entity or all machines for a given application.)
+  For more sophisticated control over host naming, you can supply a custom 
+  {% include java_link.html class_name="CloudMachineNamer" package_path="brooklyn/location/cloud/names" project_subpath="core" %},
+  for example
+  `cloudMachineNamer: brooklyn.location.cloud.names.CustomMachineNamer`.
+  {% include java_link.html class_name="CustomMachineNamer" package_path="brooklyn/location/cloud/names" project_subpath="core" %}
+  will use the entity's name or following a template you supply.
+  For all names, a random suffix will be appended to help guarantee uniqueness;
+  this can be removed by setting `vmNameSaltLength: 0`.
+  
+- User metadata can be attached using the syntax `userMetadata: { key: value, key2: "value 2" }` 
+  (or `userMetadata=key=value,key2="value 2"` in a properties file)
+
+- By default, several pieces of user metadata are set to correlate VMs with Brooklyn entities,
+  prefixed with `brooklyn-`.
+  This user metadata can be omitted by setting `includeBrooklynUserMetadata: false`.
+
+- You can specify the number of attempts Brooklyn should make to create
+  machines with `machineCreateAttempts` (jclouds only). This is useful as an efficient low-level fix
+  for those occasions when cloud providers give machines that are dead on arrival.
+  You can of course also resolve it at a higher level with a policy such as 
+  {% include java_link.html class_name="ServiceRestarter" package_path="brooklyn/policy/ha" project_subpath="policies" %}.
+
+- If you want to investigate failures, set `destroyOnFailure: false`
+  to keep failed VM's around. (You'll have to manually clean them up.)
+  The default is false: if a VM fails to start, or is never ssh'able, then the VM will be terminated.
+
+
 ###### OS Setup
 
 - `user` and `password` can be used to configure the operating user created on cloud-provisioned machines
@@ -115,20 +164,20 @@ For more keys and more detail on the keys below, see
 - The `loginUser` config key (and subkeys) control the initial user to log in as,
   in cases where this cannot be discovered from the cloud provider
  
-- Private keys can be specified using ``privateKeyFile``; 
+- Private keys can be specified using `privateKeyFile`; 
   these are not copied to provisioned machines, but are required if using a local public key
   or a pre-defined `authorized_keys` on the server.
   (For more information on SSH keys, see [here](ssh-keys.html).) 
 
 - 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``.
+  `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`.
 
-- Public keys can be specified using ``publicKeyFile``, 
+- 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.)
+  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 when you log in.)
 
 - Use `dontCreateUser` to have Brooklyn run as the initial `loginUser` (usually `root`),
   without creating any other user.
@@ -137,61 +186,33 @@ For more keys and more detail on the keys below, see
   before making the `Location` available to entities,
   optionally also using `setup.script.vars` (set as `key1:value1,key2:value2`)
 
-- Use `openIptables=true` to automatically configure `iptables`, to open the TCP ports required by
-  the software process. One can alternatively use `stopIptables=true` to entirely stop the
+- Use `openIptables: true` to automatically configure `iptables`, to open the TCP ports required by
+  the software process. One can alternatively use `stopIptables: true` to entirely stop the
   iptables service.
 
-- Use `installDevUrandom=true` to fall back to using `/dev/urandom` rather than `/dev/random`. This setting
+- Use `installDevUrandom: true` to fall back to using `/dev/urandom` rather than `/dev/random`. This setting
   is useful for cloud VMs where there is not enough random entropy, which can cause `/dev/random` to be
   extremely slow (causing `ssh` to be extremely slow to respond).
 
-- Use `useJcloudsSshInit=false` to disable the use of the native jclouds support for initial commands executed 
+- Use `useJcloudsSshInit: false` to disable the use of the native jclouds support for initial commands executed 
   on the VM (e.g. for creating new users, setting root passwords, etc.). Instead, Brooklyn's ssh support will
   be used. Timeouts and retries are more configurable within Brooklyn itself. Therefore this option is particularly 
   recommended when the VM startup is unusual (for example, if guest customizations will cause reboots and/or will 
   change login credentials).
 
-- Use `brooklyn.ssh.config.noDeleteAfterExec=true` can be used during dev/test. This prevents the scripts executed 
-  on the VMs from being deleted on completion. This can help with debugging some issues. However, the contents of the 
-  scripts and the stdout/stderr of their execution is also available in the AMP debug log.
-
-
-###### VM Creation
-    
-- Most providers require exactly one of either `region` (e.g. `us-east-1`) or `endpoint` (the URL, usually for private cloud deployments)
-
-- Hardware requirements can be specified, including 
-  ``minRam``, ``minCores``, and `os64Bit`; or as a specific ``hardwareId``
-
-- VM image constraints can be set using `osFamily` (e.g. `Ubuntu`, `CentOS`, `Debian`, `RHEL`)
-  and `osVersionRegex`, or specific VM images can be specified using ``imageId`` or ``imageNameRegex``
-
-- Specific VM images can be specified using ``imageId`` or ``imageNameRegex``
-
-- Specific Security Groups can be specified using `securityGroups`, as a list of strings (the existing security group names),
-  or `inboundPorts` can be set, as a list of numeric ports (selected clouds only)
-
-- A specific existing key pair for the cloud to set for `loginUser` can be specified using `keyPair`
-  (selected clouds only)
-
-- User metadata can be attached, using the syntax ``userMetadata=key=value,key2="value 2"``
-
-- You can specify the number of attempts Brooklyn should make to create
-  machines with ``machineCreateAttempts`` (jclouds only). This is extremely useful for
-  working around the rare occasions in which cloud providers give machines that
-  are dead on arrival.
-
-- If you want to investigate failures, set `destroyOnFailure=false`
-  to keep failed VM's around. (You'll have to manually clean them up.)
-  The default is false: if a VM fails to start, or is never ssh'able, then the VM will be terminated.
+- Use `brooklyn.ssh.config.noDeleteAfterExec: true` to keep scripts on the server after execution.
+  The contents of the scripts and the stdout/stderr of their execution are available in the Brooklyn web console,
+  but sometimes it can also be useful to have them on the box.
+  This setting prevents scripts executed on the VMs from being deleted on completion.
+  Note that some scripts run periodically so this can eventually fill a disk; it should only be used for dev/test. 
 
 
 ### Inheritance and Named Locations
 
 Named locations can be defined for commonly used groups of properties, 
-with the syntax ``brooklyn.location.named.your-group-name.``
+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.
+These can be accessed at runtime using the syntax `named:your-group-name` as the deployment location.
 
 Some illustrative examples using named locations and
 showing the syntax and properties above are as follows:
@@ -285,7 +306,7 @@ As before, if the brooklyn user and its default key are authorized for the hosts
 those fields can be omitted.
 
 Named locations can also be configured in your `brooklyn.properties`,
-using the format ``byon:(key=value,key2=value2)``.
+using the format `byon:(key=value,key2=value2)`.
 For convenience, for hosts wildcard globs are supported.
 
 {% highlight bash %}


[07/50] brooklyn-docs git commit: Add Licensing Considerations page to the developer's guide

Posted by he...@apache.org.
Add Licensing Considerations page to the developer's guide


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

Branch: refs/heads/0.7.0-incubating
Commit: e147e2069fa2ec09a7e93a407214fe4011a516cb
Parents: b503aa8
Author: Richard Downer <ri...@apache.org>
Authored: Thu Apr 16 15:49:56 2015 +0100
Committer: Richard Downer <ri...@apache.org>
Committed: Thu Apr 16 16:01:00 2015 +0100

----------------------------------------------------------------------
 docs/guide/dev/code/licensing.md | 116 ++++++++++++++++++++++++++++++++++
 docs/guide/dev/index.md          |   1 +
 2 files changed, 117 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/e147e206/docs/guide/dev/code/licensing.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/code/licensing.md b/docs/guide/dev/code/licensing.md
new file mode 100644
index 0000000..e2a7ef5
--- /dev/null
+++ b/docs/guide/dev/code/licensing.md
@@ -0,0 +1,116 @@
+---
+title: License Considerations
+layout: website-normal
+---
+
+The Apache Software Foundation, quite rightly, place a high standard on code provenance and license compliance. The
+Apache license is flexible and compatible with many other types of license, meaning there is generally little problem
+with incorporating other open source works into Brooklyn (with GPL being the notable exception). However diligence is
+required to ensure that the project is legally sound, and third parties are rightfully credited where appropriate.
+
+This page is an interpretation of the [Apache Legal Previously Asked Questions](http://www.apache.org/legal/resolved.html)
+page as it specifically applies to the Brooklyn project, such as how we organise our code and the releases that we make.
+However this page is not authoritative; if there is any conflict between this page and the Previously Asked Questions or
+other Apache Legal authority, they will take precedence over this page.
+
+If you have any doubt, please ask on the Brooklyn mailing list, and/or the Apache Legal mailing list.
+
+
+What code licenses can we bundle?
+---------------------------------
+
+Apache Legal maintains the ["Category A" list](http://www.apache.org/legal/resolved.html#category-a), which is a list
+of licenses that are compatible with the Apache License; that is, code under these licenses can be imported into
+Brooklyn without violating Brooklyn's Apache License nor the code's original license (subject to correctly modifying
+the `LICENSE` and/or `NOTICE` files; see below).
+
+Apache Legal also maintain the ["Category X" list](http://www.apache.org/legal/resolved.html#category-x). Code licensed
+under a Category X license **cannot** be imported into Brooklyn without violating either Brooklyn's Apache license or
+the code's original license.
+
+There is also a ["Category B" list](http://www.apache.org/legal/resolved.html#category-b), which are licenses that are
+compatible with the Apache license only under certain circumstances. In practice, this means that we can declare a
+dependency on a library licensed under a Category B license, and bundle the binary build of the library in our binary
+builds, but we cannot import its source code into the Brooklyn codebase.
+
+If the code you are seeking to import does not appear on any of these lists, check to see if the license content is the
+same as a known license. For example, many projects actually use a BSD license but do not label it as "The BSD License".
+If you are still not certain about the license, please ask on the Brooklyn mailing list, and/or the Apache Legal mailing
+list.
+
+
+About LICENSE and NOTICE files
+------------------------------
+
+Apache Legal requires that *each* artifact that the project releases contains a `LICENSE` and `NOTICE` file that is
+*accurate for the contents of that artifact*. This means that, potentially, **every artifact that Brooklyn releases may
+contain a different `LICENSE` and `NOTICE` file**. In practice, it's not usually that complicated and there are only a
+few variations of these files needed.
+
+Furthermore, *accurate* `LICENSE` and `NOTICE` files means that it correctly attributes the contents of the artifact,
+and it does not contain anything unnecessary. This provision is what prevents us creating a mega LICENSE file and using
+it in every single artifact we release, because in many cases it will contain information that is not relevant to an
+artifact.
+
+What is a correct `LICENSE` and `NOTICE` file?
+
+* A correct `LICENSE` file is one that contains the text of the licence of any part of the code. The Apache Software
+  License V2 will naturally be the first part of this file, as it's the license which we use for all the original code
+  in Brooklyn. If some *Category A* licensed third-party code is bundled with this artifact, then the `LICENSE` file
+  should identify what the third-party code is, and include a copy of its license. For example, if jquery is bundled
+  with a web app, the `LICENSE` file would include a note jquery.js, its copyright and its license (MIT), and include a
+  full copy of the MIT license.
+* A correct `NOTICE` file contains notices required by bundled third-party code above and beyond that which we have
+  already noted in `LICENSE`. In practice modifying `NOTICE` is rarely required beyond the initial note about Apache
+  Brooklyn. See [What Are Required Third-party Notices?](http://www.apache.org/legal/resolved.html#required-third-party-notices)
+  for more information
+
+
+Applying LICENSE and NOTICE files to Brooklyn
+---------------------------------------------
+
+When the Brooklyn project makes a release, we produce and release the following types of artifacts:
+
+1. One source release artifact
+2. One binary release artifact
+3. A large number of Maven release artifacts
+
+Therefore, our source release, our binary release, and every one of our Maven release artifacts, must **each** have
+their own, individually-tailored, `LICENSE` and `NOTICE` files.
+
+### Maven artifacts
+
+Each Maven module will generally produce a JAR file from code under `src/main`, and a JAR file from code under
+`src/test`. (There are some exceptions which may produce different artifacts.)
+
+If the contents of the module are purely Apache Brooklyn original code, and the outputs are JAR files, then *no action
+is required*. The default build process will incorporate a general-purpose `LICENSE` and `NOTICE` file into all built
+JAR files. `LICENSE` will contain just a copy of the Apache Software License v2, and `NOTICE` will contain just the
+module's own notice fragment.
+
+However you will need to take action if either of these conditions are true:
+
+* the module produces an artifact that is **not** a JAR file - for example, the jsgui project produces a WAR file;
+* the module bundles third-party code that requires a change to `LICENSE` and/or `NOTICE`.
+
+In this case you will need to disable the automatic insertion of `LICENSE` and `NOTICE` and insert your own versions
+instead.
+
+For an example of a JAR file with customized `LICENSE`/`NOTICE` files, refer to the `usage/cli` project.
+For an example of a WAR file with customized `LICENSE`/`NOTICE` files, refer to the `usage/jsgui` project.
+
+### The source release
+
+In practice, the source release contains nothing that isn't in the individual produced Maven artifacts (the obvious
+difference about it being source instead of binary isn't relevant). Therefore, the source release `LICENSE` and `NOTICE`
+can be considered to be the union of every Maven artifact's `LICENSE` and `NOTICE`. The amalgamated files are kept in
+the root of the repository.
+
+### The binary release
+
+This is the trickiest one to get right. The binary release includes everything that is in the source and Maven releases,
+**plus every Java dependency of the project**. This means that the binary release is pulling in many additional items,
+each of which have their own license, and which will therefore impact on `LICENSE` and `NOTICE`.
+
+Therefore you must inspect every file that is present in the binary distribution, ascertain its license status, and
+ensure that `LICENSE` and `NOTICE` are correct.

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/e147e206/docs/guide/dev/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/index.md b/docs/guide/dev/index.md
index a4f6ef9..95f278e 100644
--- a/docs/guide/dev/index.md
+++ b/docs/guide/dev/index.md
@@ -10,6 +10,7 @@ children:
 - code/
 - { link: "http://github.com/apache/incubator-brooklyn", title: "GitHub" }
 - code/tests.md
+- code/licensing.md
 - tips/
 - tips/logging.md
 - tips/debugging-remote-brooklyn.md


[21/50] brooklyn-docs git commit: switch docs to kramdown and replace triple backticks with triple tilde

Posted by he...@apache.org.
switch docs to kramdown and replace triple backticks with triple tilde

tilde is more portable, but apart from that kramdown is more widely used,
and it permits mixing html which we do on the brooklyn landing page
(with redcarpet that didn't render right)


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

Branch: refs/heads/0.7.0-incubating
Commit: 33b5e86ce0dc7df2275d96148c305f7846db155b
Parents: 0b60bf2
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Thu May 7 10:42:59 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu May 7 10:42:59 2015 +0100

----------------------------------------------------------------------
 docs/_config.yml                |  2 +-
 docs/guide/ops/catalog/index.md | 38 ++++++++++++++++++------------------
 2 files changed, 20 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/33b5e86c/docs/_config.yml
----------------------------------------------------------------------
diff --git a/docs/_config.yml b/docs/_config.yml
index a24029d..e25b279 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -18,7 +18,7 @@
 #
 
 encoding: utf-8
-markdown: redcarpet
+markdown: kramdown
 
 # where this will publish
 url_root: http://0.0.0.0:4000

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/33b5e86c/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md
index 8477204..074bbf3 100644
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@ -5,8 +5,8 @@ children:
 - { section: General YAML Schema }
 - { section: Catalog Metadata }
 - { section: Catalog YAML Examples }
-- { section: Adding to the Catalog, title: Adding and Deleting } 
 - { section: Templates and the Add-Application Wizard, title: Templates }
+- { section: Adding to the Catalog, title: Adding and Deleting } 
 - { section: Versioning } 
 ---
 
@@ -25,19 +25,19 @@ specifying the catalog metadata for the items and the actual blueprint or resour
  
 A single catalog item can be defined following this general structure:
 
-```yaml
+~~~ yaml
 brooklyn.catalog:
   <catalog-metadata>
   item:
     <blueprint-or-resource-definition>
-```
+~~~ 
 
 
 To define multiple catalog items in a single YAML,
 where they may share some metadata,
 use the following structure:
 
-```yaml
+~~~ yaml
 brooklyn.catalog:
   <catalog-metadata>
   items:
@@ -47,7 +47,7 @@ brooklyn.catalog:
   - <additional-catalog-metadata>
     item:
       <blueprint-or-resource-definition>
-```
+~~~ 
 
 
 #### Catalog Metadata
@@ -70,10 +70,10 @@ To reference a catalog item in another blueprint, simply reference its ID and op
 For instance, if we've added an item with metadata `{ id: datastore, version: "1.0" }` (such as the example below),
 we could refer to it in another blueprint with: 
 
-```yaml
+~~~ yaml
 services:
 - type: datastore:1.0
-```
+~~~ 
 
 In addition to the above fields, exactly **one** of the following is also required:
 
@@ -128,7 +128,7 @@ with a nice display name, description, and icon.
 It can be referred in other blueprints to as `datastore:1.0`,
 and its implementation will be the Java class `brooklyn.entity.nosql.riak.RiakNode` included with Brooklyn.
 
-```yaml
+~~~ yaml
 brooklyn.catalog:
   id: datastore
   version: 1.0
@@ -139,14 +139,14 @@ brooklyn.catalog:
   item:
     type: brooklyn.entity.nosql.riak.RiakNode
     name: Riak Node
-```
+~~~ 
 
 
 ##### Multiple Items
 
 This YAML will install three items:
 
-```yaml
+~~~ yaml
 brooklyn.catalog:
   version: 1.1
   iconUrl: classpath://brooklyn/entity/nosql/riak/riak.png
@@ -178,7 +178,7 @@ brooklyn.catalog:
             provisioning.properties:
               # you can also define machine specs
               minRam: 8gb
-```
+~~~ 
 
 The items this will install are:
 
@@ -196,11 +196,11 @@ The items this will install are:
 
 The following legacy and experimental syntax is also supported:
 
-```yaml
+~~~ yaml
 <blueprint-definition>
 brooklyn.catalog:
   <catalog-metadata>
-```
+~~~ 
 
 In this format, the `brooklyn.catalog` block is optional;
 and an `id` in the `<blueprint-definition>` will be used to determine the catalog ID. 
@@ -236,9 +236,9 @@ In addition to the GUI, items can be added to the catalog via the REST API
 with a `POST` of the YAML file to `/v1/catalog` endpoint.
 To do this using `curl`:
 
-```bash
+~~~ bash
 curl http://127.0.0.1:8081/v1/catalog --data-binary @/path/to/riak.catalog.bom
-```
+~~~ 
 
 
 
@@ -247,9 +247,9 @@ curl http://127.0.0.1:8081/v1/catalog --data-binary @/path/to/riak.catalog.bom
 You can delete a versioned item from the catalog using the same endpoint as the REST API. 
 For example, to delete the item with id `datastore` and version `1.0` with `curl`:
 
-```bash
+~~~ bash
 curl -X DELETE http://127.0.0.1:8081/v1/catalog/entities/datastore/1.0
-```
+~~~ 
 
 **Note:** Catalog items should not be deleted if there are running apps which were created using the same item. 
 During rebinding the catalog item is used to reconstruct the entity.
@@ -262,9 +262,9 @@ in a future release.
 Deprecation applies to a specific version of a catalog item, so the full
 id including the version number is passed to the REST API as follows:
 
-```bash
+~~~ bash
 curl -X POST http://127.0.0.1:8081/v1/catalog/entities/MySQL:1.0/deprecated/true
-```
+~~~ 
 
 
 ### Versioning


[25/50] brooklyn-docs git commit: support `domainName` as a location config property (softlayer only)

Posted by he...@apache.org.
support `domainName` as a location config property (softlayer only)


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

Branch: refs/heads/0.7.0-incubating
Commit: e78ffca8f9c851ab6dda21ea09efbd913b143101
Parents: e168bfc
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri May 8 17:19:19 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 8 18:51:50 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/locations/index.md | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/e78ffca8/docs/guide/ops/locations/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/locations/index.md b/docs/guide/ops/locations/index.md
index 3c1f6b8..02e82bb 100644
--- a/docs/guide/ops/locations/index.md
+++ b/docs/guide/ops/locations/index.md
@@ -139,6 +139,9 @@ For more keys and more detail on the keys below, see
   For all names, a random suffix will be appended to help guarantee uniqueness;
   this can be removed by setting `vmNameSaltLength: 0`.
   
+- A DNS domain name where this host should be placed can be specified with `domainName`
+  (in selected clouds only)
+
 - User metadata can be attached using the syntax `userMetadata: { key: value, key2: "value 2" }` 
   (or `userMetadata=key=value,key2="value 2"` in a properties file)
 


[48/50] brooklyn-docs git commit: Fix broken links in guide

Posted by he...@apache.org.
Fix broken links in guide


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

Branch: refs/heads/0.7.0-incubating
Commit: 24530ff4013fe5c5a9064c0ca0f4dc80d9607498
Parents: 294a99b
Author: Richard Downer <ri...@apache.org>
Authored: Mon Jul 27 15:11:14 2015 +0100
Committer: Richard Downer <ri...@apache.org>
Committed: Mon Jul 27 15:11:14 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/brooklyn_properties.md | 2 +-
 docs/guide/ops/install-on-server.md   | 2 +-
 docs/guide/ops/locations/index.md     | 2 +-
 docs/guide/ops/requirements.md        | 3 +--
 4 files changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/24530ff4/docs/guide/ops/brooklyn_properties.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/brooklyn_properties.md b/docs/guide/ops/brooklyn_properties.md
index a7cbbf3..450252a 100644
--- a/docs/guide/ops/brooklyn_properties.md
+++ b/docs/guide/ops/brooklyn_properties.md
@@ -15,7 +15,7 @@ children:
 The file `~/.brooklyn/brooklyn.properties` is read when Brooklyn starts
 to load server configuration values.
 A different properties file can be specified either additionally or instead
-through [CLI options](cli.html#configuration). 
+through [CLI options](launch.html#configuration-files).
 
 A template [brooklyn.properties]({{brooklyn_properties_url_path}}) file is available,
 with abundant comments.

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/24530ff4/docs/guide/ops/install-on-server.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/install-on-server.md b/docs/guide/ops/install-on-server.md
index 6c3455f..96c70a5 100644
--- a/docs/guide/ops/install-on-server.md
+++ b/docs/guide/ops/install-on-server.md
@@ -50,7 +50,7 @@ Before installing Apache Brooklyn, it is recommented to configure the host as fo
 * enable [passwordless ssh login]({{ site.path.guide }}/ops/locations/ssh-keys.html)
 * create a `~/.brooklyn` directory on the host with `$ mkdir ~/.brooklyn`
 * check your `iptables` or other firewall service, making sure that incoming connections on port 8443 is not blocked
-* check that the [linux kernel entropy](increase-entropy.html) is sufficient
+* check that the [linux kernel entropy]({{ site.path.website }}/documentation/increase-entropy.html) is sufficient
 
 
 ### <a id="download"></a>Download Brooklyn

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/24530ff4/docs/guide/ops/locations/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/locations/index.md b/docs/guide/ops/locations/index.md
index 6fc5b4b..835951c 100644
--- a/docs/guide/ops/locations/index.md
+++ b/docs/guide/ops/locations/index.md
@@ -407,4 +407,4 @@ brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyPassphrase=s3cr3tpassph
 
 * [More Locations](more-locations.html)
 * [SSH Keys](ssh-keys.html)
-* [Cloud Credentials](cloud-credentials.md)
+* [Cloud Credentials](cloud-credentials.html)

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/24530ff4/docs/guide/ops/requirements.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/requirements.md b/docs/guide/ops/requirements.md
index b23fdd3..e86629e 100644
--- a/docs/guide/ops/requirements.md
+++ b/docs/guide/ops/requirements.md
@@ -43,7 +43,6 @@ The ports used by Brooklyn are:
 
 Whether to use https rather than http is configurable using the CLI option `--https`; 
 the port to use is configurable using the CLI option `--port <port>`.
-See [CLI](cli.html) documentation for more details.
 
 To enable remote Brooklyn access, ensure these ports are open in the firewall.
 For example, to open port 8443 in iptables, ues the command:
@@ -68,4 +67,4 @@ It is normally recommended that Brooklyn run as a non-root user with keys instal
 
 ### Linux Kernel Entropy
 
-Check that the [linux kernel entropy](increase-entropy.html) is sufficient.
+Check that the [linux kernel entropy]({{ site.path.website }}/documentation/increase-entropy.html) is sufficient.


[40/50] brooklyn-docs git commit: set all java refs in docs to 1.7+

Posted by he...@apache.org.
set all java refs in docs to 1.7+


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

Branch: refs/heads/0.7.0-incubating
Commit: 4fdbbc3cad05f9b6fd0d24e05eaf02a514a5d016
Parents: f5048d8
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Jun 15 08:36:32 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Jun 15 08:36:32 2015 +0100

----------------------------------------------------------------------
 docs/guide/dev/env/ide/index.md   | 11 ++++-------
 docs/guide/dev/env/maven-build.md |  2 +-
 docs/guide/ops/requirements.md    |  2 +-
 docs/guide/start/running.md       |  2 +-
 4 files changed, 7 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/4fdbbc3c/docs/guide/dev/env/ide/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/env/ide/index.md b/docs/guide/dev/env/ide/index.md
index 0dddfc1..f046abc 100644
--- a/docs/guide/dev/env/ide/index.md
+++ b/docs/guide/dev/env/ide/index.md
@@ -87,14 +87,11 @@ To develop or debug Brooklyn in IntelliJ, you will need to ensure that the Groov
 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.
 
+You will need the java compiler 1.7 or higher.
 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).
+generics. These issues have been refactored away, however may return in future. 
+If you encounter these problems, ensure that your java compiler is set to level 1.7 or higher, 
+or setup IntelliJ to use the Eclipse compiler (Settings | Compiler | Java Compiler | "Use Compiler" combobox).
 
 
 ## Netbeans

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/4fdbbc3c/docs/guide/dev/env/maven-build.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/env/maven-build.md b/docs/guide/dev/env/maven-build.md
index 1448f1f..fa0895b 100644
--- a/docs/guide/dev/env/maven-build.md
+++ b/docs/guide/dev/env/maven-build.md
@@ -6,7 +6,7 @@ toc: /guide/toc.json
 
 ## The Basics
 
-To build the code, you need Maven (v3) installed and Java (1.6).
+To build the code, you need Maven (v3) installed and Java (v1.7+).
 With that in place, you should be able to build everything with a:
 
 {% highlight bash %}

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/4fdbbc3c/docs/guide/ops/requirements.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/requirements.md b/docs/guide/ops/requirements.md
index d0cf7fd..b23fdd3 100644
--- a/docs/guide/ops/requirements.md
+++ b/docs/guide/ops/requirements.md
@@ -28,7 +28,7 @@ Brooklyn has also been tested on Ubuntu 12.04 and OS X.
 
 ## Software Requirements
 
-Brooklyn requires Java (JRE or JDK) minimum version 7. 
+Brooklyn requires Java (JRE or JDK) minimum version 1.7. 
 OpenJDK is recommended. Brooklyn has also been tested on IBM J9 and Oracle's JVM.
 
 

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/4fdbbc3c/docs/guide/start/running.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/running.md b/docs/guide/start/running.md
index a5c8e06..b6f1a48 100644
--- a/docs/guide/start/running.md
+++ b/docs/guide/start/running.md
@@ -31,7 +31,7 @@ $ tar -zxf brooklyn-{{ site.brooklyn-version }}-dist.tar.gz
 
 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.
+**Note**: You'll need a Java JRE or SDK installed (version 1.7 or later), as Brooklyn is Java under the covers.
 
 **Node #2**: If you want to test Brooklyn on localhost, follow [these instructions]({{site.path.guide}}/ops/locations/#localhost) 
 to ensure that your Brooklyn can access your machine.


[34/50] brooklyn-docs git commit: Complete Windows docs

Posted by he...@apache.org.
Complete Windows docs


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

Branch: refs/heads/0.7.0-incubating
Commit: a08fe6dd5ee4af08a78ce399dc584c7290b48a06
Parents: 4709bb9
Author: Richard Downer <ri...@apache.org>
Authored: Wed May 27 17:07:54 2015 +0100
Committer: Richard Downer <ri...@apache.org>
Committed: Thu May 28 17:40:46 2015 +0100

----------------------------------------------------------------------
 docs/guide/yaml/winrm/index.md             | 153 ++++++++++++++++++++++--
 docs/guide/yaml/winrm/re-authentication.md |  20 ++--
 docs/guide/yaml/winrm/stdout-and-stderr.md |  24 ++--
 3 files changed, 165 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/a08fe6dd/docs/guide/yaml/winrm/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/winrm/index.md b/docs/guide/yaml/winrm/index.md
index 76091ff..363fe08 100644
--- a/docs/guide/yaml/winrm/index.md
+++ b/docs/guide/yaml/winrm/index.md
@@ -1,17 +1,154 @@
 ---
-title: Windows blueprints using WinRM
+title: Windows blueprints
 layout: website-normal
 children:
-- about-winrm.md
 - re-authentication.md
 - stdout-and-stderr.md
 ---
 
-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).  
+In addition to controlling UNIX-like servers with SSH, Brooklyn has support for blueprints that deploy to Windows
+servers using WinRM to run commands. These deployments can be expressed in pure YAML, and utilise PowerShell to install
+and manage the software process.
 
-This guide assumes you are familiar with the basics of [creating YAML blueprints](../).
 
-{% include list-children.html %}
+About WinRM
+-----------
+
+WinRM - or *Windows Remote Management* to give its full title - is a system administration service provided in all
+recent Windows Server operating systems. It allows remote access to system information (provided via WMI) and the
+ability to execute commands. For more information refer to [Microsoft's MSDN article on Windows Remote
+Management](https://msdn.microsoft.com/en-us/library/aa384426(v=vs.85).aspx).
+
+WinRM is available by default in Windows Server, but is not enabled by default. Brooklyn will, in most cases, be able
+to switch on WinRM support, but this is dependent on your cloud provider supporting a user metadata service with script
+execution (see [below](#user-metadata-service-requirement)).
+
+
+Locations for Windows
+---------------------
+
+You must define a new location in Brooklyn for Windows deployments. Windows deployments require a different VM image
+ID to Linux, as well as some other special configuration, so you must have separate Brooklyn locations for Windows and
+Linux deployments.
+
+In particular, you will most likely want to set these properties on your location:
+
+* `imageId` or `imageNameRegex` - select your preferred Windows Server image from your cloud provider.
+* `hardwareId` or `minRam`/`minCores` - since Windows machines generally require more powerful servers, ensure you get
+  a machine with the required specification.
+* `useJcloudsSshInit` - this must be set to `false`. Without this setting, jclouds will attempt to connect to the new
+  VMs using SSH, which will fail on Windows Server.
+* `templateOptions` - you may also wish to request a larger disk size. This setting is cloud specific; on AWS, you can
+  request a 100GB disk by setting this property to `{mapNewVolumeToDeviceName: ["/dev/sda1", 100, true]}`.
+
+For example, you may place the following in `brooklyn.properties`:
+
+    brooklyn.location.named.AWS\ Oregon\ Win=jclouds:aws-ec2:us-west-2
+    brooklyn.location.named.AWS\ Oregon\ Win.displayName = AWS Oregon (Windows)
+    brooklyn.location.named.AWS\ Oregon\ Win.imageNameRegex = Windows_Server-2012-R2_RTM-English-64Bit-Base
+    brooklyn.location.named.AWS\ Oregon\ Win.hardwareId = m3.medium
+    brooklyn.location.named.AWS\ Oregon\ Win.useJcloudsSshInit=false
+    brooklyn.location.named.AWS\ Oregon\ Win.templateOptions={mapNewVolumeToDeviceName: ["/dev/sda1", 100, true]}
+
+Alternatively, in your YAML blueprint:
+
+    ...
+    location:
+      jclouds:aws-ec2:
+        region: us-west-2
+        identity: AKA_YOUR_ACCESS_KEY_ID
+        credential: <access-key-hex-digits>
+        imageNameRegex: Windows_Server-2012-R2_RTM-English-64Bit-Base
+        hardwareId: m3.medium
+        useJcloudsSshInit: false
+        templateOptions: {mapNewVolumeToDeviceName: ["/dev/sda1", 100, true]}
+    ...
+
+
+A Sample Blueprint
+------------------
+
+Creating a Windows VM is done using the `brooklyn.entity.basic.VanillaWindowsProcess` entity type. This is very similar
+to `VanillaSoftwareProcess`, but adapted to work for Windows and WinRM instead of Linux. We suggest you read the
+[documentation for VanillaSoftwareProcess](../custom-entities.html#vanilla-software-using-bash) to find out what you
+can do with this entity.
+
+For example - here is a blueprint:
+
+    name: Server with 7-Zip
+
+    location:
+      jclouds:aws-ec2:
+        region: us-west-2
+        identity: AKA_YOUR_ACCESS_KEY_ID
+        credential: <access-key-hex-digits>
+        imageNameRegex: Windows_Server-2012-R2_RTM-English-64Bit-Base
+        hardwareId: m3.medium
+        useJcloudsSshInit: false
+        templateOptions: {mapNewVolumeToDeviceName: ["/dev/sda1", 100, true]}
+
+    services:
+    - type: brooklyn.entity.basic.VanillaWindowsProcess
+      brooklyn.config:
+        templates.install:
+          file:///Users/richard/install7zip.ps1: "C:\\install7zip.ps1"
+        install.command: powershell -command "C:\\install7zip.ps1"
+        customize.command: echo true
+        launch.command: echo true
+        stop.command: echo true
+        checkRunning.command: echo true
+        installer.download.url: http://www.7-zip.org/a/7z938-x64.msi
+
+The installation script - referred to as `/Users/richard/install7zip.ps1` in the example above - is:
+
+    $Path = "C:\InstallTemp"
+    New-Item -ItemType Directory -Force -Path $Path
+
+    $Url = "${config['installer.download.url']}"
+    $Dl = [System.IO.Path]::Combine($Path, "installer.msi")
+    $WebClient = New-Object System.Net.WebClient
+    $WebClient.DownloadFile( $Url, $Dl )
+
+    Start-Process "msiexec" -ArgumentList '/qn','/i',$Dl -RedirectStandardOutput ( [System.IO.Path]::Combine($Path, "stdout.txt") ) -RedirectStandardError ( [System.IO.Path]::Combine($Path, "stderr.txt") ) -Wait
+
+This is only a very simple example. A core complex example can be found in the [Microsoft SQL Server blueprint in the
+Brooklyn source code](https://github.com/apache/incubator-brooklyn/tree/master/software/database/src/main/resources/brooklyn/entity/database/mssql).
+
+
+Known Limitations and Special Cases
+-----------------------------------
+
+### User metadata service requirement
+
+WinRM requires activation and configuration before it will work in a standard Windows Server deployment. To automate
+this, Brooklyn will place a setup script in the user metadata blob. Services such as Amazon EC2's `Ec2ConfigService`
+will automatically load and execute this script. If your chosen cloud provider does not support `Ec2ConfigService` or
+a similar package, or if you cloud provider does not support user metadata, then you must pre-configure a Windows image
+with the required WinRM setup and make Brooklyn use this image.
+
+### Use of unencrypted HTTP
+
+Brooklyn is currently using unencrypted HTTP for WinRM communication. This means that the login credentials will be
+transmitted in clear text.
+
+In future we aim to improve Brooklyn to support HTTPS. However this does involve issues are certificate creation and
+verification.
+
+### Standard output and error streams
+
+These are not made available to Brooklyn like they are on Linux. For a workaround, please refer to [Redirecting
+stdout/stderr](stdout-and-stderr.html). We hope to resolve this in a future version of Brooklyn.
+
+### Credentials issue requiring special configuration
+
+It appears that when a script is run over WinRM over HTTP, the credentials under which the script are run are marked as
+'remote' credentials, which are prohibited from running certain security-related operations. This may prevent certain
+operations. The installer from Microsoft SQL Server is known to fail in this case, for example. For a workaround, please
+refer to [Re-authenticating within a PowerShell script](re-authentication.html).
+
+Certain registry keys must be reconfigured in order to support re-authentication. Brooklyn will take care of this at
+instance boot time. Please ensure that Brooklyn's changes are compatible with your organisation's security policy.
+
+Re-authentication also requires that the password credentials are passed in plain text in the blueprint's script files.
+Please be aware that it is normal for script files - and therefore the plaintext password - to be saved to the VM's
+disk.

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/a08fe6dd/docs/guide/yaml/winrm/re-authentication.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/winrm/re-authentication.md b/docs/guide/yaml/winrm/re-authentication.md
index 52337e5..db7a551 100644
--- a/docs/guide/yaml/winrm/re-authentication.md
+++ b/docs/guide/yaml/winrm/re-authentication.md
@@ -1,5 +1,5 @@
 ---
-title: Re-authenticating within a powershell script
+title: Re-authenticating within a PowerShell script
 title_in_menu: Re-authentication
 layout: website-normal
 ---
@@ -17,20 +17,18 @@ It appears that when a script is run over WinRM over HTTP, the credentials under
 'remote' credentials, which are prohibited from running certain security-related operations. The solution was to obtain
 a new set of credentials within the script and use those credentials to exeute the installer, so this:
 
-```
-( $driveLetter + "setup.exe") /ConfigurationFile=C:\ConfigurationFile.ini
-```
+    ( $driveLetter + "setup.exe") /ConfigurationFile=C:\ConfigurationFile.ini
 
 became this:
 
-$pass = '${attribute['windows.password']}'
-$secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force
-$mycreds = New-Object System.Management.Automation.PSCredential ($($env:COMPUTERNAME + "\Administrator"), $secpasswd)
+    $pass = '${attribute['windows.password']}'
+    $secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force
+    $mycreds = New-Object System.Management.Automation.PSCredential ($($env:COMPUTERNAME + "\Administrator"), $secpasswd)
 
-Invoke-Command -ComputerName localhost -credential $mycreds -scriptblock {
-    param($driveLetter)
-    Start-Process ( $driveLetter + "setup.exe") -ArgumentList "/ConfigurationFile=C:\ConfigurationFile.ini" -RedirectStandardOutput "C:\sqlout.txt" -RedirectStandardError "C:\sqlerr.txt" -Wait
-} -Authentication CredSSP -argumentlist $driveLetter
+    Invoke-Command -ComputerName localhost -credential $mycreds -scriptblock {
+        param($driveLetter)
+        Start-Process ( $driveLetter + "setup.exe") -ArgumentList "/ConfigurationFile=C:\ConfigurationFile.ini" -RedirectStandardOutput "C:\sqlout.txt" -RedirectStandardError "C:\sqlerr.txt" -Wait
+    } -Authentication CredSSP -argumentlist $driveLetter
 
 The `$pass=` line simply reads the Windows password from the entity before the script is copied to the server. This is
 then encrypted on the next line before being used to create a new credential object. Then, rather than calling the executable

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/a08fe6dd/docs/guide/yaml/winrm/stdout-and-stderr.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/winrm/stdout-and-stderr.md b/docs/guide/yaml/winrm/stdout-and-stderr.md
index b4e2502..5a27c67 100644
--- a/docs/guide/yaml/winrm/stdout-and-stderr.md
+++ b/docs/guide/yaml/winrm/stdout-and-stderr.md
@@ -4,24 +4,22 @@ title_in_menu: Redirecting stdout/stderr
 layout: website-normal
 ---
 
-## Redirecting stdout and stderr in a powershell script
+## Redirecting stdout and stderr in a PowerShell script
 
-When calling an executable in a powershell script, the stdout and stderr will usually be output to the console,
+When calling an executable in a PowerShell script, the stdout and stderr will usually be output to the console,
 which is not currently captured by Brooklyn. In order to facilitate debugging, it is usually possible to redirect
-stdout and stderr to a file by using the Start-Process scriptlet. So instead of running the following:
+stdout and stderr to a file by using the `Start-Process` scriptlet. So instead of running the following:
 
-```
-D:\setup.exe /ConfigurationFile=C:\ConfigurationFile.ini
-```
+    D:\setup.exe /ConfigurationFile=C:\ConfigurationFile.ini
 
 You would run the following:
 
-```
-Start-Process D:\setup.exe -ArgumentList "/ConfigurationFile=C:\ConfigurationFile.ini" -RedirectStandardOutput "C:\sqlout.txt" -RedirectStandardError "C:\sqlerr.txt" -PassThru -Wait
-```
+    Start-Process D:\setup.exe -ArgumentList "/ConfigurationFile=C:\ConfigurationFile.ini" -RedirectStandardOutput "C:\sqlout.txt" -RedirectStandardError "C:\sqlerr.txt" -PassThru -Wait
 
-The -ArgumentList is simply the arguments that are to be passed to the executable, -RedirectStandardOutput and -RedirectStandardError take file locations for the output (if
-the file already exists, it will be overwritten). The -PassThru argument indicates that PowerShell should write to the file *in addition* to the console, rather than *instead* of the console.
-The -Wait augument will cause the scriptlet to block until the process is complete
+The `-ArgumentList` is simply the arguments that are to be passed to the executable, `-RedirectStandardOutput` and
+`RedirectStandardError` take file locations for the output (if the file already exists, it will be overwritten). The
+`-PassThru` argument indicates that PowerShell should write to the file *in addition* to the console, rather than
+*instead* of the console. The `-Wait` argument will cause the scriptlet to block until the process is complete.
 
-Further details can be found here: https://technet.microsoft.com/en-us/library/hh849848.aspx
+Further details can be found on the [Start-Process documentation page](https://technet.microsoft.com/en-us/library/hh849848.aspx)
+on the Microsoft TechNet site.


[42/50] brooklyn-docs git commit: Describes AWS VPC issue

Posted by he...@apache.org.
Describes AWS VPC issue


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

Branch: refs/heads/0.7.0-incubating
Commit: 0c88c44423ad5a52a349ed8668bf245325022fdb
Parents: 267e59d
Author: Duncan Grant <du...@cloudsoftcorp.com>
Authored: Tue Jun 23 14:31:33 2015 +0100
Committer: Duncan Grant <du...@cloudsoftcorp.com>
Committed: Tue Jun 23 14:31:33 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/locations/index.md | 38 ++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/0c88c444/docs/guide/ops/locations/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/locations/index.md b/docs/guide/ops/locations/index.md
index 78f185d..e6c7035 100644
--- a/docs/guide/ops/locations/index.md
+++ b/docs/guide/ops/locations/index.md
@@ -210,6 +210,44 @@ For more keys and more detail on the keys below, see
   This setting prevents scripts executed on the VMs from being deleted on completion.
   Note that some scripts run periodically so this can eventually fill a disk; it should only be used for dev/test. 
 
+### AWS VPC issues which may affect users with older AWS accounts
+
+AWS now has different default behaviour depending on the age of your AWS account and whether you used the target region before, or during, 2013.
+In this case VM provisioning may fail with an error like:
+
+{% highlight text %}
+
+Detected that your EC2 account is a legacy 'classic' account, but the recommended instance type requires VPC. 
+You can specify the 'eu-central-1' region to avoid this problem, or you can specify a classic-compatible instance type, 
+or you can specify a subnet to use with 'networkName' 
+taking care that the subnet auto-assigns public IP's and allows ingress on all ports, 
+as Brooklyn does not currently configure security groups for non-default VPC's; 
+or setting up Brooklyn to be in the subnet or have a jump host or other subnet access configuration). 
+For more information on VPC vs classic see http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html.
+
+{% endhighlight %}
+
+Specifically, there are issues with the certain AMIs and instance types.  If these are specified or a recommended 
+by brooklyn then you may see the above error. There are a few options for fixing this:
+
+- specify a different region which does not support EC2-classic.  
+  You can check this on the AWS console under "Supported Platforms.
+  Frankfurt (eu-central-1) is guaranteed to be VPC only.
+  
+- specify an instance type that is compatible with ec2-classic.  
+  Instance types C4, M4, T2 are only supported in VPC so should not be used.
+  This is described [here](index.html#vm-creation)
+    
+- create a subnet to use with the instance. Ensure that the subnet is set to auto-assign public IPs
+  and allows ingress on all ports.  Brooklyn cannot currently do this for you.
+  Use the networkName parameter to specify this value in your blueprint.
+  
+See the following resources for more information:
+
+- [Amazon EC2 and Amazon Virtual Private Cloud](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html#vpc-only-instance-types)
+- [Your Default VPC and Subnets](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html)
+- [Amazon VPC FAQs](http://aws.amazon.com/vpc/faqs/#Default_VPCs)
+  
 
 ### Inheritance and Named Locations
 


[17/50] brooklyn-docs git commit: This closes #602

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


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

Branch: refs/heads/0.7.0-incubating
Commit: f67784fc35300d0387a1136e4056266e7a06cd90
Parents: 2275e53 311163e
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Apr 21 21:48:35 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Apr 21 21:48:35 2015 +0100

----------------------------------------------------------------------
 docs/guide/dev/code/licensing.md     | 116 ++++++++++++
 docs/guide/dev/index.md              |   1 +
 usage/cli/src/test/license/NOTICE    |   5 +
 usage/jsgui/src/main/license/LICENSE | 292 ++++++++++++++++++++++++++++++
 4 files changed, 414 insertions(+)
----------------------------------------------------------------------



[44/50] brooklyn-docs git commit: 0.7.0 release notes

Posted by he...@apache.org.
0.7.0 release notes


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

Branch: refs/heads/0.7.0-incubating
Commit: ab651e78d08fa5a98ab6830b15e51598915df98a
Parents: 6fa7c6b
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Thu Jun 25 22:06:02 2015 +0100
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Thu Jun 25 22:06:02 2015 +0100

----------------------------------------------------------------------
 docs/guide/misc/release-notes.md | 100 +++++++++++++++++++++++++++-------
 1 file changed, 80 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/ab651e78/docs/guide/misc/release-notes.md
----------------------------------------------------------------------
diff --git a/docs/guide/misc/release-notes.md b/docs/guide/misc/release-notes.md
index 1a324d6..d174025 100644
--- a/docs/guide/misc/release-notes.md
+++ b/docs/guide/misc/release-notes.md
@@ -14,43 +14,103 @@ title: Release Notes
 * Backwards Compatibility
 * Community Activity
 
-### Introduction
 
-This version includes many big features,
-incorporating a lot of improvements and feedback from our community. Thank you!
+### Introduction
 
-Thanks also go to Brooklyn's commercial users who have funded this development and
-made some major contributions. 
+Version 0.7.0 is a major step for Apache Brooklyn. It is the first full release
+of the project as part of the Apache incubator.
 
-For more information, please visit [brooklyn.io](http://brooklyn.io).
+Thanks go to our community for their improvements, feedback and guidance, and
+to Brooklyn's commercial users for funding much of this development.
 
 
 ### New Features
 
-* A huge expansion of what can be done in YAML.
+This release is of a magnitude that makes it difficult to do justice to all of
+the features that have been added to Brooklyn in the last eighteen months. The
+selection here is by no means all that is new.
+
+1. _Blueprints in YAML_ In a significant boost to accessibility, authors no
+   longer need to know Java to model applications. The format follows the
+   [OASIS CAMP specification](https://www.oasis-open.org/committees/camp/)
+   with some extensions.
+
+1. _Persistence and rebind_ Brooklyn persists its state and on restart rebinds
+   to the existing entities.
+
+1. _High availability_ Brooklyn can be run a highly available mode with a
+   master node and one or more standby nodes.
+
+1. _Blueprint versioning_ The blueprint catalogue supports multiple versions
+   of blueprints. Version dependencies are managed with OSGi.
+
+1. _Windows support_ Brooklyn can both run on and deploy to Windows instances.
+
+1. _Cloud integrations_ Significant support for several clouds, including
+   SoftLayer, Google Compute Engine and Microsoft Azure.
+
+1. _Downstream parent_ A new module makes it significantly simpler for downstream
+   projects to depend on Brooklyn.
+
+
+Other post-0.7.0-M2 highlights include:
+
+1. New policies: `SshConnectionFailure`, which emits an event if it cannot make
+   an SSH connection to a machine, and `ConditionalSuspendPolicy`, which suspends
+   a target policy if it receives a sensor event.
 
-* First-class Chef integration
+1. Brooklyn reports server features in responses to `GET /v1/server/version`.
 
-* New clouds:  GCE, Softlayer
+1. It is much easier for downstream projects to customise the behaviour of
+   `JcloudsLocationSecurityGroupCustomiser`.
 
-* Networking
+1. Brooklyn is compiled with Java 7 and uses jclouds 1.9.0.
 
-* Docker support:  see [clocker.io](http://clocker.io)
+1. Improvements to the existing Nginx, Riak, RabbitMQ and Bind DNS entities and
+   support for Tomcat 8.
 
 
 ### Backwards Compatibility
 
-* 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. 
+Changes since 0.7.0-M2:
 
-* If `brooklyn.webconsole.security.https.required=true` is specified with no explicit port, 
-  it now defaults to 8443; previously it would default to 8081 even in the case of `https`.
+1. Passwords generated with the `generate-password` command line tool must be
+   regenerated. The tool now generates exactly `sha256( salt + password )`.
+
+Changes since 0.6.0:
+
+1. Code deprecated in 0.6.0 has been deleted. Many classes and methods are newly deprecated.
+
+1. Persistence has been radically overhauled. In most cases the state files
+   from previous versions are compatible but many items have had to change.
+
+1. Location configuration getter and setter methods are changed to match those
+   of Entities. This is in preparation for having all Locations be Entities.
+
+1. OpenShift integration has moved from core Brooklyn to the downstream project
+   https://github.com/cloudsoft/brooklyn-openshift.
+
+Please refer to the release notes for versions
+[0.7.0-M2](https://brooklyn.incubator.apache.org/v/0.7.0-M2-incubating/misc/release-notes.html)
+and
+[0.7.0-M1](https://brooklyn.incubator.apache.org/v/0.7.0-M1/start/release-notes.html)
+for further compatibility notes.
 
-* The /v1/catalog/create method now returns a map of ID to item map, instead of an item map, 
-  as the call supports multiple items defined in the YAML.
-  
 
 ### Community Activity
 
-Brooklyn has moved into the Apache Software Foundation.
+During development of 0.7.0 Brooklyn moved to the Apache Software Foundation.
+
+Many exciting projects are using Brooklyn. Notably:
+
+* [Clocker](http://clocker.io), which creates and manages Docker cloud
+  infrastructures.
+
+* The Brooklyn Cloud Foundry Bridge, which brings blueprints into the Cloud
+  Foundry marketplace with the [Brooklyn Service
+  Broker](https://github.com/cloudfoundry-incubator/brooklyn-service-broker)
+  and manages those services with the Cloud Foundry CLI plugin.
+
+* [SeaClouds](http://www.seaclouds-project.eu/), an ongoing EU project for
+  seamless adaptive multi-cloud management of service based applications.
+


[12/50] brooklyn-docs git commit: Fix typo in README

Posted by he...@apache.org.
Fix typo in README


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

Branch: refs/heads/0.7.0-incubating
Commit: d099ab00492291d2393797645875bb9cd2980853
Parents: 5d549bd
Author: Mike Zaccardo <mi...@cloudsoftcorp.com>
Authored: Thu Apr 16 13:56:26 2015 -0400
Committer: Mike Zaccardo <mi...@cloudsoftcorp.com>
Committed: Thu Apr 16 13:56:26 2015 -0400

----------------------------------------------------------------------
 docs/README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/d099ab00/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
index f092df7..bf0766b 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -11,7 +11,7 @@ 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-docs.htmlq
+[CONTRIB]: https://brooklyn.incubator.apache.org/community/how-to-contribute-docs.html
 [COMMIT]: https://brooklyn.incubator.apache.org/developers/committers/index.html
 
 


[29/50] brooklyn-docs git commit: This closes #634

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


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

Branch: refs/heads/0.7.0-incubating
Commit: cb8bca6e716775a3422203a96ae89fadf920c8cb
Parents: 33b5e86 f5ace35
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri May 22 10:04:08 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 22 10:04:08 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/catalog/index.md                 |  20 ++++
 docs/guide/ops/install-on-server.md             |  23 ++--
 docs/guide/ops/locations/index.md               | 119 +++++++++++--------
 docs/guide/start/blueprints.md                  |  13 +-
 docs/guide/start/catalog.xml                    |  22 ----
 .../statics/style/js/underscore-min.js          |   6 +
 .../statics/style/js/underscore-min.map         |   1 +
 7 files changed, 112 insertions(+), 92 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/cb8bca6e/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --cc docs/guide/ops/catalog/index.md
index 074bbf3,7cb0e84..b93481c
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@@ -5,9 -5,11 +5,11 @@@ children
  - { section: General YAML Schema }
  - { section: Catalog Metadata }
  - { section: Catalog YAML Examples }
 -- { section: Adding to the Catalog, title: Adding and Deleting } 
  - { section: Templates and the Add-Application Wizard, title: Templates }
 +- { section: Adding to the Catalog, title: Adding and Deleting } 
  - { section: Versioning } 
+ - { section: CLI Options }
+  
  ---
  
  Brooklyn provides a **catalog**, which is a persisted collection of versioned blueprints and other resources. 


[35/50] brooklyn-docs git commit: This closes #617

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


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

Branch: refs/heads/0.7.0-incubating
Commit: b33587e0ed30f457deededabf9360a30c29cb11a
Parents: 10f8a5d e55e25e
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri May 29 11:29:30 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 29 11:29:30 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/catalog/index.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/b33587e0/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------


[46/50] brooklyn-docs git commit: Change version to 0.7.0-incubating

Posted by he...@apache.org.
Change version to 0.7.0-incubating


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

Branch: refs/heads/0.7.0-incubating
Commit: 31f0c21858b272c13e819369654647b9afbdf1b2
Parents: 756aaf4
Author: Richard Downer <ri...@apache.org>
Authored: Fri Jun 26 14:10:44 2015 +0000
Committer: Richard Downer <ri...@apache.org>
Committed: Fri Jun 26 14:10:44 2015 +0000

----------------------------------------------------------------------
 docs/_build/build.sh                             | 4 ++--
 docs/_build/config-guide-version.yml             | 4 ++--
 docs/_build/javadoc-overview.html                | 4 ++--
 docs/_build/make-javadoc.sh                      | 2 +-
 docs/_config.yml                                 | 2 +-
 docs/_extra/simple_java_examples/examples.md     | 2 +-
 docs/_plugins/brooklyn_metadata.rb               | 2 +-
 docs/guide/dev/env/maven-build.md                | 8 ++++----
 docs/guide/dev/tips/debugging-remote-brooklyn.md | 2 +-
 docs/guide/misc/index.md                         | 2 +-
 docs/index.md                                    | 2 +-
 docs/website/community/how-to-contribute-docs.md | 2 +-
 12 files changed, 18 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/31f0c218/docs/_build/build.sh
----------------------------------------------------------------------
diff --git a/docs/_build/build.sh b/docs/_build/build.sh
index 40f826c..6044dc8 100755
--- a/docs/_build/build.sh
+++ b/docs/_build/build.sh
@@ -21,7 +21,7 @@ function help() {
   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 the guide only, in the versioned namespace /v/0.7.0-SNAPSHOT/"
+  echo "* guide-version : to build the guide only, in the versioned namespace /v/0.7.0-incubating/"
   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)"
@@ -71,7 +71,7 @@ function parse_mode() {
     # 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_TARGET[0]=v/0.7.0-incubating
     DIRS_TO_MOVE[1]=style
     STYLE_SUBDIR=${DIRS_TO_MOVE_TARGET[0]}/style
     DIRS_TO_MOVE_TARGET[1]=$STYLE_SUBDIR

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/31f0c218/docs/_build/config-guide-version.yml
----------------------------------------------------------------------
diff --git a/docs/_build/config-guide-version.yml b/docs/_build/config-guide-version.yml
index 640f22f..d25df6b 100644
--- a/docs/_build/config-guide-version.yml
+++ b/docs/_build/config-guide-version.yml
@@ -1,6 +1,6 @@
 path:
   # BROOKLYN_VERSION_BELOW
-  guide: /v/0.7.0-SNAPSHOT
+  guide: /v/0.7.0-incubating
   # BROOKLYN_VERSION_BELOW
-  style: /v/0.7.0-SNAPSHOT/style
+  style: /v/0.7.0-incubating/style
   website: ""

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/31f0c218/docs/_build/javadoc-overview.html
----------------------------------------------------------------------
diff --git a/docs/_build/javadoc-overview.html b/docs/_build/javadoc-overview.html
index 1213e18..871e00b 100644
--- a/docs/_build/javadoc-overview.html
+++ b/docs/_build/javadoc-overview.html
@@ -1,7 +1,7 @@
 <html><body>
 
 <!-- BROOKLYN_VERSION_BELOW -->
-Javadoc for <a href="http://brooklyn.io"> Apache Brooklyn</a> 0.7.0-SNAPSHOT
+Javadoc for <a href="http://brooklyn.io"> Apache Brooklyn</a> 0.7.0-incubating
 
 <p>
                 Apache Brooklyn is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the 
@@ -16,7 +16,7 @@ Javadoc for <a href="http://brooklyn.io"> Apache Brooklyn</a> 0.7.0-SNAPSHOT
 
 <p>
 <!-- BROOKLYN_VERSION_BELOW -->
-This is the Javadoc for v 0.7.0-SNAPSHOT (git SHA1 hash ${SHA1STAMP}) auto-generated on ${DATESTAMP}.
+This is the Javadoc for v 0.7.0-incubating (git SHA1 hash ${SHA1STAMP}) auto-generated on ${DATESTAMP}.
 </p> 
 
 </body><html>

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/31f0c218/docs/_build/make-javadoc.sh
----------------------------------------------------------------------
diff --git a/docs/_build/make-javadoc.sh b/docs/_build/make-javadoc.sh
index 9dd9f82..80a6c24 100755
--- a/docs/_build/make-javadoc.sh
+++ b/docs/_build/make-javadoc.sh
@@ -24,7 +24,7 @@ export DATESTAMP=`date "+%Y-%m-%d"`
 export SHA1STAMP=`git rev-parse HEAD`
 
 # BROOKLYN_VERSION_BELOW
-export BROOKLYN_JAVADOC_CLASSPATH=../../usage/all/target/brooklyn-all-0.7.0-SNAPSHOT-with-dependencies.jar
+export BROOKLYN_JAVADOC_CLASSPATH=../../usage/all/target/brooklyn-all-0.7.0-incubating-with-dependencies.jar
 
 if [ \! -f ${BROOKLYN_JAVADOC_CLASSPATH} ]; then
   echo "Expected to find ${BROOKLYN_JAVADOC_CLASSPATH}"

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/31f0c218/docs/_config.yml
----------------------------------------------------------------------
diff --git a/docs/_config.yml b/docs/_config.yml
index e25b279..990df07 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -50,7 +50,7 @@ brooklyn-stable-versions: [ 0.7.0-M2-incubating ]
 
 brooklyn-stable-version: 0.7.0-M2-incubating
 
-brooklyn-version: 0.7.0-SNAPSHOT # BROOKLYN_VERSION
+brooklyn-version: 0.7.0-incubating # BROOKLYN_VERSION
 brooklyn-snapshot-git-branch: master   # if line above is SNAPSHOT this should point to corresponding git branch (e.g. master, 0.4)
 
 # This is auto-detected, but you can override it if needed.

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/31f0c218/docs/_extra/simple_java_examples/examples.md
----------------------------------------------------------------------
diff --git a/docs/_extra/simple_java_examples/examples.md b/docs/_extra/simple_java_examples/examples.md
index 2063a3f..e0d9452 100644
--- a/docs/_extra/simple_java_examples/examples.md
+++ b/docs/_extra/simple_java_examples/examples.md
@@ -22,7 +22,7 @@ If you have a Maven-based project, integrate this XML fragment with your pom.xml
 	<dependency>
 		<groupId>io.brooklyn</groupId>
 		<artifactId>brooklyn-all</artifactId>
-		<version>0.7.0-SNAPSHOT</version>  <!-- BROOKLYN_VERSION -->
+		<version>0.7.0-incubating</version>  <!-- BROOKLYN_VERSION -->
 	</dependency>
 </dependencies>
  

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/31f0c218/docs/_plugins/brooklyn_metadata.rb
----------------------------------------------------------------------
diff --git a/docs/_plugins/brooklyn_metadata.rb b/docs/_plugins/brooklyn_metadata.rb
index cb2ba2e..5a4b7d4 100644
--- a/docs/_plugins/brooklyn_metadata.rb
+++ b/docs/_plugins/brooklyn_metadata.rb
@@ -7,7 +7,7 @@
 #
 module BrooklynMetadata
 
-  BROOKLYN_VERSION = "0.7.0-SNAPSHOT" unless defined? BROOKLYN_VERSION
+  BROOKLYN_VERSION = "0.7.0-incubating" unless defined? BROOKLYN_VERSION
 
   class Generator < Jekyll::Generator
     def generate(site)

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/31f0c218/docs/guide/dev/env/maven-build.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/env/maven-build.md b/docs/guide/dev/env/maven-build.md
index fa0895b..5255546 100644
--- a/docs/guide/dev/env/maven-build.md
+++ b/docs/guide/dev/env/maven-build.md
@@ -104,7 +104,7 @@ although we'd love to if anyone can help!):
 
 [INFO] — maven-assembly-plugin:2.3:single (build-distribution-dir) @ brooklyn-dist —
 [INFO] Reading assembly descriptor: src/main/config/build-distribution-dir.xml
-{% comment %}BROOKLYN_VERSION{% endcomment %}[WARNING] Cannot include project artifact: io.brooklyn:brooklyn-dist:jar:0.7.0-SNAPSHOT; it doesn't have an associated file or directory.
+{% comment %}BROOKLYN_VERSION{% endcomment %}[WARNING] Cannot include project artifact: io.brooklyn:brooklyn-dist:jar:0.7.0-incubating; it doesn't have an associated file or directory.
 [INFO] Copying files to ~/repos/apache/incubator-brooklyn/usage/dist/target/brooklyn-dist
 [WARNING] Assembly file: ~/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.
 
@@ -112,9 +112,9 @@ although we'd love to if anyone can help!):
 
 [INFO] — maven-assembly-plugin:2.3:single (build-distribution-archive) @ brooklyn-dist —
 [INFO] Reading assembly descriptor: src/main/config/build-distribution-archive.xml
-{% comment %}BROOKLYN_VERSION{% endcomment %}[WARNING] Cannot include project artifact: io.brooklyn:brooklyn-dist:jar:0.7.0-SNAPSHOT; it doesn't have an associated file or directory.
-{% comment %}BROOKLYN_VERSION{% endcomment %}[INFO] Building tar: /Users/aled/repos/apache/incubator-brooklyn/usage/dist/target/brooklyn-0.7.0-SNAPSHOT-dist.tar.gz
-{% comment %}BROOKLYN_VERSION{% endcomment %}[WARNING] Cannot include project artifact: io.brooklyn:brooklyn-dist:jar:0.7.0-SNAPSHOT; it doesn't have an associated file or directory.
+{% comment %}BROOKLYN_VERSION{% endcomment %}[WARNING] Cannot include project artifact: io.brooklyn:brooklyn-dist:jar:0.7.0-incubating; it doesn't have an associated file or directory.
+{% comment %}BROOKLYN_VERSION{% endcomment %}[INFO] Building tar: /Users/aled/repos/apache/incubator-brooklyn/usage/dist/target/brooklyn-0.7.0-incubating-dist.tar.gz
+{% comment %}BROOKLYN_VERSION{% endcomment %}[WARNING] Cannot include project artifact: io.brooklyn:brooklyn-dist:jar:0.7.0-incubating; it doesn't have an associated file or directory.
 
 ...
 

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/31f0c218/docs/guide/dev/tips/debugging-remote-brooklyn.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/debugging-remote-brooklyn.md b/docs/guide/dev/tips/debugging-remote-brooklyn.md
index dc087af..a2e1bc5 100644
--- a/docs/guide/dev/tips/debugging-remote-brooklyn.md
+++ b/docs/guide/dev/tips/debugging-remote-brooklyn.md
@@ -25,7 +25,7 @@ This should return details of the build as a JSON string similar to the followin
 
 {% highlight json %}
 {
-    "version": "0.7.0-SNAPSHOT",  {% comment %}BROOKLYN_VERSION{% endcomment %}
+    "version": "0.7.0-incubating",  {% comment %}BROOKLYN_VERSION{% endcomment %}
     "buildSha1": "c0fdc15291702281acdebf1b11d431a6385f5224",
     "buildBranch": "UNKNOWN"
 }

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/31f0c218/docs/guide/misc/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/misc/index.md b/docs/guide/misc/index.md
index 9639cbf..4bafea5 100644
--- a/docs/guide/misc/index.md
+++ b/docs/guide/misc/index.md
@@ -1,6 +1,6 @@
 ---
 # BROOKLYN_VERSION_BELOW
-title: Other 0.7.0-SNAPSHOT Resources
+title: Other 0.7.0-incubating Resources
 layout: website-normal
 children:
 - { title: Javadoc, path: javadoc/ }

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/31f0c218/docs/index.md
----------------------------------------------------------------------
diff --git a/docs/index.md b/docs/index.md
index 5d2c44b..ede7315 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -8,7 +8,7 @@ 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-incubating) <!-- BROOKLYN_VERSION --></a>
 
 Also see the file <code>README.md</code> in this directory.
 

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/31f0c218/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 7d6a8bf..af3ac9a 100644
--- a/docs/website/community/how-to-contribute-docs.md
+++ b/docs/website/community/how-to-contribute-docs.md
@@ -27,7 +27,7 @@ The Brooklyn documentation is split into two parts:
   
 - **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 {% comment %}BROOKLYN_VERSION{% endcomment %}
+  https://brooklyn.incubator.apache.org/v/0.7.0-incubating and {% comment %}BROOKLYN_VERSION{% endcomment %}
   the special *latest* set at https://brooklyn.incubator.apache.org/v/latest .  
   Content for this is in the `guide` directory.
 


[08/50] brooklyn-docs git commit: Different LICENSE/NOTICE for usage/jsgui

Posted by he...@apache.org.
Different LICENSE/NOTICE for usage/jsgui


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

Branch: refs/heads/0.7.0-incubating
Commit: 311163ed57389831d33852f6f1a1b747a0ccd1e8
Parents: 11d79ca
Author: Richard Downer <ri...@apache.org>
Authored: Thu Apr 16 14:24:41 2015 +0100
Committer: Richard Downer <ri...@apache.org>
Committed: Thu Apr 16 16:01:01 2015 +0100

----------------------------------------------------------------------
 usage/jsgui/src/main/license/LICENSE | 292 ++++++++++++++++++++++++++++++
 1 file changed, 292 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/311163ed/usage/jsgui/src/main/license/LICENSE
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/license/LICENSE b/usage/jsgui/src/main/license/LICENSE
new file mode 100644
index 0000000..d9f5bc7
--- /dev/null
+++ b/usage/jsgui/src/main/license/LICENSE
@@ -0,0 +1,292 @@
+
+                                 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.
+
+
+
+---------------------------------------------------
+
+This distribution contains third party resources.
+
+This product includes software developed at The jQuery Foundation (http://jquery.org/):
+jquery.js, selected jquery*.js.
+Copyright (c) John Resig (2011).
+Licensed under the MIT license (see below).
+
+This product includes software developed at The Dojo Foundation (http://dojofoundation.org/):
+require.js, text.js, sizzle.js in jquery.js.
+Copyright (c) The Dojo Foundation (2011, 2012).
+Licensed under the MIT license (see below).
+
+This product includes software developed at DocumentCloud Inc (http://www.documentcloud.org/):
+backbone.js, underscore.js.
+Copyright (c) Jeremy Ashkenas, DocumentCloud Inc (2010-2013).
+Licensed under the MIT license (see below).
+
+This product includes software developed by Miller Medeiros (https://github.com/millermedeiros/):
+async.js.
+Copyright (c) Miller Medeiros (2011).
+Licensed under the MIT license (see below).
+
+This product includes software developed by Yehuda Katz (https://github.com/wycats/):
+handlebars*.js.
+Copyright (c) Yehuda Katz (2012).
+Licensed under the MIT license (see below).
+
+This product includes software developed by "Cowboy" Ben Alman (http://benalman.com/).
+jquery.ba-bbq*.js
+Copyright (c) "Cowboy" Ben Alman (2010).
+Licensed under the MIT license (see below).
+
+This product includes software developed by WonderGroup and Jordan Thomas (http://labs.wondergroup.com/demos/mini-ui/index.html):
+jquery.wiggle.js.
+Copyright (c) WonderGroup and Jordan Thomas (2010).
+Licensed under the MIT license (see below).
+
+This product includes software developed by Tim Wood (http://momentjs.com):
+moment.js
+Copyright (c) Tim Wood, Iskren Chernev, Moment.js contributors (2011-2014).
+Licensed under the MIT license (see below).
+
+This product includes software developed by ZeroClipboard contributors (https://github.com/zeroclipboard):
+ZeroClipboard.js
+Copyright (c) Jon Rohan, James M. Greene (2014).
+Licensed under the MIT license (see below).
+
+This product includes software developed at SpryMedia Ltd (http://sprymedia.co.uk/):
+jquery.dataTables.js, dataTables.extensions.js
+Copyright (c) Allan Jardine (2008-2012).
+Licensed under the New BSD license (see below).
+
+This product includes software developed by js-uri contributors (https://code.google.com/js-uri):
+URI.js.
+Copyright (c) js-uri contributors (2013).
+Licensed under the New BSD license (see below).
+
+This product includes software developed by Vitaly Puzrin (https://github.com/nodeca/):
+js-yaml.js
+Copyright (c) Vitaly Puzrin (2011-2015).
+Licensed under the MIT license (see below).
+
+
+
+The MIT License ("MIT")
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+
+The BSD 3-Clause License ("New BSD")
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, 
+this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, 
+this list of conditions and the following disclaimer in the documentation 
+and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors 
+may be used to endorse or promote products derived from this software without 
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
+POSSIBILITY OF SUCH DAMAGE.


[30/50] brooklyn-docs git commit: Add REST API documentation page to developer guide

Posted by he...@apache.org.
Add REST API documentation page to developer guide


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

Branch: refs/heads/0.7.0-incubating
Commit: fcf38fa1b55f7043c50c6860798c38308333298e
Parents: cb8bca6
Author: Mike Zaccardo <mi...@cloudsoftcorp.com>
Authored: Tue May 26 16:22:03 2015 -0400
Committer: Mike Zaccardo <mi...@cloudsoftcorp.com>
Committed: Tue May 26 16:22:03 2015 -0400

----------------------------------------------------------------------
 docs/guide/dev/index.md | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/fcf38fa1/docs/guide/dev/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/dev/index.md b/docs/guide/dev/index.md
index 95f278e..0a7acfd 100644
--- a/docs/guide/dev/index.md
+++ b/docs/guide/dev/index.md
@@ -14,6 +14,7 @@ children:
 - tips/
 - tips/logging.md
 - tips/debugging-remote-brooklyn.md
+- rest/rest-api-doc.md
 ---
 
 {% comment %}


[10/50] brooklyn-docs git commit: Fix broken link for contributers guide in README

Posted by he...@apache.org.
Fix broken link for contributers guide in README


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

Branch: refs/heads/0.7.0-incubating
Commit: 91f99bb37d60a935e4fdcb53de07733b52d940b7
Parents: b503aa8
Author: Mike Zaccardo <mi...@cloudsoftcorp.com>
Authored: Thu Apr 16 11:55:10 2015 -0400
Committer: Mike Zaccardo <mi...@cloudsoftcorp.com>
Committed: Thu Apr 16 11:55:10 2015 -0400

----------------------------------------------------------------------
 docs/README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/91f99bb3/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
index 5d1b386..ce09809 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -11,7 +11,7 @@ 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
+[CONTRIB]: https://brooklyn.incubator.apache.org/community/how-to-contribute-docs.html
 [COMMIT]: https://brooklyn.incubator.apache.org/community/committers.html
 
 


[47/50] brooklyn-docs git commit: Fix make-javadoc.sh to work without brooklyn-all-with-dependencies (because it's been removed)

Posted by he...@apache.org.
Fix make-javadoc.sh to work without brooklyn-all-with-dependencies (because it's been removed)


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

Branch: refs/heads/0.7.0-incubating
Commit: 294a99b0841f8090ad28c8fc457433229441da0b
Parents: 31f0c21
Author: Richard Downer <ri...@apache.org>
Authored: Mon Jul 27 15:10:57 2015 +0100
Committer: Richard Downer <ri...@apache.org>
Committed: Mon Jul 27 15:10:57 2015 +0100

----------------------------------------------------------------------
 docs/_build/make-javadoc.sh | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/294a99b0/docs/_build/make-javadoc.sh
----------------------------------------------------------------------
diff --git a/docs/_build/make-javadoc.sh b/docs/_build/make-javadoc.sh
index 80a6c24..56e3bb5 100755
--- a/docs/_build/make-javadoc.sh
+++ b/docs/_build/make-javadoc.sh
@@ -24,13 +24,7 @@ export DATESTAMP=`date "+%Y-%m-%d"`
 export SHA1STAMP=`git rev-parse HEAD`
 
 # BROOKLYN_VERSION_BELOW
-export BROOKLYN_JAVADOC_CLASSPATH=../../usage/all/target/brooklyn-all-0.7.0-incubating-with-dependencies.jar
-
-if [ \! -f ${BROOKLYN_JAVADOC_CLASSPATH} ]; then
-  echo "Expected to find ${BROOKLYN_JAVADOC_CLASSPATH}"
-  echo "Please run a full Maven build in the project root"
-  exit 1
-fi
+export BROOKLYN_JAVADOC_CLASSPATH=$( mvn -f ../../pom.xml --projects :brooklyn-all dependency:build-classpath | grep -E -v '^\[[A-Z]+\]' )
 
 echo "building javadoc at $DATESTAMP from:
 $SOURCE_PATHS"


[49/50] brooklyn-docs git commit: Backport user guide updates from master

Posted by he...@apache.org.
Backport user guide updates from master


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

Branch: refs/heads/0.7.0-incubating
Commit: 6f131498d91c2acac3f263e747f55ae0a8e82fdf
Parents: 24530ff
Author: Richard Downer <ri...@apache.org>
Authored: Fri Jul 31 13:11:41 2015 +0100
Committer: Richard Downer <ri...@apache.org>
Committed: Fri Jul 31 13:11:41 2015 +0100

----------------------------------------------------------------------
 docs/guide/concepts/advanced-concepts.md        |  14 -
 .../concepts/configuration-sensor-effectors.md  |   2 -
 .../dev/tips/images/external-error-large.png    | Bin 0 -> 131907 bytes
 docs/guide/dev/tips/images/external-error.png   | Bin 0 -> 71972 bytes
 .../guide/dev/tips/images/failed-task-large.png | Bin 0 -> 169079 bytes
 docs/guide/dev/tips/images/failed-task.png      | Bin 0 -> 92530 bytes
 .../dev/tips/images/jmx-sensors-all-large.png   | Bin 0 -> 133517 bytes
 docs/guide/dev/tips/images/jmx-sensors-all.png  | Bin 0 -> 76581 bytes
 .../guide/dev/tips/images/jmx-sensors-large.png | Bin 0 -> 197177 bytes
 docs/guide/dev/tips/images/jmx-sensors.png      | Bin 0 -> 109139 bytes
 .../tips/images/resource-exception-large.png    | Bin 0 -> 134842 bytes
 .../dev/tips/images/resource-exception.png      | Bin 0 -> 76059 bytes
 .../dev/tips/images/script-failure-large.png    | Bin 0 -> 130227 bytes
 docs/guide/dev/tips/images/script-failure.png   | Bin 0 -> 71912 bytes
 docs/guide/ops/catalog/index.md                 |  11 +-
 docs/guide/ops/index.md                         |   1 +
 docs/guide/ops/launch.md                        |   7 +-
 docs/guide/ops/locations/index.md               |  25 +
 docs/guide/ops/troubleshooting/connectivity.md  | 143 ++++++
 docs/guide/ops/troubleshooting/deployment.md    |  88 ++++
 .../going-deep-in-java-and-logs.md              | 488 +++++++++++++++++++
 .../images/failed-task-large.png                | Bin 0 -> 169079 bytes
 .../images/jmx-sensors-large.png                | Bin 0 -> 197177 bytes
 docs/guide/ops/troubleshooting/index.md         |  12 +
 docs/guide/ops/troubleshooting/overview.md      | 116 +++++
 .../ops/troubleshooting/softwareprocess.md      |  50 ++
 docs/guide/start/running.md                     |   2 +-
 27 files changed, 939 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/concepts/advanced-concepts.md
----------------------------------------------------------------------
diff --git a/docs/guide/concepts/advanced-concepts.md b/docs/guide/concepts/advanced-concepts.md
deleted file mode 100644
index 13e791d..0000000
--- a/docs/guide/concepts/advanced-concepts.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Advanced Concepts
-layout: website-normal
-toc: ../guide_toc.json
-categories: [use, guide, defining-applications]
----
-
-
-
-
-
-
-
-

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/concepts/configuration-sensor-effectors.md
----------------------------------------------------------------------
diff --git a/docs/guide/concepts/configuration-sensor-effectors.md b/docs/guide/concepts/configuration-sensor-effectors.md
index 72e4e93..bb41343 100644
--- a/docs/guide/concepts/configuration-sensor-effectors.md
+++ b/docs/guide/concepts/configuration-sensor-effectors.md
@@ -38,5 +38,3 @@ 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](advanced-concepts.html).
-

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/dev/tips/images/external-error-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/external-error-large.png b/docs/guide/dev/tips/images/external-error-large.png
new file mode 100644
index 0000000..abea32d
Binary files /dev/null and b/docs/guide/dev/tips/images/external-error-large.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/dev/tips/images/external-error.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/external-error.png b/docs/guide/dev/tips/images/external-error.png
new file mode 100644
index 0000000..0b5deff
Binary files /dev/null and b/docs/guide/dev/tips/images/external-error.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/dev/tips/images/failed-task-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/failed-task-large.png b/docs/guide/dev/tips/images/failed-task-large.png
new file mode 100644
index 0000000..1c264c4
Binary files /dev/null and b/docs/guide/dev/tips/images/failed-task-large.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/dev/tips/images/failed-task.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/failed-task.png b/docs/guide/dev/tips/images/failed-task.png
new file mode 100644
index 0000000..94a368e
Binary files /dev/null and b/docs/guide/dev/tips/images/failed-task.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/dev/tips/images/jmx-sensors-all-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/jmx-sensors-all-large.png b/docs/guide/dev/tips/images/jmx-sensors-all-large.png
new file mode 100644
index 0000000..d5d6b97
Binary files /dev/null and b/docs/guide/dev/tips/images/jmx-sensors-all-large.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/dev/tips/images/jmx-sensors-all.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/jmx-sensors-all.png b/docs/guide/dev/tips/images/jmx-sensors-all.png
new file mode 100644
index 0000000..52c3191
Binary files /dev/null and b/docs/guide/dev/tips/images/jmx-sensors-all.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/dev/tips/images/jmx-sensors-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/jmx-sensors-large.png b/docs/guide/dev/tips/images/jmx-sensors-large.png
new file mode 100644
index 0000000..d9322c6
Binary files /dev/null and b/docs/guide/dev/tips/images/jmx-sensors-large.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/dev/tips/images/jmx-sensors.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/jmx-sensors.png b/docs/guide/dev/tips/images/jmx-sensors.png
new file mode 100644
index 0000000..ff81806
Binary files /dev/null and b/docs/guide/dev/tips/images/jmx-sensors.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/dev/tips/images/resource-exception-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/resource-exception-large.png b/docs/guide/dev/tips/images/resource-exception-large.png
new file mode 100644
index 0000000..9cff4ce
Binary files /dev/null and b/docs/guide/dev/tips/images/resource-exception-large.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/dev/tips/images/resource-exception.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/resource-exception.png b/docs/guide/dev/tips/images/resource-exception.png
new file mode 100644
index 0000000..2fb792c
Binary files /dev/null and b/docs/guide/dev/tips/images/resource-exception.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/dev/tips/images/script-failure-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/script-failure-large.png b/docs/guide/dev/tips/images/script-failure-large.png
new file mode 100644
index 0000000..b36517c
Binary files /dev/null and b/docs/guide/dev/tips/images/script-failure-large.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/dev/tips/images/script-failure.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/script-failure.png b/docs/guide/dev/tips/images/script-failure.png
new file mode 100644
index 0000000..2d59b6d
Binary files /dev/null and b/docs/guide/dev/tips/images/script-failure.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md
index e2fbc9c..d24e200 100644
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@ -302,7 +302,16 @@ The `brooklyn` CLI includes several commands for working with the catalog.
 * `--catalogInitial <file.bom>` will set the catalog items to use on first run,
   on a catalog reset, or if persistence is off
 
-If [persistence](../persistence/) is enabled, catalog additions will remain between runs.
+If `--catalogInitial` is not specified, the default initial catalog at `brooklyn/default.catalog.bom` will be used.
+As `scanJavaAnnotations: true` is set in `default.catalog.bom`, Brooklyn will scan the classpath for catalog items,
+which will be added to the catalog.
+To launch Brooklyn without initializing the catalog, use `--catalogInitial classpath://brooklyn/empty.catalog.bom`
+
+If [persistence](../persistence/) is enabled, catalog additions will remain between runs. If items that were
+previously added based on items in `brooklyn/default.catalog.bom` or `--catalogInitial` are 
+deleted, they will not be re-added on subsequent restarts of brooklyn. I.e. `--catalogInitial` is ignored
+if persistence is enabled and persistent state has already been created.
+
 For more information on these commands, run `brooklyn help launch`.
 
 

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/ops/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/index.md b/docs/guide/ops/index.md
index dae3071..1cb28aa 100644
--- a/docs/guide/ops/index.md
+++ b/docs/guide/ops/index.md
@@ -11,6 +11,7 @@ children:
 - high-availability.md
 - catalog/
 - logging.md
+- troubleshooting/
 ---
 
 {% include list-children.html %}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/ops/launch.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/launch.md b/docs/guide/ops/launch.md
index 45d67bd..bdfa47d 100644
--- a/docs/guide/ops/launch.md
+++ b/docs/guide/ops/launch.md
@@ -8,12 +8,15 @@ layout: website-normal
 To launch Brooklyn, from the directory where Brooklyn is unpacked, run:
 
 {% highlight bash %}
-% nohup bin/brooklyn launch &
+% nohup bin/brooklyn launch > /dev/null 2&>1 &
 {% endhighlight %}
 
 With no configuration, this will launch the Brooklyn web console and REST API on [`http://localhost:8081/`](http://localhost:8081/).
 No password is set, but the server is listening only on the loopback network interface for security.
 Once [security is configured](brooklyn_properties.html), Brooklyn will listen on all network interfaces by default.
+By default, Brooklyn will write log messages at the INFO level or above to `brooklyn.info.log` and messgages at the
+DEBUG level or above to `brooklyn.debug.log`. Redirecting the output to `/dev/null` prevents the default console output
+being written to `nohup.out`.
 
 You may wish to [add Brooklyn to your path](#path-setup);
 assuming you've done this, to get information the supported CLI options 
@@ -195,4 +198,4 @@ nohup brooklyn launch --app brooklyn.demo.SingleWebServerExample --location loca
 {% endhighlight %}
 
 
-  
\ No newline at end of file
+  

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/ops/locations/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/locations/index.md b/docs/guide/ops/locations/index.md
index 835951c..767ca72 100644
--- a/docs/guide/ops/locations/index.md
+++ b/docs/guide/ops/locations/index.md
@@ -401,6 +401,31 @@ brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyFile=~/.ssh/produser_id
 brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyPassphrase=s3cr3tpassphrase
 {% endhighlight %}
 
+For more complex host configuration, one can define custom config values per machine. In the example 
+below, there will be two machines. The first will be a machine reachable on
+`ssh -i ~/.ssh/brooklyn.pem -p 8022 myuser@50.51.52.53`. The second is a windows machine, reachable 
+over WinRM. Each machine has also has a private address (e.g. for within a private network).
+
+{% highlight yaml %}
+location:
+  byon:
+    hosts:
+    - ssh: 50.51.52.53:8022
+      privateAddresses: [10.0.0.1]
+      privateKeyFile: ~/.ssh/brooklyn.pem
+      user: myuser
+    - winrm: 50.51.52.54:8985
+      privateAddresses: [10.0.0.2]
+      password: mypassword
+      user: myuser
+      osfamily: windows
+{% endhighlight %}
+
+The BYON location also supports a machine chooser, using the config key `byon.machineChooser`. 
+This allows one to plugin logic to choose from the set of available machines in the pool. For
+example, additional config could be supplied for each machine. This could be used (during the call
+to `location.obtain()`) to find the config that matches the requirements of the entity being
+provisioned. See `brooklyn.location.basic.FixedListMachineProvisioningLocation.MACHINE_CHOOSER`.
 
 
 ### Other Location Topics

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/ops/troubleshooting/connectivity.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/connectivity.md b/docs/guide/ops/troubleshooting/connectivity.md
new file mode 100644
index 0000000..07874c0
--- /dev/null
+++ b/docs/guide/ops/troubleshooting/connectivity.md
@@ -0,0 +1,143 @@
+---
+layout: website-normal
+title: Troubleshooting Server Connectivity Issues in the Cloud
+toc: /guide/toc.json
+---
+
+A common problem when setting up an application in the cloud is getting the basic connectivity right - how
+do I get my service (e.g. a TCP host:port) publicly accessible over the internet?
+
+This varies a lot - e.g. Is the VM public or in a private network? Is the service only accessible through
+a load balancer? Should the service be globally reachable or only to a particular CIDR?
+
+This guide gives some general tips for debugging connectivity issues, which are applicable to a 
+range of different service types. Choose those that are appropriate for your use-case.
+
+## VM reachable
+If the VM is supposed to be accessible directly (e.g. from the public internet, or if in a private network
+then from a jump host)...
+
+### ping
+Can you `ping` the VM from the machine you are trying to reach it from?
+
+However, ping is over ICMP. If the VM is unreachable, it could be that the firewall forbids ICMP but still
+lets TCP traffic through.
+
+### telnet to TCP port
+You can check if a given TCP port is reachable and listening using `telnet <host> <port>`, such as
+`telnet www.google.com 80`, which gives output like:
+
+```
+    Trying 31.55.163.219...
+    Connected to www.google.com.
+    Escape character is '^]'.
+```
+
+If this is very slow to respond, it can be caused by a firewall blocking access. If it is fast, it could
+be that the server is just not listening on that port.
+
+### DNS and routing
+If using a hostname rather than IP, then is it resolving to a sensible IP?
+
+Is the route to the server sensible? (e.g. one can hit problems with proxy servers in a corporate
+network, or ISPs returning a default result for unknown hosts).
+
+The following commands can be useful:
+
+* `host` is a DNS lookup utility. e.g. `host www.google.com`.
+* `dig` stands for "domain information groper". e.g. `dig www.google.com`.
+* `traceroute` prints the route that packets take to a network host. e.g. `traceroute www.google.com`.
+
+## Service is listening
+
+### Service responds
+Try connecting to the service from the VM itself. For example, `curl http://localhost:8080` for a
+web-service.
+
+On dev/test VMs, don't be afraid to install the utilities you need such as `curl`, `telnet`, `nc`,
+etc. Cloud VMs often have a very cut-down set of packages installed. For example, execute
+`sudo apt-get update; sudo apt-get install -y curl` or `sudo yum install -y curl`.
+
+### Listening on port
+Check that the service is listening on the port, and on the correct NIC(s).
+
+Execute `netstat -antp` (or on OS X `netstat -antp TCP`) to list the TCP ports in use (or use
+`-anup` for UDP). You should expect to see the something like the output below for a service.
+
+```
+Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
+tcp        0      0 :::8080                     :::*                        LISTEN      8276/java           
+```
+
+In this case a Java process with pid 8276 is listening on port 8080. The local address `:::8080`
+format means all NICs (in IPv6 address format). You may also see `0.0.0.0:8080` for IPv4 format.
+If it says 127.0.0.1:8080 then your service will most likely not be reachable externally.
+
+Use `ip addr show` (or the obsolete `ifconfig -a`) to see the network interfaces on your server.
+
+For `netstat`, run with `sudo` to see the pid for all listed ports.
+
+## Firewalls
+On Linux, check if `iptables` is preventing the remote connection. On Windows, check the Windows Firewall.
+
+If it is acceptable (e.g. it is not a server in production), try turning off the firewall temporarily,
+and testing connectivity again. Remember to re-enable it afterwards! On CentOS, this is `sudo service
+iptables stop`. On Ubuntu, use `sudo ufw disable`. On Windows, press the Windows key and type 'Windows
+Firewall with Advanced Security' to open the firewall tools, then click 'Windows Firewall Properties'
+and set the firewall state to 'Off' in the Domain, Public and Private profiles.
+
+If you cannot temporarily turn off the firewall, then look carefully at the firewall settings. For
+example, execute `sudo iptables -n --list` and `iptables -t nat -n --list`.
+
+## Cloud firewalls
+Some clouds offer a firewall service, where ports need to be explicitly listed to be reachable.
+
+For example, [security groups for EC2-classic]
+(http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#ec2-classic-security-groups)
+have rules for the protocols and ports to be reachable from specific CIDRs.
+
+Check these settings via the cloud provider's web-console (or API).
+
+## Quick test of a listener port
+It can be useful to start listening on a given port, and to then check if that port is reachable.
+This is useful for testing basic connectivity when your service is not yet running, or to a
+different port to compare behaviour, or to compare with another VM in the network.
+
+The `nc` netcat tool is useful for this. For example, `nc -l 0.0.0.0 8080` will listen on port
+TCP 8080 on all network interfaces. On another server, you can then run `echo hello from client
+| nc <hostname> 8080`. If all works well, this will send "hello from client" over the TCP port 8080,
+which will be written out by the `nc -l` process before exiting.
+
+Similarly for UDP, you use `-lU`.
+
+You may first have to install `nc`, e.g. with `sudo yum install -y nc` or `sudo apt-get install netcat`.
+
+### Cloud load balancers
+For some use-cases, it is good practice to use the load balancer service offered by the cloud provider
+(e.g. [ELB in AWS](http://aws.amazon.com/elasticloadbalancing/) or the [Cloudstack Load Balancer]
+(http://docs.cloudstack.apache.org/projects/cloudstack-installation/en/latest/network_setup.html#management-server-load-balancing))
+
+The VMs can all be isolated within a private network, with access only through the load balancer service.
+
+Debugging techniques here include ensuring connectivity from another jump server within the private
+network, and careful checking of the load-balancer configuration from the Cloud Provider's web-console.
+
+### DNAT
+Use of DNAT is appropriate for some use-cases, where a particular port on a particular VM is to be
+made available.
+
+Debugging connectivity issues here is similar to the steps for a cloud load balancer. Ensure
+connectivity from another jump server within the private network. Carefully check the NAT rules from
+the Cloud Provider's web-console.
+
+### Guest wifi
+It is common for guest wifi to restrict access to only specific ports (e.g. 80 and 443, restricting
+ssh over port 22 etc).
+
+Normally your best bet is then to abandon the guest wifi (e.g. to tether to a mobile phone instead).
+
+There are some unconventional workarounds such as [configuring sshd to listen on port 80 so you can
+use an ssh tunnel](http://askubuntu.com/questions/107173/is-it-possible-to-ssh-through-port-80).
+However, the firewall may well inspect traffic so sending non-http traffic over port 80 may still fail.
+
+  

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/ops/troubleshooting/deployment.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/deployment.md b/docs/guide/ops/troubleshooting/deployment.md
new file mode 100644
index 0000000..c343762
--- /dev/null
+++ b/docs/guide/ops/troubleshooting/deployment.md
@@ -0,0 +1,88 @@
+---
+layout: website-normal
+title: Troubleshooting Deployment
+toc: /guide/toc.json
+---
+
+This guide describes common problems encountered when deploying applications.
+
+
+## YAML deployment errors
+
+The error `Invalid YAML: Plan not in acceptable format: Cannot convert ...` means that the text is not 
+valid YAML. Common reasons include that the indentation is incorrect, or that there are non-matching
+brackets.
+
+The error `Unrecognized application blueprint format: no services defined` means that the `services:`
+section is missing.
+
+An error like `Deployment plan item io.brooklyn.camp.spi.pdp.Service@23c159e2[name=<null>,description=<null>,serviceType=com.acme.Foo,characteristics=[],customAttributes={}] cannot be matched` means that the given entity type (in this case com.acme.Foo) is not in the catalog or on the classpath.
+
+An error like `Illegal parameter for 'location' (aws-ec3); not resolvable: java.util.NoSuchElementException: Unknown location 'aws-ec3': either this location is not recognised or there is a problem with location resolver configuration` means that the given location (in this case aws-ec3) 
+was unknown. This means it does not match any of the named locations in brooklyn.properties, nor any of the
+clouds enabled in the jclouds support, nor any of the locations added dynamically through the catalog API.
+
+
+## VM Provisioning Failures
+
+There are many stages at which VM provisioning can fail! An error `Failure running task provisioning` 
+means there was some problem obtaining or connecting to the machine.
+
+An error like `... Not authorized to access cloud ...` usually means the wrong identity/credential was used.
+
+An error like `Unable to match required VM template constraints` means that a matching image (e.g. AMI in AWS terminology) could not be found. This 
+could be because an incorrect explicit image id was supplied, or because the match-criteria could not
+be satisfied using the given images available in the given cloud. The first time this error is 
+encountered, a listing of all images in that cloud/region will be written to the debug log.
+
+Failure to form an ssh connection to the newly provisioned VM can be reported in several different ways, 
+depending on the nature of the error. This breaks down into failures at different points:
+
+* Failure to reach the ssh port (e.g. `... could not connect to any ip address port 22 on node ...`).
+* Failure to do the very initial ssh login (e.g. `... Exhausted available authentication methods ...`).
+* Failure to ssh using the newly created user.
+
+There are many possible reasons for this ssh failure, which include:
+
+* The VM was "dead on arrival" (DOA) - sometimes a cloud will return an unusable VM. One can work around
+  this using the `machineCreateAttempts` configuration option, to automatically retry with a new VM.
+* Local network restrictions. On some guest wifis, external access to port 22 is forbidden.
+  Check by manually trying to reach port 22 on a different machine that you have access it.
+* NAT rules not set up correctly. On some clouds that have only private IPs, Brooklyn can automatically
+  create NAT rules to provide access to port 22. If this NAT rule creation fails for some reason,
+  then Brooklyn will not be able to reach the VM. If NAT rules are being created for your cloud, then
+  check the logs for warnings or errors about the NAT rule creation.
+* ssh credentials incorrectly configured. The Brooklyn configuration is very flexible in how ssh
+  credentials can be configured. However, if a more advanced configuration is used incorrectly (e.g. 
+  the wrong login user, or invalid ssh keys) then this will fail.
+* Wrong login user. The initial login user to use when first logging into the new VM is inferred from 
+  the metadata provided by the cloud provider about that image. This can sometimes be incomplete, so
+  the wrong user may be used. This can be explicitly set using the `loginUser` configuration option.
+  An example of this is with some Ubuntu VMs, where the "ubuntu" user should be used. However, on some clouds
+  it defaults to trying to ssh as "root".
+* Bad choice of user. By default, Brooklyn will create a user with the same name as the user running the
+  Brooklyn process; the choice of user name is configurable. If this user already exists on the machine, 
+  then the user setup will not behave as expected. Subsequent attempts to ssh using this user could then fail.
+* Custom credentials on the VM. Most clouds will automatically set the ssh login details (e.g. in AWS using  
+  the key-pair, or in CloudStack by auto-generating a password). However, with some custom images the VM
+  will have hard-coded credentials that must be used. If Brooklyn's configuration does not match that,
+  then it will fail.
+* Guest customisation by the cloud. On some clouds (e.g. vCloud Air), the VM can be configured to do
+  guest customisation immediately after the VM starts. This can include changing the root password.
+  If Brooklyn is not configured with the expected changed password, then the VM provisioning may fail
+  (depending if Brooklyn connects before or after the password is changed!).
+ 
+A very useful debug configuration is to set `destroyOnFailure` to false. This will allow ssh failures to
+be more easily investigated.
+
+
+## Timeout Waiting For Service-Up
+
+A common generic error message is that there was a timeout waiting for service-up.
+
+This just means that the entity did not get to service-up in the pre-defined time period (the default is 
+two minutes, and can be configured using the `start.timeout` config key; the timer begins after the 
+start tasks are completed).
+
+See the guide on [runtime errors](troubleshooting-runtime-errors.html) for where to find additional information, especially the section on
+"Entity's Error Status".

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md b/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md
new file mode 100644
index 0000000..613a15a
--- /dev/null
+++ b/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md
@@ -0,0 +1,488 @@
+---
+layout: website-normal
+title: "Troubleshooting: Going Deep in Java and Logs"
+toc: /guide/toc.json
+---
+
+This guide takes a deep look at the Java and log messages for some failure scenarios,
+giving common steps used to identify the issues.
+
+## Script Failure
+
+Many blueprints run bash scripts as part of the installation. This section highlights how to identify a problem with
+a bash script.
+
+First let's take a look at the `customize()` method of the Tomcat server blueprint:
+
+{% highlight java %}
+  @Override
+  public void customize() {
+      newScript(CUSTOMIZING)
+          .body.append("mkdir -p conf logs webapps temp")
+          .failOnNonZeroResultCode()
+          .execute();
+
+      copyTemplate(entity.getConfig(TomcatServer.SERVER_XML_RESOURCE), Os.mergePaths(getRunDir(), "conf", "server.xml"));
+      copyTemplate(entity.getConfig(TomcatServer.WEB_XML_RESOURCE), Os.mergePaths(getRunDir(), "conf", "web.xml"));
+
+      if (isProtocolEnabled("HTTPS")) {
+          String keystoreUrl = Preconditions.checkNotNull(getSslKeystoreUrl(), "keystore URL must be specified if using HTTPS for " + entity);
+          String destinationSslKeystoreFile = getHttpsSslKeystoreFile();
+          InputStream keystoreStream = resource.getResourceFromUrl(keystoreUrl);
+          getMachine().copyTo(keystoreStream, destinationSslKeystoreFile);
+      }
+
+      getEntity().deployInitialWars();
+  }
+{% endhighlight %}
+
+Here we can see that it's running a script to create four directories before continuing with the customization. Let's
+introduce an error by changing `mkdir` to `mkrid`:
+
+{% highlight java %}
+      newScript(CUSTOMIZING)
+          .body.append("mkrid -p conf logs webapps temp") // `mkdir` changed to `mkrid`
+          .failOnNonZeroResultCode()
+          .execute();
+{% endhighlight %}
+
+Now let's try deploying this using the following YAML:
+
+{% highlight yaml %}
+
+name: Tomcat failure test
+location: localhost
+services:
+- type: brooklyn.entity.webapp.tomcat.TomcatServer
+
+{% endhighlight %}
+
+Shortly after deployment, the entity fails with the following error:
+
+`Failure running task ssh: customizing TomcatServerImpl{id=e1HP2s8x} (HmyPAozV): 
+Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x}`
+
+[![Script failure error in the Brooklyn debug console.](images/script-failure.png)](images/script-failure-large.png)
+
+By selecting the `Activities` tab, we can drill into the task that failed. The list of tasks shown (where the 
+effectors are shown as top-level tasks) are clickable links. Selecting that row will show the details of
+that particular task, including its sub-tasks. We can eventually get to the specific sub-task that failed:
+
+[![Task failure error in the Brooklyn debug console.](images/failed-task.png)](images/failed-task-large.png)
+
+By clicking on the `stderr` link, we can see the script failed with the following error:
+
+{% highlight console %}
+/tmp/brooklyn-20150721-132251052-l4b9-customizing_TomcatServerImpl_i.sh: line 10: mkrid: command not found
+{% endhighlight %}
+
+This tells us *what* went wrong, but doesn't tell us *where*. In order to find that, we'll need to look at the
+stack trace that was logged when the exception was thrown.
+
+It's always worth looking at the Detailed Status section as sometimes this will give you the information you need.
+In this case, the stack trace is limited to the thread that was used to execute the task that ran the script:
+
+{% highlight console %}
+Failed after 40ms
+
+STDERR
+/tmp/brooklyn-20150721-132251052-l4b9-customizing_TomcatServerImpl_i.sh: line 10: mkrid: command not found
+
+
+STDOUT
+Executed /tmp/brooklyn-20150721-132251052-l4b9-customizing_TomcatServerImpl_i.sh, result 127: Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x}
+
+java.lang.IllegalStateException: Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x}
+    at brooklyn.entity.basic.lifecycle.ScriptHelper.logWithDetailsAndThrow(ScriptHelper.java:390)
+    at brooklyn.entity.basic.lifecycle.ScriptHelper.executeInternal(ScriptHelper.java:379)
+    at brooklyn.entity.basic.lifecycle.ScriptHelper$8.call(ScriptHelper.java:289)
+    at brooklyn.entity.basic.lifecycle.ScriptHelper$8.call(ScriptHelper.java:287)
+    at brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343)
+    at brooklyn.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469)
+    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
+    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
+    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
+at java.lang.Thread.run(Thread.java:745)
+{% endhighlight %}
+
+In order to find the exception, we'll need to look in Brooklyn's debug log file. By default, the debug log file
+is named `brooklyn.debug.log`. Usually the easiest way to navigate the log file is to use `less`, e.g.
+`less brooklyn.debug.log`. We can quickly find find the stack trace by first navigating to the end of the log file
+with `Shift-G`, then performing a reverse-lookup by typing `?Tomcat` and pressing `Enter`. If searching for the 
+blueprint type (in this case Tomcat) simply matches tasks unrelated to the exception, you can also search for 
+the text of the error message, in this case `? invalid result 127`. You can make the search case-insensitivity by
+typing `-i` before performing the search. To skip the current match and move to the next on (i.e. 'up' as we're
+performing a reverse-lookup), simply press `n`
+
+In this case, the `?Tomcat` search takes us directly to the full stack trace (Only the last part of the trace
+is shown here):
+
+{% highlight console %}
+
+at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[guava-17.0.jar:na]
+at brooklyn.util.task.BasicTask.get(BasicTask.java:343) ~[classes/:na]
+at brooklyn.util.task.BasicTask.getUnchecked(BasicTask.java:352) ~[classes/:na]
+... 9 common frames omitted
+Caused by: brooklyn.util.exceptions.PropagatedRuntimeException: 
+at brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:97) ~[classes/:na]
+at brooklyn.util.task.BasicTask.getUnchecked(BasicTask.java:354) ~[classes/:na]
+at brooklyn.entity.basic.lifecycle.ScriptHelper.execute(ScriptHelper.java:339) ~[classes/:na]
+at brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:72) ~[classes/:na]
+at brooklyn.entity.basic.AbstractSoftwareProcessDriver$8.run(AbstractSoftwareProcessDriver.java:150) ~[classes/:na]
+at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_71]
+at brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343) ~[classes/:na]
+... 5 common frames omitted
+Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x}
+at java.util.concurrent.FutureTask.report(FutureTask.java:122) [na:1.7.0_71]
+at java.util.concurrent.FutureTask.get(FutureTask.java:188) [na:1.7.0_71]
+at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[guava-17.0.jar:na]
+at brooklyn.util.task.BasicTask.get(BasicTask.java:343) ~[classes/:na]
+at brooklyn.util.task.BasicTask.getUnchecked(BasicTask.java:352) ~[classes/:na]
+... 10 common frames omitted
+Caused by: java.lang.IllegalStateException: Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x}
+at brooklyn.entity.basic.lifecycle.ScriptHelper.logWithDetailsAndThrow(ScriptHelper.java:390) ~[classes/:na]
+at brooklyn.entity.basic.lifecycle.ScriptHelper.executeInternal(ScriptHelper.java:379) ~[classes/:na]
+at brooklyn.entity.basic.lifecycle.ScriptHelper$8.call(ScriptHelper.java:289) ~[classes/:na]
+at brooklyn.entity.basic.lifecycle.ScriptHelper$8.call(ScriptHelper.java:287) ~[classes/:na]
+... 6 common frames omitted
+
+{% endhighlight %}
+
+Brooklyn's use of tasks and helper classes can make the stack trace a little harder than usual to follow, but a good
+place to start is to look through the stack trace for the node's implementation or ssh driver classes (usually
+named `FooNodeImpl` or `FooSshDriver`). In this case we can see the following:
+
+{% highlight console %}
+at brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:72) ~[classes/:na]
+{% endhighlight %}
+
+Combining this with the error message of `mkrid: command not found` we can see that indeed `mkdir` has been
+misspelled `mkrid` on line 72 of `TomcatSshDriver.java`.
+
+
+## Non-Script Failure
+
+The section above gives an example of a failure that occurs when a script is run. In this section we will look at
+a failure in a non-script related part of the code. We'll use the `customize()` method of the Tomcat server again,
+but this time, we'll correct the spelling of 'mkdir' and add a line that attempts to copy a nonexistent resource 
+to the remote server:
+
+{% highlight java %}
+
+newScript(CUSTOMIZING)
+    .body.append("mkdir -p conf logs webapps temp")
+    .failOnNonZeroResultCode()
+    .execute();
+
+copyTemplate(entity.getConfig(TomcatServer.SERVER_XML_RESOURCE), Os.mergePaths(getRunDir(), "conf", "server.xml"));
+copyTemplate(entity.getConfig(TomcatServer.WEB_XML_RESOURCE), Os.mergePaths(getRunDir(), "conf", "web.xml"));
+copyTemplate("classpath://nonexistent.xml", Os.mergePaths(getRunDir(), "conf", "nonexistent.xml")); // Resource does not exist!
+
+{% endhighlight %}
+
+Let's deploy this using the same YAML from above. Here's the resulting error in the Brooklyn debug console:
+
+[![Resource exception in the Brooklyn debug console.](images/resource-exception.png)](images/resource-exception-large.png)
+
+Again, this tells us *what* the error is, but we need to find *where* the code is that attempts to copy this file. In
+this case it's shown in the Detailed Status section, and we don't need to go to the log file:
+
+{% highlight console %}
+
+Failed after 221ms: Error getting resource 'classpath://nonexistent.xml' for TomcatServerImpl{id=PVZxDKU1}: java.io.IOException: Error accessing classpath://nonexistent.xml: java.io.IOException: nonexistent.xml not found on classpath
+
+java.lang.RuntimeException: Error getting resource 'classpath://nonexistent.xml' for TomcatServerImpl{id=PVZxDKU1}: java.io.IOException: Error accessing classpath://nonexistent.xml: java.io.IOException: nonexistent.xml not found on classpath
+    at brooklyn.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:297)
+    at brooklyn.util.ResourceUtils.getResourceAsString(ResourceUtils.java:475)
+    at brooklyn.entity.basic.AbstractSoftwareProcessDriver.getResourceAsString(AbstractSoftwareProcessDriver.java:447)
+    at brooklyn.entity.basic.AbstractSoftwareProcessDriver.processTemplate(AbstractSoftwareProcessDriver.java:469)
+    at brooklyn.entity.basic.AbstractSoftwareProcessDriver.copyTemplate(AbstractSoftwareProcessDriver.java:390)
+    at brooklyn.entity.basic.AbstractSoftwareProcessDriver.copyTemplate(AbstractSoftwareProcessDriver.java:379)
+    at brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:79)
+    at brooklyn.entity.basic.AbstractSoftwareProcessDriver$8.run(AbstractSoftwareProcessDriver.java:150)
+    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
+    at brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343)
+    at brooklyn.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469)
+    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
+    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
+    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
+at java.lang.Thread.run(Thread.java:745)
+    Caused by: java.io.IOException: Error accessing classpath://nonexistent.xml: java.io.IOException: nonexistent.xml not found on classpath
+at brooklyn.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:233)
+    ... 14 more
+    Caused by: java.io.IOException: nonexistent.xml not found on classpath
+    at brooklyn.util.ResourceUtils.getResourceViaClasspath(ResourceUtils.java:372)
+at brooklyn.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:230)
+    ... 14 more
+
+{% endhighlight %}
+
+Looking for `Tomcat` in the stack trace, we can see in this case the problem lies at line 79 of `TomcatSshDriver.java`
+
+
+## External Failure
+
+Sometimes an entity will fail outside the direct commands issues by Brooklyn. When installing and launching an entity,
+Brooklyn will check the return code of scripts that were run to ensure that they completed successfully (i.e. the
+return code of the script is zero). It is possible, for example, that a launch script completes successfully, but
+the entity fails to start.
+
+We can simulate this type of failure by launching Tomcat with an invalid configuration file. As seen in the previous
+examples, Brooklyn copies two xml configuration files to the server: `server.xml` and `web.xml`
+
+The first few non-comment lines of `server.xml` are as follows (you can see the full file [here]
+(https://github.com/apache/incubator-brooklyn/blob/master/software/webapp/src/main/resources/brooklyn/entity/webapp/tomcat/server.xml)):
+
+{% highlight xml %}
+
+<Server port="${driver.shutdownPort?c}" shutdown="SHUTDOWN">
+     <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
+     <Listener className="org.apache.catalina.core.JasperListener" />
+
+{% endhighlight%}
+
+Let's add an unmatched XML element, which will make this XML file invalid:
+
+{% highlight xml %}
+
+<Server port="${driver.shutdownPort?c}" shutdown="SHUTDOWN">
+     <unmatched-element> <!-- This is invalid XML as we won't add </unmatched-element> -->
+     <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
+     <Listener className="org.apache.catalina.core.JasperListener" />
+
+{% endhighlight%}
+
+As Brooklyn doesn't know how these types of resources are used, they're not validated as they're copied to the remote machine.
+As far as Brooklyn is concerned, the file will have copied successfully.
+
+Let's deploy Tomcat again, using the same YAML as before. This time, the deployment runs for a few minutes before failing
+with `Timeout waiting for SERVICE_UP`:
+
+[![External error in the Brooklyn debug console.](images/external-error.png)](images/external-error-large.png)
+
+If we drill down into the tasks in the `Activities` tab, we can see that all of the installation and launch tasks
+completed successfully, and stdout of the `launch` script is as follows:
+
+{% highlight console %}
+
+Executed /tmp/brooklyn-20150721-153049139-fK2U-launching_TomcatServerImpl_id_.sh, result 0
+
+{% endhighlight %}
+
+The task that failed was the `post-start` task, and the stack trace from the Detailed Status section is as follows:
+
+{% highlight console %}
+
+Failed after 5m 1s: Timeout waiting for SERVICE_UP from TomcatServerImpl{id=BUHgQeOs}
+
+java.lang.IllegalStateException: Timeout waiting for SERVICE_UP from TomcatServerImpl{id=BUHgQeOs}
+    at brooklyn.entity.basic.Entities.waitForServiceUp(Entities.java:1073)
+    at brooklyn.entity.basic.SoftwareProcessImpl.waitForServiceUp(SoftwareProcessImpl.java:388)
+    at brooklyn.entity.basic.SoftwareProcessImpl.waitForServiceUp(SoftwareProcessImpl.java:385)
+    at brooklyn.entity.basic.SoftwareProcessDriverLifecycleEffectorTasks.postStartCustom(SoftwareProcessDriverLifecycleEffectorTasks.java:164)
+    at brooklyn.entity.software.MachineLifecycleEffectorTasks$7.run(MachineLifecycleEffectorTasks.java:433)
+    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
+    at brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343)
+    at brooklyn.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469)
+    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
+    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
+    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
+at java.lang.Thread.run(Thread.java:745)
+
+{% endhighlight %}
+
+This doesn't really tell us what we need to know, and looking in the `brooklyn.debug.log` file yields no further
+clues. The key here is the error message `Timeout waiting for SERVICE_UP`. After running the installation and
+launch scripts, assuming all scripts completed successfully, Brooklyn will periodically check the health of the node
+and will set the node on fire if the health check does not pass within a pre-prescribed period (the default is
+two minutes, and can be configured using the `start.timeout` config key). The periodic health check also continues
+after the successful launch in order to check continued operation of the node, but in this case it fails to pass
+at all.
+
+The first thing we need to do is to find out how Brooklyn determines the health of the node. The health-check is 
+often implemented in the `isRunning()` method in the entity's ssh driver. Tomcat's implementation of `isRunning()`
+is as follows:
+
+{% highlight java %}
+@Override
+public boolean isRunning() {
+    return newScript(MutableMap.of(USE_PID_FILE, "pid.txt"), CHECK_RUNNING).execute() == 0;
+}
+{% endhighlight %}
+
+The `newScript` method has conveniences for default scripts to check if a process is running based on its PID. In this
+case, it will look for Tomcat's PID in the `pid.txt` file and check if the PID is the PID of a running process
+
+It's worth a quick sanity check at this point to check if the PID file exists, and if the process is running.
+By default, the pid file is located in the run directory of the entity. You can find the location of the entity's run
+directory by looking at the `run.dir` sensor. In this case it is `/tmp/brooklyn-martin/apps/jIzIHXtP/entities/TomcatServer_BUHgQeOs`.
+To find the pid, you simply cat the pid.txt file in this directory:
+
+{% highlight console %}
+$ cat /tmp/brooklyn-martin/apps/jIzIHXtP/entities/TomcatServer_BUHgQeOs/pid.txt
+73714
+{% endhighlight %}
+
+In this case, the PID in the file is 73714. You can then check if the process is running using `ps`. You can also
+pipe the output to `fold` so the full launch command is visible:
+
+{% highlight console %}
+
+$ ps -p 73714 | fold -w 120
+PID TTY           TIME CMD
+73714 ??         0:08.03 /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/bin/java -Dnop -Djava.util.logg
+ing.manager=org.apache.juli.ClassLoaderLogManager -javaagent:/tmp/brooklyn-martin/apps/jIzIHXtP/entities/TomcatServer_BU
+HgQeOs/brooklyn-jmxmp-agent-shaded-0.8.0-SNAPSHOT.jar -Xms200m -Xmx800m -XX:MaxPermSize=400m -Dcom.sun.management.jmxrem
+ote -Dbrooklyn.jmxmp.rmi-port=1099 -Dbrooklyn.jmxmp.port=31001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.manage
+ment.jmxremote.authenticate=false -Djava.endorsed.dirs=/tmp/brooklyn-martin/installs/TomcatServer_7.0.56/apache-tomcat-7
+.0.56/endorsed -classpath /tmp/brooklyn-martin/installs/TomcatServer_7.0.56/apache-tomcat-7.0.56/bin/bootstrap.jar:/tmp/
+brooklyn-martin/installs/TomcatServer_7.0.56/apache-tomcat-7.0.56/bin/tomcat-juli.jar -Dcatalina.base=/tmp/brooklyn-mart
+in/apps/jIzIHXtP/entities/TomcatServer_BUHgQeOs -Dcatalina.home=/tmp/brooklyn-martin/installs/TomcatServer_7.0.56/apache
+-tomcat-7.0.56 -Djava.io.tmpdir=/tmp/brooklyn-martin/apps/jIzIHXtP/entities/TomcatServer_BUHgQeOs/temp org.apache.catali
+na.startup.Bootstrap start
+
+{% endhighlight %}
+
+This confirms that the process is running. The next thing we can look at is the `service.notUp.indicators` sensor. This
+reads as follows:
+
+{% highlight json %}
+
+{"service.process.isRunning":"The software process for this entity does not appear to be running"}
+
+{% endhighlight %}
+
+This confirms that the problem is indeed due to the `service.process.isRunning` sensor. We assumed earlier that this was
+set by the `isRunning()` method in `TomcatSshDriver.java`, but this isn't always the case. The `service.process.isRunning`
+sensor is wired up by the `connectSensors()` method in the node's implementation class, in this case 
+`TomcatServerImpl.java`. Tomcat's implementation of `connectSensors()` is as follows:
+
+{% highlight java %}
+
+@Override
+public void connectSensors() {
+    super.connectSensors();
+
+    if (getDriver().isJmxEnabled()) {
+        String requestProcessorMbeanName = "Catalina:type=GlobalRequestProcessor,name=\"http-*\"";
+
+        Integer port = isHttpsEnabled() ? getAttribute(HTTPS_PORT) : getAttribute(HTTP_PORT);
+        String connectorMbeanName = format("Catalina:type=Connector,port=%s", port);
+
+        jmxWebFeed = JmxFeed.builder()
+            .entity(this)
+            .period(3000, TimeUnit.MILLISECONDS)
+            .pollAttribute(new JmxAttributePollConfig<Integer>(ERROR_COUNT)
+                    .objectName(requestProcessorMbeanName)
+                    .attributeName("errorCount"))
+            .pollAttribute(new JmxAttributePollConfig<Integer>(REQUEST_COUNT)
+                    .objectName(requestProcessorMbeanName)
+                    .attributeName("requestCount"))
+            .pollAttribute(new JmxAttributePollConfig<Integer>(TOTAL_PROCESSING_TIME)
+                    .objectName(requestProcessorMbeanName)
+                    .attributeName("processingTime"))
+            .pollAttribute(new JmxAttributePollConfig<String>(CONNECTOR_STATUS)
+                    .objectName(connectorMbeanName)
+                    .attributeName("stateName"))
+            .pollAttribute(new JmxAttributePollConfig<Boolean>(SERVICE_PROCESS_IS_RUNNING)
+                    .objectName(connectorMbeanName)
+                    .attributeName("stateName")
+                    .onSuccess(Functions.forPredicate(Predicates.<Object>equalTo("STARTED")))
+                    .setOnFailureOrException(false))
+            .build();
+
+        jmxAppFeed = JavaAppUtils.connectMXBeanSensors(this);
+    } else {
+        // if not using JMX
+        LOG.warn("Tomcat running without JMX monitoring; limited visibility of service available");
+        connectServiceUpIsRunning();
+    }
+}
+
+{% endhighlight %}
+
+We can see here that if jmx is not enabled, the method will call `connectServiceUpIsRunning()` which will use the
+default PID-based method of determining if a process is running. However, as JMX *is* running, the `service.process.isRunning`
+sensor (denoted here by the `SERVICE_PROCESS_IS_RUNNING` variable) is set to true if and only if the
+`stateName` JMX attribute equals `STARTED`. We can see from the previous call to `.pollAttribute` that this
+attribute is also published to the `CONNECTOR_STATUS` sensor. The `CONNECTOR_STATUS` sensor is defined as follows:
+
+{% highlight java %}
+
+AttributeSensor<String> CONNECTOR_STATUS =
+    new BasicAttributeSensor<String>(String.class, "webapp.tomcat.connectorStatus", "Catalina connector state name");
+
+{% endhighlight %}
+
+Let's go back to the Brooklyn debug console and look for the `webapp.tomcat.connectorStatus`:
+
+[![Sensors view in the Brooklyn debug console.](images/jmx-sensors.png)](images/jmx-sensors-large.png)
+
+As the sensor is not shown, it's likely that it's simply null or not set. We can check this by clicking
+the `Show/hide empty records` icon (highlighted in yellow above):
+
+[![All sensors view in the Brooklyn debug console.](images/jmx-sensors-all.png)](images/jmx-sensors-all-large.png)
+
+We know from previous steps that the installation and launch scripts completed, and we know the procecess is running,
+but we can see here that the server is not responding to JMX requests. A good thing to check here would be that the
+JMX port is not being blocked by iptables, firewalls or security groups
+(see the (troubleshooting connectivity guide)[troubleshooting-connectivity.html]). 
+Let's assume that we've checked that and they're all open. There is still one more thing that Brooklyn can tell us.
+
+
+Still on the `Sensors` tab, let's take a look at the `log.location` sensor:
+
+{% highlight console %}
+
+/tmp/brooklyn-martin/apps/c3bmrlC3/entities/TomcatServer_C1TAjYia/logs/catalina.out
+
+{% endhighlight %}
+
+This is the location of Tomcat's own log file. The location of the log file will differ from process to process
+and when writing a custom entity you will need to check the software's own documentation. If your blueprint's
+ssh driver extends `JavaSoftwareProcessSshDriver`, the value returned by the `getLogFileLocation()` method will
+automatically be published to the `log.location` sensor. Otherwise, you can publish the value yourself by calling
+`entity.setAttribute(Attributes.LOG_FILE_LOCATION, getLogFileLocation());` in your ssh driver
+
+**Note:** The log file will be on the server to which you have deployed Tomcat, and not on the Brooklyn server.
+Let's take a look in the log file:
+
+{% highlight console %}
+
+less /tmp/brooklyn-martin/apps/c3bmrlC3/entities/TomcatServer_C1TAjYia/logs/catalina.out
+
+Jul 21, 2015 4:12:12 PM org.apache.tomcat.util.digester.Digester fatalError
+SEVERE: Parse Fatal Error at line 143 column 3: The element type "unmatched-element" must be terminated by the matching end-tag "</unmatched-element>".
+    org.xml.sax.SAXParseException; systemId: file:/tmp/brooklyn-martin/apps/c3bmrlC3/entities/TomcatServer_C1TAjYia/conf/server.xml; lineNumber: 143; columnNumber: 3; The element type "unmatched-element" must be terminated by the matching end-tag "</unmatched-element>".
+    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
+    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
+    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:441)
+    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
+    at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1437)
+    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1749)
+    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2973)
+    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
+    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
+    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
+    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
+    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
+    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
+    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
+    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1561)
+    at org.apache.catalina.startup.Catalina.load(Catalina.java:615)
+    at org.apache.catalina.startup.Catalina.start(Catalina.java:677)
+    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+    at java.lang.reflect.Method.invoke(Method.java:497)
+    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
+at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
+
+    Jul 21, 2015 4:12:12 PM org.apache.catalina.startup.Catalina load
+    WARNING: Catalina.start using conf/server.xml: The element type "unmatched-element" must be terminated by the matching end-tag "</unmatched-element>".
+    Jul 21, 2015 4:12:12 PM org.apache.catalina.startup.Catalina start
+    SEVERE: Cannot start server. Server instance is not configured.
+
+{% endhighlight %}
+
+As expected, we can see here that the `unmatched-element` element has not been terminated in the `server.xml` file

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/ops/troubleshooting/images/failed-task-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/images/failed-task-large.png b/docs/guide/ops/troubleshooting/images/failed-task-large.png
new file mode 100644
index 0000000..1c264c4
Binary files /dev/null and b/docs/guide/ops/troubleshooting/images/failed-task-large.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/ops/troubleshooting/images/jmx-sensors-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/images/jmx-sensors-large.png b/docs/guide/ops/troubleshooting/images/jmx-sensors-large.png
new file mode 100644
index 0000000..d9322c6
Binary files /dev/null and b/docs/guide/ops/troubleshooting/images/jmx-sensors-large.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/ops/troubleshooting/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/index.md b/docs/guide/ops/troubleshooting/index.md
new file mode 100644
index 0000000..ee8dfd7
--- /dev/null
+++ b/docs/guide/ops/troubleshooting/index.md
@@ -0,0 +1,12 @@
+---
+title: Troubleshooting
+layout: website-normal
+children:
+- { path: overview.md, title: Overview }
+- { path: deployment.md, title: Deployment }
+- { path: connectivity.md, title: Server Connectivity }
+- { path: softwareprocess.md, title: SoftwareProcess Entities }
+- { path: going-deep-in-java-and-logs.md, title: Going Deep in Java and Logs }
+---
+
+{% include list-children.html %}

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/ops/troubleshooting/overview.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/overview.md b/docs/guide/ops/troubleshooting/overview.md
new file mode 100644
index 0000000..815d33c
--- /dev/null
+++ b/docs/guide/ops/troubleshooting/overview.md
@@ -0,0 +1,116 @@
+---
+layout: website-normal
+title: Troubleshooting Overview
+toc: /guide/toc.json
+---
+
+This guide describes sources of information for understanding when things go wrong.
+
+Whether you're customizing out-of-the-box blueprints, or developing your own custom blueprints, you will
+inevitably have to deal with entity failure. Thankfully Brooklyn provides plenty of information to help 
+you locate and resolve any issues you may encounter.
+
+
+## Web-console Runtime Error Information
+ 
+### Entity Hierarchy
+
+The Brooklyn web-console includes a tree view of the entities within an application. Errors within the
+application are represented visually, showing a "fire" image on the entity.
+
+When an error causes an entire application to be unexpectedly down, the error is generally propagated to the
+top-level entity - i.e. marking it as "on fire". To find the underlying error, one should expand the entity
+hierarchy tree to find the specific entities that have actually failed.
+
+
+### Entity's Error Status
+
+Many entities have some common sensors (i.e. attributes) that give details of the error status:
+
+* `service.isUp` (often referred to as "service up") is a boolean, saying whether the service is up. For many 
+  software processes, this is inferred from whether the "service.notUp.indicators" is empty. It is also
+  possible for some entities to set this attribute directly.
+* `service.notUp.indicators` is a map of errors. This often gives much more information than the single 
+  `service.isUp` attribute. For example, there may be many health-check indicators for a component: 
+  is the root URL reachable, it the management api reporting healthy, is the process running, etc.
+* `service.problems` is a map of namespaced indicators of problems with a service.
+* `service.state` is the actual state of the service - e.g. CREATED, STARTING, RUNNING, STOPPING, STOPPED, 
+  DESTROYED and ON_FIRE.
+* `service.state.expected` indicates the state the service is expected to be in (and when it transitioned to that).
+  For example, is the service expected to be starting, running, stopping, etc.
+
+These sensor values are shown in the "sensors" tab - see below.
+
+
+### Sensors View
+
+The "Sensors" tab in the Brooklyn web-console shows the attribute values of a particular entity.
+This gives lots of runtime information, including about the health of the entity - the 
+set of attributes will vary between different entity types.
+
+[![Sensors view in the Brooklyn debug console.](images/jmx-sensors.png)](images/jmx-sensors-large.png)
+
+Note that null (or not set) sensors are hidden by default. You can click on the `Show/hide empty records` 
+icon (highlighted in yellow above) to see these sensors as well.
+
+The sensors view is also tabulated. You can configure the numbers of sensors shown per page 
+(at the bottom). There is also a search bar (at the top) to filter the sensors shown.
+
+
+### Activity View
+
+The activity view shows the tasks executed by a given entity. The top-level tasks are the effectors
+(i.e. operations) invoked on that entity. This view allows one to drill into the task, to 
+see details of errors.
+
+Select the entity, and then click on the `Activities` tab.
+
+In the table showing the tasks, each row is a link - clicking on the row will drill into the details of that task, 
+including sub-tasks:
+
+[![Task failure error in the Brooklyn debug console.](images/failed-task.png)](images/failed-task-large.png)
+
+For ssh tasks, this allows one to drill down to see the env, stdin, stdout and stderr. That is, you can see the
+commands executed (stdin) and environment variables (env), and the output from executing that (stdout and stderr). 
+
+For tasks that did not fail, one can still drill into the tasks to see what was done.
+
+It's always worth looking at the Detailed Status section as sometimes that will give you the information you need.
+For example, it can show the exception stack trace in the thread that was executing the task that failed.
+
+
+## Log Files
+
+Brooklyn's logging is configurable, for the files created, the logging levels, etc. 
+See [Logging docs](../logging.html).
+
+With out-of-the-box logging, `brooklyn.info.log` and `brooklyn.debug.log` files are created. These are by default 
+rolling log files: when the log reaches a given size, it is compressed and a new log file is started.
+Therefore check the timestamps of the log files to ensure you are looking in the correct file for the 
+time of your error.
+
+With out-of-the-box logging, info, warnings and errors are written to the `brooklyn.info.log` file. This gives
+a summary of the important actions and errors. However, it does not contain full stacktraces for errors.
+
+To find the exception, we'll need to look in Brooklyn's debug log file. By default, the debug log file
+is named `brooklyn.debug.log`. You can use your favourite tools for viewing large text files. 
+
+One possible tool is `less`, e.g. `less brooklyn.debug.log`. We can quickly find the last exception 
+by navigating to the end of the log file (using `Shift-G`), then performing a reverse-lookup by typing `?Exception` 
+and pressing `Enter`. Sometimes an error results in multiple exceptions being logged (e.g. first for the
+entity, then for the cluster, then for the app). If you know the text of the error message (e.g. copy-pasted
+from the Activities view of the web-console) then one can search explicitly for that text.
+
+The `grep` command is also extremely helpful. Useful things to grep for include:
+
+* The entity id (see the "summary" tab of the entity in the web-console for the id).
+* The entity type name (if there are only a small number of entities of that type). 
+* The VM IP address.
+* A particular error message (e.g. copy-pasted from the Activities view of the web-console).
+* The word WARN etc, such as `grep -E "WARN|ERROR" brooklyn.info.log`.
+
+Grep'ing for particular log messages is also useful. Some examples are shown below:
+
+* INFO: "Started application", "Stopping application" and "Stopped application"
+* INFO: "Creating VM "
+* DEBUG: "Finished VM "

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/ops/troubleshooting/softwareprocess.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/softwareprocess.md b/docs/guide/ops/troubleshooting/softwareprocess.md
new file mode 100644
index 0000000..5e7f883
--- /dev/null
+++ b/docs/guide/ops/troubleshooting/softwareprocess.md
@@ -0,0 +1,50 @@
+---
+layout: website-normal
+title: Troubleshooting SoftwareProcess Entities
+toc: /guide/toc.json
+---
+
+The [troubleshooting overview](overview.html) in Brooklyn gives 
+information for how to find more information about errors.
+
+If that doesn't give enough information to diagnose, fix or workaround the problem, then it can be required
+to login to the machine, to investigate further. This guide applies to entities that are types
+of "SoftwareProcess" in Brooklyn, or that follows those conventions.
+
+
+## VM connection details
+
+The ssh connection details for an entity is published to a sensor `host.sshAddress`. The login 
+credentials will depend on the Brooklyn configuration. The default is to use the `~/.ssh/id_rsa` 
+or `~/.ssh/id_dsa` on the Brooklyn host (uploading the associated `~/.ssh/id_rsa.pub` to the machine's 
+authorised_keys). However, this can be overridden (e.g. with specific passwords etc) in the 
+location's configuration.
+
+For Windows, there is a similar sensor with the name `host.winrmAddress`. (TODO sensor for password?) 
+
+
+## Install and Run Directories
+
+For ssh-based software processes, the install directory and the run directory are published as sensors
+`install.dir` and `run.dir` respectively.
+
+For some entities, files are unpacked into the install dir; configuration files are written to the
+run dir along with log files. For some other entities, these directories may be mostly empty - 
+e.g. if installing RPMs, and that software writes its logs to a different standard location.
+
+Most entities have a sensor `log.location`. It is generally worth checking this, along with other files
+in the run directory (such as console output).
+
+
+## Process and OS Health
+
+It is worth checking that the process is running, e.g. using `ps aux` to look for the desired process.
+Some entities also write the pid of the process to `pid.txt` in the run directory.
+
+It is also worth checking if the required port is accessible. This is discussed in the guide 
+"Troubleshooting Server Connectivity Issues in the Cloud", including listing the ports in use:
+execute `netstat -antp` (or on OS X `netstat -antp TCP`) to list the TCP ports in use (or use
+`-anup` for UDP).
+
+It is also worth checking the disk space on the server, e.g. using `df -m`, to check that there
+is sufficient space on each of the required partitions.

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6f131498/docs/guide/start/running.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/running.md b/docs/guide/start/running.md
index b6f1a48..0a31c6d 100644
--- a/docs/guide/start/running.md
+++ b/docs/guide/start/running.md
@@ -33,7 +33,7 @@ This will create a `brooklyn-{{ site.brooklyn-version }}` folder.
 
 **Note**: You'll need a Java JRE or SDK installed (version 1.7 or later), as Brooklyn is Java under the covers.
 
-**Node #2**: If you want to test Brooklyn on localhost, follow [these instructions]({{site.path.guide}}/ops/locations/#localhost) 
+**Note #2**: If you want to test Brooklyn on localhost, follow [these instructions]({{site.path.guide}}/ops/locations/#localhost)
 to ensure that your Brooklyn can access your machine.
 
 


[37/50] brooklyn-docs git commit: clean up time API and support date parsing

Posted by he...@apache.org.
clean up time API and support date parsing

also a lot of help for time zones, because java seems bad with this,
and making time methods consistent and less ambiguous


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

Branch: refs/heads/0.7.0-incubating
Commit: 490cc07a89db4ab6726db0749213751e61348ff4
Parents: 6fa7c6b
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Thu Jun 4 16:53:17 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Jun 8 00:26:31 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/requirements.md | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/490cc07a/docs/guide/ops/requirements.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/requirements.md b/docs/guide/ops/requirements.md
index 52b96e4..7830bc9 100644
--- a/docs/guide/ops/requirements.md
+++ b/docs/guide/ops/requirements.md
@@ -28,7 +28,7 @@ Brooklyn has also been tested on Ubuntu 12.04 and OS X.
 
 ## Software Requirements
 
-Brooklyn requires Java (JRE or JDK), version 6 or version 7. The most recent version 7 is recommended.
+Brooklyn requires Java (JRE or JDK) minimum version 6. The latest release of version 7 or 8 is recommended.
 OpenJDK is recommended. Brooklyn has also been tested on IBM J9 and Oracle's JVM.
 
 * check your `iptables` or other firewall service, making sure that incoming connections on port 8443 is not blocked
@@ -54,6 +54,21 @@ For example, to open port 8443 in iptables, ues the command:
     /sbin/iptables -I INPUT -p TCP --dport 8443 -j ACCEPT
 
 
+### Locale
+
+Brooklyn expects a sensible set of locale information and time zones to be available;
+without this, some time-and-date handling may be surprising.
+
+Brooklyn parses and reports times according to the time zone set at the server.
+If Brooklyn is targetting geographically distributed users, 
+it is normally recommended that the server's time zone be set to UTC.
+
+
+### User Setup
+
+It is normally recommended that Brooklyn run as a non-root user with keys installed to `~/.ssh/id_rsa{,.pub}`. 
+
+
 ### Linux Kernel Entropy
 
 Check that the [linux kernel entropy](increase-entropy.html) is sufficient.


[28/50] brooklyn-docs git commit: Explanatory notes on scanning and OSGi

Posted by he...@apache.org.
Explanatory notes on scanning and OSGi


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

Branch: refs/heads/0.7.0-incubating
Commit: e55e25e9e2c9a99450f3c547cac36e6998194b5a
Parents: 5bd3de6
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed May 20 15:07:07 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed May 20 15:07:24 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/catalog/index.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/e55e25e9/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md
index 7cb0e84..a16a453 100644
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@ -106,10 +106,11 @@ The following optional catalog metadata is supported:
   Icons are instead typically installed either at the server from which the OSGi bundles or catalog items are supplied 
   or in the `conf` folder of the Brooklyn distro.
 - `scanJavaAnnotations` [experimental]: if provided (as `true`), this will scan any locally provided
-  libraries for types annotated `@Catalog` and extract metadata to include them as catalog items.
+  library URLs for types annotated `@Catalog` and extract metadata to include them as catalog items.
   If no libraries are specified this will scan the default classpath.
   This feature is experimental and may change or be removed.
-  Also note that other metadata (such as versions, etc) may not be applied.
+  Also note that external OSGi dependencies are not supported 
+  and other metadata (such as versions, etc) may not be applied.
 - `brooklyn.libraries`: a list of pointers to OSGi bundles required for the catalog item.
   This can be omitted if blueprints are pure YAML and everything required is included in the classpath and catalog.
   Where custom Java code or bundled resources is needed, however, OSGi JARs supply


[50/50] brooklyn-docs git commit: Fix lots of broken links in the troubleshooting section

Posted by he...@apache.org.
Fix lots of broken links in the troubleshooting section


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

Branch: refs/heads/0.7.0-incubating
Commit: 57bafeda3160a777c460a166af0114aac4d90267
Parents: 6f13149
Author: Richard Downer <ri...@apache.org>
Authored: Fri Jul 31 17:13:02 2015 +0100
Committer: Richard Downer <ri...@apache.org>
Committed: Fri Jul 31 17:13:02 2015 +0100

----------------------------------------------------------------------
 .../dev/tips/images/external-error-large.png      | Bin 131907 -> 0 bytes
 docs/guide/dev/tips/images/external-error.png     | Bin 71972 -> 0 bytes
 docs/guide/dev/tips/images/failed-task-large.png  | Bin 169079 -> 0 bytes
 docs/guide/dev/tips/images/failed-task.png        | Bin 92530 -> 0 bytes
 .../dev/tips/images/jmx-sensors-all-large.png     | Bin 133517 -> 0 bytes
 docs/guide/dev/tips/images/jmx-sensors-all.png    | Bin 76581 -> 0 bytes
 docs/guide/dev/tips/images/jmx-sensors-large.png  | Bin 197177 -> 0 bytes
 docs/guide/dev/tips/images/jmx-sensors.png        | Bin 109139 -> 0 bytes
 .../dev/tips/images/resource-exception-large.png  | Bin 134842 -> 0 bytes
 docs/guide/dev/tips/images/resource-exception.png | Bin 76059 -> 0 bytes
 .../dev/tips/images/script-failure-large.png      | Bin 130227 -> 0 bytes
 docs/guide/dev/tips/images/script-failure.png     | Bin 71912 -> 0 bytes
 docs/guide/ops/troubleshooting/deployment.md      |   2 +-
 .../going-deep-in-java-and-logs.md                |   7 +++----
 .../images/external-error-large.png               | Bin 0 -> 131907 bytes
 .../ops/troubleshooting/images/external-error.png | Bin 0 -> 71972 bytes
 .../ops/troubleshooting/images/failed-task.png    | Bin 0 -> 92530 bytes
 .../images/jmx-sensors-all-large.png              | Bin 0 -> 133517 bytes
 .../troubleshooting/images/jmx-sensors-all.png    | Bin 0 -> 76581 bytes
 .../ops/troubleshooting/images/jmx-sensors.png    | Bin 0 -> 109139 bytes
 .../images/resource-exception-large.png           | Bin 0 -> 134842 bytes
 .../troubleshooting/images/resource-exception.png | Bin 0 -> 76059 bytes
 .../images/script-failure-large.png               | Bin 0 -> 130227 bytes
 .../ops/troubleshooting/images/script-failure.png | Bin 0 -> 71912 bytes
 24 files changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/dev/tips/images/external-error-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/external-error-large.png b/docs/guide/dev/tips/images/external-error-large.png
deleted file mode 100644
index abea32d..0000000
Binary files a/docs/guide/dev/tips/images/external-error-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/dev/tips/images/external-error.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/external-error.png b/docs/guide/dev/tips/images/external-error.png
deleted file mode 100644
index 0b5deff..0000000
Binary files a/docs/guide/dev/tips/images/external-error.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/dev/tips/images/failed-task-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/failed-task-large.png b/docs/guide/dev/tips/images/failed-task-large.png
deleted file mode 100644
index 1c264c4..0000000
Binary files a/docs/guide/dev/tips/images/failed-task-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/dev/tips/images/failed-task.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/failed-task.png b/docs/guide/dev/tips/images/failed-task.png
deleted file mode 100644
index 94a368e..0000000
Binary files a/docs/guide/dev/tips/images/failed-task.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/dev/tips/images/jmx-sensors-all-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/jmx-sensors-all-large.png b/docs/guide/dev/tips/images/jmx-sensors-all-large.png
deleted file mode 100644
index d5d6b97..0000000
Binary files a/docs/guide/dev/tips/images/jmx-sensors-all-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/dev/tips/images/jmx-sensors-all.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/jmx-sensors-all.png b/docs/guide/dev/tips/images/jmx-sensors-all.png
deleted file mode 100644
index 52c3191..0000000
Binary files a/docs/guide/dev/tips/images/jmx-sensors-all.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/dev/tips/images/jmx-sensors-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/jmx-sensors-large.png b/docs/guide/dev/tips/images/jmx-sensors-large.png
deleted file mode 100644
index d9322c6..0000000
Binary files a/docs/guide/dev/tips/images/jmx-sensors-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/dev/tips/images/jmx-sensors.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/jmx-sensors.png b/docs/guide/dev/tips/images/jmx-sensors.png
deleted file mode 100644
index ff81806..0000000
Binary files a/docs/guide/dev/tips/images/jmx-sensors.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/dev/tips/images/resource-exception-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/resource-exception-large.png b/docs/guide/dev/tips/images/resource-exception-large.png
deleted file mode 100644
index 9cff4ce..0000000
Binary files a/docs/guide/dev/tips/images/resource-exception-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/dev/tips/images/resource-exception.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/resource-exception.png b/docs/guide/dev/tips/images/resource-exception.png
deleted file mode 100644
index 2fb792c..0000000
Binary files a/docs/guide/dev/tips/images/resource-exception.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/dev/tips/images/script-failure-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/script-failure-large.png b/docs/guide/dev/tips/images/script-failure-large.png
deleted file mode 100644
index b36517c..0000000
Binary files a/docs/guide/dev/tips/images/script-failure-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/dev/tips/images/script-failure.png
----------------------------------------------------------------------
diff --git a/docs/guide/dev/tips/images/script-failure.png b/docs/guide/dev/tips/images/script-failure.png
deleted file mode 100644
index 2d59b6d..0000000
Binary files a/docs/guide/dev/tips/images/script-failure.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/ops/troubleshooting/deployment.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/deployment.md b/docs/guide/ops/troubleshooting/deployment.md
index c343762..6b1baea 100644
--- a/docs/guide/ops/troubleshooting/deployment.md
+++ b/docs/guide/ops/troubleshooting/deployment.md
@@ -84,5 +84,5 @@ This just means that the entity did not get to service-up in the pre-defined tim
 two minutes, and can be configured using the `start.timeout` config key; the timer begins after the 
 start tasks are completed).
 
-See the guide on [runtime errors](troubleshooting-runtime-errors.html) for where to find additional information, especially the section on
+See the [overview](overview.html) for where to find additional information, especially the section on
 "Entity's Error Status".

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md b/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md
index 613a15a..065eef2 100644
--- a/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md
+++ b/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md
@@ -111,7 +111,7 @@ is named `brooklyn.debug.log`. Usually the easiest way to navigate the log file
 with `Shift-G`, then performing a reverse-lookup by typing `?Tomcat` and pressing `Enter`. If searching for the 
 blueprint type (in this case Tomcat) simply matches tasks unrelated to the exception, you can also search for 
 the text of the error message, in this case `? invalid result 127`. You can make the search case-insensitivity by
-typing `-i` before performing the search. To skip the current match and move to the next on (i.e. 'up' as we're
+typing `-i` before performing the search. To skip the current match and move to the next one (i.e. 'up' as we're
 performing a reverse-lookup), simply press `n`
 
 In this case, the `?Tomcat` search takes us directly to the full stack trace (Only the last part of the trace
@@ -230,8 +230,7 @@ the entity fails to start.
 We can simulate this type of failure by launching Tomcat with an invalid configuration file. As seen in the previous
 examples, Brooklyn copies two xml configuration files to the server: `server.xml` and `web.xml`
 
-The first few non-comment lines of `server.xml` are as follows (you can see the full file [here]
-(https://github.com/apache/incubator-brooklyn/blob/master/software/webapp/src/main/resources/brooklyn/entity/webapp/tomcat/server.xml)):
+The first few non-comment lines of `server.xml` are as follows (you can see the full file [here](https://github.com/apache/incubator-brooklyn/blob/master/software/webapp/src/main/resources/brooklyn/entity/webapp/tomcat/server.xml)):
 
 {% highlight xml %}
 
@@ -426,7 +425,7 @@ the `Show/hide empty records` icon (highlighted in yellow above):
 We know from previous steps that the installation and launch scripts completed, and we know the procecess is running,
 but we can see here that the server is not responding to JMX requests. A good thing to check here would be that the
 JMX port is not being blocked by iptables, firewalls or security groups
-(see the (troubleshooting connectivity guide)[troubleshooting-connectivity.html]). 
+(see the [troubleshooting connectivity guide](connectivity.html)). 
 Let's assume that we've checked that and they're all open. There is still one more thing that Brooklyn can tell us.
 
 

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/ops/troubleshooting/images/external-error-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/images/external-error-large.png b/docs/guide/ops/troubleshooting/images/external-error-large.png
new file mode 100644
index 0000000..abea32d
Binary files /dev/null and b/docs/guide/ops/troubleshooting/images/external-error-large.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/ops/troubleshooting/images/external-error.png
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/images/external-error.png b/docs/guide/ops/troubleshooting/images/external-error.png
new file mode 100644
index 0000000..0b5deff
Binary files /dev/null and b/docs/guide/ops/troubleshooting/images/external-error.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/ops/troubleshooting/images/failed-task.png
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/images/failed-task.png b/docs/guide/ops/troubleshooting/images/failed-task.png
new file mode 100644
index 0000000..94a368e
Binary files /dev/null and b/docs/guide/ops/troubleshooting/images/failed-task.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/ops/troubleshooting/images/jmx-sensors-all-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/images/jmx-sensors-all-large.png b/docs/guide/ops/troubleshooting/images/jmx-sensors-all-large.png
new file mode 100644
index 0000000..d5d6b97
Binary files /dev/null and b/docs/guide/ops/troubleshooting/images/jmx-sensors-all-large.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/ops/troubleshooting/images/jmx-sensors-all.png
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/images/jmx-sensors-all.png b/docs/guide/ops/troubleshooting/images/jmx-sensors-all.png
new file mode 100644
index 0000000..52c3191
Binary files /dev/null and b/docs/guide/ops/troubleshooting/images/jmx-sensors-all.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/ops/troubleshooting/images/jmx-sensors.png
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/images/jmx-sensors.png b/docs/guide/ops/troubleshooting/images/jmx-sensors.png
new file mode 100644
index 0000000..ff81806
Binary files /dev/null and b/docs/guide/ops/troubleshooting/images/jmx-sensors.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/ops/troubleshooting/images/resource-exception-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/images/resource-exception-large.png b/docs/guide/ops/troubleshooting/images/resource-exception-large.png
new file mode 100644
index 0000000..9cff4ce
Binary files /dev/null and b/docs/guide/ops/troubleshooting/images/resource-exception-large.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/ops/troubleshooting/images/resource-exception.png
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/images/resource-exception.png b/docs/guide/ops/troubleshooting/images/resource-exception.png
new file mode 100644
index 0000000..2fb792c
Binary files /dev/null and b/docs/guide/ops/troubleshooting/images/resource-exception.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/ops/troubleshooting/images/script-failure-large.png
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/images/script-failure-large.png b/docs/guide/ops/troubleshooting/images/script-failure-large.png
new file mode 100644
index 0000000..b36517c
Binary files /dev/null and b/docs/guide/ops/troubleshooting/images/script-failure-large.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/57bafeda/docs/guide/ops/troubleshooting/images/script-failure.png
----------------------------------------------------------------------
diff --git a/docs/guide/ops/troubleshooting/images/script-failure.png b/docs/guide/ops/troubleshooting/images/script-failure.png
new file mode 100644
index 0000000..2d59b6d
Binary files /dev/null and b/docs/guide/ops/troubleshooting/images/script-failure.png differ


[11/50] brooklyn-docs git commit: Fix broken link for committers guide in README

Posted by he...@apache.org.
Fix broken link for committers guide in README


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

Branch: refs/heads/0.7.0-incubating
Commit: 5d549bd389d391e0410da58a6479787560e7edeb
Parents: 91f99bb
Author: Mike Zaccardo <mi...@cloudsoftcorp.com>
Authored: Thu Apr 16 13:54:49 2015 -0400
Committer: Mike Zaccardo <mi...@cloudsoftcorp.com>
Committed: Thu Apr 16 13:54:49 2015 -0400

----------------------------------------------------------------------
 docs/README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5d549bd3/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
index ce09809..f092df7 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -11,8 +11,8 @@ 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-docs.html
-[COMMIT]: https://brooklyn.incubator.apache.org/community/committers.html
+[CONTRIB]: https://brooklyn.incubator.apache.org/community/how-to-contribute-docs.htmlq
+[COMMIT]: https://brooklyn.incubator.apache.org/developers/committers/index.html
 
 
 Workstation Setup


[15/50] brooklyn-docs git commit: This closes #585

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


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

Branch: refs/heads/0.7.0-incubating
Commit: 2275e53b534556944ebea8f5c6b129935c00a0c9
Parents: 0328543 56be885
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Apr 21 21:40:01 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Apr 21 21:40:01 2015 +0100

----------------------------------------------------------------------
 docs/_config.yml                 |   1 +
 docs/guide/misc/release-notes.md |   4 +
 docs/guide/ops/catalog/index.md  | 347 ++++++++++++++++++++++------------
 3 files changed, 231 insertions(+), 121 deletions(-)
----------------------------------------------------------------------



[05/50] brooklyn-docs git commit: address code review for multi-item catalog

Posted by he...@apache.org.
address code review for multi-item catalog

* use `itemType` instead of `item.type`
* infer itemType from the class - prompted major refactor of how items are parsed, but cleaner now (at least code; logic has some TODO improvements listed)
* use service spec format for entity
* add atomically (and lookup types against just-added items)


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

Branch: refs/heads/0.7.0-incubating
Commit: ff44d60b9251385e3d80928edb36f9bc1aa65763
Parents: b8d8ad4
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Apr 14 13:17:57 2015 -0500
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Apr 16 01:25:40 2015 -0500

----------------------------------------------------------------------
 docs/guide/ops/catalog/index.md | 38 +++++++++++++++++-------------------
 1 file changed, 18 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/ff44d60b/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md
index 401979c..a2e4408 100644
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@ -77,8 +77,9 @@ services:
 
 In addition to the above fields, exactly **one** of the following is also required:
 
-- `item`: the blueprint (in the usual YAML format) for an entity or application template,
-  or a map containing `type` and optional `brooklyn.config` for policies and locations; **or**
+- `item`: the YAML for a service or policy or location specification 
+  (a map containing `type` and optional `brooklyn.config`)
+  or a full application blueprint (in the usual YAML format) for a template; **or*
 - `items`: a list of catalog items, where each entry in the map follows the same schema as
   the `brooklyn.catalog` value, and the keys in these map override any metadata specified as
   a sibling of this `items` key (or, in the case of `libraries` they add to the list);
@@ -87,17 +88,17 @@ In addition to the above fields, exactly **one** of the following is also requir
 
 The following optional catalog metadata is supported:
   
-- `item.type`: the type of the item being defined.
-  If omitted, all `item` definitions are taken to be entities;
-  for any type other than an entity, this field must be supplied.
-  The supported types are:
+- `itemType`: the type of the item being defined.
+  When adding a template (see below) this must be set.
+  In most other cases this can be omitted and type type will be inferred.
+  The supported item types are:
   - `entity`
   - `template`
   - `policy`
   - `location`
 - `name`: a nicely formatted display name for the item, used when presenting it in a GUI
 - `description`: supplies an extended textual description for the item
-- `icon.url`: points to an icon for the item, used when presenting it in a GUI.
+- `iconUrl`: points to an icon for the item, used when presenting it in a GUI.
   The URL prefix `classpath` is supported but these URLs may *not* refer items in any OSGi bundle in the `libraries` section 
   (to prevent requiring all OSGi bundles to be loaded at launch).
   Icons are instead typically installed either at the server from which the OSGi bundles or catalog items are supplied 
@@ -131,14 +132,13 @@ and its implementation will be the Java class `brooklyn.entity.nosql.riak.RiakNo
 brooklyn.catalog:
   id: datastore
   version: 1.0
-  item.type: template
-  icon.url: classpath://brooklyn/entity/nosql/riak/riak.png
+  itemType: template
+  iconUrl: classpath://brooklyn/entity/nosql/riak/riak.png
   name: Datastore (Riak)
   description: Riak is an open-source NoSQL key-value data store.
   item:
-    services:
-    - type: brooklyn.entity.nosql.riak.RiakNode
-      name: Riak Node
+    type: brooklyn.entity.nosql.riak.RiakNode
+    name: Riak Node
 ```
 
 
@@ -149,22 +149,20 @@ This YAML will install three items:
 ```yaml
 brooklyn.catalog:
   version: 1.1
-  icon.url: classpath://brooklyn/entity/nosql/riak/riak.png
+  iconUrl: classpath://brooklyn/entity/nosql/riak/riak.png
   description: Riak is an open-source NoSQL key-value data store.
   items:
     - id: riak-node
       item:
-        services:
-        - type: brooklyn.entity.nosql.riak.RiakNode
-          name: Riak Node
+        type: brooklyn.entity.nosql.riak.RiakNode
+        name: Riak Node
     - id: riak-cluster
       item:
-        services:
-        - type: brooklyn.entity.nosql.riak.RiakCluster
-          name: Riak Cluster
+        type: brooklyn.entity.nosql.riak.RiakCluster
+        name: Riak Cluster
     - id: datastore
       name: Datastore (Riak Cluster)
-      item.type: template
+      itemType: template
       item:
         services:
         - type: riak-cluster


[13/50] brooklyn-docs git commit: This closes #595

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


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

Branch: refs/heads/0.7.0-incubating
Commit: 0328543660793754929097002c2822e53aa3f163
Parents: b503aa8 5bf55f5
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri Apr 17 09:34:37 2015 -0500
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri Apr 17 09:34:37 2015 -0500

----------------------------------------------------------------------
 ...est-app-with-enrichers-slightly-simpler.yaml | 57 ++++++++++++++++++++
 docs/guide/yaml/yaml-reference.md               | 35 ++++++++----
 2 files changed, 82 insertions(+), 10 deletions(-)
----------------------------------------------------------------------



[23/50] brooklyn-docs git commit: item lister resources put in an appropriate subdir; other related tidies

Posted by he...@apache.org.
item lister resources put in an appropriate subdir; other related tidies

code was very ad hoc, but also polluting the root of the all jar; now resources at least are in a clean subdir


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

Branch: refs/heads/0.7.0-incubating
Commit: a898760bc7a5e97badeadc0b9834d471eb5cd2ac
Parents: 3d9651f
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Apr 29 13:32:34 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 8 18:22:22 2015 +0100

----------------------------------------------------------------------
 .../brooklyn/item-lister/statics/style/js/underscore-min.js    | 6 ++++++
 .../brooklyn/item-lister/statics/style/js/underscore-min.map   | 1 +
 2 files changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/a898760b/usage/cli/src/main/resources/brooklyn/item-lister/statics/style/js/underscore-min.js
----------------------------------------------------------------------
diff --git a/usage/cli/src/main/resources/brooklyn/item-lister/statics/style/js/underscore-min.js b/usage/cli/src/main/resources/brooklyn/item-lister/statics/style/js/underscore-min.js
new file mode 100644
index 0000000..11f1d96
--- /dev/null
+++ b/usage/cli/src/main/resources/brooklyn/item-lister/statics/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

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/a898760b/usage/cli/src/main/resources/brooklyn/item-lister/statics/style/js/underscore-min.map
----------------------------------------------------------------------
diff --git a/usage/cli/src/main/resources/brooklyn/item-lister/statics/style/js/underscore-min.map b/usage/cli/src/main/resources/brooklyn/item-lister/statics/style/js/underscore-min.map
new file mode 100644
index 0000000..73c951e
--- /dev/null
+++ b/usage/cli/src/main/resources/brooklyn/item-lister/statics/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":"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"}
\ No newline at end of file


[14/50] brooklyn-docs git commit: catalog multi-item code review issues, incl version and better error msgs

Posted by he...@apache.org.
catalog multi-item code review issues, incl version and better error msgs


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

Branch: refs/heads/0.7.0-incubating
Commit: 56be8854e3ae05526312a18bcfa1bf9d586773bb
Parents: ff44d60
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Apr 20 13:32:38 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Apr 20 15:02:35 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/catalog/index.md | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/56be8854/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md
index a2e4408..8477204 100644
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@ -82,7 +82,7 @@ In addition to the above fields, exactly **one** of the following is also requir
   or a full application blueprint (in the usual YAML format) for a template; **or*
 - `items`: a list of catalog items, where each entry in the map follows the same schema as
   the `brooklyn.catalog` value, and the keys in these map override any metadata specified as
-  a sibling of this `items` key (or, in the case of `libraries` they add to the list);
+  a sibling of this `items` key (or, in the case of `brooklyn.libraries` they add to the list);
   if there are references between items, then order is important, 
   `items` are processed in order, depth-first, and forward references are not supported.
 
@@ -99,18 +99,18 @@ The following optional catalog metadata is supported:
 - `name`: a nicely formatted display name for the item, used when presenting it in a GUI
 - `description`: supplies an extended textual description for the item
 - `iconUrl`: points to an icon for the item, used when presenting it in a GUI.
-  The URL prefix `classpath` is supported but these URLs may *not* refer items in any OSGi bundle in the `libraries` section 
+  The URL prefix `classpath` is supported but these URLs may *not* refer items in any OSGi bundle in the `brooklyn.libraries` section 
   (to prevent requiring all OSGi bundles to be loaded at launch).
   Icons are instead typically installed either at the server from which the OSGi bundles or catalog items are supplied 
   or in the `conf` folder of the Brooklyn distro.
-- `libraries`: a list of pointers to OSGi bundles required for the catalog item,.
+- `brooklyn.libraries`: a list of pointers to OSGi bundles required for the catalog item.
   This can be omitted if blueprints are pure YAML and everything required is included in the classpath and catalog.
   Where custom Java code or bundled resources is needed, however, OSGi JARs supply
   a convenient packaging format and a very powerful versioning format.
   Libraries should be supplied in the form 
-  `libraries: [ "http://...", "http://..." ]`, 
+  `brooklyn.libraries: [ "http://...", "http://..." ]`, 
   or as
-  `libraries: [ { name: symbolic-name, version: 1.0, url: http://... }, ... ]` if `symbolic-name:1.0` 
+  `brooklyn.libraries: [ { name: symbolic-name, version: 1.0, url: http://... }, ... ]` if `symbolic-name:1.0` 
   might already be installed from a different URL and you want to skip the download.
   Note that these URLs should point at immutable OSGi bundles;
   if the contents at any of these URLs changes, the behaviour of the blueprint may change 
@@ -211,7 +211,7 @@ or POSTed to the applications endpoint to deploy an instance.
 POSTing to the applications endpoint,
 will ignored the `brooklyn.catalog` information;
 this means references to any `item` blocks in the `<catalog-metadata>` will not be resolved,
-and any OSGi `libraries` defined there will not be loaded.)
+and any OSGi `brooklyn.libraries` defined there will not be loaded.)
 
 
 


[02/50] brooklyn-docs git commit: addressing comments from code review on enhancing yaml

Posted by he...@apache.org.
addressing comments from code review on enhancing yaml


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

Branch: refs/heads/0.7.0-incubating
Commit: 5bf55f54474e66c5ce50831cbe83d160479d2cb1
Parents: c67638a
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Apr 15 20:31:19 2015 -0500
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Apr 15 20:33:14 2015 -0500

----------------------------------------------------------------------
 docs/guide/yaml/yaml-reference.md | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5bf55f54/docs/guide/yaml/yaml-reference.md
----------------------------------------------------------------------
diff --git a/docs/guide/yaml/yaml-reference.md b/docs/guide/yaml/yaml-reference.md
index 71993ae..64c81a5 100644
--- a/docs/guide/yaml/yaml-reference.md
+++ b/docs/guide/yaml/yaml-reference.md
@@ -146,13 +146,15 @@ Dependency injection other powerful references and types can be built up within
 concise DSL defined here:
  
 * `$brooklyn: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
+  until the given `sensor` from this entity "truthy" (i.e. non-trivial, non-empty, non-zero) value
+  (see below on `component` for looking up values on other sensors) 
 * `$brooklyn:config("key")` will insert the value set against the given key at this entity (or nearest ancestor);
   can be used to supply config at the root which is used in multiple places in the plan
 * `$brooklyn:sensor("sensor.name")` returns the given sensor on the current entity if found, or an untyped (Object) sensor;
   `$brooklyn:sensor("io.brooklyn.ContainingEntityClass", "sensor.name")` returns the strongly typed sensor defined in the given class
 * `$brooklyn:component("ID")` refers to a Brooklyn component with the given ID; you can then access the following subfields,
-  using the same syntax as defined above but with a different reference entity:
+  using the same syntax as defined above but with a different reference entity,
+  e.g. `$brooklyn:component("ID").attributeWhenReady("sensor")`:
   * `.attributeWhenReady("sensor")`
   * `.config("key")`
   * `.sensor("sensor.name")`
@@ -172,6 +174,8 @@ concise DSL defined here:
   but as an `EntitySpec` suitable for setting as the value of `ConfigKey<EntitySpec>` config items
   (such as `memberSpec` in `DynamicCluster`)
 
+<!-- TODO examples for object and entitySpec -->
+
 Parameters above can be supplied either as strings or as lists and maps in YAML, 
 and the `$brooklyn:` syntax can be used within those parameters.  
 


[24/50] brooklyn-docs git commit: install a default.catalog.bom, and update docs

Posted by he...@apache.org.
install a default.catalog.bom, and update docs

and tweak poms to exclude license since these are config files the user is meant to edit;
remove the old catalog.xml, including mentions in the docs


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

Branch: refs/heads/0.7.0-incubating
Commit: 5bd3de6614f5445e2c730857da55e6fc1b23cc36
Parents: a898760
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed May 6 15:00:39 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 8 18:22:23 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/catalog/index.md     | 15 +++++++++++++++
 docs/guide/ops/install-on-server.md | 23 ++++++++---------------
 docs/guide/start/blueprints.md      | 13 +++++--------
 docs/guide/start/catalog.xml        | 22 ----------------------
 4 files changed, 28 insertions(+), 45 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5bd3de66/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md
index dcedcd8..7cb0e84 100644
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@ -8,6 +8,8 @@ children:
 - { section: Adding to the Catalog, title: Adding and Deleting } 
 - { section: Templates and the Add-Application Wizard, title: Templates }
 - { section: Versioning } 
+- { section: CLI Options }
+ 
 ---
 
 Brooklyn provides a **catalog**, which is a persisted collection of versioned blueprints and other resources. 
@@ -289,6 +291,19 @@ When referencing a blueprint, if a version number is not specified
 the latest non-snapshot version will be loaded when an entity is instantiated.
 
 
+### CLI Options
+
+The `brooklyn` CLI includes several commands for working with the catalog.
+
+* `--catalogAdd <file.bom>` will add the catalog items in the `bom` file
+* `--catalogReset` will reset the catalog to the initial state 
+  (based on `brooklyn/default.catalog.bom` on the classpath, by default in a dist in the `conf/` directory)
+* `--catalogInitial <file.bom>` will set the catalog items to use on first run,
+  on a catalog reset, or if persistence is off
+
+If [persistence](../persistence/) is enabled, catalog additions will remain between runs.
+For more information on these commands, run `brooklyn help launch`.
+
 
 <!--
 TODO: make test cases from the code snippets here, and when building the docs assert that they match test cases

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5bd3de66/docs/guide/ops/install-on-server.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/install-on-server.md b/docs/guide/ops/install-on-server.md
index d4711db..6c3455f 100644
--- a/docs/guide/ops/install-on-server.md
+++ b/docs/guide/ops/install-on-server.md
@@ -11,7 +11,7 @@ Here we present two *alternatives* to install Brooklyn:
 - [Manual installation](#manual)
 
 
-## <a id="script"></a> Running the installation script
+## <a id="script"></a> Running the Installation Script
 
 There is a simple bash script available to help with the installation process. 
 
@@ -32,16 +32,16 @@ $ ./brooklyn-install.sh -s -r <your-server-ip>
 {% endhighlight %}
 
 
-## <a id="manual"></a> Manual installation
+## <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. [Configuring default.catalog.bom](#configuring-catalog)
 1. [Test the installation](#confirm)
 
 
-### <a id="prerequisites"></a>Set up the prerequisites
+### <a id="prerequisites"></a>Set up the Prerequisites
 
 Before installing Apache Brooklyn, it is recommented to configure the host as follows. 
 
@@ -105,21 +105,14 @@ $ chmod 600 ~/.brooklyn/brooklyn.properties
 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
+### <a id="configuring-catalog"></a>Configuring the Catalog
 
 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.
+`default.catalog.bom` on the classpath. The initial catalog is in `conf/brooklyn/` in the dist.
+If you have a preferred catalog, simply replace that file.
 
 
-### <a id="confirm"></a>Confirm installation
+### <a id="confirm"></a>Confirm Installation
 
 We can do a quick test drive by launching Brooklyn:
 

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5bd3de66/docs/guide/start/blueprints.md
----------------------------------------------------------------------
diff --git a/docs/guide/start/blueprints.md b/docs/guide/start/blueprints.md
index 9986178..5966b77 100644
--- a/docs/guide/start/blueprints.md
+++ b/docs/guide/start/blueprints.md
@@ -45,17 +45,14 @@ application. Your application will be shown as "Starting" on the web console's f
 
 Instead of pasting the YAML blueprint each time,
 this blueprint can be [added to the catalog](../ops/catalog/).
-Or, even easier, you can download a sample [catalog.xml](catalog.xml).
-Install this to your `~/.brooklyn/` folder and relaunch Brooklyn
-(navigating to the "Help" tab in order to shutdown Brooklyn *and* the application you launched in the previous step).
-
-Now when the web console is re-opened, the catalog contains our blueprints.
-Select the "Demo Web Cluster with DB" and click "Next".
+With this YAML blueprint added, including the location, the Add Application dialog will offer 
+the "Demo Web Cluster with DB" as a template.
 
 [![Viewing Catalog entries in Add Application dialog.](images/add-application-catalog-web-cluster-with-db.png)](images/add-application-catalog-web-cluster-with-db-large.png)
 
-Select the location to use, give your application a name, and then click "Finish".
-
+<!-- TODO: more detail for adding to catalog? but wait for persistence to be the default, 
+     rather than extensively document default.catalog.bom.
+     also need to include instructions on stopping (currently in help, including stopping apps) -->
 
 ## Next 
 

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5bd3de66/docs/guide/start/catalog.xml
----------------------------------------------------------------------
diff --git a/docs/guide/start/catalog.xml b/docs/guide/start/catalog.xml
deleted file mode 100644
index 6cff554..0000000
--- a/docs/guide/start/catalog.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<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>
-


[20/50] brooklyn-docs git commit: fix java.sysprops string

Posted by he...@apache.org.
fix java.sysprops string


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

Branch: refs/heads/0.7.0-incubating
Commit: 0b60bf28ece59377f61e0cca3156443019379289
Parents: 2db5635
Author: Andrea Turli <an...@gmail.com>
Authored: Thu Apr 30 11:41:15 2015 +0200
Committer: Andrea Turli <an...@gmail.com>
Committed: Thu Apr 30 11:41:15 2015 +0200

----------------------------------------------------------------------
 docs/guide/start/_my-web-cluster.yaml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/0b60bf28/docs/guide/start/_my-web-cluster.yaml
----------------------------------------------------------------------
diff --git a/docs/guide/start/_my-web-cluster.yaml b/docs/guide/start/_my-web-cluster.yaml
index 166c497..ded2a69 100644
--- a/docs/guide/start/_my-web-cluster.yaml
+++ b/docs/guide/start/_my-web-cluster.yaml
@@ -10,7 +10,7 @@ services:
     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
     java.sysprops:
       brooklyn.example.db.url: >
-        $brooklyn:formatString("jdbc:%s%s?user=%s\\&password=%s",
+        $brooklyn:formatString("jdbc:%s%s?user=%s&password=%s",
         component("db").attributeWhenReady("datastore.url"),
         "visitors", "brooklyn", "br00k11n")
 
@@ -18,4 +18,4 @@ services:
   id: db
   name: My DB
   brooklyn.config:
-    creationScriptUrl: https://bit.ly/brooklyn-visitors-creation-script
\ No newline at end of file
+    creationScriptUrl: https://bit.ly/brooklyn-visitors-creation-script


[38/50] brooklyn-docs git commit: require java 7

Posted by he...@apache.org.
require java 7

needed for named groups in regexes;
also fix semantics of 'T' separator and tidy date parsing


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

Branch: refs/heads/0.7.0-incubating
Commit: f5048d806cacda8d18055f65d3ffad80f913c02c
Parents: 490cc07
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Jun 8 09:36:46 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Jun 10 18:38:17 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/requirements.md | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/f5048d80/docs/guide/ops/requirements.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/requirements.md b/docs/guide/ops/requirements.md
index 7830bc9..d0cf7fd 100644
--- a/docs/guide/ops/requirements.md
+++ b/docs/guide/ops/requirements.md
@@ -28,12 +28,9 @@ Brooklyn has also been tested on Ubuntu 12.04 and OS X.
 
 ## Software Requirements
 
-Brooklyn requires Java (JRE or JDK) minimum version 6. The latest release of version 7 or 8 is recommended.
+Brooklyn requires Java (JRE or JDK) minimum version 7. 
 OpenJDK is recommended. Brooklyn has also been tested on IBM J9 and Oracle's JVM.
 
-* check your `iptables` or other firewall service, making sure that incoming connections on port 8443 is not blocked
-* check that the [linux kernel entropy](increase-entropy.html) is sufficient
-
 
 ## Configuration Requirements
 


[41/50] brooklyn-docs git commit: This closes #684

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


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

Branch: refs/heads/0.7.0-incubating
Commit: 267e59d5942262079f5cfdbf6d203f8b3fb112c4
Parents: 4fdbbc3 53685f0
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Jun 15 08:42:31 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Jun 15 08:42:31 2015 +0100

----------------------------------------------------------------------
 docs/guide/yaml/index.md | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------



[03/50] brooklyn-docs git commit: a few more catalog multi-item yaml doc tweaks. examples confirmed working!

Posted by he...@apache.org.
a few more catalog multi-item yaml doc tweaks. examples confirmed working!


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

Branch: refs/heads/0.7.0-incubating
Commit: 9669f8690ddc5f46f1a5f8709629cae7b202c7c8
Parents: 687cfd6
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Apr 8 00:32:23 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Apr 16 01:25:39 2015 -0500

----------------------------------------------------------------------
 docs/guide/ops/catalog/index.md | 75 +++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/9669f869/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md
index 8f627d4..9eeca9c 100644
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@ -12,7 +12,7 @@ children:
 
 Brooklyn provides a **catalog**, which is a persisted collection of versioned blueprints and other resources. 
 Blueprints in the catalog can be deployed directly, via the Brooklyn REST API or the web console,
-or referenced in other blueprints.
+or referenced in other blueprints using their `id`.
 
  
 ### Catalog Items YAML Syntax
@@ -75,22 +75,25 @@ The following metadata is *required* for all items:
   this field disambiguates between blueprints of the same `id`.
   Note that this is typically *not* the version of the software being installed,
   but rather the version of the blueprint. For more information on versioning, see below.
+  (Also note YAML treats numbers differently to Strings. Explicit quotes may sometimes be required.)
 
 To reference a catalog item in another blueprint, simply reference its ID and optionally its version number.
-For example: 
+For instance, if we've added an item with metadata `{ id: datastore, version: "1.0" }` (such as the example below),
+we could refer to it in another blueprint with: 
 
 ```yaml
 services:
 - type: datastore:1.0
 ```
 
-In addition, exactly **one** of the following is also required:
+In addition to the above fields, exactly **one** of the following is also required:
 
 - `item`: the blueprint (in the usual YAML format) for an entity or application template,
   or a map containing `type` and optional `brooklyn.config` for policies and locations; **or**
 - `items`: a list of catalog items, where each entry in the map follows the same schema as
   the `brooklyn.catalog` value, and the keys in these map override any metadata specified as
-  a sibling of this `items` key (or, in the case of `libraries` they add to the list)
+  a sibling of this `items` key (or, in the case of `libraries` they add to the list);
+  if there are references between items, then order is important, with forward references not supported.
 
 The following optional catalog metadata is supported:
   
@@ -109,11 +112,16 @@ The following optional catalog metadata is supported:
   (to prevent requiring all OSGi bundles to be loaded at launch).
   Icons are instead typically installed either at the server from which the OSGi bundles or catalog items are supplied 
   or in the `conf` folder of the Brooklyn distro.
-- `libraries`: a list of pointers to OSGi bundles required for the catalog item.
-  This can be omitted if blueprints are pure YAML and everything required is included in the catalog file, at URLs, 
-  or in the Brooklyn classpath. If custom Java code or bundled resources is used, the OSGi JARs supply
+- `libraries`: a list of pointers to OSGi bundles required for the catalog item,.
+  This can be omitted if blueprints are pure YAML and everything required is included in the classpath and catalog.
+  Where custom Java code or bundled resources is needed, however, OSGi JARs supply
   a convenient packaging format and a very powerful versioning format.
-  Note that these URL's should point at immutable OSGi bundles;
+  Libraries should be supplied in the form 
+  `libraries: [ "http://...", "http://..." ]`, 
+  or as
+  `libraries: [ { name: symbolic-name, version: 1.0, url: http://... }, ... ]` if `symbolic-name:1.0` 
+  might already be installed from a different URL and you want to skip the download.
+  Note that these URLs should point at immutable OSGi bundles;
   if the contents at any of these URLs changes, the behaviour of the blueprint may change 
   whenever a bundle is reloaded in a Brooklyn server,
   and if entities have been deployed against that version, their behavior may change in subtle or potentially incompatible ways.
@@ -126,9 +134,8 @@ The following optional catalog metadata is supported:
 
 The following example installs the `RiakNode` entity, making it also available as an application template,
 with a nice display name, description, and icon.
-It can be referred in other blueprints to as `datastore:1.0`, 
-and its implementation will be the Java `brooklyn.entity.nosql.riak.RiakNode`
-loaded from a classpath including an OSGi bundle and Brooklyn.
+It can be referred in other blueprints to as `datastore:1.0`,
+and its implementation will be the Java class `brooklyn.entity.nosql.riak.RiakNode` included with Brooklyn.
 
 ```yaml
 brooklyn.catalog:
@@ -138,9 +145,8 @@ brooklyn.catalog:
   icon.url: classpath://brooklyn/entity/nosql/riak/riak.png
   name: Datastore (Riak)
   description: Riak is an open-source NoSQL key-value data store.
-  libraries:
-    - url: http://example.com/path/to/my-dependency-1.2.3.jar
   item:
+    services:
     - type: brooklyn.entity.nosql.riak.RiakNode
       name: Riak Node
 ```
@@ -155,13 +161,22 @@ brooklyn.catalog:
   version: 1.1
   icon.url: classpath://brooklyn/entity/nosql/riak/riak.png
   description: Riak is an open-source NoSQL key-value data store.
-  libraries:
-    - url: http://example.com/path/to/my-dependency-1.2.3.jar
   items:
+    - id: riak-node
+      item:
+        services:
+        - type: brooklyn.entity.nosql.riak.RiakNode
+          name: Riak Node
+    - id: riak-cluster
+      item:
+        services:
+        - type: brooklyn.entity.nosql.riak.RiakCluster
+          name: Riak Cluster
     - id: datastore
       name: Datastore (Riak Cluster)
       item.type: template
       item:
+        services:
         - type: riak-cluster
           location: 
             jclouds:softlayer:
@@ -175,27 +190,18 @@ brooklyn.catalog:
             provisioning.properties:
               # you can also define machine specs
               minRam: 8gb
-    - id: riak-cluster
-      item:
-        - type: brooklyn.entity.nosql.riak.RiakCluster
-          name: Riak Cluster
-    - id: riak-node
-      item:
-        - type: brooklyn.entity.nosql.riak.RiakNode
-          name: Riak Node
 ```
 
 The items this will install are:
 
-- `riak-cluster` is available as a convenience short name for the full class, as an entity,
-  with an additional OSGi bundle installed
-- `datastore` provides the `riak-cluster` blueprint, in SoftLayer and with the given size and machine spec, 
+- `riak-node`, as before, but with a different name
+- `riak-cluster` as a convenience short name for the `brooklyn.entity.nosql.riak.RiakCluster` class
+- `datastore`, now pointing at the `riak-cluster` blueprint, in SoftLayer and with the given size and machine spec, 
   as the default implementation for anyone
   requesting a `datastore` (and if installed atop the previous example, new references to `datastore` 
   will access this version because it is a higher number);
-  because it is a template, users will have the opportunity to edit the YAML (see below)
-- `riak-node` is also installed, as before (but with a different name)
-
+  because it is a template, users will have the opportunity to edit the YAML (see below).
+  (This must be supplied after `riak-cluster`, because it refers to `riak-cluster`.)
 
 
 ### Templates and the Add-Application Wizard
@@ -268,15 +274,6 @@ the latest non-snapshot version will be loaded when an entity is instantiated.
 
 
 
-
 <!--
-TODO: Should improve the 'Create Application' dialog, so that the two versions don't appear on the front page.
-Currently they are indistinguisable, if they have the same description/icon.
+TODO: make test cases from the code snippets here, and when building the docs assert that they match test cases
 -->
-
-
-<!--
-TODO: Add section that explains how to add plain entities to the catalog and use them either from the App Wizard,
-(and entity UI) or embed the catalog id + version in another YAML
--->
-


[33/50] brooklyn-docs git commit: Adds MSSQL (YAML-based) blueprint

Posted by he...@apache.org.
Adds MSSQL (YAML-based) blueprint


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

Branch: refs/heads/0.7.0-incubating
Commit: 96f45c178e6fbbda948b6891dfea7b02e8416bc4
Parents: 10f8a5d
Author: Martin Harris <gi...@nakomis.com>
Authored: Thu May 21 13:07:32 2015 +0100
Committer: Richard Downer <ri...@apache.org>
Committed: Thu May 28 17:27:35 2015 +0100

----------------------------------------------------------------------
 .gitattributes | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/96f45c17/.gitattributes
----------------------------------------------------------------------
diff --git a/.gitattributes b/.gitattributes
index 21ceeba..7920d0e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3,4 +3,4 @@
 *.sh text eol=lf
 *.bat text eol=crlf
 *.ps1 text eol=crlf
-
+*.ini text eol=crlf