rename non-java mentions of classes which have been moved -- in plans, comments, and docs
minor other tidies, to policies docs, and camp Service.toString, to remove prefixes rather than just change them; in docs, we've also updated `package_path`, policies docs, links, and confirmed the build of api docs and catalog Project: http://git-wip-us.apache.org/repos/asf/brooklyn-docs/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-docs/commit/54f5b048 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-docs/tree/54f5b048 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-docs/diff/54f5b048 Branch: refs/heads/0.8.0-incubating Commit: 54f5b04823f88c05ec567332ee2c589f0589038b Parents: 7da046c Author: Alex Heneveld <[email protected]> Authored: Mon Aug 31 17:20:30 2015 +0100 Committer: Alex Heneveld <[email protected]> Committed: Tue Sep 1 12:05:39 2015 +0100 ---------------------------------------------------------------------- docs/README.md | 9 +- docs/_build/make-javadoc.sh | 2 +- .../big_examples/global-web-fabric/index.md | 8 +- docs/_includes/java_link.html | 4 +- docs/guide/dev/code/tests.md | 4 +- docs/guide/java/entitlements.md | 6 +- docs/guide/java/index.md | 2 +- docs/guide/java/policies.md | 64 +------ docs/guide/java/policy.md | 37 +++- docs/guide/ops/brooklyn_properties.md | 4 +- docs/guide/ops/catalog/index.md | 10 +- docs/guide/ops/locations/index.md | 8 +- docs/guide/ops/locations/more-locations.md | 4 +- docs/guide/ops/persistence/index.md | 2 +- docs/guide/ops/troubleshooting/deployment.md | 2 +- .../going-deep-in-java-and-logs.md | 175 +++++++++---------- .../ops/troubleshooting/softwareprocess.md | 3 +- docs/guide/start/_my-web-cluster.yaml | 2 +- docs/guide/yaml/chef/creating-blueprints.md | 2 +- docs/guide/yaml/custom-entities.md | 4 +- .../example_yaml/appserver-clustered-w-db.yaml | 4 +- .../appserver-configured-in-config.yaml | 2 +- .../yaml/example_yaml/appserver-configured.yaml | 2 +- .../appserver-w-db-other-flavor.yaml | 2 +- .../guide/yaml/example_yaml/appserver-w-db.yaml | 2 +- .../yaml/example_yaml/appserver-w-policy.yaml | 4 +- docs/guide/yaml/example_yaml/cluster-vm.yaml | 2 +- .../simple-appserver-with-location-byon.yaml | 2 +- .../simple-appserver-with-location.yaml | 2 +- .../yaml/example_yaml/simple-appserver.yaml | 2 +- ...est-app-with-enrichers-slightly-simpler.yaml | 18 +- docs/guide/yaml/index.md | 1 + docs/guide/yaml/winrm/about-winrm.md | 0 docs/guide/yaml/winrm/index.md | 4 +- docs/guide/yaml/yaml-reference.md | 12 +- .../release-process/verify-release-artifacts.md | 2 +- docs/website/learnmore/blueprint-tour.md | 4 +- .../website/learnmore/catalog/catalog-item.html | 2 +- 38 files changed, 201 insertions(+), 218 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/README.md ---------------------------------------------------------------------- diff --git a/docs/README.md b/docs/README.md index bf0766b..8728afc 100644 --- a/docs/README.md +++ b/docs/README.md @@ -63,7 +63,7 @@ Some issues we've encountered are: Seeing the Website and Docs --------------------------- -To build and see the documentation, run this command in your `docs` folder: +To build and most of see the documentation, run this command in your `docs` folder: jekyll serve @@ -73,6 +73,9 @@ Modified files will be detected and regenerated (but that might take up to 1m). Add `--no-watch` argument to turn off regeneration, or use `jekyll build` instead to generate a site in `_site` without a server. +This does <i>not</i> generate API docs and certain other material; +see the notes on `_build/build.sh` below for that. + Project Structure ----------------- @@ -141,8 +144,8 @@ Building the Website and Guide ------------------------------ For most users, the `jekyll serve` command described above is sufficient to test changes locally. -The main reason to use the build scripts (and to read this section) is to push changes to the server. -This power is reserved to Brooklyn committers. +The main reason to use the build scripts (and to read this section) is to push changes to the server +(requires Apache Brooklyn commit rights), or to test generated content such as API docs. The build is controlled by config files in `_build/` and accessed through `_build/build.sh`. There are a number of different builds possible; to list these, run: http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/_build/make-javadoc.sh ---------------------------------------------------------------------- diff --git a/docs/_build/make-javadoc.sh b/docs/_build/make-javadoc.sh index 56e3bb5..2fa6258 100755 --- a/docs/_build/make-javadoc.sh +++ b/docs/_build/make-javadoc.sh @@ -45,7 +45,7 @@ javadoc -sourcepath $SOURCE_PATHS \ if ((${PIPESTATUS[0]})) ; then echo ; echo ; echo "ERROR: javadoc process exited non-zero" ; exit 1 ; fi echo ; echo -if [ ! -f target/$JAVADOC_TARGET1_SUBPATH/brooklyn/entity/Entity.html ]; then echo "ERROR: missing expected content. Are the paths right?" ; exit 1 ; fi +if [ ! -f target/$JAVADOC_TARGET1_SUBPATH/org/apache/brooklyn/api/entity/Entity.html ]; then echo "ERROR: missing expected content. Are the paths right?" ; exit 1 ; fi if [ ! -z "`grep warnings target/javadoc.log`" ] ; then echo "WARNINGs occurred during javadoc build. See target/javadoc.log for more information." ; fi http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/_extra/big_examples/global-web-fabric/index.md ---------------------------------------------------------------------- diff --git a/docs/_extra/big_examples/global-web-fabric/index.md b/docs/_extra/big_examples/global-web-fabric/index.md index 8ddbadc..a8c373a 100644 --- a/docs/_extra/big_examples/global-web-fabric/index.md +++ b/docs/_extra/big_examples/global-web-fabric/index.md @@ -73,7 +73,7 @@ unpack it, and copy it to `~/.brooklyn/GeoLite2-City.mmdb`. This will be picked up automatically if it is installed. You can instead specify to use an online lookup service, such as [utrace.de](http://www.utrace.de) by specifying -`-Dbrooklyn.location.geo.HostGeoLookup=UtraceHostGeoLookup`; +`-Dorg.apache.brooklyn.core.location.geo.HostGeoLookup=UtraceHostGeoLookup`; but note this has a cap of 100 per day. This information is also used to display locations on the map @@ -202,13 +202,13 @@ import static com.google.common.base.Preconditions.checkNotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.brooklyn.api.entity.EntitySpec; import org.apache.brooklyn.config.StringConfigMap; import org.apache.brooklyn.core.entity.AbstractApplication; import org.apache.brooklyn.core.entity.Attributes; import org.apache.brooklyn.entity.dns.geoscaling.GeoscalingDnsService; import org.apache.brooklyn.entity.group.DynamicFabric; import org.apache.brooklyn.entity.proxy.AbstractController; -import org.apache.brooklyn.entity.proxying.EntitySpec; import org.apache.brooklyn.entity.webapp.ElasticJavaWebAppService; import PortRanges; {% endhighlight %} @@ -228,8 +228,8 @@ The following static constants are assumed (most of these as in the [Simple Web The code (which can safely be omitted) is as follows: {% highlight java %} -import brooklyn.launcher.BrooklynLauncher; -import brooklyn.util.CommandLineUtil; +import org.apache.brooklyn.launcher.BrooklynLauncher; +import org.apache.brooklyn.util.CommandLineUtil; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/_includes/java_link.html ---------------------------------------------------------------------- diff --git a/docs/_includes/java_link.html b/docs/_includes/java_link.html index 01ac1d7..9411877 100644 --- a/docs/_includes/java_link.html +++ b/docs/_includes/java_link.html @@ -4,7 +4,7 @@ includes a code-formatted class name with link to its javadoc and optionally its usage: -{ % include java_link.html class_name="JcloudsLocationConfig" package_path="brooklyn/location/jclouds" project_subpath="location/jclouds" % } +{ % include java_link.html class_name="JcloudsLocationConfig" package_path="org/apache/brooklyn/location/jclouds" project_subpath="location/jclouds" % } {% endcomment %}{% if include.project_subpath %}<code>{{ include.class_name }}</code> @@ -15,4 +15,4 @@ usage: {% endif %}{% comment %} must NOT have a newline at the end here, as the include is often done inline -{% endcomment %} \ No newline at end of file +{% endcomment %} http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/dev/code/tests.md ---------------------------------------------------------------------- diff --git a/docs/guide/dev/code/tests.md b/docs/guide/dev/code/tests.md index 460cc23..a19f814 100644 --- a/docs/guide/dev/code/tests.md +++ b/docs/guide/dev/code/tests.md @@ -25,7 +25,7 @@ To run these from the command line, use something like the following: To run a single test, use something like the following: -* run a single test class: `mvn -Dtest=brooklyn.enricher.EnrichersTest -DfailIfNoTests=false test` -* run a single test method: `mvn -Dtest=brooklyn.enricher.EnrichersTest#testAdding -DfailIfNoTests=false test` +* run a single test class: `mvn -Dtest=org.apache.brooklyn.enricher.stock.EnrichersTest -DfailIfNoTests=false test` +* run a single test method: `mvn -Dtest=org.apache.brooklyn.enricher.stock.EnrichersTest#testAdding -DfailIfNoTests=false test` <!-- TODO describe how to run each of these, as a group, and individually; and profiles --> http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/java/entitlements.md ---------------------------------------------------------------------- diff --git a/docs/guide/java/entitlements.md b/docs/guide/java/entitlements.md index a1dd544..f4e13b8 100644 --- a/docs/guide/java/entitlements.md +++ b/docs/guide/java/entitlements.md @@ -24,10 +24,10 @@ This answers the question who is allowed do what to whom, looking at the followi To set a custom entitlements manager to apply across the board, simply use: - brooklyn.entitlements.global=brooklyn.management.entitlement.AcmeEntitlementManager + brooklyn.entitlements.global=org.apache.brooklyn.core.mgmt.entitlement.AcmeEntitlementManager The example above refers to a sample manager which is included in the test JARs of Brooklyn, -which you can see [here]({{ site.brooklyn.url.git }}/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManagerTest.java), +which you can see [here]({{ site.brooklyn.url.git }}/core/src/test/java/org/apache/brooklyn/core/mgmt/entitlement/AcmeEntitlementManagerTest.java), and include in your project by adding the core tests JAR to your `dropins` folder. There are some entitlements schemes which exist out of the box, so for a simpler setup, @@ -38,5 +38,5 @@ which re-use the LDAP authorization support in Brooklyn, allowing permissions objects to be declared in LDAP leveraging regular expressions. For more information on this, ask on IRC or the mailing list, and see -{% include java_link.html class_name="EntitlementManager" package_path="brooklyn/management/entitlement" project_subpath="api" %}. +{% include java_link.html class_name="EntitlementManager" package_path="org/apache/brooklyn/core/mgmt/entitlement" project_subpath="api" %}. http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/java/index.md ---------------------------------------------------------------------- diff --git a/docs/guide/java/index.md b/docs/guide/java/index.md index c2bd407..279ca4b 100644 --- a/docs/guide/java/index.md +++ b/docs/guide/java/index.md @@ -9,8 +9,8 @@ children: - common-usage.md - entity.md - entities.md -- policy.md - policies.md +- policy.md - service-state.md - entitlements.md --- http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/java/policies.md ---------------------------------------------------------------------- diff --git a/docs/guide/java/policies.md b/docs/guide/java/policies.md index 9457f72..aee2766 100644 --- a/docs/guide/java/policies.md +++ b/docs/guide/java/policies.md @@ -21,51 +21,6 @@ When a policy runs it can: Entities can have zero or more ``Policy`` instances attached to them. -Writing Policies ----------------- - -### Sample Policy - -<!--- -TODO ---> - -*This section is not complete. Feel free to [fork]({{site.path.guide}}/dev/code) the docs and lend a hand.* - -### Best Practice - -The following recommendations should be considered when designing policies: - -#### Management should take place as "low" as possible in the hierarchy -* place management responsibility in policies at the entity, as much as possible ideally management should take run as a policy on the relevant entity - -* place escalated management responsibility at the parent entity. Where this is impractical, perhaps because two aspects of an entity are best handled in two different places, ensure that the separation of responsibilities is documented and there is a group membership relationship between secondary/aspect managers. - - -#### Policies should be small and composable -<!-- -TODO Requires Content ---> - -e.g. one policy which takes a sensor and emits a different, enriched sensor, and a second policy which responds to the enriched sensor of the first (e.g. a policy detects a process is maxed out and emits a TOO_HOT sensor; a second policy responds to this by scaling up the VM where it is running, requesting more CPU) -#### Where a policy cannot resolve a situation at an entity, the issue should be escalated to a manager with a compatible policy. - -Typically escalation will go to the entity parent, and then cascade up. -e.g. if the earlier VM CPU cannot be increased, the TOO_HOT event may go to the parent, a cluster entity, which attempts to balance. If the cluster cannot balance, then to another policy which attempts to scale out the cluster, and should the cluster be unable to scale, to a third policy which emits TOO_HOT for the cluster. - -#### Management escalation should be carefully designed so that policies are not incompatible - -Order policies carefully, and mark sensors as "handled" (or potentially "swallow" them locally), so that subsequent policies and parent entities do not take superfluous (or contradictory) corrective action. - - -For this release, some of the mechanisms for implementing the above practices are still being developed. - -### Implementation Classes - -*This section is not complete. Feel free to [fork]({{site.path.guide}}/dev/code) the docs and lend a hand.* - -- extend ``AbstractPolicy``, or override an existing policy - Off-the-Shelf Policies ---------------------- @@ -73,11 +28,12 @@ Off-the-Shelf Policies Policies are highly reusable as their inputs, thresholds and targets are customizable. ### Management Policies -- Resizer Policy + +- AutoScaler Policy Increases or decreases the size of a Resizable entity based on an aggregate sensor value, the current size of the entity, and customized high/low watermarks. - A Resizer policy can take any sensor as a metric, have its watermarks tuned live, and target any resizable entity - be it an application server managing how many instances it handles, or a tier managing global capacity. + An AutoScaler policy can take any sensor as a metric, have its watermarks tuned live, and target any resizable entity - be it an application server managing how many instances it handles, or a tier managing global capacity. e.g. if the average request per second across a cluster of Tomcat servers goes over the high watermark, it will resize the cluster to bring the average back to within the watermarks. @@ -87,7 +43,7 @@ TODO - describe how they can be customised (briefly mention sensors) --> -### Enricher Policies +### Enrichers * Delta @@ -110,14 +66,8 @@ TODO - describe how they can be customised (briefly mention sensors) Aggregates multiple sensor values (usually across a tier, esp. a cluster) and performs a supplied aggregation method to them to return an aggregate figure, e.g. sum, mean, median, etc. -Implementing Policies ---------------------- - -<!--- -TODO ---> - -*This section is not yet complete. Feel free to [fork]({{site.path.guide}}/dev/code) the docs and lend a hand.* -Please see the class* ``brooklyn.policy.Policy`` *and implementations. +Next: Writing a Policy +--------------------------- +To write a policy, see the section on [Writing a Policy](policy.html). http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/java/policy.md ---------------------------------------------------------------------- diff --git a/docs/guide/java/policy.md b/docs/guide/java/policy.md index fbb79db..93ad8ba 100644 --- a/docs/guide/java/policy.md +++ b/docs/guide/java/policy.md @@ -3,12 +3,14 @@ layout: website-normal title: Writing a Policy --- +### Your First Policy + Policies perform the active management enabled by Brooklyn. Each policy instance is associated with an entity, and at runtime it will typically subscribe to sensors on that entity or children, performing some computation and optionally actions when a subscribed sensor event occurs. This action might be invoking an effector or emitting a new sensor, -depending the desired behvaiour is. +depending the desired behavior is. Writing a policy is straightforward. Simply extend ``AbstractPolicy``, @@ -33,14 +35,43 @@ and supply the computation and/or activity desired whenever that event occurs: } {% endhighlight %} + You'll want to do more complicated things, no doubt, like access other entities, perform multiple subscriptions, and emit other sensors -- and you can. -See the source code, and see some commonly used policies -in ``AutoScalerPolicy`` and ``RollingMeanEnricher``. +See the best practices below and source code for some commonly used policies and enrichers, +such as ``AutoScalerPolicy`` and ``RollingMeanEnricher``. One rule of thumb, to close on: try to keep policies simple, and compose them together at runtime; for instance, if a complex computation triggers an action, define one **enricher** policy to aggregate other sensors and emit a new sensor, then write a second policy to perform that action. + + +### Best Practice + +The following recommendations should be considered when designing policies: + +#### Management should take place as "low" as possible in the hierarchy +* place management responsibility in policies at the entity, as much as possible ideally management should take run as a policy on the relevant entity + +* place escalated management responsibility at the parent entity. Where this is impractical, perhaps because two aspects of an entity are best handled in two different places, ensure that the separation of responsibilities is documented and there is a group membership relationship between secondary/aspect managers. + + +#### Policies should be small and composable + +e.g. one policy which takes a sensor and emits a different, enriched sensor, and a second policy which responds to the enriched sensor of the first (e.g. a policy detects a process is maxed out and emits a TOO_HOT sensor; a second policy responds to this by scaling up the VM where it is running, requesting more CPU) + +#### Where a policy cannot resolve a situation at an entity, the issue should be escalated to a manager with a compatible policy. + +Typically escalation will go to the entity parent, and then cascade up. +e.g. if the earlier VM CPU cannot be increased, the TOO_HOT event may go to the parent, a cluster entity, which attempts to balance. If the cluster cannot balance, then to another policy which attempts to scale out the cluster, and should the cluster be unable to scale, to a third policy which emits TOO_HOT for the cluster. + +#### Management escalation should be carefully designed so that policies are not incompatible + +Order policies carefully, and mark sensors as "handled" (or potentially "swallow" them locally), so that subsequent policies and parent entities do not take superfluous (or contradictory) corrective action. + +### Implementation Classes + +- extend ``AbstractPolicy``, or override an existing policy http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/ops/brooklyn_properties.md ---------------------------------------------------------------------- diff --git a/docs/guide/ops/brooklyn_properties.md b/docs/guide/ops/brooklyn_properties.md index 637dba2..cb00ceb 100644 --- a/docs/guide/ops/brooklyn_properties.md +++ b/docs/guide/ops/brooklyn_properties.md @@ -171,7 +171,7 @@ with a `default` set (and if not specified `default` defaults to `minimal`); so the above can equivalently be written: {% highlight properties %} -brooklyn.entitlements.global=brooklyn.management.entitlement.PerUserEntitlementManager +brooklyn.entitlements.global=org.apache.brooklyn.core.mgmt.entitlement.PerUserEntitlementManager brooklyn.entitlements.perUser.default=readonly brooklyn.entitlements.perUser.admin=root brooklyn.entitlements.perUser.support=readonly @@ -181,7 +181,7 @@ brooklyn.entitlements.perUser.metrics=minimal For more information, see [Java: Entitlements]({{ site.path.guide }}/java/entitlements.html). or -{% include java_link.html class_name="EntitlementManager" package_path="brooklyn/management/entitlement" project_subpath="api" %}. +{% include java_link.html class_name="EntitlementManager" package_path="org/apache/brooklyn/api/mgmt/entitlement" project_subpath="api" %}. http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/ops/catalog/index.md ---------------------------------------------------------------------- diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md index 9a65448..dea666f 100644 --- a/docs/guide/ops/catalog/index.md +++ b/docs/guide/ops/catalog/index.md @@ -134,7 +134,7 @@ The following optional catalog metadata is supported: The following example installs the `RiakNode` entity, making it also available as an application template, with a nice display name, description, and icon. It can be referred in other blueprints to as `datastore:1.0`, -and its implementation will be the Java class `brooklyn.entity.nosql.riak.RiakNode` included with Brooklyn. +and its implementation will be the Java class `org.apache.brooklyn.entity.nosql.riak.RiakNode` included with Brooklyn. ~~~ yaml brooklyn.catalog: @@ -145,7 +145,7 @@ brooklyn.catalog: name: Datastore (Riak) description: Riak is an open-source NoSQL key-value data store. item: - type: brooklyn.entity.nosql.riak.RiakNode + type: org.apache.brooklyn.entity.nosql.riak.RiakNode name: Riak Node ~~~ @@ -162,11 +162,11 @@ brooklyn.catalog: items: - id: riak-node item: - type: brooklyn.entity.nosql.riak.RiakNode + type: org.apache.brooklyn.entity.nosql.riak.RiakNode name: Riak Node - id: riak-cluster item: - type: brooklyn.entity.nosql.riak.RiakCluster + type: org.apache.brooklyn.entity.nosql.riak.RiakCluster name: Riak Cluster - id: datastore name: Datastore (Riak Cluster) @@ -191,7 +191,7 @@ brooklyn.catalog: The items this will install are: - `riak-node`, as before, but with a different name -- `riak-cluster` as a convenience short name for the `brooklyn.entity.nosql.riak.RiakCluster` class +- `riak-cluster` as a convenience short name for the `org.apache.brooklyn.entity.nosql.riak.RiakCluster` class - `datastore`, now pointing at the `riak-cluster` blueprint, in SoftLayer and with the given size and machine spec, as the default implementation for anyone requesting a `datastore` (and if installed atop the previous example, new references to `datastore` http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/ops/locations/index.md ---------------------------------------------------------------------- diff --git a/docs/guide/ops/locations/index.md b/docs/guide/ops/locations/index.md index 9fb5572..60dd2e0 100644 --- a/docs/guide/ops/locations/index.md +++ b/docs/guide/ops/locations/index.md @@ -106,7 +106,7 @@ These steps can be skipped or customized as described below. The following is a subset of the most commonly used configuration keys used to customize cloud provisioning. For more keys and more detail on the keys below, see -{% include java_link.html class_name="JcloudsLocationConfig" package_path="brooklyn/location/jclouds" project_subpath="locations/jclouds" %}. +{% include java_link.html class_name="JcloudsLocationConfig" package_path="org/apache/brooklyn/location/jclouds" project_subpath="locations/jclouds" %}. ###### VM Creation @@ -131,10 +131,10 @@ For more keys and more detail on the keys below, see including the ID of the app and of the entity. (As many cloud portals let you filter views, this can help find a specific entity or all machines for a given application.) For more sophisticated control over host naming, you can supply a custom - {% include java_link.html class_name="CloudMachineNamer" package_path="brooklyn/location/cloud/names" project_subpath="core" %}, + {% include java_link.html class_name="CloudMachineNamer" package_path="org/apache/brooklyn/core/location/cloud/names" project_subpath="core" %}, for example `cloudMachineNamer: CustomMachineNamer`. - {% include java_link.html class_name="CustomMachineNamer" package_path="brooklyn/location/cloud/names" project_subpath="core" %} + {% include java_link.html class_name="CustomMachineNamer" package_path="org/apache/brooklyn/core/location/cloud/names" project_subpath="core" %} will use the entity's name or following a template you supply. On many clouds, a random suffix will be appended to help guarantee uniqueness; this can be removed by setting `vmNameSaltLength: 0` (selected clouds only). @@ -154,7 +154,7 @@ For more keys and more detail on the keys below, see machines with `machineCreateAttempts` (jclouds only). This is useful as an efficient low-level fix for those occasions when cloud providers give machines that are dead on arrival. You can of course also resolve it at a higher level with a policy such as - {% include java_link.html class_name="ServiceRestarter" package_path="brooklyn/policy/ha" project_subpath="policies" %}. + {% include java_link.html class_name="ServiceRestarter" package_path="org/apache/brooklyn/policy/ha" project_subpath="policy" %}. - If you want to investigate failures, set `destroyOnFailure: false` to keep failed VM's around. (You'll have to manually clean them up.) http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/ops/locations/more-locations.md ---------------------------------------------------------------------- diff --git a/docs/guide/ops/locations/more-locations.md b/docs/guide/ops/locations/more-locations.md index 994eaf7..0a00bf5 100644 --- a/docs/guide/ops/locations/more-locations.md +++ b/docs/guide/ops/locations/more-locations.md @@ -17,7 +17,7 @@ For example: {% highlight yaml %} services: -- type: brooklyn.entity.webapp.jboss.JBoss7Server +- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server location: host: 192.168.0.1 {% endhighlight %} @@ -50,6 +50,6 @@ and then to `acct2`. ### The Server Pool -The {% include java_link.html class_name="ServerPool" package_path="brooklyn/entity/pool" project_subpath="software/base" %} +The {% include java_link.html class_name="ServerPool" package_path="org/apache/brooklyn/entity/machine/pool" project_subpath="software/base" %} entity type allows defining an entity which becomes available as a location. http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/ops/persistence/index.md ---------------------------------------------------------------------- diff --git a/docs/guide/ops/persistence/index.md b/docs/guide/ops/persistence/index.md index ab8e724..a74f301 100644 --- a/docs/guide/ops/persistence/index.md +++ b/docs/guide/ops/persistence/index.md @@ -99,7 +99,7 @@ Object Store Persistence Brooklyn can persist its state to any Object Store API that jclouds supports including S3, Swift and Azure. This gives access to any compatible Object Store product or cloud provider including AWS-S3, SoftLayer, Rackspace, HP and Microsoft Azure. For a complete list of supported -providers, see [jclouds](http://jclouds.apache.org/guides/providers/#blobstore-providers). +providers, see [jclouds](http://jclouds.apache.org/reference/providers/#blobstore). To configure the Object Store, add the credentials to `~/.brooklyn/brooklyn.properties` such as: http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/ops/troubleshooting/deployment.md ---------------------------------------------------------------------- diff --git a/docs/guide/ops/troubleshooting/deployment.md b/docs/guide/ops/troubleshooting/deployment.md index 6b1baea..38b6c5e 100644 --- a/docs/guide/ops/troubleshooting/deployment.md +++ b/docs/guide/ops/troubleshooting/deployment.md @@ -16,7 +16,7 @@ brackets. The error `Unrecognized application blueprint format: no services defined` means that the `services:` section is missing. -An error like `Deployment plan item io.brooklyn.camp.spi.pdp.Service@23c159e2[name=<null>,description=<null>,serviceType=com.acme.Foo,characteristics=[],customAttributes={}] cannot be matched` means that the given entity type (in this case com.acme.Foo) is not in the catalog or on the classpath. +An error like `Deployment plan item Service[name=<null>,description=<null>,serviceType=com.acme.Foo,characteristics=[],customAttributes={}] cannot be matched` means that the given entity type (in this case com.acme.Foo) is not in the catalog or on the classpath. An error like `Illegal parameter for 'location' (aws-ec3); not resolvable: java.util.NoSuchElementException: Unknown location 'aws-ec3': either this location is not recognised or there is a problem with location resolver configuration` means that the given location (in this case aws-ec3) was unknown. This means it does not match any of the named locations in brooklyn.properties, nor any of the http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md ---------------------------------------------------------------------- diff --git a/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md b/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md index 065eef2..8a66ce0 100644 --- a/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md +++ b/docs/guide/ops/troubleshooting/going-deep-in-java-and-logs.md @@ -15,35 +15,35 @@ a bash script. First let's take a look at the `customize()` method of the Tomcat server blueprint: {% highlight java %} - @Override - public void customize() { - newScript(CUSTOMIZING) - .body.append("mkdir -p conf logs webapps temp") - .failOnNonZeroResultCode() - .execute(); - - copyTemplate(entity.getConfig(TomcatServer.SERVER_XML_RESOURCE), Os.mergePaths(getRunDir(), "conf", "server.xml")); - copyTemplate(entity.getConfig(TomcatServer.WEB_XML_RESOURCE), Os.mergePaths(getRunDir(), "conf", "web.xml")); - - if (isProtocolEnabled("HTTPS")) { - String keystoreUrl = Preconditions.checkNotNull(getSslKeystoreUrl(), "keystore URL must be specified if using HTTPS for " + entity); - String destinationSslKeystoreFile = getHttpsSslKeystoreFile(); - InputStream keystoreStream = resource.getResourceFromUrl(keystoreUrl); - getMachine().copyTo(keystoreStream, destinationSslKeystoreFile); - } - - getEntity().deployInitialWars(); - } +@Override +public void customize() { + newScript(CUSTOMIZING) + .body.append("mkdir -p conf logs webapps temp") + .failOnNonZeroResultCode() + .execute(); + + copyTemplate(entity.getConfig(TomcatServer.SERVER_XML_RESOURCE), Os.mergePaths(getRunDir(), "conf", "server.xml")); + copyTemplate(entity.getConfig(TomcatServer.WEB_XML_RESOURCE), Os.mergePaths(getRunDir(), "conf", "web.xml")); + + if (isProtocolEnabled("HTTPS")) { + String keystoreUrl = Preconditions.checkNotNull(getSslKeystoreUrl(), "keystore URL must be specified if using HTTPS for " + entity); + String destinationSslKeystoreFile = getHttpsSslKeystoreFile(); + InputStream keystoreStream = resource.getResourceFromUrl(keystoreUrl); + getMachine().copyTo(keystoreStream, destinationSslKeystoreFile); + } + + getEntity().deployInitialWars(); +} {% endhighlight %} Here we can see that it's running a script to create four directories before continuing with the customization. Let's introduce an error by changing `mkdir` to `mkrid`: {% highlight java %} - newScript(CUSTOMIZING) - .body.append("mkrid -p conf logs webapps temp") // `mkdir` changed to `mkrid` - .failOnNonZeroResultCode() - .execute(); +newScript(CUSTOMIZING) + .body.append("mkrid -p conf logs webapps temp") // `mkdir` changed to `mkrid` + .failOnNonZeroResultCode() + .execute(); {% endhighlight %} Now let's try deploying this using the following YAML: @@ -53,7 +53,7 @@ Now let's try deploying this using the following YAML: name: Tomcat failure test location: localhost services: -- type: brooklyn.entity.webapp.tomcat.TomcatServer +- type: org.apache.brooklyn.entity.webapp.tomcat.TomcatServer {% endhighlight %} @@ -93,16 +93,16 @@ STDOUT Executed /tmp/brooklyn-20150721-132251052-l4b9-customizing_TomcatServerImpl_i.sh, result 127: Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x} java.lang.IllegalStateException: Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x} - at brooklyn.entity.basic.lifecycle.ScriptHelper.logWithDetailsAndThrow(ScriptHelper.java:390) - at brooklyn.entity.basic.lifecycle.ScriptHelper.executeInternal(ScriptHelper.java:379) - at brooklyn.entity.basic.lifecycle.ScriptHelper$8.call(ScriptHelper.java:289) - at brooklyn.entity.basic.lifecycle.ScriptHelper$8.call(ScriptHelper.java:287) - at brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343) - at brooklyn.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469) + at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.logWithDetailsAndThrow(ScriptHelper.java:390) + at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.executeInternal(ScriptHelper.java:379) + at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper$8.call(ScriptHelper.java:289) + at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper$8.call(ScriptHelper.java:287) + at org.apache.brooklyn.core.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343) + at org.apache.brooklyn.core.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) -at java.lang.Thread.run(Thread.java:745) + at java.lang.Thread.run(Thread.java:745) {% endhighlight %} In order to find the exception, we'll need to look in Brooklyn's debug log file. By default, the debug log file @@ -118,34 +118,32 @@ In this case, the `?Tomcat` search takes us directly to the full stack trace (On is shown here): {% highlight console %} - -at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[guava-17.0.jar:na] -at brooklyn.util.task.BasicTask.get(BasicTask.java:343) ~[classes/:na] -at brooklyn.util.task.BasicTask.getUnchecked(BasicTask.java:352) ~[classes/:na] -... 9 common frames omitted +... at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[guava-17.0.jar:na] + at org.apache.brooklyn.core.util.task.BasicTask.get(BasicTask.java:343) ~[classes/:na] + at org.apache.brooklyn.core.util.task.BasicTask.getUnchecked(BasicTask.java:352) ~[classes/:na] + ... 9 common frames omitted Caused by: brooklyn.util.exceptions.PropagatedRuntimeException: -at brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:97) ~[classes/:na] -at brooklyn.util.task.BasicTask.getUnchecked(BasicTask.java:354) ~[classes/:na] -at brooklyn.entity.basic.lifecycle.ScriptHelper.execute(ScriptHelper.java:339) ~[classes/:na] -at brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:72) ~[classes/:na] -at brooklyn.entity.basic.AbstractSoftwareProcessDriver$8.run(AbstractSoftwareProcessDriver.java:150) ~[classes/:na] -at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_71] -at brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343) ~[classes/:na] -... 5 common frames omitted + at org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:97) ~[classes/:na] + at org.apache.brooklyn.core.util.task.BasicTask.getUnchecked(BasicTask.java:354) ~[classes/:na] + at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.execute(ScriptHelper.java:339) ~[classes/:na] + at org.apache.brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:72) ~[classes/:na] + at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver$8.run(AbstractSoftwareProcessDriver.java:150) ~[classes/:na] + at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_71] + at org.apache.brooklyn.core.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343) ~[classes/:na] + ... 5 common frames omitted Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x} -at java.util.concurrent.FutureTask.report(FutureTask.java:122) [na:1.7.0_71] -at java.util.concurrent.FutureTask.get(FutureTask.java:188) [na:1.7.0_71] -at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[guava-17.0.jar:na] -at brooklyn.util.task.BasicTask.get(BasicTask.java:343) ~[classes/:na] -at brooklyn.util.task.BasicTask.getUnchecked(BasicTask.java:352) ~[classes/:na] -... 10 common frames omitted + at java.util.concurrent.FutureTask.report(FutureTask.java:122) [na:1.7.0_71] + at java.util.concurrent.FutureTask.get(FutureTask.java:188) [na:1.7.0_71] + at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[guava-17.0.jar:na] + at org.apache.brooklyn.core.util.task.BasicTask.get(BasicTask.java:343) ~[classes/:na] + at org.apache.brooklyn.core.util.task.BasicTask.getUnchecked(BasicTask.java:352) ~[classes/:na] + ... 10 common frames omitted Caused by: java.lang.IllegalStateException: Execution failed, invalid result 127 for customizing TomcatServerImpl{id=e1HP2s8x} -at brooklyn.entity.basic.lifecycle.ScriptHelper.logWithDetailsAndThrow(ScriptHelper.java:390) ~[classes/:na] -at brooklyn.entity.basic.lifecycle.ScriptHelper.executeInternal(ScriptHelper.java:379) ~[classes/:na] -at brooklyn.entity.basic.lifecycle.ScriptHelper$8.call(ScriptHelper.java:289) ~[classes/:na] -at brooklyn.entity.basic.lifecycle.ScriptHelper$8.call(ScriptHelper.java:287) ~[classes/:na] -... 6 common frames omitted - + at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.logWithDetailsAndThrow(ScriptHelper.java:390) ~[classes/:na] + at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.executeInternal(ScriptHelper.java:379) ~[classes/:na] + at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper$8.call(ScriptHelper.java:289) ~[classes/:na] + at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper$8.call(ScriptHelper.java:287) ~[classes/:na] + ... 6 common frames omitted {% endhighlight %} Brooklyn's use of tasks and helper classes can make the stack trace a little harder than usual to follow, but a good @@ -153,7 +151,7 @@ place to start is to look through the stack trace for the node's implementation named `FooNodeImpl` or `FooSshDriver`). In this case we can see the following: {% highlight console %} -at brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:72) ~[classes/:na] +at org.apache.brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:72) ~[classes/:na] {% endhighlight %} Combining this with the error message of `mkrid: command not found` we can see that indeed `mkdir` has been @@ -192,27 +190,27 @@ this case it's shown in the Detailed Status section, and we don't need to go to Failed after 221ms: Error getting resource 'classpath://nonexistent.xml' for TomcatServerImpl{id=PVZxDKU1}: java.io.IOException: Error accessing classpath://nonexistent.xml: java.io.IOException: nonexistent.xml not found on classpath java.lang.RuntimeException: Error getting resource 'classpath://nonexistent.xml' for TomcatServerImpl{id=PVZxDKU1}: java.io.IOException: Error accessing classpath://nonexistent.xml: java.io.IOException: nonexistent.xml not found on classpath - at brooklyn.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:297) - at brooklyn.util.ResourceUtils.getResourceAsString(ResourceUtils.java:475) - at brooklyn.entity.basic.AbstractSoftwareProcessDriver.getResourceAsString(AbstractSoftwareProcessDriver.java:447) - at brooklyn.entity.basic.AbstractSoftwareProcessDriver.processTemplate(AbstractSoftwareProcessDriver.java:469) - at brooklyn.entity.basic.AbstractSoftwareProcessDriver.copyTemplate(AbstractSoftwareProcessDriver.java:390) - at brooklyn.entity.basic.AbstractSoftwareProcessDriver.copyTemplate(AbstractSoftwareProcessDriver.java:379) - at brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:79) - at brooklyn.entity.basic.AbstractSoftwareProcessDriver$8.run(AbstractSoftwareProcessDriver.java:150) + at org.apache.brooklyn.core.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:297) + at org.apache.brooklyn.core.util.ResourceUtils.getResourceAsString(ResourceUtils.java:475) + at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver.getResourceAsString(AbstractSoftwareProcessDriver.java:447) + at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver.processTemplate(AbstractSoftwareProcessDriver.java:469) + at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver.copyTemplate(AbstractSoftwareProcessDriver.java:390) + at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver.copyTemplate(AbstractSoftwareProcessDriver.java:379) + at org.apache.brooklyn.entity.webapp.tomcat.TomcatSshDriver.customize(TomcatSshDriver.java:79) + at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessDriver$8.run(AbstractSoftwareProcessDriver.java:150) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) - at brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343) - at brooklyn.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469) + at org.apache.brooklyn.core.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343) + at org.apache.brooklyn.core.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) -at java.lang.Thread.run(Thread.java:745) - Caused by: java.io.IOException: Error accessing classpath://nonexistent.xml: java.io.IOException: nonexistent.xml not found on classpath -at brooklyn.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:233) + at java.lang.Thread.run(Thread.java:745) +Caused by: java.io.IOException: Error accessing classpath://nonexistent.xml: java.io.IOException: nonexistent.xml not found on classpath + at org.apache.brooklyn.core.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:233) ... 14 more - Caused by: java.io.IOException: nonexistent.xml not found on classpath - at brooklyn.util.ResourceUtils.getResourceViaClasspath(ResourceUtils.java:372) -at brooklyn.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:230) +Caused by: java.io.IOException: nonexistent.xml not found on classpath + at org.apache.brooklyn.core.util.ResourceUtils.getResourceViaClasspath(ResourceUtils.java:372) + at org.apache.brooklyn.core.util.ResourceUtils.getResourceFromUrl(ResourceUtils.java:230) ... 14 more {% endhighlight %} @@ -230,7 +228,7 @@ the entity fails to start. We can simulate this type of failure by launching Tomcat with an invalid configuration file. As seen in the previous examples, Brooklyn copies two xml configuration files to the server: `server.xml` and `web.xml` -The first few non-comment lines of `server.xml` are as follows (you can see the full file [here](https://github.com/apache/incubator-brooklyn/blob/master/software/webapp/src/main/resources/brooklyn/entity/webapp/tomcat/server.xml)): +The first few non-comment lines of `server.xml` are as follows (you can see the full file [here]({{ site.brooklyn.url.git }}/software/webapp/src/main/resources/org/apache/brooklyn/entity/webapp/tomcat/server.xml)): {% highlight xml %} @@ -275,14 +273,14 @@ The task that failed was the `post-start` task, and the stack trace from the Det Failed after 5m 1s: Timeout waiting for SERVICE_UP from TomcatServerImpl{id=BUHgQeOs} java.lang.IllegalStateException: Timeout waiting for SERVICE_UP from TomcatServerImpl{id=BUHgQeOs} - at brooklyn.entity.basic.Entities.waitForServiceUp(Entities.java:1073) - at brooklyn.entity.basic.SoftwareProcessImpl.waitForServiceUp(SoftwareProcessImpl.java:388) - at brooklyn.entity.basic.SoftwareProcessImpl.waitForServiceUp(SoftwareProcessImpl.java:385) - at brooklyn.entity.basic.SoftwareProcessDriverLifecycleEffectorTasks.postStartCustom(SoftwareProcessDriverLifecycleEffectorTasks.java:164) - at brooklyn.entity.software.MachineLifecycleEffectorTasks$7.run(MachineLifecycleEffectorTasks.java:433) + at org.apache.brooklyn.core.entity.Entities.waitForServiceUp(Entities.java:1073) + at org.apache.brooklyn.entity.software.base.SoftwareProcessImpl.waitForServiceUp(SoftwareProcessImpl.java:388) + at org.apache.brooklyn.entity.software.base.SoftwareProcessImpl.waitForServiceUp(SoftwareProcessImpl.java:385) + at org.apache.brooklyn.entity.software.base.SoftwareProcessDriverLifecycleEffectorTasks.postStartCustom(SoftwareProcessDriverLifecycleEffectorTasks.java:164) + at org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$7.run(MachineLifecycleEffectorTasks.java:433) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) - at brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343) - at brooklyn.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469) + at org.apache.brooklyn.core.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:343) + at org.apache.brooklyn.core.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) @@ -418,7 +416,7 @@ Let's go back to the Brooklyn debug console and look for the `webapp.tomcat.conn [](images/jmx-sensors-large.png) As the sensor is not shown, it's likely that it's simply null or not set. We can check this by clicking -the `Show/hide empty records` icon (highlighted in yellow above): +the "Show/hide empty records" icon (highlighted in yellow above): [](images/jmx-sensors-all-large.png) @@ -448,7 +446,7 @@ Let's take a look in the log file: {% highlight console %} -less /tmp/brooklyn-martin/apps/c3bmrlC3/entities/TomcatServer_C1TAjYia/logs/catalina.out +$ less /tmp/brooklyn-martin/apps/c3bmrlC3/entities/TomcatServer_C1TAjYia/logs/catalina.out Jul 21, 2015 4:12:12 PM org.apache.tomcat.util.digester.Digester fatalError SEVERE: Parse Fatal Error at line 143 column 3: The element type "unmatched-element" must be terminated by the matching end-tag "</unmatched-element>". @@ -475,12 +473,11 @@ SEVERE: Parse Fatal Error at line 143 column 3: The element type "unmatched-elem at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321) -at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) - - Jul 21, 2015 4:12:12 PM org.apache.catalina.startup.Catalina load - WARNING: Catalina.start using conf/server.xml: The element type "unmatched-element" must be terminated by the matching end-tag "</unmatched-element>". - Jul 21, 2015 4:12:12 PM org.apache.catalina.startup.Catalina start - SEVERE: Cannot start server. Server instance is not configured. + at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) +Jul 21, 2015 4:12:12 PM org.apache.catalina.startup.Catalina load +WARNING: Catalina.start using conf/server.xml: The element type "unmatched-element" must be terminated by the matching end-tag "</unmatched-element>". +Jul 21, 2015 4:12:12 PM org.apache.catalina.startup.Catalina start +SEVERE: Cannot start server. Server instance is not configured. {% endhighlight %} http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/ops/troubleshooting/softwareprocess.md ---------------------------------------------------------------------- diff --git a/docs/guide/ops/troubleshooting/softwareprocess.md b/docs/guide/ops/troubleshooting/softwareprocess.md index 5e7f883..85ab2c0 100644 --- a/docs/guide/ops/troubleshooting/softwareprocess.md +++ b/docs/guide/ops/troubleshooting/softwareprocess.md @@ -20,7 +20,8 @@ or `~/.ssh/id_dsa` on the Brooklyn host (uploading the associated `~/.ssh/id_rsa authorised_keys). However, this can be overridden (e.g. with specific passwords etc) in the location's configuration. -For Windows, there is a similar sensor with the name `host.winrmAddress`. (TODO sensor for password?) +For Windows, there is a similar sensor with the name `host.winrmAddress`. +<!-- TODO similar sensor for password? --> ## Install and Run Directories http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/start/_my-web-cluster.yaml ---------------------------------------------------------------------- diff --git a/docs/guide/start/_my-web-cluster.yaml b/docs/guide/start/_my-web-cluster.yaml index d4c5ce6..ba22574 100644 --- a/docs/guide/start/_my-web-cluster.yaml +++ b/docs/guide/start/_my-web-cluster.yaml @@ -4,7 +4,7 @@ location: localhost services: -- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster +- type: org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster name: My Web brooklyn.config: wars.root: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/chef/creating-blueprints.md ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/chef/creating-blueprints.md b/docs/guide/yaml/chef/creating-blueprints.md index 337c7f3..8d30131 100644 --- a/docs/guide/yaml/chef/creating-blueprints.md +++ b/docs/guide/yaml/chef/creating-blueprints.md @@ -27,7 +27,7 @@ The first thing to note is the type definition: - type: chef:mysql -This indicates that the Chef entity should be used (`brooklyn.entity.chef.ChefEntity`) +This indicates that the Chef entity should be used (`org.apache.brooklyn.entity.chef.ChefEntity`) to interpret and pass the configuration, and that it should be parameterised with a `brooklyn.chef.cookbook.primary.name` of `mysql`. This is the cookbook namespace used by default for determining what to install and run. http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/custom-entities.md ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/custom-entities.md b/docs/guide/yaml/custom-entities.md index 04f7763..a2887a9 100644 --- a/docs/guide/yaml/custom-entities.md +++ b/docs/guide/yaml/custom-entities.md @@ -76,7 +76,7 @@ using `env` variables to inject the `netcat-server` location and env: TARGET_HOSTNAME: $brooklyn:component("netcat-server").attributeWhenReady("host.name") brooklyn.initializers: - - type: brooklyn.entity.software.ssh.SshCommandEffector + - type: org.apache.brooklyn.core.effector.ssh.SshCommandEffector brooklyn.config: name: sayHiNetcat description: Echo a small hello string to the netcat entity @@ -94,7 +94,7 @@ so that the `$message` we passed above gets logged and reported back: echo hello | nc -l 4321 >> server-input & echo $! > $PID_FILE brooklyn.initializers: - - type: brooklyn.entity.software.ssh.SshCommandSensor + - type: org.apache.brooklyn.core.sensor.ssh.SshCommandSensor brooklyn.config: name: output.last command: tail -1 server-input http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/example_yaml/appserver-clustered-w-db.yaml ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/example_yaml/appserver-clustered-w-db.yaml b/docs/guide/yaml/example_yaml/appserver-clustered-w-db.yaml index 79bc187..8bbb14f 100644 --- a/docs/guide/yaml/example_yaml/appserver-clustered-w-db.yaml +++ b/docs/guide/yaml/example_yaml/appserver-clustered-w-db.yaml @@ -1,10 +1,10 @@ name: appserver-clustered-w-db services: -- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster +- type: org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster initialSize: 2 memberSpec: $brooklyn:entitySpec: - type: brooklyn.entity.webapp.jboss.JBoss7Server + type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server brooklyn.config: wars.root: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war http.port: 8080+ http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/example_yaml/appserver-configured-in-config.yaml ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/example_yaml/appserver-configured-in-config.yaml b/docs/guide/yaml/example_yaml/appserver-configured-in-config.yaml index 50c1873..f817dd7 100644 --- a/docs/guide/yaml/example_yaml/appserver-configured-in-config.yaml +++ b/docs/guide/yaml/example_yaml/appserver-configured-in-config.yaml @@ -1,6 +1,6 @@ name: appserver-configured-in-config services: -- type: brooklyn.entity.webapp.jboss.JBoss7Server +- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server brooklyn.config: wars.root: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war http.port: 8080 http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/example_yaml/appserver-configured.yaml ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/example_yaml/appserver-configured.yaml b/docs/guide/yaml/example_yaml/appserver-configured.yaml index 04ec858..58416ca 100644 --- a/docs/guide/yaml/example_yaml/appserver-configured.yaml +++ b/docs/guide/yaml/example_yaml/appserver-configured.yaml @@ -1,5 +1,5 @@ name: appserver-configured services: -- type: brooklyn.entity.webapp.jboss.JBoss7Server +- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server war: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war httpPort: 8080 http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/example_yaml/appserver-w-db-other-flavor.yaml ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/example_yaml/appserver-w-db-other-flavor.yaml b/docs/guide/yaml/example_yaml/appserver-w-db-other-flavor.yaml index 8c0fa2a..ac1106e 100644 --- a/docs/guide/yaml/example_yaml/appserver-w-db-other-flavor.yaml +++ b/docs/guide/yaml/example_yaml/appserver-w-db-other-flavor.yaml @@ -1,6 +1,6 @@ name: appserver-w-db-other-flavor services: -- type: brooklyn.entity.webapp.tomcat.TomcatServer +- type: org.apache.brooklyn.entity.webapp.tomcat.TomcatServer name: AppServer HelloWorld brooklyn.config: wars.root: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/example_yaml/appserver-w-db.yaml ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/example_yaml/appserver-w-db.yaml b/docs/guide/yaml/example_yaml/appserver-w-db.yaml index adc90f0..0e9d959 100644 --- a/docs/guide/yaml/example_yaml/appserver-w-db.yaml +++ b/docs/guide/yaml/example_yaml/appserver-w-db.yaml @@ -1,6 +1,6 @@ name: appserver-w-db services: -- type: brooklyn.entity.webapp.jboss.JBoss7Server +- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server name: AppServer HelloWorld brooklyn.config: wars.root: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/example_yaml/appserver-w-policy.yaml ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/example_yaml/appserver-w-policy.yaml b/docs/guide/yaml/example_yaml/appserver-w-policy.yaml index b71357c..52bc3b8 100644 --- a/docs/guide/yaml/example_yaml/appserver-w-policy.yaml +++ b/docs/guide/yaml/example_yaml/appserver-w-policy.yaml @@ -1,10 +1,10 @@ name: appserver-w-policy services: -- type: brooklyn.entity.webapp.ControlledDynamicWebAppCluster +- type: org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster initialSize: 1 memberSpec: $brooklyn:entitySpec: - type: brooklyn.entity.webapp.jboss.JBoss7Server + type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server brooklyn.config: wars.root: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war http.port: 8080+ http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/example_yaml/cluster-vm.yaml ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/example_yaml/cluster-vm.yaml b/docs/guide/yaml/example_yaml/cluster-vm.yaml index 50521fb..2b57f4e 100644 --- a/docs/guide/yaml/example_yaml/cluster-vm.yaml +++ b/docs/guide/yaml/example_yaml/cluster-vm.yaml @@ -1,6 +1,6 @@ name: cluster-vm services: -- type: brooklyn.entity.group.DynamicCluster +- type: org.apache.brooklyn.entity.group.DynamicCluster initialSize: 5 memberSpec: $brooklyn:entitySpec: http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/example_yaml/simple-appserver-with-location-byon.yaml ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/example_yaml/simple-appserver-with-location-byon.yaml b/docs/guide/yaml/example_yaml/simple-appserver-with-location-byon.yaml index 7ba5b0c..633716f 100644 --- a/docs/guide/yaml/example_yaml/simple-appserver-with-location-byon.yaml +++ b/docs/guide/yaml/example_yaml/simple-appserver-with-location-byon.yaml @@ -7,6 +7,6 @@ location: - 192.168.0.18 - 192.168.0.19 services: -- type: brooklyn.entity.webapp.jboss.JBoss7Server +- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server location: byon: { hosts: [ 127.0.0.1 ] } http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/example_yaml/simple-appserver-with-location.yaml ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/example_yaml/simple-appserver-with-location.yaml b/docs/guide/yaml/example_yaml/simple-appserver-with-location.yaml index c241ab2..79344c8 100644 --- a/docs/guide/yaml/example_yaml/simple-appserver-with-location.yaml +++ b/docs/guide/yaml/example_yaml/simple-appserver-with-location.yaml @@ -5,4 +5,4 @@ location: identity: AKA_YOUR_ACCESS_KEY_ID credential: <access-key-hex-digits> services: -- type: brooklyn.entity.webapp.jboss.JBoss7Server +- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/example_yaml/simple-appserver.yaml ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/example_yaml/simple-appserver.yaml b/docs/guide/yaml/example_yaml/simple-appserver.yaml index 3850b26..8e9d76a 100644 --- a/docs/guide/yaml/example_yaml/simple-appserver.yaml +++ b/docs/guide/yaml/example_yaml/simple-appserver.yaml @@ -1,4 +1,4 @@ name: simple-appserver location: localhost services: -- type: brooklyn.entity.webapp.jboss.JBoss7Server +- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/example_yaml/test-app-with-enrichers-slightly-simpler.yaml ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/example_yaml/test-app-with-enrichers-slightly-simpler.yaml b/docs/guide/yaml/example_yaml/test-app-with-enrichers-slightly-simpler.yaml index b35c2ff..55d5b87 100644 --- a/docs/guide/yaml/example_yaml/test-app-with-enrichers-slightly-simpler.yaml +++ b/docs/guide/yaml/example_yaml/test-app-with-enrichers-slightly-simpler.yaml @@ -1,25 +1,25 @@ # # example showing how enrichers can be set -# +# name: test-app-with-enrichers description: Testing many enrichers services: -- type: brooklyn.entity.group.DynamicCluster +- type: org.apache.brooklyn.entity.group.DynamicCluster id: cluster initialSize: 3 location: localhost memberSpec: $brooklyn:entitySpec: - type: brooklyn.test.entity.TestEntity + type: org.apache.brooklyn.core.test.entity.TestEntity brooklyn.enrichers: - - type: brooklyn.enricher.basic.Transformer + - type: org.apache.brooklyn.enricher.stock.Transformer # transform "ip" (which we expect a feed, not shown here, to set) to a URL; # you can curl an address string to the sensors/ip endpoint an entity to trigger these enrichers brooklyn.config: enricher.sourceSensor: $brooklyn:sensor("ip") enricher.targetSensor: $brooklyn:sensor("url") enricher.targetValue: $brooklyn:formatString("http://%s/", $brooklyn:attributeWhenReady("ip")) - - type: brooklyn.enricher.basic.Propagator + - type: org.apache.brooklyn.enricher.stock.Propagator # use propagator to duplicate one sensor as another, giving the supplied sensor mapping; # the other use of Propagator is where you specify a producer (using $brooklyn:entity(...) as below) # from which to take sensors; in that mode you can specify `propagate` as a list of sensors whose names are unchanged, @@ -28,13 +28,13 @@ services: sensorMapping: $brooklyn:sensor("url"): $brooklyn:sensor("org.apache.brooklyn.core.entity.Attributes", "main.uri") brooklyn.enrichers: - - type: brooklyn.enricher.basic.Aggregator + - type: org.apache.brooklyn.enricher.stock.Aggregator # aggregate `url` sensors from children into a list brooklyn.config: enricher.sourceSensor: $brooklyn:sensor("url") enricher.targetSensor: $brooklyn:sensor("urls.list") enricher.aggregating.fromMembers: true - - type: brooklyn.enricher.basic.Joiner + - type: org.apache.brooklyn.enricher.stock.Joiner # create a string from that list, for use e.g. in bash scripts brooklyn.config: enricher.sourceSensor: $brooklyn:sensor("urls.list") @@ -42,7 +42,7 @@ services: maximum: 2 # TODO infer uniqueTag, name etc uniqueTag: urls.list.comma_separated.max_2 - - type: brooklyn.enricher.basic.Joiner + - type: org.apache.brooklyn.enricher.stock.Joiner # pick one uri as the main one to use brooklyn.config: enricher.sourceSensor: $brooklyn:sensor("urls.list") @@ -50,7 +50,7 @@ services: quote: false maximum: 1 brooklyn.enrichers: -- type: brooklyn.enricher.basic.Propagator +- type: org.apache.brooklyn.enricher.stock.Propagator # if nothing specified for `propagating` or `sensorMapping` then # Propagator will do all but the usual lifecycle defaults, handy at the root! brooklyn.config: http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/index.md ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/index.md b/docs/guide/yaml/index.md index c431d1a..55acfee 100644 --- a/docs/guide/yaml/index.md +++ b/docs/guide/yaml/index.md @@ -9,6 +9,7 @@ children: - multiple-services.md - clusters-and-policies.md - custom-entities.md +- winrm/ - chef/ - { path: yaml-reference.md, title: YAML Blueprint Reference } - { link: 'https://github.com/brooklyncentral/blueprint-library', title: 'GitHub Blueprint Library' } http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/winrm/about-winrm.md ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/winrm/about-winrm.md b/docs/guide/yaml/winrm/about-winrm.md deleted file mode 100644 index e69de29..0000000 http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/winrm/index.md ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/winrm/index.md b/docs/guide/yaml/winrm/index.md index 7989a61..58b5524 100644 --- a/docs/guide/yaml/winrm/index.md +++ b/docs/guide/yaml/winrm/index.md @@ -1,5 +1,5 @@ --- -title: Windows blueprints +title: Windows Blueprints layout: website-normal children: - re-authentication.md @@ -112,7 +112,7 @@ The installation script - referred to as `/Users/richard/install7zip.ps1` in the Start-Process "msiexec" -ArgumentList '/qn','/i',$Dl -RedirectStandardOutput ( [System.IO.Path]::Combine($Path, "stdout.txt") ) -RedirectStandardError ( [System.IO.Path]::Combine($Path, "stderr.txt") ) -Wait This is only a very simple example. A core complex example can be found in the [Microsoft SQL Server blueprint in the -Brooklyn source code](https://github.com/apache/incubator-brooklyn/tree/master/software/database/src/main/resources/brooklyn/entity/database/mssql). +Brooklyn source code]({{ brooklyn.url.git }}/software/database/src/main/resources/org/apache/brooklyn/entity/database/mssql). Known Limitations and Special Cases http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/guide/yaml/yaml-reference.md ---------------------------------------------------------------------- diff --git a/docs/guide/yaml/yaml-reference.md b/docs/guide/yaml/yaml-reference.md index 64c81a5..221e71e 100644 --- a/docs/guide/yaml/yaml-reference.md +++ b/docs/guide/yaml/yaml-reference.md @@ -18,9 +18,9 @@ service `type` (synonyms `serviceType` and `service_type`), indicating what type service is being specified there. The following formats are supported for defining types: -* `io.brooklyn.package.JavaEntityClass` -* `java:io.brooklyn.package.JavaEntityClass` -* *OSGi and YAML references are coming soon!* <!-- TODO --> +* `com.acme.brooklyn.package.JavaEntityClass` +* `java:com.acme.brooklyn.package.JavaEntityClass` +* `java-entity-class` (where this has been added to the [catalog](../ops/catalog/)) A reference of some of the common service `type` instances used is included in a section below. @@ -49,12 +49,12 @@ the entity being defined, with these being the most common: a single `Map` where the `brooklyn.config` is passed in. Some common initializers are: - * `brooklyn.entity.software.ssh.SshCommandEffector`: takes a `name` and `command`, + * `org.apache.brooklyn.core.effector.ssh.SshCommandEffector`: takes a `name` and `command`, and optionally a map of named `parameters` to their `description` and `defaultValue`, to define an effector with the given name implemented by the given SSH command (on an entity which as an ssh-able machine) - * `brooklyn.entity.software.ssh.SshCommandSensor`: takes a `name` and `command`, + * `org.apache.brooklyn.core.sensor.ssh.SshCommandSensor`: takes a `name` and `command`, and optionally a `period`, to create a sensor feed which populates the sensor with the given name by running the given command (on an entity which as an ssh-able machine) @@ -151,7 +151,7 @@ concise DSL defined here: * `$brooklyn:config("key")` will insert the value set against the given key at this entity (or nearest ancestor); can be used to supply config at the root which is used in multiple places in the plan * `$brooklyn:sensor("sensor.name")` returns the given sensor on the current entity if found, or an untyped (Object) sensor; - `$brooklyn:sensor("io.brooklyn.ContainingEntityClass", "sensor.name")` returns the strongly typed sensor defined in the given class + `$brooklyn:sensor("com.acme.brooklyn.ContainingEntityClass", "sensor.name")` returns the strongly typed sensor defined in the given class * `$brooklyn:component("ID")` refers to a Brooklyn component with the given ID; you can then access the following subfields, using the same syntax as defined above but with a different reference entity, e.g. `$brooklyn:component("ID").attributeWhenReady("sensor")`: http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/website/developers/committers/release-process/verify-release-artifacts.md ---------------------------------------------------------------------- diff --git a/docs/website/developers/committers/release-process/verify-release-artifacts.md b/docs/website/developers/committers/release-process/verify-release-artifacts.md index 048737b..086e56c 100644 --- a/docs/website/developers/committers/release-process/verify-release-artifacts.md +++ b/docs/website/developers/committers/release-process/verify-release-artifacts.md @@ -113,7 +113,7 @@ Try deploying a simple app, such as the YAML: {% highlight yaml %} location: localhost services: -- type: brooklyn.entity.webapp.jboss.JBoss7Server +- type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server {% endhighlight %} http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/website/learnmore/blueprint-tour.md ---------------------------------------------------------------------- diff --git a/docs/website/learnmore/blueprint-tour.md b/docs/website/learnmore/blueprint-tour.md index c31ac89..0a7795b 100644 --- a/docs/website/learnmore/blueprint-tour.md +++ b/docs/website/learnmore/blueprint-tour.md @@ -116,7 +116,7 @@ services:</div></div> under the covers automatically with OSGi. </p></div> </div><div class="connector"><div> </div></div></div></div> -<div>- type: <span class="ann_highlight">brooklyn.entity.webapp.ControlledDynamicWebAppCluster:1.1.0</span> +<div>- type: <span class="ann_highlight">org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster:1.1.0</span> war: http://example.com/couchbase-chat/chatroom.war java.sysprops: chat.db.url: $brooklyn:entity("chat-couchbase").attributeWhenReady("couchbase.cluster.connection.url")</div></div> @@ -135,7 +135,7 @@ services:</div></div> <div> brooklyn.policies: - type: <span class="ann_highlight">autoscaler</span> brooklyn.config: - metric: $brooklyn:sensor(""webapp.reqs.perSec.windowed.perNode") + metric: $brooklyn:sensor("webapp.reqs.perSec.windowed.perNode") metricLowerBound: 400 metricUpperBound: 600</div></div> http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/54f5b048/docs/website/learnmore/catalog/catalog-item.html ---------------------------------------------------------------------- diff --git a/docs/website/learnmore/catalog/catalog-item.html b/docs/website/learnmore/catalog/catalog-item.html index b7acd5b..f52ec56 100644 --- a/docs/website/learnmore/catalog/catalog-item.html +++ b/docs/website/learnmore/catalog/catalog-item.html @@ -73,7 +73,7 @@ under the License. return; } - // entities/brooklyn.entity.brooklynnode.BrooklynNode + // e.g. entities/org.apache.brooklyn.entity.brooklynnode.BrooklynNode var item = brooklyn.findItemOfType(items[args[0]], args[1]); $("#summary").html(brooklyn.typeSummary(item));
