You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sj...@apache.org on 2015/05/14 11:59:52 UTC

[1/8] incubator-brooklyn git commit: Fix String -> Lifecycle coercion for ON_FIRE

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 3fe40c7b5 -> d78c1725d


Fix String -> Lifecycle coercion for ON_FIRE


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

Branch: refs/heads/master
Commit: d7ff98a0711edfa194fc8d528818a97abc13f6ba
Parents: d0cbcf3
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Tue May 12 14:45:35 2015 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Tue May 12 14:45:35 2015 +0300

----------------------------------------------------------------------
 .../java/brooklyn/entity/basic/Lifecycle.java    |  4 ++--
 .../entity/basic/LifecycleTransitionTest.java    | 19 ++++++++++++++++---
 2 files changed, 18 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d7ff98a0/core/src/main/java/brooklyn/entity/basic/Lifecycle.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/Lifecycle.java b/core/src/main/java/brooklyn/entity/basic/Lifecycle.java
index 2c8c237..d4449a1 100644
--- a/core/src/main/java/brooklyn/entity/basic/Lifecycle.java
+++ b/core/src/main/java/brooklyn/entity/basic/Lifecycle.java
@@ -158,14 +158,14 @@ public enum Lifecycle {
     }
     
     protected static class TransitionCoalesceFunction implements Function<String, Transition> {
-        private static final Pattern TRANSITION_PATTERN = Pattern.compile("^(\\w+)\\s+@\\s+(\\d+).*");
+        private static final Pattern TRANSITION_PATTERN = Pattern.compile("^([\\w-]+)\\s+@\\s+(\\d+).*");
 
         @Override
         public Transition apply(final String input) {
             if (input != null) {
                 Matcher m = TRANSITION_PATTERN.matcher(input);
                 if (m.matches()) {
-                    Lifecycle state = Lifecycle.valueOf(m.group(1).toUpperCase());
+                    Lifecycle state = Lifecycle.valueOf(m.group(1).toUpperCase().replace('-', '_'));
                     long time = Long.parseLong(m.group(2));
                     return new Transition(state, new Date(time));
                 } else {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d7ff98a0/core/src/test/java/brooklyn/entity/basic/LifecycleTransitionTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/entity/basic/LifecycleTransitionTest.java b/core/src/test/java/brooklyn/entity/basic/LifecycleTransitionTest.java
index 7b5806e..686424d 100644
--- a/core/src/test/java/brooklyn/entity/basic/LifecycleTransitionTest.java
+++ b/core/src/test/java/brooklyn/entity/basic/LifecycleTransitionTest.java
@@ -22,15 +22,28 @@ import static org.testng.Assert.assertTrue;
 
 import java.util.Date;
 
+import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
 import brooklyn.entity.basic.Lifecycle.Transition;
 import brooklyn.entity.basic.Lifecycle.TransitionCoalesceFunction;
 
 public class LifecycleTransitionTest {
-    @Test
-    public void testTransitionCoalesce() {
-        Transition t = new Transition(Lifecycle.RUNNING, new Date());
+    @DataProvider(name = "states")
+    public Object[][] generateLifecycleStates() {
+        Object[][] states = new Object[Lifecycle.values().length][];
+        int i = 0;
+        for (Lifecycle state : Lifecycle.values()) {
+            System.out.println(":" + state);
+            states[i] = new Object[] {state};
+            i++;
+        }
+        return states;
+    }
+
+    @Test(dataProvider="states")
+    public void testTransitionCoalesce(Lifecycle state) {
+        Transition t = new Transition(state, new Date());
         String serialized = t.toString();
         Transition t2 = new TransitionCoalesceFunction().apply(serialized);
         assertTrue(t.equals(t2), "Deserialized Lifecycle.Transition not equal to original");


[3/8] incubator-brooklyn git commit: Adds SoftwareProcessEntityLatchTest

Posted by sj...@apache.org.
Adds SoftwareProcessEntityLatchTest

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

Branch: refs/heads/master
Commit: b18f31659944d2930904a19e18e9b28ac6dc9792
Parents: 78776ca
Author: Aled Sage <al...@gmail.com>
Authored: Wed May 13 11:38:49 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Wed May 13 11:38:49 2015 +0100

----------------------------------------------------------------------
 .../basic/SoftwareProcessEntityLatchTest.java   | 156 +++++++++++++++++++
 1 file changed, 156 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b18f3165/software/base/src/test/java/brooklyn/entity/basic/SoftwareProcessEntityLatchTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/brooklyn/entity/basic/SoftwareProcessEntityLatchTest.java b/software/base/src/test/java/brooklyn/entity/basic/SoftwareProcessEntityLatchTest.java
new file mode 100644
index 0000000..6449f16
--- /dev/null
+++ b/software/base/src/test/java/brooklyn/entity/basic/SoftwareProcessEntityLatchTest.java
@@ -0,0 +1,156 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package brooklyn.entity.basic;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import brooklyn.config.ConfigKey;
+import brooklyn.entity.BrooklynAppUnitTestSupport;
+import brooklyn.entity.Entity;
+import brooklyn.entity.basic.SoftwareProcessEntityTest.MyService;
+import brooklyn.entity.basic.SoftwareProcessEntityTest.SimulatedDriver;
+import brooklyn.entity.proxying.EntitySpec;
+import brooklyn.event.basic.DependentConfiguration;
+import brooklyn.location.LocationSpec;
+import brooklyn.location.basic.FixedListMachineProvisioningLocation;
+import brooklyn.location.basic.SshMachineLocation;
+import brooklyn.management.Task;
+import brooklyn.test.Asserts;
+import brooklyn.util.task.TaskInternal;
+import brooklyn.util.time.Duration;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+
+
+public class SoftwareProcessEntityLatchTest extends BrooklynAppUnitTestSupport {
+
+    // NB: These tests don't actually require ssh to localhost -- only that 'localhost' resolves.
+
+    @SuppressWarnings("unused")
+    private static final Logger LOG = LoggerFactory.getLogger(SoftwareProcessEntityLatchTest.class);
+
+    private SshMachineLocation machine;
+    private FixedListMachineProvisioningLocation<SshMachineLocation> loc;
+    
+    @BeforeMethod(alwaysRun=true)
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        loc = getLocation();
+    }
+
+    @SuppressWarnings("unchecked")
+    private FixedListMachineProvisioningLocation<SshMachineLocation> getLocation() {
+        FixedListMachineProvisioningLocation<SshMachineLocation> loc = mgmt.getLocationManager().createLocation(LocationSpec.create(FixedListMachineProvisioningLocation.class));
+        machine = mgmt.getLocationManager().createLocation(LocationSpec.create(SshMachineLocation.class)
+                .configure("address", "localhost"));
+        loc.addMachine(machine);
+        return loc;
+    }
+
+    @Test
+    public void testStartLatchBlocks() throws Exception {
+        runTestLatchBlocks(SoftwareProcess.START_LATCH, ImmutableList.<String>of());
+    }
+
+    @Test
+    public void testSetupLatchBlocks() throws Exception {
+        runTestLatchBlocks(SoftwareProcess.SETUP_LATCH, ImmutableList.<String>of());
+    }
+
+    @Test
+    public void testIntallResourcesLatchBlocks() throws Exception {
+        runTestLatchBlocks(SoftwareProcess.INSTALL_RESOURCES_LATCH, ImmutableList.of("setup"));
+    }
+
+    @Test
+    public void testInstallLatchBlocks() throws Exception {
+        runTestLatchBlocks(SoftwareProcess.INSTALL_LATCH, ImmutableList.of("setup", "copyInstallResources"));
+    }
+
+    @Test
+    public void testCustomizeLatchBlocks() throws Exception {
+        runTestLatchBlocks(SoftwareProcess.CUSTOMIZE_LATCH, ImmutableList.of("setup", "copyInstallResources", "install"));
+    }
+
+    @Test
+    public void testRuntimeResourcesLatchBlocks() throws Exception {
+        runTestLatchBlocks(SoftwareProcess.RUNTIME_RESOURCES_LATCH, ImmutableList.of("setup", "copyInstallResources", "install", "customize"));
+    }
+
+    @Test
+    public void testLaunchLatchBlocks() throws Exception {
+        runTestLatchBlocks(SoftwareProcess.LAUNCH_LATCH, ImmutableList.of("setup", "copyInstallResources", "install", "customize", "copyRuntimeResources"));
+    }
+
+    protected void runTestLatchBlocks(final ConfigKey<Boolean> latch, List<String> preLatchEvents) throws Exception {
+        final BasicEntity triggerEntity = app.createAndManageChild(EntitySpec.create(BasicEntity.class));
+        final MyService entity = app.createAndManageChild(EntitySpec.create(MyService.class)
+                .configure(latch, DependentConfiguration.attributeWhenReady(triggerEntity, Attributes.SERVICE_UP)));
+        
+        final Task<Void> task = Entities.invokeEffector(app, app, MyService.START, ImmutableMap.of("locations", ImmutableList.of(loc)));
+        
+        assertEffectorBlockingDetailsEventually(entity, "Waiting for config "+latch.getName());
+        assertDriverEventsEquals(entity, preLatchEvents);
+
+        assertFalse(task.isDone());
+        ((EntityLocal)triggerEntity).setAttribute(Attributes.SERVICE_UP, true);
+        task.get(Duration.THIRTY_SECONDS);
+        assertDriverEventsEquals(entity, ImmutableList.of("setup", "copyInstallResources", "install", "customize", "copyRuntimeResources", "launch"));
+    }
+
+    private void assertDriverEventsEquals(MyService entity, List<String> expectedEvents) {
+        List<String> events = ((SimulatedDriver)entity.getDriver()).events;
+        assertEquals(events, expectedEvents, "events="+events);
+    }
+
+    private void assertEffectorBlockingDetailsEventually(final Entity entity, final String blockingDetailsSnippet) {
+        Asserts.succeedsEventually(new Runnable() {
+            @Override public void run() {
+                Task<?> entityTask = Iterables.getOnlyElement(mgmt.getExecutionManager().getTasksWithAllTags(ImmutableList.of(BrooklynTaskTags.EFFECTOR_TAG, BrooklynTaskTags.tagForContextEntity(entity))));
+                String blockingDetails = getBlockingDetails(entityTask);
+                assertTrue(blockingDetails.contains(blockingDetailsSnippet));
+            }});
+    }
+    
+    private String getBlockingDetails(Task<?> task) {
+        List<TaskInternal<?>> taskChain = Lists.newArrayList();
+        TaskInternal<?> taskI = (TaskInternal<?>) task;
+        while (taskI != null) {
+            taskChain.add(taskI);
+            if (taskI.getBlockingDetails() != null) {
+                return taskI.getBlockingDetails();
+            }
+            taskI = (TaskInternal<?>) taskI.getBlockingTask();
+        }
+        throw new IllegalStateException("No blocking details for "+task+" (walked task chain "+taskChain+")");
+    }
+}


[8/8] incubator-brooklyn git commit: This closes #637

Posted by sj...@apache.org.
This closes #637


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

Branch: refs/heads/master
Commit: d78c1725dfc16c89c0f7f411e28312612299bc93
Parents: 87ec4dd d7ff98a
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Thu May 14 10:44:21 2015 +0100
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Thu May 14 10:44:21 2015 +0100

----------------------------------------------------------------------
 .../java/brooklyn/entity/basic/Lifecycle.java    |  4 ++--
 .../entity/basic/LifecycleTransitionTest.java    | 19 ++++++++++++++++---
 2 files changed, 18 insertions(+), 5 deletions(-)
----------------------------------------------------------------------



[2/8] incubator-brooklyn git commit: Upgrade nginx to latest stable version (1.8.0)

Posted by sj...@apache.org.
Upgrade nginx to latest stable version (1.8.0)


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

Branch: refs/heads/master
Commit: 04c617ebd9fe4ad50e05399eb655d8df1d101286
Parents: d0cbcf3
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Tue May 12 17:17:44 2015 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Tue May 12 17:17:44 2015 +0300

----------------------------------------------------------------------
 .../src/main/java/brooklyn/entity/proxy/nginx/NginxController.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/04c617eb/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxController.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxController.java b/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxController.java
index d4a7315..41cc9f7 100644
--- a/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxController.java
+++ b/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxController.java
@@ -68,7 +68,7 @@ public interface NginxController extends AbstractController, HasShortName {
     
     @SetFromFlag("version")
     ConfigKey<String> SUGGESTED_VERSION =
-            ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "1.3.7");
+            ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "1.8.0");
 
     @SetFromFlag("stickyVersion")
     ConfigKey<String> STICKY_VERSION = ConfigKeys.newStringConfigKey(


[5/8] incubator-brooklyn git commit: This closes #645

Posted by sj...@apache.org.
This closes #645


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

Branch: refs/heads/master
Commit: e2de33ba87971c8c12cdfb068705af5575e25f44
Parents: 3fe40c7 ab9a921
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Thu May 14 10:31:44 2015 +0100
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Thu May 14 10:31:44 2015 +0100

----------------------------------------------------------------------
 .../location/jclouds/JcloudsLocation.java       | 24 ++++++++++++--------
 .../location/jclouds/JcloudsLocationConfig.java |  3 +++
 2 files changed, 17 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2de33ba/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
----------------------------------------------------------------------


[4/8] incubator-brooklyn git commit: Support multiple setup scripts in location config

Posted by sj...@apache.org.
Support multiple setup scripts in location config

New "setup.scripts" config which accepts an array of scripts to execute on the node.


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

Branch: refs/heads/master
Commit: ab9a92152430cec9804d7041f9796ad42594c00d
Parents: d0cbcf3
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Wed May 13 21:52:58 2015 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Wed May 13 21:52:58 2015 +0300

----------------------------------------------------------------------
 .../location/jclouds/JcloudsLocation.java       | 24 ++++++++++++--------
 .../location/jclouds/JcloudsLocationConfig.java |  3 +++
 2 files changed, 17 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ab9a9215/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
index d0c52d8..7aa85b6 100644
--- a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
+++ b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
@@ -709,16 +709,20 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
             if (waitForSshable) {
 
                 String setupScript = setup.get(JcloudsLocationConfig.CUSTOM_MACHINE_SETUP_SCRIPT_URL);
-                if (Strings.isNonBlank(setupScript)) {
-                    customisationForLogging.add("custom setup script "+setupScript);
-
-                    String setupVarsString = setup.get(JcloudsLocationConfig.CUSTOM_MACHINE_SETUP_SCRIPT_VARS);
-                    Map<String, String> substitutions = (setupVarsString != null)
-                            ? Splitter.on(",").withKeyValueSeparator(":").split(setupVarsString)
-                            : ImmutableMap.<String, String>of();
-                    String scriptContent =  ResourceUtils.create(this).getResourceAsString(setupScript);
-                    String script = TemplateProcessor.processTemplateContents(scriptContent, getManagementContext(), substitutions);
-                    sshMachineLocation.execCommands("Customizing node " + this, ImmutableList.of(script));
+                List<String> setupScripts = setup.get(JcloudsLocationConfig.CUSTOM_MACHINE_SETUP_SCRIPT_URL_LIST);
+                Collection<String> allScripts = new MutableList<String>().appendIfNotNull(setupScript).appendAll(setupScripts);
+                for (String setupScriptItem : allScripts) {
+                    if (Strings.isNonBlank(setupScriptItem)) {
+                        customisationForLogging.add("custom setup script "+setupScriptItem);
+
+                        String setupVarsString = setup.get(JcloudsLocationConfig.CUSTOM_MACHINE_SETUP_SCRIPT_VARS);
+                        Map<String, String> substitutions = (setupVarsString != null)
+                                ? Splitter.on(",").withKeyValueSeparator(":").split(setupVarsString)
+                                : ImmutableMap.<String, String>of();
+                        String scriptContent =  ResourceUtils.create(this).getResourceAsString(setupScriptItem);
+                        String script = TemplateProcessor.processTemplateContents(scriptContent, getManagementContext(), substitutions);
+                        sshMachineLocation.execCommands("Customizing node " + this + " with script " + setupScriptItem, ImmutableList.of(script));
+                    }
                 }
 
                 if (setup.get(JcloudsLocationConfig.MAP_DEV_RANDOM_TO_DEV_URANDOM)) {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/ab9a9215/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocationConfig.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocationConfig.java b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocationConfig.java
index b7b61a7..15ffcfc 100644
--- a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocationConfig.java
+++ b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocationConfig.java
@@ -199,6 +199,9 @@ public interface JcloudsLocationConfig extends CloudLocationConfig {
     public static final ConfigKey<String> CUSTOM_MACHINE_SETUP_SCRIPT_URL = ConfigKeys.newStringConfigKey(
             "setup.script", "Custom script to customize a node");
     
+    public static final ConfigKey<List<String>> CUSTOM_MACHINE_SETUP_SCRIPT_URL_LIST = ConfigKeys.newConfigKey(new TypeToken<List<String>>() {},
+            "setup.scripts", "A list of scripts to customize a node");
+    
     public static final ConfigKey<String> CUSTOM_MACHINE_SETUP_SCRIPT_VARS = ConfigKeys.newStringConfigKey(
             "setup.script.vars", "vars to customize a setup.script i.e.: key1:value1,key2:value2");
     


[7/8] incubator-brooklyn git commit: This closes #640

Posted by sj...@apache.org.
This closes #640


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

Branch: refs/heads/master
Commit: 87ec4dda0bb78a0fb4c066730a603a0fbf9fb09b
Parents: 01ea6f4 04c617e
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Thu May 14 10:43:26 2015 +0100
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Thu May 14 10:43:26 2015 +0100

----------------------------------------------------------------------
 .../src/main/java/brooklyn/entity/proxy/nginx/NginxController.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------



[6/8] incubator-brooklyn git commit: This closes #643

Posted by sj...@apache.org.
This closes #643


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

Branch: refs/heads/master
Commit: 01ea6f49c32ad04d08d4deaf4ae2f842169c247f
Parents: e2de33b b18f316
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Thu May 14 10:43:12 2015 +0100
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Thu May 14 10:43:12 2015 +0100

----------------------------------------------------------------------
 .../basic/SoftwareProcessEntityLatchTest.java   | 156 +++++++++++++++++++
 1 file changed, 156 insertions(+)
----------------------------------------------------------------------