Modified: brooklyn/site/style/js/catalog/items.js
URL: 
http://svn.apache.org/viewvc/brooklyn/site/style/js/catalog/items.js?rev=1925014&r1=1925013&r2=1925014&view=diff
==============================================================================
--- brooklyn/site/style/js/catalog/items.js (original)
+++ brooklyn/site/style/js/catalog/items.js Fri Apr 11 07:44:54 2025
@@ -783,7 +783,7 @@ var items = {
     }, {
       "name" : "brooklyn.ansible.playbook",
       "type" : "java.lang.String",
-      "description" : "Playbook to be execute by Ansible",
+      "description" : "Name to be used for a playbook to be execute by 
Ansible",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -796,7 +796,7 @@ var items = {
     }, {
       "name" : "brooklyn.ansible.playbookYaml",
       "type" : "java.lang.String",
-      "description" : "Playbook to be execute by Ansible",
+      "description" : "Playbook contents as YAML in a string, to be execute by 
Ansible",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -1310,6 +1310,7 @@ var items = {
     "name" : "Apache Cassandra Database Fabric",
     "description" : "Cassandra is a highly scalable, eventually consistent, 
distributed, structured key-value store which provides a ColumnFamily-based 
data model richer than typical key/value systems",
     "iconUrl" : "classpath:///cassandra-logo.jpeg",
+    "deprecated" : true,
     "config" : [ {
       "name" : "cassandra.fabric.datacenter.namer",
       "type" : 
"com.google.common.base.Function<org.apache.brooklyn.api.location.Location, 
java.lang.String>",
@@ -1508,6 +1509,7 @@ var items = {
     "name" : "Apache Cassandra Datacenter Cluster",
     "description" : "Cassandra is a highly scalable, eventually consistent, 
distributed, structured key-value store which provides a ColumnFamily-based 
data model richer than typical key/value systems",
     "iconUrl" : "classpath:///cassandra-logo.jpeg",
+    "deprecated" : true,
     "config" : [ {
       "name" : "cassandra.cluster.delayBeforeAdvertisingCluster",
       "type" : "org.apache.brooklyn.util.time.Duration",
@@ -2010,6 +2012,7 @@ var items = {
     "name" : "Apache Cassandra Node",
     "description" : "Cassandra is a highly scalable, eventually consistent, 
distributed, structured key-value store which provides a ColumnFamily-based 
data model richer than typical key/value systems",
     "iconUrl" : "classpath:///cassandra-logo.jpeg",
+    "deprecated" : true,
     "config" : [ {
       "name" : "archive.nameFormat",
       "type" : "java.lang.String",
@@ -5382,7 +5385,7 @@ var items = {
     "effectors" : [ ]
   }, {
     "type" : "org.apache.brooklyn.entity.brooklynnode.BrooklynNode",
-    "defaultVersion" : "1.0.0-SNAPSHOT",
+    "defaultVersion" : "1.2.0-SNAPSHOT",
     "name" : "Brooklyn Node",
     "description" : "Deploys a Brooklyn management server",
     "iconUrl" : "",
@@ -5499,7 +5502,7 @@ var items = {
     }, {
       "name" : "brooklynnode.download.archive.subpath",
       "type" : "java.lang.String",
-      "description" : "Path to the main directory in the archive being 
supplied for installation; to use the root of an archive, specify '.'; default 
value taken based on download URL (e.g. 'name' for 'http://path/name.tgz' or 
'http://path/name-dist.tgz') falling back to an appropriate value for brooklyn, 
e.g. 'brooklyn-1.0.0-SNAPSHOT'",
+      "description" : "Path to the main directory in the archive being 
supplied for installation; to use the root of an archive, specify '.'; default 
value taken based on download URL (e.g. 'name' for 'http://path/name.tgz' or 
'http://path/name-dist.tgz') falling back to an appropriate value for brooklyn, 
e.g. 'brooklyn-1.2.0-SNAPSHOT'",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -5628,7 +5631,7 @@ var items = {
       "name" : "brooklynnode.webconsole.portMapper",
       "type" : "com.google.common.base.Function",
       "description" : "Function for mapping private to public ports, for use 
in inferring the brooklyn URI",
-      "defaultValue" : "identity",
+      "defaultValue" : "Functions.identity()",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -5757,7 +5760,7 @@ var items = {
       "name" : "install.version",
       "type" : "java.lang.String",
       "description" : "The suggested version of the software to be installed",
-      "defaultValue" : "1.0.0-SNAPSHOT",
+      "defaultValue" : "1.2.0-SNAPSHOT",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -6359,6 +6362,13 @@ var items = {
       "constraints" : [ ],
       "links" : { }
     }, {
+      "name" : "dynamicgroup.ancestor",
+      "type" : "org.apache.brooklyn.api.entity.Entity",
+      "description" : "Ancestor (or application) under which to search, or 
null to use containing application",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
       "name" : "dynamicgroup.entityfilter",
       "type" : "com.google.common.base.Predicate<? super 
org.apache.brooklyn.api.entity.Entity>",
       "description" : "Filter for entities which will automatically be in the 
group",
@@ -17754,7 +17764,7 @@ var items = {
     "type" : "org.apache.brooklyn.entity.database.mysql.MySqlCluster",
     "name" : "MySql Master-Slave cluster",
     "description" : "Sets up a cluster of MySQL nodes using master-slave 
relation and binary logging",
-    "iconUrl" : "classpath:///mysql-logo-110x57.png",
+    "iconUrl" : "classpath:///mysql-logo.svg",
     "config" : [ {
       "name" : "cluster.initial.quorumSize",
       "type" : "java.lang.Integer",
@@ -18155,7 +18165,7 @@ var items = {
     "defaultVersion" : "5.6.26",
     "name" : "MySql Node",
     "description" : "MySql is an open source relational database management 
system (RDBMS)",
-    "iconUrl" : "classpath:///mysql-logo-110x57.png",
+    "iconUrl" : "classpath:///mysql-logo.svg",
     "config" : [ {
       "name" : "archive.nameFormat",
       "type" : "java.lang.String",
@@ -18828,7 +18838,7 @@ var items = {
     "defaultVersion" : "1.8.0",
     "name" : "Nginx Server",
     "description" : "A single Nginx server. Provides HTTP and reverse proxy 
services",
-    "iconUrl" : "classpath:///nginx-logo.jpeg",
+    "iconUrl" : "classpath:///nginx-logo.png",
     "config" : [ {
       "name" : "archive.nameFormat",
       "type" : "java.lang.String",
@@ -20269,7 +20279,7 @@ var items = {
     } ]
   }, {
     "type" : "org.apache.brooklyn.entity.database.postgresql.PostgreSqlNode",
-    "defaultVersion" : "9.3-3",
+    "defaultVersion" : "10-10-2",
     "name" : "PostgreSQL Node",
     "description" : "PostgreSQL is an object-relational database management 
system (ORDBMS)",
     "iconUrl" : "classpath:///postgresql-logo-200px.png",
@@ -20437,7 +20447,7 @@ var items = {
       "name" : "install.version",
       "type" : "java.lang.String",
       "description" : "The suggested version of the software to be installed",
-      "defaultValue" : "9.3-3",
+      "defaultValue" : "10-10-2",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -26511,10 +26521,10 @@ var items = {
     } ]
   }, {
     "type" : "org.apache.brooklyn.entity.webapp.tomcat.TomcatServer",
-    "defaultVersion" : "7.0.65",
+    "defaultVersion" : "7.0.99",
     "name" : "Tomcat 7 Server",
     "description" : "Apache Tomcat is an open source software implementation 
of the Java Servlet and JavaServer Pages technologies",
-    "iconUrl" : "classpath:///tomcat-logo.png",
+    "iconUrl" : "classpath:///tomcat7-logo.png",
     "config" : [ {
       "name" : "archive.nameFormat",
       "type" : "java.lang.String",
@@ -26664,7 +26674,7 @@ var items = {
       "name" : "install.version",
       "type" : "java.lang.String",
       "description" : "The suggested version of the software to be installed",
-      "defaultValue" : "7.0.65",
+      "defaultValue" : "7.0.99",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -27378,10 +27388,10 @@ var items = {
     } ]
   }, {
     "type" : "org.apache.brooklyn.entity.webapp.tomcat.Tomcat8Server",
-    "defaultVersion" : "8.0.22",
+    "defaultVersion" : "8.5.70",
     "name" : "Tomcat 8 Server",
     "description" : "Apache Tomcat is an open source software implementation 
of the Java Servlet and JavaServer Pages technologies",
-    "iconUrl" : "classpath:///tomcat-logo.png",
+    "iconUrl" : "classpath:///tomcat8-logo.png",
     "config" : [ {
       "name" : "archive.nameFormat",
       "type" : "java.lang.String",
@@ -27531,7 +27541,7 @@ var items = {
       "name" : "install.version",
       "type" : "java.lang.String",
       "description" : "The suggested version of the software to be installed",
-      "defaultValue" : "8.0.22",
+      "defaultValue" : "8.5.70",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -28244,6 +28254,873 @@ var items = {
       "description" : "Undeploys the given context/artifact"
     } ]
   }, {
+    "type" : "org.apache.brooklyn.entity.webapp.tomcat.Tomcat9Server",
+    "defaultVersion" : "9.0.52",
+    "name" : "Tomcat 9 Server",
+    "description" : "Apache Tomcat is an open source software implementation 
of the Java Servlet and JavaServer Pages technologies",
+    "iconUrl" : "classpath:///tomcat9-logo.png",
+    "config" : [ {
+      "name" : "archive.nameFormat",
+      "type" : "java.lang.String",
+      "description" : "The format for the directory created when the 
installation archive is extracted, if required. The version string will be 
passed in as the first argument, replacing the %s format specifier",
+      "defaultValue" : "apache-tomcat-%s",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "children.startable.mode",
+      "type" : "java.lang.Enum",
+      "description" : "Controls behaviour when starting Startable children as 
part of this entity's lifecycle.",
+      "defaultValue" : "NONE",
+      "reconfigurable" : false,
+      "possibleValues" : [ {
+        "value" : "NONE",
+        "description" : "NONE"
+      }, {
+        "value" : "FOREGROUND",
+        "description" : "FOREGROUND"
+      }, {
+        "value" : "FOREGROUND_LATE",
+        "description" : "FOREGROUND_LATE"
+      }, {
+        "value" : "BACKGROUND",
+        "description" : "BACKGROUND"
+      }, {
+        "value" : "BACKGROUND_LATE",
+        "description" : "BACKGROUND_LATE"
+      } ],
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "dontRequireTtyForSudo",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to explicitly set /etc/sudoers, so don't need 
tty (will leave unchanged if 'false'); some machines require a tty for sudo; 
brooklyn by default does not use a tty (so that it can get separate 
error+stdout streams); you can enable a tty as an option to every ssh command, 
or you can do it once and modify the machine so that a tty is not subsequently 
required.",
+      "defaultValue" : false,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "download.addon.urls",
+      "type" : "java.util.Map",
+      "description" : "URL for downloading named add-ons; uses FreeMarker 
templating format to substitute things like ${version} automatically",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "download.url",
+      "type" : "java.lang.String",
+      "description" : "URL for downloading the installer; uses FreeMarker 
templating format to substitute things like ${version} automatically",
+      "defaultValue" : 
"https://archive.apache.org/dist/tomcat/tomcat-9/v${version}/bin/apache-tomcat-${version}.tar.gz";,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "effector.add.openInboundPorts",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to add an effector to the entity for opening 
ports through Cloud security groups",
+      "defaultValue" : false,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "expandedinstall.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for installed artifacts (e.g. expanded dir 
after unpacking .tgz)",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "files.customize",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Files to be copied before customize; mapping from 
resource to the destination name relative to installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "files.install",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Files to be copied before install; mapping from 
resource to the destination name relative to installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "files.preinstall",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Files to be copied before pre-install; mapping from 
resource to the destination name relative to installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "files.runtime",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Files to be copied before launch (and before 
pre-launch); mapping from resource to the destination name relative to runDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "http.port",
+      "type" : "org.apache.brooklyn.api.location.PortRange",
+      "description" : "HTTP port",
+      "defaultValue" : "8080,18080-65535",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "https.port",
+      "type" : "org.apache.brooklyn.api.location.PortRange",
+      "description" : "HTTPS port (with SSL/TLS)",
+      "defaultValue" : "8443,18443-65535",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "inboundPorts.autoInfer",
+      "type" : "java.lang.Boolean",
+      "description" : "By default, the ports to open in iptables and security 
group is inferred from the config keys. This follows a naming convention 
(defaulting to all config keys matching the name '*.\\.port', but customizable 
with the config key 'inboundPorts.configRegex'), and also including all config 
keys of type 'PortRange'. This behaviour is turned off by setting it to 
'false'.",
+      "defaultValue" : true,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "inboundPorts.configRegex",
+      "type" : "java.lang.String",
+      "description" : "Regex governing the opening of ports based on config 
names (see 'inboundPorts.autoInfer')",
+      "defaultValue" : ".*\\.port",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "install.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory in which this software will be installed (if 
downloading/unpacking artifacts explicitly); uses FreeMarker templating format",
+      "defaultValue" : 
"${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/installs/${(config['install.unique_label']??)?string(config['install.unique_label']!'X',(entity.entityType.simpleName)+((config['install.version']??)?string('_'+(config['install.version']!'X'),'')))}",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "install.unique_label",
+      "type" : "java.lang.String",
+      "description" : "Provides a label which uniquely identifies an 
installation, used in the computation of the install dir; this should include 
something readable, and must include a hash of all data which differentiates an 
installation (e.g. version, plugins, etc), but should be the same where install 
dirs can be shared to allow for re-use",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "install.version",
+      "type" : "java.lang.String",
+      "description" : "The suggested version of the software to be installed",
+      "defaultValue" : "9.0.52",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "java.check.hostname.bug",
+      "type" : "java.lang.Boolean",
+      "description" : "Check whether hostname is too long and will likely 
crash Java 1.7 due to bug http://bugs.java.com/view_bug.do?bug_id=7089443";,
+      "defaultValue" : true,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "java.opts",
+      "type" : "java.util.Set<java.lang.String>",
+      "description" : "Java command line options",
+      "defaultValue" : [ ],
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "java.sysprops",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Java command line system properties (converted 
automatically into the format '-Dkey=value')",
+      "defaultValue" : { },
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "java.version.required",
+      "type" : "java.lang.String",
+      "description" : "Java version required",
+      "defaultValue" : "1.7",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "jmx.agent.local.path",
+      "type" : "java.lang.String",
+      "description" : "Optional path to where JMX driver should be installed 
on the local machine (if using JMXMP or custom agent)",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "jmx.agent.mode",
+      "type" : "java.lang.Enum",
+      "description" : "What type of JMX agent to use; defaults to null 
(autodetect) which means JMXMP_AND_RMI allowing firewall access through a 
single port as well as local access supporting jconsole (unless JMX_SSL_ENABLED 
is set, in which case it is JMXMP only)",
+      "defaultValue" : "AUTODETECT",
+      "reconfigurable" : false,
+      "possibleValues" : [ {
+        "value" : "AUTODETECT",
+        "description" : "AUTODETECT"
+      }, {
+        "value" : "JMXMP",
+        "description" : "JMXMP"
+      }, {
+        "value" : "JMXMP_AND_RMI",
+        "description" : "JMXMP_AND_RMI"
+      }, {
+        "value" : "JMX_RMI_CUSTOM_AGENT",
+        "description" : "JMX_RMI_CUSTOM_AGENT"
+      }, {
+        "value" : "JMX_RMI",
+        "description" : "JMX_RMI"
+      }, {
+        "value" : "NONE",
+        "description" : "NONE"
+      } ],
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "jmx.context",
+      "type" : "java.lang.String",
+      "description" : "JMX context path (defaults to 'jmxrmi')",
+      "defaultValue" : "jmxrmi",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "jmx.direct.port",
+      "type" : "org.apache.brooklyn.api.location.PortRange",
+      "description" : "JMX direct/private port (e.g. JMX RMI server port, or 
JMXMP port, but not RMI registry port)",
+      "defaultValue" : "31001-65535",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "jmx.direct.port.legacy.NOT_USED",
+      "type" : "org.apache.brooklyn.api.location.PortRange",
+      "description" : "Legacy definition JMX direct/private port (e.g. JMX RMI 
server port, or JMXMP port, but not RMI registry port)",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "jmx.enabled",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether JMX is enabled",
+      "defaultValue" : true,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "jmx.password",
+      "type" : "java.lang.String",
+      "description" : "Optional JMX password to use when connecting",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "jmx.ssl.access.cert",
+      "type" : "java.security.cert.Certificate",
+      "description" : "certificate of key used to access a JMX agent",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "jmx.ssl.access.key",
+      "type" : "java.security.PrivateKey",
+      "description" : "key used to access a JMX agent (typically per entity, 
embedded in the managed JVM)",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "jmx.ssl.enabled",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to enable JMX over JMXMP with SSL/TLS",
+      "defaultValue" : false,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "jmx.user",
+      "type" : "java.lang.String",
+      "description" : "Optional JMX username to use when connecting",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.customize",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking customize; if non-null will wait for 
this to resolve (normal use is with '$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.install",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking install; if non-null will wait for 
this to resolve (normal use is with '$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.install.resources",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking files being copied before the 
install; if non-null will wait for this to resolve (normal use is with 
'$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.launch",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking luanch; if non-null will wait for 
this to resolve (normal use is with '$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.launch.resources",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking files being copied before the 
launch; if non-null will wait for this to resolve (normal use is with 
'$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.setup",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking setup; if non-null will wait for 
this to resolve (normal use is with '$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.start",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking start (done post-provisioning for 
software processes); if non-null will wait for this to resolve (normal use is 
with '$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.stop",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking stop; if non-null will wait for at 
most 1 minute for this to resolve (normal use is with 
'$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "metrics.usage.retrieve",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to retrieve the usage (e.g. performance) 
metrics",
+      "defaultValue" : true,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "openIptables",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to open the INBOUND_PORTS via iptables rules; 
if true then ssh in to run iptables commands, as part of machine provisioning",
+      "defaultValue" : false,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "post.customize.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run after the customize phase",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "post.install.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run after the install phase",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "post.launch.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run after the launch phase",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "pre.customize.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run prior to the customize phase",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "pre.install.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run prior to the install phase",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "pre.launch.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run prior to the launch phase",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "provisioning.properties",
+      "type" : "java.util.Map<java.lang.String, java.lang.Object>",
+      "description" : "Custom properties to be passed in to the location when 
provisioning a new machine",
+      "defaultValue" : { },
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "requiredOpenLoginPorts",
+      "type" : "java.util.Collection<java.lang.Integer>",
+      "description" : "The port(s) to be opened (also see 
'inboundPorts.autoInfer')",
+      "defaultValue" : [ 22 ],
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "rmi.registry.port",
+      "type" : "org.apache.brooklyn.api.location.PortRange",
+      "description" : "RMI registry port, used for discovering JMX (private) 
port",
+      "defaultValue" : "1099,19099-65535",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "run.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory from which this software to be run; uses 
FreeMarker templating format",
+      "defaultValue" : 
"${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/apps/${entity.applicationId}/entities/${entity.entityType.simpleName}_${entity.id}",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "shell.env",
+      "type" : "java.util.Map<java.lang.String, java.lang.Object>",
+      "description" : "Map of environment variables to pass to the runtime 
shell. Non-string values are serialized to json before passed to the shell.",
+      "defaultValue" : { },
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "skip.install",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to skip the install commands entirely (useful 
for pre-installed images)",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "skip.start",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to skip the startup process entirely (useful 
for auto-running software, such as in containers)",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "skip.start.ifRunning",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to skip the startup process if the entity is 
detected as already running",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "softwareProcess.lifecycleTasks",
+      "type" : 
"org.apache.brooklyn.entity.software.base.SoftwareProcessDriverLifecycleEffectorTasks",
+      "description" : "An object that handles lifecycle of an entity's 
associated machine.",
+      "defaultValue" : 
"org.apache.brooklyn.entity.software.base.SoftwareProcessDriverLifecycleEffectorTasks",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "softwareProcess.maxSensorRebindDelay",
+      "type" : "org.apache.brooklyn.util.time.Duration",
+      "description" : "The maximum delay to apply when reconnecting sensors 
when rebinding to this entity. Brooklyn will wait a random amount of time, up 
to the value of this config key, to avoid a thundering herd problem when the 
entity shares its machine with several others. Set to null or to 0 to disable 
any delay.",
+      "defaultValue" : "10s",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "softwareProcess.serviceProcessIsRunningPollPeriod",
+      "type" : "org.apache.brooklyn.util.time.Duration",
+      "description" : "The period for polling for whether the process is 
running; applies only if the entity wires up the connectServiceUpIsRunning.",
+      "defaultValue" : "5s",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "start.timeout",
+      "type" : "org.apache.brooklyn.util.time.Duration",
+      "description" : "Time to wait, after launching, for SERVICE_UP before 
failing",
+      "defaultValue" : "5m",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "stopIptables",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to stop iptables entirely; if true then ssh in 
to stop the iptables service, as part of machine provisioning",
+      "defaultValue" : false,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "template.substitutions",
+      "type" : "java.util.Map<java.lang.String, java.lang.Object>",
+      "description" : "Map of values to be substituted for the keys in any 
templated files used by the entity",
+      "defaultValue" : { },
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "templates.customize",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Templated files to be filled in and copied before 
customize; mapping from resource to the destination name relative to 
installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "templates.install",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Templated files to be filled in and copied before 
install; mapping from resource to the destination name relative to installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "templates.preinstall",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Templated files to be filled in and copied before 
pre-install; mapping from resource to the destination name relative to 
installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "templates.runtime",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Templated files to be filled in and copied before 
launch (and before pre-launch); mapping from resource to the destination name 
relative to installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "tomcat.serverxml",
+      "type" : "java.lang.String",
+      "description" : "The file to template and use as the Tomcat's 
server.xml",
+      "defaultValue" : 
"classpath://org/apache/brooklyn/entity/webapp/tomcat/tomcat9-server.xml",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "tomcat.shutdownport",
+      "type" : "org.apache.brooklyn.api.location.PortRange",
+      "description" : "Suggested shutdown port",
+      "defaultValue" : "31880-65535",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "tomcat.webxml",
+      "type" : "java.lang.String",
+      "description" : "The file to template and use as the Tomcat's web.xml",
+      "defaultValue" : 
"classpath://org/apache/brooklyn/entity/webapp/tomcat/tomcat9-web.xml",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "wars.by.context",
+      "type" : "java.util.Map",
+      "description" : "Map of context keys (path in user-facing URL, typically 
without slashes) to archives (e.g. WARs by URL) to deploy, supporting file: and 
classpath: prefixes)",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "wars.named",
+      "type" : "java.util.List",
+      "description" : "Archive files to deploy, as URL strings (supporting 
file: and classpath: prefixes); context (path in user-facing URL) will be 
inferred by name",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "wars.root",
+      "type" : "java.lang.String",
+      "description" : "WAR file to deploy as the ROOT, as URL (supporting 
file: and classpath: prefixes)",
+      "reconfigurable" : false,
+      "label" : "Root WAR",
+      "priority" : 1.0,
+      "pinned" : true,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "webapp.enabledProtocols",
+      "type" : "java.util.Set",
+      "description" : "List of enabled protocols (e.g. http, https)",
+      "defaultValue" : [ "http" ],
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "webapp.https.ssl",
+      "type" : "org.apache.brooklyn.entity.webapp.HttpsSslConfig",
+      "description" : "SSL Configuration for HTTPS",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    } ],
+    "sensors" : [ {
+      "name" : "download.addon.urls",
+      "type" : "java.util.Map",
+      "description" : "URL for downloading named add-ons; uses FreeMarker 
templating format to substitute things like ${version} automatically",
+      "links" : { }
+    }, {
+      "name" : "download.url",
+      "type" : "java.lang.String",
+      "description" : "URL for downloading the installer; uses FreeMarker 
templating format to substitute things like ${version} automatically",
+      "links" : { }
+    }, {
+      "name" : "expandedinstall.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for installed artifacts (e.g. expanded dir 
after unpacking .tgz)",
+      "links" : { }
+    }, {
+      "name" : "host.address",
+      "type" : "java.lang.String",
+      "description" : "Host IP address",
+      "links" : { }
+    }, {
+      "name" : "host.name",
+      "type" : "java.lang.String",
+      "description" : "Host name",
+      "links" : { }
+    }, {
+      "name" : "host.subnet.address",
+      "type" : "java.lang.String",
+      "description" : "Host address as known internally in the subnet where it 
is running (if different to host.name)",
+      "links" : { }
+    }, {
+      "name" : "host.subnet.hostname",
+      "type" : "java.lang.String",
+      "description" : "Host name as known internally in the subnet where it is 
running (if different to host.name)",
+      "links" : { }
+    }, {
+      "name" : "http.port",
+      "type" : "java.lang.Integer",
+      "description" : "HTTP port",
+      "links" : { }
+    }, {
+      "name" : "https.port",
+      "type" : "java.lang.Integer",
+      "description" : "HTTPS port (with SSL/TLS)",
+      "links" : { }
+    }, {
+      "name" : "install.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory in which this software will be installed (if 
downloading/unpacking artifacts explicitly); uses FreeMarker templating format",
+      "links" : { }
+    }, {
+      "name" : "jmx.agent.local.path",
+      "type" : "java.lang.String",
+      "description" : "Optional path to where JMX driver should be installed 
on the local machine (if using JMXMP or custom agent)",
+      "links" : { }
+    }, {
+      "name" : "jmx.context",
+      "type" : "java.lang.String",
+      "description" : "JMX context path (defaults to 'jmxrmi')",
+      "links" : { }
+    }, {
+      "name" : "jmx.direct.port",
+      "type" : "java.lang.Integer",
+      "description" : "JMX direct/private port (e.g. JMX RMI server port, or 
JMXMP port, but not RMI registry port)",
+      "links" : { }
+    }, {
+      "name" : "jmx.direct.port.legacy.NOT_USED",
+      "type" : "java.lang.Integer",
+      "description" : "Legacy definition JMX direct/private port (e.g. JMX RMI 
server port, or JMXMP port, but not RMI registry port)",
+      "links" : { }
+    }, {
+      "name" : "jmx.password",
+      "type" : "java.lang.String",
+      "description" : "Optional JMX password to use when connecting",
+      "links" : { }
+    }, {
+      "name" : "jmx.service.url",
+      "type" : "java.lang.String",
+      "description" : "The URL for connecting to the MBean Server",
+      "links" : { }
+    }, {
+      "name" : "jmx.user",
+      "type" : "java.lang.String",
+      "description" : "Optional JMX username to use when connecting",
+      "links" : { }
+    }, {
+      "name" : "rmi.registry.port",
+      "type" : "java.lang.Integer",
+      "description" : "RMI registry port, used for discovering JMX (private) 
port",
+      "links" : { }
+    }, {
+      "name" : "run.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory from which this software to be run; uses 
FreeMarker templating format",
+      "links" : { }
+    }, {
+      "name" : "service.isUp",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether the service is active and available (confirmed 
and monitored)",
+      "links" : { }
+    }, {
+      "name" : "service.process.isRunning",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether the process for the service is confirmed as 
running",
+      "links" : { }
+    }, {
+      "name" : "service.state",
+      "type" : "org.apache.brooklyn.core.entity.lifecycle.Lifecycle",
+      "description" : "Actual lifecycle state of the service",
+      "links" : { }
+    }, {
+      "name" : "service.state.expected",
+      "type" : 
"org.apache.brooklyn.core.entity.lifecycle.Lifecycle$Transition",
+      "description" : "Last controlled change to service state, indicating 
what the expected state should be",
+      "links" : { }
+    }, {
+      "name" : "softwareprocess.pid.file",
+      "type" : "java.lang.String",
+      "description" : "PID file",
+      "links" : { }
+    }, {
+      "name" : "softwareservice.provisioningLocation",
+      "type" : "org.apache.brooklyn.api.location.MachineProvisioningLocation",
+      "description" : "Location used to provision a machine where this is 
running",
+      "links" : { }
+    }, {
+      "name" : "tomcat.shutdownport",
+      "type" : "java.lang.Integer",
+      "description" : "Suggested shutdown port",
+      "links" : { }
+    }, {
+      "name" : "webapp.deployedWars",
+      "type" : "java.util.Set",
+      "description" : "Names of archives/contexts that are currently deployed",
+      "links" : { }
+    }, {
+      "name" : "webapp.enabledProtocols",
+      "type" : "java.util.Set",
+      "description" : "List of enabled protocols (e.g. http, https)",
+      "links" : { }
+    }, {
+      "name" : "webapp.https.ssl",
+      "type" : "org.apache.brooklyn.entity.webapp.HttpsSslConfig",
+      "description" : "SSL Configuration for HTTPS",
+      "links" : { }
+    }, {
+      "name" : "webapp.reqs.bytes.received",
+      "type" : "java.lang.Long",
+      "description" : "Total bytes received by the webserver",
+      "links" : { }
+    }, {
+      "name" : "webapp.reqs.bytes.sent",
+      "type" : "java.lang.Long",
+      "description" : "Total bytes sent by the webserver",
+      "links" : { }
+    }, {
+      "name" : "webapp.reqs.errors",
+      "type" : "java.lang.Integer",
+      "description" : "Request errors",
+      "links" : { }
+    }, {
+      "name" : "webapp.reqs.perSec.last",
+      "type" : "java.lang.Double",
+      "description" : "Reqs/sec (last datapoint)",
+      "links" : { }
+    }, {
+      "name" : "webapp.reqs.perSec.windowed",
+      "type" : "java.lang.Double",
+      "description" : "Reqs/sec (over time window)",
+      "links" : { }
+    }, {
+      "name" : "webapp.reqs.processingTime.fraction.last",
+      "type" : "java.lang.Double",
+      "description" : "Fraction of time spent processing, reported by 
webserver (percentage, last datapoint)",
+      "links" : { }
+    }, {
+      "name" : "webapp.reqs.processingTime.fraction.windowed",
+      "type" : "java.lang.Double",
+      "description" : "Fraction of time spent processing, reported by 
webserver (percentage, over time window)",
+      "links" : { }
+    }, {
+      "name" : "webapp.reqs.processingTime.max",
+      "type" : "java.lang.Integer",
+      "description" : "Max processing time for any single request, reported by 
webserver (millis)",
+      "links" : { }
+    }, {
+      "name" : "webapp.reqs.processingTime.total",
+      "type" : "java.lang.Integer",
+      "description" : "Total processing time, reported by webserver (millis)",
+      "links" : { }
+    }, {
+      "name" : "webapp.reqs.total",
+      "type" : "java.lang.Integer",
+      "description" : "Request count",
+      "links" : { }
+    }, {
+      "name" : "webapp.tomcat.connectorStatus",
+      "type" : "java.lang.String",
+      "description" : "Catalina connector state name",
+      "links" : { }
+    }, {
+      "name" : "webapp.url",
+      "type" : "java.lang.String",
+      "description" : "URL",
+      "links" : { }
+    } ],
+    "effectors" : [ {
+      "name" : "deploy",
+      "returnType" : "void",
+      "parameters" : [ {
+        "name" : "url",
+        "type" : "java.lang.String",
+        "description" : "URL of WAR file",
+        "defaultValue" : null,
+        "shouldSanitize" : false
+      }, {
+        "name" : "targetName",
+        "type" : "java.lang.String",
+        "description" : "context path where WAR should be deployed (/ for 
ROOT)",
+        "defaultValue" : null,
+        "shouldSanitize" : false
+      } ],
+      "description" : "Deploys the given artifact, from a source URL, to a 
given deployment filename/context"
+    }, {
+      "name" : "populateServiceNotUpDiagnostics",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Populates the attribute service.notUp.diagnostics, with 
any available health indicators"
+    }, {
+      "name" : "restart",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Restart the process/service represented by an entity"
+    }, {
+      "name" : "start",
+      "returnType" : "void",
+      "parameters" : [ {
+        "name" : "locations",
+        "type" : "java.lang.Object",
+        "description" : "The location or locations to start in, as a string, a 
location object, a list of strings, or a list of location objects",
+        "defaultValue" : null,
+        "shouldSanitize" : false
+      } ],
+      "description" : "Start the process/service represented by an entity"
+    }, {
+      "name" : "stop",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Stop the process/service represented by an entity"
+    }, {
+      "name" : "undeploy",
+      "returnType" : "void",
+      "parameters" : [ {
+        "name" : "targetName",
+        "type" : "java.lang.String",
+        "defaultValue" : null,
+        "shouldSanitize" : false
+      } ],
+      "description" : "Undeploys the given context/artifact"
+    } ]
+  }, {
     "type" : "org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess",
     "defaultVersion" : "0.0.0",
     "name" : "Vanilla Software Process",
@@ -28790,6 +29667,559 @@ var items = {
       "description" : "Stop the process/service represented by an entity"
     } ]
   }, {
+    "type" : 
"org.apache.brooklyn.entity.software.base.WorkflowSoftwareProcess",
+    "defaultVersion" : null,
+    "name" : "Vanilla Software Process",
+    "description" : "A software process configured with workflow, e.g. for 
launch, check-running and stop",
+    "iconUrl" : "",
+    "config" : [ {
+      "name" : "archive.nameFormat",
+      "type" : "java.lang.String",
+      "description" : "The format for the directory created when the 
installation archive is extracted, if required. The version string will be 
passed in as the first argument, replacing the %s format specifier",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "checkRunning.workflow",
+      "type" : "org.apache.brooklyn.core.workflow.steps.CustomWorkflowStep",
+      "description" : "workflow to determine whether the software process is 
running",
+      "reconfigurable" : false,
+      "label" : "Check-running Workflow",
+      "priority" : 2.0,
+      "pinned" : true,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "children.startable.mode",
+      "type" : "java.lang.Enum",
+      "description" : "Controls behaviour when starting Startable children as 
part of this entity's lifecycle.",
+      "defaultValue" : "FOREGROUND_LATE",
+      "reconfigurable" : false,
+      "possibleValues" : [ {
+        "value" : "NONE",
+        "description" : "NONE"
+      }, {
+        "value" : "FOREGROUND",
+        "description" : "FOREGROUND"
+      }, {
+        "value" : "FOREGROUND_LATE",
+        "description" : "FOREGROUND_LATE"
+      }, {
+        "value" : "BACKGROUND",
+        "description" : "BACKGROUND"
+      }, {
+        "value" : "BACKGROUND_LATE",
+        "description" : "BACKGROUND_LATE"
+      } ],
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "customize.workflow",
+      "type" : "org.apache.brooklyn.core.workflow.steps.CustomWorkflowStep",
+      "description" : "workflow to run during the software customization 
phase",
+      "reconfigurable" : false,
+      "label" : "Customize Workflow",
+      "priority" : 4.0,
+      "pinned" : true,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "dontRequireTtyForSudo",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to explicitly set /etc/sudoers, so don't need 
tty (will leave unchanged if 'false'); some machines require a tty for sudo; 
brooklyn by default does not use a tty (so that it can get separate 
error+stdout streams); you can enable a tty as an option to every ssh command, 
or you can do it once and modify the machine so that a tty is not subsequently 
required.",
+      "defaultValue" : false,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "download.addon.urls",
+      "type" : "java.util.Map",
+      "description" : "URL for downloading named add-ons; uses FreeMarker 
templating format to substitute things like ${version} automatically",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "download.url",
+      "type" : "java.lang.String",
+      "description" : "URL for downloading the installer; uses FreeMarker 
templating format to substitute things like ${version} automatically",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "effector.add.openInboundPorts",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to add an effector to the entity for opening 
ports through Cloud security groups",
+      "defaultValue" : false,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "expandedinstall.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for installed artifacts (e.g. expanded dir 
after unpacking .tgz)",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "files.customize",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Files to be copied before customize; mapping from 
resource to the destination name relative to installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "files.install",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Files to be copied before install; mapping from 
resource to the destination name relative to installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "files.preinstall",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Files to be copied before pre-install; mapping from 
resource to the destination name relative to installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "files.runtime",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Files to be copied before launch (and before 
pre-launch); mapping from resource to the destination name relative to runDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "inboundPorts.autoInfer",
+      "type" : "java.lang.Boolean",
+      "description" : "By default, the ports to open in iptables and security 
group is inferred from the config keys. This follows a naming convention 
(defaulting to all config keys matching the name '*.\\.port', but customizable 
with the config key 'inboundPorts.configRegex'), and also including all config 
keys of type 'PortRange'. This behaviour is turned off by setting it to 
'false'.",
+      "defaultValue" : true,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "inboundPorts.configRegex",
+      "type" : "java.lang.String",
+      "description" : "Regex governing the opening of ports based on config 
names (see 'inboundPorts.autoInfer')",
+      "defaultValue" : ".*\\.port",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "install.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory in which this software will be installed (if 
downloading/unpacking artifacts explicitly); uses FreeMarker templating format",
+      "defaultValue" : 
"${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/installs/${(config['install.unique_label']??)?string(config['install.unique_label']!'X',(entity.entityType.simpleName)+((config['install.version']??)?string('_'+(config['install.version']!'X'),'')))}",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "install.unique_label",
+      "type" : "java.lang.String",
+      "description" : "Provides a label which uniquely identifies an 
installation, used in the computation of the install dir; this should include 
something readable, and must include a hash of all data which differentiates an 
installation (e.g. version, plugins, etc), but should be the same where install 
dirs can be shared to allow for re-use",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "install.version",
+      "type" : "java.lang.String",
+      "description" : "The suggested version of the software to be installed",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "install.workflow",
+      "type" : "org.apache.brooklyn.core.workflow.steps.CustomWorkflowStep",
+      "description" : "workflow to run during the software install phase",
+      "reconfigurable" : false,
+      "label" : "Install Workflow",
+      "priority" : 5.0,
+      "pinned" : true,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.customize",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking customize; if non-null will wait for 
this to resolve (normal use is with '$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.install",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking install; if non-null will wait for 
this to resolve (normal use is with '$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.install.resources",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking files being copied before the 
install; if non-null will wait for this to resolve (normal use is with 
'$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.launch",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking luanch; if non-null will wait for 
this to resolve (normal use is with '$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.launch.resources",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking files being copied before the 
launch; if non-null will wait for this to resolve (normal use is with 
'$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.setup",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking setup; if non-null will wait for 
this to resolve (normal use is with '$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.start",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking start (done post-provisioning for 
software processes); if non-null will wait for this to resolve (normal use is 
with '$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "latch.stop",
+      "type" : "java.lang.Boolean",
+      "description" : "Latch for blocking stop; if non-null will wait for at 
most 1 minute for this to resolve (normal use is with 
'$brooklyn:attributeWhenReady')",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "launch.workflow",
+      "type" : "org.apache.brooklyn.core.workflow.steps.CustomWorkflowStep",
+      "description" : "workflow to run to launch the software process",
+      "reconfigurable" : false,
+      "label" : "Launch Workflow",
+      "priority" : 3.0,
+      "pinned" : true,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "metrics.usage.retrieve",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to retrieve the usage (e.g. performance) 
metrics",
+      "defaultValue" : true,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "openIptables",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to open the INBOUND_PORTS via iptables rules; 
if true then ssh in to run iptables commands, as part of machine provisioning",
+      "defaultValue" : false,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "post.customize.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run after the customize phase",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "post.install.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run after the install phase",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "post.launch.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run after the launch phase",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "pre.customize.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run prior to the customize phase",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "pre.install.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run prior to the install phase",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "pre.launch.command",
+      "type" : "java.lang.String",
+      "description" : "Command to be run prior to the launch phase",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "provisioning.properties",
+      "type" : "java.util.Map<java.lang.String, java.lang.Object>",
+      "description" : "Custom properties to be passed in to the location when 
provisioning a new machine",
+      "defaultValue" : { },
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "requiredOpenLoginPorts",
+      "type" : "java.util.Collection<java.lang.Integer>",
+      "description" : "The port(s) to be opened (also see 
'inboundPorts.autoInfer')",
+      "defaultValue" : [ 22 ],
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "run.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory from which this software to be run; uses 
FreeMarker templating format",
+      "defaultValue" : 
"${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/apps/${entity.applicationId}/entities/${entity.entityType.simpleName}_${entity.id}",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "shell.env",
+      "type" : "java.util.Map<java.lang.String, java.lang.Object>",
+      "description" : "Map of environment variables to pass to the runtime 
shell. Non-string values are serialized to json before passed to the shell.",
+      "defaultValue" : { },
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "skip.install",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to skip the install commands entirely (useful 
for pre-installed images)",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "skip.start",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to skip the startup process entirely (useful 
for auto-running software, such as in containers)",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "skip.start.ifRunning",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to skip the startup process if the entity is 
detected as already running",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "softwareProcess.lifecycleTasks",
+      "type" : 
"org.apache.brooklyn.entity.software.base.SoftwareProcessDriverLifecycleEffectorTasks",
+      "description" : "An object that handles lifecycle of an entity's 
associated machine.",
+      "defaultValue" : 
"org.apache.brooklyn.entity.software.base.SoftwareProcessDriverLifecycleEffectorTasks",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "softwareProcess.maxSensorRebindDelay",
+      "type" : "org.apache.brooklyn.util.time.Duration",
+      "description" : "The maximum delay to apply when reconnecting sensors 
when rebinding to this entity. Brooklyn will wait a random amount of time, up 
to the value of this config key, to avoid a thundering herd problem when the 
entity shares its machine with several others. Set to null or to 0 to disable 
any delay.",
+      "defaultValue" : "10s",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "softwareProcess.serviceProcessIsRunningPollPeriod",
+      "type" : "org.apache.brooklyn.util.time.Duration",
+      "description" : "The period for polling for whether the process is 
running; applies only if the entity wires up the connectServiceUpIsRunning.",
+      "defaultValue" : "5s",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "sshMonitoring.enabled",
+      "type" : "java.lang.Boolean",
+      "description" : "SSH monitoring enabled",
+      "defaultValue" : true,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "start.timeout",
+      "type" : "org.apache.brooklyn.util.time.Duration",
+      "description" : "Time to wait, after launching, for SERVICE_UP before 
failing",
+      "defaultValue" : "2m",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "stop.workflow",
+      "type" : "org.apache.brooklyn.core.workflow.steps.CustomWorkflowStep",
+      "description" : "workflow to run to stop the software process",
+      "reconfigurable" : false,
+      "label" : "Stop Workflow",
+      "priority" : 1.0,
+      "pinned" : true,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "stopIptables",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether to stop iptables entirely; if true then ssh in 
to stop the iptables service, as part of machine provisioning",
+      "defaultValue" : false,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "template.substitutions",
+      "type" : "java.util.Map<java.lang.String, java.lang.Object>",
+      "description" : "Map of values to be substituted for the keys in any 
templated files used by the entity",
+      "defaultValue" : { },
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "templates.customize",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Templated files to be filled in and copied before 
customize; mapping from resource to the destination name relative to 
installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "templates.install",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Templated files to be filled in and copied before 
install; mapping from resource to the destination name relative to installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "templates.preinstall",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Templated files to be filled in and copied before 
pre-install; mapping from resource to the destination name relative to 
installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "templates.runtime",
+      "type" : "java.util.Map<java.lang.String, java.lang.String>",
+      "description" : "Templated files to be filled in and copied before 
launch (and before pre-launch); mapping from resource to the destination name 
relative to installDir",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
+      "name" : "usePidFile",
+      "type" : "java.lang.Boolean",
+      "description" : "Use a PID file to check running",
+      "defaultValue" : false,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    } ],
+    "sensors" : [ {
+      "name" : "download.addon.urls",
+      "type" : "java.util.Map",
+      "description" : "URL for downloading named add-ons; uses FreeMarker 
templating format to substitute things like ${version} automatically",
+      "links" : { }
+    }, {
+      "name" : "download.url",
+      "type" : "java.lang.String",
+      "description" : "URL for downloading the installer; uses FreeMarker 
templating format to substitute things like ${version} automatically",
+      "links" : { }
+    }, {
+      "name" : "expandedinstall.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory for installed artifacts (e.g. expanded dir 
after unpacking .tgz)",
+      "links" : { }
+    }, {
+      "name" : "host.address",
+      "type" : "java.lang.String",
+      "description" : "Host IP address",
+      "links" : { }
+    }, {
+      "name" : "host.name",
+      "type" : "java.lang.String",
+      "description" : "Host name",
+      "links" : { }
+    }, {
+      "name" : "host.subnet.address",
+      "type" : "java.lang.String",
+      "description" : "Host address as known internally in the subnet where it 
is running (if different to host.name)",
+      "links" : { }
+    }, {
+      "name" : "host.subnet.hostname",
+      "type" : "java.lang.String",
+      "description" : "Host name as known internally in the subnet where it is 
running (if different to host.name)",
+      "links" : { }
+    }, {
+      "name" : "install.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory in which this software will be installed (if 
downloading/unpacking artifacts explicitly); uses FreeMarker templating format",
+      "links" : { }
+    }, {
+      "name" : "run.dir",
+      "type" : "java.lang.String",
+      "description" : "Directory from which this software to be run; uses 
FreeMarker templating format",
+      "links" : { }
+    }, {
+      "name" : "service.isUp",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether the service is active and available (confirmed 
and monitored)",
+      "links" : { }
+    }, {
+      "name" : "service.process.isRunning",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether the process for the service is confirmed as 
running",
+      "links" : { }
+    }, {
+      "name" : "service.state",
+      "type" : "org.apache.brooklyn.core.entity.lifecycle.Lifecycle",
+      "description" : "Actual lifecycle state of the service",
+      "links" : { }
+    }, {
+      "name" : "service.state.expected",
+      "type" : 
"org.apache.brooklyn.core.entity.lifecycle.Lifecycle$Transition",
+      "description" : "Last controlled change to service state, indicating 
what the expected state should be",
+      "links" : { }
+    }, {
+      "name" : "softwareprocess.pid.file",
+      "type" : "java.lang.String",
+      "description" : "PID file",
+      "links" : { }
+    }, {
+      "name" : "softwareservice.provisioningLocation",
+      "type" : "org.apache.brooklyn.api.location.MachineProvisioningLocation",
+      "description" : "Location used to provision a machine where this is 
running",
+      "links" : { }
+    } ],
+    "effectors" : [ {
+      "name" : "populateServiceNotUpDiagnostics",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Populates the attribute service.notUp.diagnostics, with 
any available health indicators"
+    }, {
+      "name" : "restart",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Restart the process/service represented by an entity"
+    }, {
+      "name" : "start",
+      "returnType" : "void",
+      "parameters" : [ {
+        "name" : "locations",
+        "type" : "java.lang.Object",
+        "description" : "The location or locations to start in, as a string, a 
location object, a list of strings, or a list of location objects",
+        "defaultValue" : null,
+        "shouldSanitize" : false
+      } ],
+      "description" : "Start the process/service represented by an entity"
+    }, {
+      "name" : "stop",
+      "returnType" : "void",
+      "parameters" : [ ],
+      "description" : "Stop the process/service represented by an entity"
+    } ]
+  }, {
     "type" : "org.apache.brooklyn.entity.software.base.VanillaWindowsProcess",
     "defaultVersion" : "0.0.0",
     "name" : "Vanilla Windows Process",
@@ -28969,7 +30399,7 @@ var items = {
       "name" : "install.dir",
       "type" : "java.lang.String",
       "description" : "Directory in which this software will be installed (if 
downloading/unpacking artifacts explicitly); uses FreeMarker templating format",
-      "defaultValue" : 
"${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/installs/${(config['install.unique_label']??)?string(config['install.unique_label']!'X',(entity.entityType.simpleName)+((config['install.version']??)?string('_'+(config['install.version']!'X'),'')))}",
+      "defaultValue" : 
"${config['onbox.base.dir']!config['brooklyn.datadir']!'ERROR-ONBOX_BASE_DIR-not-set'}\\installs\\${(config['install.unique_label']??)?string(config['install.unique_label']!'X',(entity.entityType.simpleName)+((config['install.version']??)?string('_'+(config['install.version']!'X'),'')))}",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -29226,7 +30656,7 @@ var items = {
       "name" : "run.dir",
       "type" : "java.lang.String",
       "description" : "Directory from which this software to be run; uses 
FreeMarker templating format",
-      "defaultValue" : 
"${config['onbox.base.dir']!config['brooklyn.datadir']!'/<ERROR>-ONBOX_BASE_DIR-not-set'}/apps/${entity.applicationId}/entities/${entity.entityType.simpleName}_${entity.id}",
+      "defaultValue" : 
"${config['onbox.base.dir']!config['brooklyn.datadir']!'ERROR-ONBOX_BASE_DIR-not-set'}\\apps\\${entity.applicationId}\\entities\\${entity.entityType.simpleName}_${entity.id}",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -30240,7 +31670,7 @@ var items = {
       "name" : "zookeeper.nodeId.supplier",
       "type" : "com.google.common.base.Supplier<java.lang.Integer>",
       "description" : "Supplies values for members id in zoo.cfg",
-      "defaultValue" : 
"org.apache.brooklyn.util.guava.Suppliers$IncrementingSupplier@6343f851",
+      "defaultValue" : 
"org.apache.brooklyn.util.guava.Suppliers$IncrementingSupplier@3a3e575d",
       "reconfigurable" : false,
       "constraints" : [ "Predicates.notNull" ],
       "links" : { }
@@ -30396,7 +31826,7 @@ var items = {
       "name" : "autoscaler.currentSizeOperator",
       "type" : 
"com.google.common.base.Function<org.apache.brooklyn.api.entity.Entity, 
java.lang.Integer>",
       "description" : "The operation to perform to calculate the current size 
(defaults to calling getCurrentSize() on a Resizable entity)",
-      "defaultValue" : 
"org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy$4@472dc7eb",
+      "defaultValue" : 
"org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy$4@12593d03",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -30535,7 +31965,7 @@ var items = {
       "name" : "autoscaler.resizeOperator",
       "type" : "org.apache.brooklyn.policy.autoscaling.ResizeOperator",
       "description" : "The operation to perform for resizing (defaults to 
calling resize(int) effector on a Resizable entity)",
-      "defaultValue" : 
"org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy$3@1c890fef",
+      "defaultValue" : 
"org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy$3@717a6124",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -31266,6 +32696,26 @@ var items = {
       "links" : { }
     } ]
   }, {
+    "type" : "org.apache.brooklyn.enricher.stock.PropagateToMembers",
+    "name" : "PropagateToMembers",
+    "description" : "Propagates sensors from entity to members",
+    "iconUrl" : "",
+    "config" : [ {
+      "name" : "enricher.propagating.inclusions",
+      "type" : "java.util.Collection<? extends 
org.apache.brooklyn.api.sensor.Sensor<?>>",
+      "description" : "Collection of sensors to propagate to members",
+      "reconfigurable" : false,
+      "constraints" : [ 
"Predicates.and(Predicates.notNull(),Predicates.not(Predicates.or(Predicates.isNull(),Predicates.equalTo(0)(sizeFunction))))"
 ],
+      "links" : { }
+    }, {
+      "name" : "enricher.suppressDuplicates",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether duplicate values published by this enricher 
should be suppressed",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    } ]
+  }, {
     "type" : "org.apache.brooklyn.enricher.stock.Propagator",
     "name" : "Propagator",
     "description" : "Propagates sensors from one entity to another",
@@ -31632,6 +33082,13 @@ var items = {
       "constraints" : [ ],
       "links" : { }
     }, {
+      "name" : "enricher.targetType",
+      "type" : "java.lang.String",
+      "description" : "Target type for the value; default comes from sensor 
definition or Object (untyped)",
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
       "name" : "enricher.targetValue",
       "type" : "java.lang.Object",
       "description" : "The value for the target sensor. This can use the 
Brooklyn DSL, which will be re-evaluated each time the trigger sensor(s) 
change",
@@ -32132,7 +33589,7 @@ var items = {
       "name" : "localTempDir",
       "type" : "java.lang.String",
       "description" : "The directory on the local machine (i.e. running 
brooklyn) for writing temp files",
-      "defaultValue" : "/tmp/brooklyn-geoff-ssh-tmp",
+      "defaultValue" : "/tmp/brooklyn-juan-ssh-tmp",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -32553,7 +34010,7 @@ var items = {
       "name" : "private-key-file",
       "type" : "java.lang.String",
       "description" : "a ':' separated list of ssh private key files; uses 
first in list that can be read",
-      "defaultValue" : "/Users/geoff/.ssh/id_rsa:/Users/geoff/.ssh/id_dsa",
+      "defaultValue" : "/Users/juan/.ssh/id_rsa:/Users/juan/.ssh/id_dsa",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -32574,7 +34031,7 @@ var items = {
       "name" : "privateKeyFile",
       "type" : "java.lang.String",
       "description" : "a ':' separated list of ssh private key files; uses 
first in list that can be read",
-      "defaultValue" : "/Users/geoff/.ssh/id_rsa:/Users/geoff/.ssh/id_dsa",
+      "defaultValue" : "/Users/juan/.ssh/id_rsa:/Users/juan/.ssh/id_dsa",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -32751,7 +34208,7 @@ var items = {
       "name" : "user",
       "type" : "java.lang.String",
       "description" : "user account for normal access to the remote machine, 
defaulting to local user",
-      "defaultValue" : "geoff",
+      "defaultValue" : "juan",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -32973,8 +34430,9 @@ var items = {
       "name" : "kubeconfig",
       "type" : "java.lang.String",
       "description" : "Kubernetes .kubeconfig file to use for Location 
configuration keys",
+      "defaultValue" : "/Users/juan/.kube/config",
       "reconfigurable" : false,
-      "constraints" : [ 
"org.apache.brooklyn.container.location.kubernetes.KubernetesLocationConfig$$Lambda$30/203066589@566e1ade"
 ],
+      "constraints" : [ 
"org.apache.brooklyn.container.location.kubernetes.KubernetesLocationConfig$$Lambda$54/1183613387@7ffee043"
 ],
       "links" : { }
     }, {
       "name" : "kubeconfig.context",
@@ -32987,7 +34445,7 @@ var items = {
       "name" : "kubernetesClientRegistry",
       "type" : 
"org.apache.brooklyn.container.location.kubernetes.KubernetesClientRegistry",
       "description" : "Registry/Factory for creating Kubernetes client; 
default is almost always fine, except where tests want to customize behaviour",
-      "defaultValue" : 
"org.apache.brooklyn.container.location.kubernetes.KubernetesClientRegistryImpl@482d5175",
+      "defaultValue" : 
"org.apache.brooklyn.container.location.kubernetes.KubernetesClientRegistryImpl@95b9080",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -33148,7 +34606,7 @@ var items = {
       "name" : "private-key-file",
       "type" : "java.lang.String",
       "description" : "a ':' separated list of ssh private key files; uses 
first in list that can be read",
-      "defaultValue" : "/Users/geoff/.ssh/id_rsa:/Users/geoff/.ssh/id_dsa",
+      "defaultValue" : "/Users/juan/.ssh/id_rsa:/Users/juan/.ssh/id_dsa",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -33169,7 +34627,7 @@ var items = {
       "name" : "privateKeyFile",
       "type" : "java.lang.String",
       "description" : "a ':' separated list of ssh private key files; uses 
first in list that can be read",
-      "defaultValue" : "/Users/geoff/.ssh/id_rsa:/Users/geoff/.ssh/id_dsa",
+      "defaultValue" : "/Users/juan/.ssh/id_rsa:/Users/juan/.ssh/id_dsa",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -33277,7 +34735,7 @@ var items = {
       "name" : "user",
       "type" : "java.lang.String",
       "description" : "user account for normal access to the remote machine, 
defaulting to local user",
-      "defaultValue" : "geoff",
+      "defaultValue" : "juan",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -33405,7 +34863,7 @@ var items = {
       "name" : "localTempDir",
       "type" : "java.lang.String",
       "description" : "The directory on the local machine (i.e. running 
brooklyn) for writing temp files",
-      "defaultValue" : "/tmp/brooklyn-geoff-ssh-tmp",
+      "defaultValue" : "/tmp/brooklyn-juan-ssh-tmp",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -33675,7 +35133,7 @@ var items = {
       "name" : "localTempDir",
       "type" : "java.lang.String",
       "description" : "The directory on the local machine (i.e. running 
brooklyn) for writing temp files",
-      "defaultValue" : "/tmp/brooklyn-geoff-ssh-tmp",
+      "defaultValue" : "/tmp/brooklyn-juan-ssh-tmp",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -33990,8 +35448,9 @@ var items = {
       "name" : "kubeconfig",
       "type" : "java.lang.String",
       "description" : "Kubernetes .kubeconfig file to use for Location 
configuration keys",
+      "defaultValue" : "/Users/juan/.kube/config",
       "reconfigurable" : false,
-      "constraints" : [ 
"org.apache.brooklyn.container.location.kubernetes.KubernetesLocationConfig$$Lambda$30/203066589@566e1ade"
 ],
+      "constraints" : [ 
"org.apache.brooklyn.container.location.kubernetes.KubernetesLocationConfig$$Lambda$54/1183613387@7ffee043"
 ],
       "links" : { }
     }, {
       "name" : "kubeconfig.context",
@@ -34004,7 +35463,7 @@ var items = {
       "name" : "kubernetesClientRegistry",
       "type" : 
"org.apache.brooklyn.container.location.kubernetes.KubernetesClientRegistry",
       "description" : "Registry/Factory for creating Kubernetes client; 
default is almost always fine, except where tests want to customize behaviour",
-      "defaultValue" : 
"org.apache.brooklyn.container.location.kubernetes.KubernetesClientRegistryImpl@482d5175",
+      "defaultValue" : 
"org.apache.brooklyn.container.location.kubernetes.KubernetesClientRegistryImpl@95b9080",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -34101,7 +35560,7 @@ var items = {
       "name" : "openShiftClientRegistry",
       "type" : 
"org.apache.brooklyn.container.location.kubernetes.KubernetesClientRegistry",
       "description" : "Registry/Factory for creating OpenShift client; default 
is almost always fine, except where tests want to customize behaviour",
-      "defaultValue" : 
"org.apache.brooklyn.container.location.openshift.OpenShiftClientRegistryImpl@4f887637",
+      "defaultValue" : 
"org.apache.brooklyn.container.location.openshift.OpenShiftClientRegistryImpl@56b05c15",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -34173,7 +35632,7 @@ var items = {
       "name" : "private-key-file",
       "type" : "java.lang.String",
       "description" : "a ':' separated list of ssh private key files; uses 
first in list that can be read",
-      "defaultValue" : "/Users/geoff/.ssh/id_rsa:/Users/geoff/.ssh/id_dsa",
+      "defaultValue" : "/Users/juan/.ssh/id_rsa:/Users/juan/.ssh/id_dsa",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -34194,7 +35653,7 @@ var items = {
       "name" : "privateKeyFile",
       "type" : "java.lang.String",
       "description" : "a ':' separated list of ssh private key files; uses 
first in list that can be read",
-      "defaultValue" : "/Users/geoff/.ssh/id_rsa:/Users/geoff/.ssh/id_dsa",
+      "defaultValue" : "/Users/juan/.ssh/id_rsa:/Users/juan/.ssh/id_dsa",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -34302,7 +35761,7 @@ var items = {
       "name" : "user",
       "type" : "java.lang.String",
       "description" : "user account for normal access to the remote machine, 
defaulting to local user",
-      "defaultValue" : "geoff",
+      "defaultValue" : "juan",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -34814,7 +36273,7 @@ var items = {
       "name" : "private-key-file",
       "type" : "java.lang.String",
       "description" : "a ':' separated list of ssh private key files; uses 
first in list that can be read",
-      "defaultValue" : "/Users/geoff/.ssh/id_rsa:/Users/geoff/.ssh/id_dsa",
+      "defaultValue" : "/Users/juan/.ssh/id_rsa:/Users/juan/.ssh/id_dsa",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -34835,7 +36294,7 @@ var items = {
       "name" : "privateKeyFile",
       "type" : "java.lang.String",
       "description" : "a ':' separated list of ssh private key files; uses 
first in list that can be read",
-      "defaultValue" : "/Users/geoff/.ssh/id_rsa:/Users/geoff/.ssh/id_dsa",
+      "defaultValue" : "/Users/juan/.ssh/id_rsa:/Users/juan/.ssh/id_dsa",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -34919,7 +36378,7 @@ var items = {
       "name" : "user",
       "type" : "java.lang.String",
       "description" : "user account for normal access to the remote machine, 
defaulting to local user",
-      "defaultValue" : "geoff",
+      "defaultValue" : "juan",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -35260,7 +36719,7 @@ var items = {
       "name" : "localTempDir",
       "type" : "java.lang.String",
       "description" : "The directory on the local machine (i.e. running 
brooklyn) for writing temp files",
-      "defaultValue" : "/tmp/brooklyn-geoff-ssh-tmp",
+      "defaultValue" : "/tmp/brooklyn-juan-ssh-tmp",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -35714,7 +37173,7 @@ var items = {
       "name" : "localTempDir",
       "type" : "java.lang.String",
       "description" : "The directory on the local machine (i.e. running 
brooklyn) for writing temp files",
-      "defaultValue" : "/tmp/brooklyn-geoff-ssh-tmp",
+      "defaultValue" : "/tmp/brooklyn-juan-ssh-tmp",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -36135,7 +37594,7 @@ var items = {
       "name" : "private-key-file",
       "type" : "java.lang.String",
       "description" : "a ':' separated list of ssh private key files; uses 
first in list that can be read",
-      "defaultValue" : "/Users/geoff/.ssh/id_rsa:/Users/geoff/.ssh/id_dsa",
+      "defaultValue" : "/Users/juan/.ssh/id_rsa:/Users/juan/.ssh/id_dsa",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -36156,7 +37615,7 @@ var items = {
       "name" : "privateKeyFile",
       "type" : "java.lang.String",
       "description" : "a ':' separated list of ssh private key files; uses 
first in list that can be read",
-      "defaultValue" : "/Users/geoff/.ssh/id_rsa:/Users/geoff/.ssh/id_dsa",
+      "defaultValue" : "/Users/juan/.ssh/id_rsa:/Users/juan/.ssh/id_dsa",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -36333,7 +37792,7 @@ var items = {
       "name" : "user",
       "type" : "java.lang.String",
       "description" : "user account for normal access to the remote machine, 
defaulting to local user",
-      "defaultValue" : "geoff",
+      "defaultValue" : "juan",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -36468,7 +37927,7 @@ var items = {
       "name" : "localTempDir",
       "type" : "java.lang.String",
       "description" : "The directory on the local machine (i.e. running 
brooklyn) for writing temp files",
-      "defaultValue" : "/tmp/brooklyn-geoff-ssh-tmp",
+      "defaultValue" : "/tmp/brooklyn-juan-ssh-tmp",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -36782,7 +38241,7 @@ var items = {
     }, {
       "name" : "winrm.useNtlm",
       "type" : "java.lang.Boolean",
-      "description" : "The parameter configures tells the machine sensors 
whether the winrm port is over https. If the parameter is true then 5986 will 
be used as a winrm port.",
+      "description" : "The parameter configures whether to use NTLM or not.",
       "defaultValue" : true,
       "reconfigurable" : false,
       "constraints" : [ ],
@@ -37090,7 +38549,7 @@ var items = {
       "name" : "localTempDir",
       "type" : "java.lang.String",
       "description" : "The directory on the local machine (i.e. running 
brooklyn) for writing temp files",
-      "defaultValue" : "/tmp/brooklyn-geoff-ssh-tmp",
+      "defaultValue" : "/tmp/brooklyn-juan-ssh-tmp",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -37505,7 +38964,7 @@ var items = {
       "name" : "private-key-file",
       "type" : "java.lang.String",
       "description" : "a ':' separated list of ssh private key files; uses 
first in list that can be read",
-      "defaultValue" : "/Users/geoff/.ssh/id_rsa:/Users/geoff/.ssh/id_dsa",
+      "defaultValue" : "/Users/juan/.ssh/id_rsa:/Users/juan/.ssh/id_dsa",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -37526,7 +38985,7 @@ var items = {
       "name" : "privateKeyFile",
       "type" : "java.lang.String",
       "description" : "a ':' separated list of ssh private key files; uses 
first in list that can be read",
-      "defaultValue" : "/Users/geoff/.ssh/id_rsa:/Users/geoff/.ssh/id_dsa",
+      "defaultValue" : "/Users/juan/.ssh/id_rsa:/Users/juan/.ssh/id_dsa",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -37674,7 +39133,7 @@ var items = {
       "name" : "user",
       "type" : "java.lang.String",
       "description" : "user account for normal access to the remote machine, 
defaulting to local user",
-      "defaultValue" : "geoff",
+      "defaultValue" : "juan",
       "reconfigurable" : false,
       "constraints" : [ ],
       "links" : { }
@@ -37777,6 +39236,14 @@ var items = {
       "constraints" : [ ],
       "links" : { }
     }, {
+      "name" : "keep_machines",
+      "type" : "java.lang.Boolean",
+      "description" : "Whether by default to keep localhost machine instances 
available for re-use or to unmanage them",
+      "defaultValue" : false,
+      "reconfigurable" : false,
+      "constraints" : [ ],
+      "links" : { }
+    }, {
       "name" : "machineCustomizers",
       "type" : 
"java.util.Collection<org.apache.brooklyn.api.location.MachineLocationCustomizer>",
       "description" : "Optional machine customizers",
@@ -37889,7 +39356,7 @@ var items = {
       "name" : "localTempDir",
       "type" : "java.lang.String",
       "description" : "The directory on the local machine (i.e. running 
brooklyn) for writing temp files",
-      "defaultValue" : "/tmp/brooklyn-geoff-ssh-tmp",

[... 32 lines stripped ...]


Reply via email to