You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2016/02/01 18:45:55 UTC

[47/51] [abbrv] [partial] brooklyn-docs git commit: move subdir from incubator up a level as it is promoted to its own repo (first non-incubator commit!)

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6e86cb02/brooklyn-docs/_extra/big_examples/webcluster/index.md
----------------------------------------------------------------------
diff --git a/brooklyn-docs/_extra/big_examples/webcluster/index.md b/brooklyn-docs/_extra/big_examples/webcluster/index.md
deleted file mode 100644
index 99c6b36..0000000
--- a/brooklyn-docs/_extra/big_examples/webcluster/index.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-layout: website-normal
-title: Elastic Web Cluster
-toc: /guide/toc.json
----
-
-{% readj webcluster.include.md %}

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6e86cb02/brooklyn-docs/_extra/update-docs.md
----------------------------------------------------------------------
diff --git a/brooklyn-docs/_extra/update-docs.md b/brooklyn-docs/_extra/update-docs.md
deleted file mode 100644
index 5abb056..0000000
--- a/brooklyn-docs/_extra/update-docs.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: website-normal
-title: Updating the Docs
-toc: /guide/toc.json
----
-
-<!-- TODO retire this page -->
-
-The Brooklyn docs live in the **docs** project in the Brooklyn codebase.
-It's built using standard jekyll/markdown with a few extensions.
-
-Instructions for building and working with docs are in a `README.md` file
-in that folder; for the most recent version of instructions click
-[here](https://github.com/apache/incubator-brooklyn/tree/master/docs/README.md).

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6e86cb02/brooklyn-docs/_includes/base-head.html
----------------------------------------------------------------------
diff --git a/brooklyn-docs/_includes/base-head.html b/brooklyn-docs/_includes/base-head.html
deleted file mode 100644
index 0773dc2..0000000
--- a/brooklyn-docs/_includes/base-head.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-<title>{{ page.title }} - Apache Brooklyn (incubating)</title>
-
-<meta http-equiv="content-type" content="text/html; charset=utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1">
-
-<link href="{% dependency_url bootstrap.css %}" rel="stylesheet">
-<link href="{{site.path.style}}/deps/octicons/octicons.css" rel="stylesheet">
-<link href="{{site.path.style}}/deps/bootstrap-theme.css" rel="stylesheet">
-<link href="{{site.path.style}}/deps/tooltip.css" rel="stylesheet">
-
-<link rel="stylesheet" href="{{ site.path.style }}/css/code.css" type="text/css" media="screen" />
-
-<link href="{{site.path.style}}/css/website.css" rel="stylesheet">
-
-<script src="{% dependency_url jquery.js %}"></script>
-<script src="{% dependency_url glossarizer.js %}"></script>
-<script src="{% dependency_url bootstrap.js %}"></script>
-<script src="{% dependency_url tooltip.js %}"></script>
-<script type="text/javascript" src="{{ site.path.style }}/deps/jquery.cookie.js"></script>
-<script>
-$(function(){
-  $('body').glossarizer({
-    sourceURL: '/guide/glossary.json?'+Math.random(),
-    caseSensitive : true,
-    lookupTagName : 'p, ul',
-    callback: function(){ new tooltip(); }
-  });
-});
-</script>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6e86cb02/brooklyn-docs/_includes/base-scss.scss
----------------------------------------------------------------------
diff --git a/brooklyn-docs/_includes/base-scss.scss b/brooklyn-docs/_includes/base-scss.scss
deleted file mode 100644
index aec3e2f..0000000
--- a/brooklyn-docs/_includes/base-scss.scss
+++ /dev/null
@@ -1,36 +0,0 @@
-
-$fonts: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
-$header_fonts: Avenir, $fonts;
-
-// colors
-
-/* this green is approx what is in the logo (taken from image picker) */
-$brooklyn_green: #6db34b;
-$bootstrap_theme_green_gradient_upper: #5cb85c;
-$bootstrap_theme_green_gradient_lower: #48a648;
-$vibrant_bg_green: $bootstrap_theme_green_gradient_lower;
-$vibrant_fg_green: #483;
-
-$white_fa: #fafafa;
-$white_f5: #f5f5f5;
-$white_ee: #eee;
-$white_dd: #ddd;  // for borders and tooltip bg
-$gray_aa: #aaa;
-$gray_88: #888;
-$gray_66: #666;
-
-$blackish: #393939;
-
-$bootstrap_blue_border: #428bca;
-
-// roles for colors
-
-$text_color: $blackish;
-
-$a_color: $vibrant_fg_green;
-$a_hover_color: $brooklyn_green;
-
-//$code_bg_color: #e8eded;
-$code_bg_color: $white_f5;
-
-$footer_icon_gray: $gray_88;

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6e86cb02/brooklyn-docs/_includes/feature-image.html
----------------------------------------------------------------------
diff --git a/brooklyn-docs/_includes/feature-image.html b/brooklyn-docs/_includes/feature-image.html
deleted file mode 100644
index 89bedcd..0000000
--- a/brooklyn-docs/_includes/feature-image.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-<div class="feature-image">
-  <img src="{{ include.src }}"/>
-</div>

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6e86cb02/brooklyn-docs/_includes/feature-item-end.html
----------------------------------------------------------------------
diff --git a/brooklyn-docs/_includes/feature-item-end.html b/brooklyn-docs/_includes/feature-item-end.html
deleted file mode 100644
index f208df5..0000000
--- a/brooklyn-docs/_includes/feature-item-end.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-{% if include.img %}
-{% comment %}
-  does not work to do: { % include feature-image.html src='{{ include.img }}' % }
-  so we repeat that snippet :(
-{% endcomment %}
-
-<div class="feature-image">
-  <img src="{{ include.img }}"/>
-</div>
-
-{% endif %}
-
-</div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6e86cb02/brooklyn-docs/_includes/feature-item.html
----------------------------------------------------------------------
diff --git a/brooklyn-docs/_includes/feature-item.html b/brooklyn-docs/_includes/feature-item.html
deleted file mode 100644
index e91d6c2..0000000
--- a/brooklyn-docs/_includes/feature-item.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-<div class="feature-item">
-  <div class="feature-title">{{ include.title }}</div>
-  <div class="feature-body">

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6e86cb02/brooklyn-docs/_includes/fields.md
----------------------------------------------------------------------
diff --git a/brooklyn-docs/_includes/fields.md b/brooklyn-docs/_includes/fields.md
deleted file mode 100644
index d9e74b7..0000000
--- a/brooklyn-docs/_includes/fields.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-{% if site.brooklyn-version contains 'SNAPSHOT' %}{% capture SNAPSHOT %}true{% endcapture %}{% endif %}
-
-{% capture brooklyn_properties_url_path %}{{ site.path.guide }}/start/brooklyn.properties{% endcapture %}
-{% capture brooklyn_properties_url_live %}{{ site.url_root }}{{ brooklyn_properties_url_path }}{% endcapture %}
-
-{% capture brooklyn_group_id %}org.apache.brooklyn{% endcapture %}
-{% capture brooklyn_group_id_path %}org/apache/brooklyn{% endcapture %}
-
-{% capture this_repo_base_url %}https://repository.apache.org{% endcapture %}
-{% capture this_repo_base_url_search %}{{ this_repo_base_url }}/index.html#nexus-search{% endcapture %}
-{% capture this_repo_base_url_artifact %}{{ this_repo_base_url }}/service/local/artifact/maven/redirect{% endcapture %}
-
-{% capture apache_snapshots_repo_groupid_url %}{{ this_repo_base_url }}/content/repositories/snapshots/{{ brooklyn_group_id_path }}{% endcapture %}
-{% capture apache_releases_repo_groupid_url %}{{ this_repo_base_url }}/content/repositories/releases/{{ brooklyn_group_id_path }}{% endcapture %}
-
-{% capture this_repo_base_url_content %}{% if SNAPSHOT %}{{ apache_snapshots_repo_groupid_url }}{% else %}{{ apache_releases_repo_groupid_url }}{% endif %}{% endcapture %}
-{% capture this_dist_url_list %}{{ this_repo_base_url_content }}/brooklyn-dist/{{ site.brooklyn-version }}/{% endcapture %}
-
-{% if SNAPSHOT %}
-  <!-- put e field last, so we can append .sha1 -->
-  {% capture this_dist_url_zip %}{{ this_repo_base_url_artifact }}?r=snapshots&g={{ brooklyn_group_id }}&a=brooklyn-dist&v={{ site.brooklyn-version }}&c=dist&e=zip{% endcapture %}
-  {% capture this_dist_url_tgz %}{{ this_repo_base_url_artifact }}?r=snapshots&g={{ brooklyn_group_id }}&a=brooklyn-dist&v={{ site.brooklyn-version }}&c=dist&e=tar.gz{% endcapture %}
-{% else %}<!--- RELEASE -->
-  {% capture this_dist_url_zip %}{{ this_dist_url_list }}/brooklyn-dist-{{ site.brooklyn-version }}-dist.zip{% endcapture %}
-  {% capture this_dist_url_tgz %}{{ this_dist_url_list }}/brooklyn-dist-{{ site.brooklyn-version }}-dist.tar.gz{% endcapture %}
-{% endif %}
-
-{% capture this_anything_url_search %}{{ this_repo_base_url_search }};gav~{{ brooklyn_group_id }}~~{{ site.brooklyn-version }}~~{% endcapture %}
-{% capture this_dist_url_search %}{{ this_repo_base_url_search }};gav~{{ brooklyn_group_id }}~brooklyn-dist~{{ site.brooklyn-version }}~~{% endcapture %}
-
-

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6e86cb02/brooklyn-docs/_includes/footer.html
----------------------------------------------------------------------
diff --git a/brooklyn-docs/_includes/footer.html b/brooklyn-docs/_includes/footer.html
deleted file mode 100644
index 316fe5a..0000000
--- a/brooklyn-docs/_includes/footer.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<div id="footer">
-    <div class="container">
-        <div class="row">
-            <div class="col-md-10 text-muted">
-                Apache Brooklyn is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License v2.0</a>.
-            </div>
-            <div class="col-md-2">
-                <a class="btn btn-sm btn-default" href="https://github.com/apache/incubator-brooklyn/edit/master/docs/{{ page.path }}">Edit This Page</a>
-                <a href="{{ site.url_root }}{{ site.path.website }}/community/how-to-contribute-docs.html"
-                    data-toggle="tooltip" data-placement="top" title="How to Edit Documentation" data-delay="400"/>
-                  <span class="octicon octicon-question octicon-footer"></span>
-                </a>
-            </div>
-        </div>
-    </div>
-</div>

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6e86cb02/brooklyn-docs/_includes/java_link.html
----------------------------------------------------------------------
diff --git a/brooklyn-docs/_includes/java_link.html b/brooklyn-docs/_includes/java_link.html
deleted file mode 100644
index 9411877..0000000
--- a/brooklyn-docs/_includes/java_link.html
+++ /dev/null
@@ -1,18 +0,0 @@
-{% comment %}
-
-includes a code-formatted class name with link to its javadoc and optionally its source code
-
-usage:  
-
-{ % 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>
-  (<a href="{{ site.path.guide }}/misc/javadoc/{{ include.package_path }}/{{ include.class_name }}.html">javadoc</a>, 
-   <a href="{{ site.brooklyn.url.git }}/{{ include.project_subpath }}/src/main/java/{{ include.package_path }}/{{ include.class_name }}.java">src</a>){% comment %}
-{% endcomment %}{% else %}<a href="{{ site.path.guide }}/misc/javadoc/{{ include.package_path }}/{{ include.class_name }}.html">
-<code>{{ include.class_name }}</code></a>
-{% endif %}{% comment %}
-
-must NOT have a newline at the end here, as the include is often done inline
-{% endcomment %}

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/6e86cb02/brooklyn-docs/_includes/list-children.html
----------------------------------------------------------------------
diff --git a/brooklyn-docs/_includes/list-children.html b/brooklyn-docs/_includes/list-children.html
deleted file mode 100644
index 0c327f3..0000000
--- a/brooklyn-docs/_includes/list-children.html
+++ /dev/null
@@ -1,9 +0,0 @@
-{% comment %}
-TODO style this much better
-{% endcomment %}
-
-<div class="list-children"><ul>
-{% for item in page.menu %}
-<li> <a href="{{ item.url }}">{{ item.title }}</a> </li>
-{% endfor %}
-</ul></div>
\ No newline at end of file