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 2015/05/18 17:32:32 UTC

[1/5] incubator-brooklyn git commit: Include invalid bundle URL in exception

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master de67eb0cd -> 9c120ac79


Include invalid bundle URL in exception


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

Branch: refs/heads/master
Commit: 4acb6ea817d25b04b217b6bee258602e258c1e82
Parents: d0cbcf3
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Fri May 8 22:40:41 2015 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Mon May 11 09:36:11 2015 +0300

----------------------------------------------------------------------
 .../src/main/java/brooklyn/management/ha/OsgiManager.java | 10 +++++-----
 core/src/main/java/brooklyn/util/osgi/Osgis.java          |  3 +++
 .../camp/brooklyn/catalog/CatalogYamlEntityTest.java      |  6 +++---
 3 files changed, 11 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4acb6ea8/core/src/main/java/brooklyn/management/ha/OsgiManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/ha/OsgiManager.java b/core/src/main/java/brooklyn/management/ha/OsgiManager.java
index d699da3..6444439 100644
--- a/core/src/main/java/brooklyn/management/ha/OsgiManager.java
+++ b/core/src/main/java/brooklyn/management/ha/OsgiManager.java
@@ -124,9 +124,9 @@ public class OsgiManager {
             Bundle b = Osgis.install(framework, bundle.getUrl());
 
             checkCorrectlyInstalled(bundle, b);
-        } catch (BundleException e) {
-            log.debug("Bundle from "+bundle+" failed to install (rethrowing): "+e);
-            throw Throwables.propagate(e);
+        } catch (Exception e) {
+            Exceptions.propagateIfFatal(e);
+            throw new IllegalStateException("Bundle from "+bundle.getUrl()+" failed to install: " + e.getMessage(), e);
         }
     }
 
@@ -134,7 +134,7 @@ public class OsgiManager {
         String nv = b.getSymbolicName()+":"+b.getVersion().toString();
 
         if (!isBundleNameEqualOrAbsent(bundle, b)) {
-            throw new IllegalStateException("Bundle from "+bundle.getUrl()+" already installed as "+nv+" but user explicitly requested "+bundle);
+            throw new IllegalStateException("Bundle already installed as "+nv+" but user explicitly requested "+bundle);
         }
 
         List<Bundle> matches = Osgis.bundleFinder(framework)
@@ -161,7 +161,7 @@ public class OsgiManager {
                 Bundle b = installedBundle.get();
                 String nv = b.getSymbolicName()+":"+b.getVersion().toString();
                 if (!isBundleNameEqualOrAbsent(bundle, b)) {
-                    throw new IllegalStateException("Bundle from "+bundle.getUrl()+" already installed as "+nv+" but user explicitly requested "+bundle);
+                    throw new IllegalStateException("User requested bundle " + bundle + " but already installed as "+nv);
                 } else {
                     log.trace("Bundle from "+bundleUrl+" already installed as "+nv+"; not re-registering");
                 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4acb6ea8/core/src/main/java/brooklyn/util/osgi/Osgis.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/util/osgi/Osgis.java b/core/src/main/java/brooklyn/util/osgi/Osgis.java
index 4fe25f9..de49b2d 100644
--- a/core/src/main/java/brooklyn/util/osgi/Osgis.java
+++ b/core/src/main/java/brooklyn/util/osgi/Osgis.java
@@ -593,6 +593,9 @@ public class Osgis {
         }
         Manifest manifest = stream.getManifest();
         Streams.closeQuietly(stream);
+        if (manifest == null) {
+            throw new IllegalStateException("Missing manifest file in bundle or not a jar file.");
+        }
         String versionedId = getVersionedId(manifest);
         for (Bundle installedBundle : framework.getBundleContext().getBundles()) {
             if (versionedId.equals(getVersionedId(installedBundle))) {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4acb6ea8/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
index 1e321dc..b0afede 100644
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
+++ b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
@@ -399,7 +399,7 @@ public class CatalogYamlEntityTest extends AbstractYamlTest {
                 "- type: " + SIMPLE_ENTITY_TYPE);
             fail();
         } catch (IllegalStateException e) {
-            Assert.assertEquals(e.getMessage(), "Bundle CatalogBundleDto{symbolicName=" + nonExistentId + ", version=" + nonExistentVersion + ", url=null} not previously registered, but URL is empty.");
+            Assert.assertEquals(e.getMessage(), "Bundle from null failed to install: Bundle CatalogBundleDto{symbolicName=" + nonExistentId + ", version=" + nonExistentVersion + ", url=null} not previously registered, but URL is empty.");
         }
     }
 
@@ -479,8 +479,8 @@ public class CatalogYamlEntityTest extends AbstractYamlTest {
                 "- type: " + SIMPLE_ENTITY_TYPE);
             fail();
         } catch (IllegalStateException e) {
-            assertEquals(e.getMessage(), "Bundle from " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL + " already " +
-                    "installed as " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_NAME + ":" +
+            assertEquals(e.getMessage(), "Bundle from " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL + " failed to install: " +
+                    "Bundle already installed as " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_NAME + ":" +
                     OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_VERSION + " but user explicitly requested " +
                     "CatalogBundleDto{symbolicName=" + nonExistentId + ", version=" + nonExistentVersion + ", url=" +
                     OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL + "}");


[2/5] incubator-brooklyn git commit: Improve errors messages for catalog libraries

Posted by he...@apache.org.
Improve errors messages for catalog libraries


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

Branch: refs/heads/master
Commit: 32a98ea78fa0cb773dcb5ef6399b0808ea89ec0b
Parents: 4acb6ea
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Thu May 14 10:46:35 2015 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Thu May 14 10:46:35 2015 +0300

----------------------------------------------------------------------
 .../main/java/brooklyn/catalog/internal/CatalogBundleDto.java  | 6 +++---
 .../brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java  | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32a98ea7/core/src/main/java/brooklyn/catalog/internal/CatalogBundleDto.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogBundleDto.java b/core/src/main/java/brooklyn/catalog/internal/CatalogBundleDto.java
index 35353c4..46658fb 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogBundleDto.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogBundleDto.java
@@ -32,10 +32,10 @@ public class CatalogBundleDto implements CatalogBundle {
 
     public CatalogBundleDto(String name, String version, String url) {
         if (name == null && version == null) {
-            Preconditions.checkNotNull(url, "url");
+            Preconditions.checkNotNull(url, "url to an OSGi bundle is required");
         } else {
-            Preconditions.checkNotNull(name, "name");
-            Preconditions.checkNotNull(version, "version");
+            Preconditions.checkNotNull(name, "both name and version are required");
+            Preconditions.checkNotNull(version, "both name and version are required");
         }
 
         this.symbolicName = name;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32a98ea7/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
index b0afede..4103c45 100644
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
+++ b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
@@ -417,7 +417,7 @@ public class CatalogYamlEntityTest extends AbstractYamlTest {
                 "- type: " + SIMPLE_ENTITY_TYPE);
             fail();
         } catch (NullPointerException e) {
-            Assert.assertEquals(e.getMessage(), "version");
+            Assert.assertEquals(e.getMessage(), "both name and version are required");
         }
         try {
             addCatalogItem(
@@ -431,7 +431,7 @@ public class CatalogYamlEntityTest extends AbstractYamlTest {
                 "- type: " + SIMPLE_ENTITY_TYPE);
             fail();
         } catch (NullPointerException e) {
-            Assert.assertEquals(e.getMessage(), "name");
+            Assert.assertEquals(e.getMessage(), "both name and version are required");
         }
     }
 


[3/5] incubator-brooklyn git commit: Initialize driver on rebind when on-fire

Posted by he...@apache.org.
Initialize driver on rebind when on-fire

Skip driver initialization only when the entity is permanently marked failed with SERVICE_STATE_EXPECTED=ON_FIRE. When only SERVICE_STATE_ACTUAL=ON_FIRE, but SERVICE_STATE_EXPECTED=RUNNING then the entity should still be operational.


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

Branch: refs/heads/master
Commit: bc3ec900330120f83772a3345a3993e9657a570a
Parents: d0cbcf3
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Mon May 11 15:42:50 2015 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Thu May 14 17:40:10 2015 +0300

----------------------------------------------------------------------
 .../brooklyn/entity/basic/SoftwareProcess.java  |  2 +
 .../entity/basic/SoftwareProcessImpl.java       | 18 +++++---
 .../basic/SoftwareProcessEntityRebindTest.java  | 44 ++++++++++++++++++++
 3 files changed, 58 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/bc3ec900/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcess.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcess.java b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcess.java
index 3958e67..d91a719 100644
--- a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcess.java
+++ b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcess.java
@@ -22,6 +22,7 @@ import java.util.Map;
 
 import brooklyn.config.ConfigKey;
 import brooklyn.entity.Entity;
+import brooklyn.entity.basic.Lifecycle.Transition;
 import brooklyn.entity.trait.Startable;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.basic.AttributeSensorAndConfigKey;
@@ -233,6 +234,7 @@ public interface SoftwareProcess extends Entity, Startable {
             "Whether the process for the service is confirmed as running");
     
     AttributeSensor<Lifecycle> SERVICE_STATE_ACTUAL = Attributes.SERVICE_STATE_ACTUAL;
+    AttributeSensor<Transition> SERVICE_STATE_EXPECTED = Attributes.SERVICE_STATE_EXPECTED;
  
     AttributeSensor<String> PID_FILE = Sensors.newStringSensor("softwareprocess.pid.file", "PID file");
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/bc3ec900/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
index ce28efd..5eea26a 100644
--- a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
+++ b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
@@ -31,11 +31,10 @@ import java.util.concurrent.TimeUnit;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.collect.Sets;
-
 import brooklyn.config.ConfigKey;
 import brooklyn.enricher.basic.AbstractEnricher;
 import brooklyn.entity.Entity;
+import brooklyn.entity.basic.Lifecycle.Transition;
 import brooklyn.entity.basic.ServiceStateLogic.ServiceNotUpLogic;
 import brooklyn.entity.drivers.DriverDependentEntity;
 import brooklyn.entity.drivers.EntityDriverManager;
@@ -57,7 +56,6 @@ import brooklyn.util.collections.MutableMap;
 import brooklyn.util.collections.MutableSet;
 import brooklyn.util.config.ConfigBag;
 import brooklyn.util.exceptions.Exceptions;
-import brooklyn.util.flags.TypeCoercions;
 import brooklyn.util.task.DynamicTasks;
 import brooklyn.util.task.Tasks;
 import brooklyn.util.time.CountdownTimer;
@@ -67,6 +65,7 @@ import brooklyn.util.time.Time;
 import com.google.common.base.Functions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
 
 /**
  * An {@link Entity} representing a piece of software which can be installed, run, and controlled.
@@ -350,12 +349,19 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft
     
     @Override
     public void rebind() {
-        Lifecycle state = getAttribute(SERVICE_STATE_ACTUAL);
-        if (state == null || state != Lifecycle.RUNNING) {
-            log.warn("On rebind of {}, not calling software process rebind hooks because state is {}", this, state);
+        //SERVICE_STATE_ACTUAL might be ON_FIRE due to a temporary condition (problems map non-empty)
+        //Only if the expected state is ON_FIRE then the entity has permanently failed.
+        Transition expectedState = getAttribute(SERVICE_STATE_EXPECTED);
+        if (expectedState == null || expectedState.getState() != Lifecycle.RUNNING) {
+            log.warn("On rebind of {}, not calling software process rebind hooks because expected state is {}", this, expectedState);
             return;
         }
 
+        Lifecycle actualState = getAttribute(SERVICE_STATE_ACTUAL);
+        if (actualState == null || actualState != Lifecycle.RUNNING) {
+            log.warn("Rebinding entity {}, even though actual state is {}. Expected state is {}", new Object[] {this, actualState, expectedState});
+        }
+
         // e.g. rebinding to a running instance
         // FIXME For rebind, what to do about things in STARTING or STOPPING state?
         // FIXME What if location not set?

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/bc3ec900/software/base/src/test/java/brooklyn/entity/basic/SoftwareProcessEntityRebindTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/brooklyn/entity/basic/SoftwareProcessEntityRebindTest.java b/software/base/src/test/java/brooklyn/entity/basic/SoftwareProcessEntityRebindTest.java
index 0cdf900..6911790 100644
--- a/software/base/src/test/java/brooklyn/entity/basic/SoftwareProcessEntityRebindTest.java
+++ b/software/base/src/test/java/brooklyn/entity/basic/SoftwareProcessEntityRebindTest.java
@@ -19,6 +19,8 @@
 package brooklyn.entity.basic;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
 
 import java.io.File;
 import java.util.Collection;
@@ -31,6 +33,7 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import brooklyn.entity.BrooklynAppUnitTestSupport;
+import brooklyn.entity.basic.ServiceStateLogic.ServiceProblemsLogic;
 import brooklyn.entity.basic.SoftwareProcessEntityTest.MyService;
 import brooklyn.entity.proxying.EntitySpec;
 import brooklyn.entity.rebind.RebindTestUtils;
@@ -40,6 +43,7 @@ import brooklyn.location.NoMachinesAvailableException;
 import brooklyn.location.basic.AbstractLocation;
 import brooklyn.location.basic.SshMachineLocation;
 import brooklyn.management.ManagementContext;
+import brooklyn.test.EntityTestUtils;
 import brooklyn.test.entity.TestApplication;
 import brooklyn.util.flags.SetFromFlag;
 
@@ -89,6 +93,46 @@ public class SoftwareProcessEntityRebindTest extends BrooklynAppUnitTestSupport
         assertEquals(newLoc.inUseCount.get(), 0);
     }
 
+    @Test
+    public void testCreatesDriverAfterRebind() throws Exception {
+        origE = app.createAndManageChild(EntitySpec.create(MyService.class));
+        //the entity skips enricher initialization, do it explicitly
+        origE.addEnricher(ServiceStateLogic.newEnricherForServiceStateFromProblemsAndUp());
+
+        MyProvisioningLocation origLoc = mgmt.getLocationManager().createLocation(LocationSpec.create(MyProvisioningLocation.class)
+                .displayName("mylocname"));
+        app.start(ImmutableList.of(origLoc));
+        assertEquals(origE.getAttribute(Attributes.SERVICE_STATE_EXPECTED).getState(), Lifecycle.RUNNING);
+        EntityTestUtils.assertAttributeEqualsEventually(origE, Attributes.SERVICE_STATE_ACTUAL, Lifecycle.RUNNING);
+
+        ServiceProblemsLogic.updateProblemsIndicator((EntityLocal)origE, "test", "fire");
+        EntityTestUtils.assertAttributeEqualsEventually(origE, Attributes.SERVICE_STATE_ACTUAL, Lifecycle.ON_FIRE);
+
+        newApp = (TestApplication) rebind();
+        MyService newE = (MyService) Iterables.getOnlyElement(newApp.getChildren());
+        assertTrue(newE.getDriver() != null, "driver should be initialized");
+    }
+
+    @Test
+    public void testDoesNotCreateDriverAfterRebind() throws Exception {
+        origE = app.createAndManageChild(EntitySpec.create(MyService.class));
+        //the entity skips enricher initialization, do it explicitly
+        origE.addEnricher(ServiceStateLogic.newEnricherForServiceStateFromProblemsAndUp());
+        
+        MyProvisioningLocation origLoc = mgmt.getLocationManager().createLocation(LocationSpec.create(MyProvisioningLocation.class)
+                .displayName("mylocname"));
+        app.start(ImmutableList.of(origLoc));
+        assertEquals(origE.getAttribute(Attributes.SERVICE_STATE_EXPECTED).getState(), Lifecycle.RUNNING);
+        EntityTestUtils.assertAttributeEqualsEventually(origE, Attributes.SERVICE_STATE_ACTUAL, Lifecycle.RUNNING);
+
+        ServiceStateLogic.setExpectedState(origE, Lifecycle.ON_FIRE);
+        EntityTestUtils.assertAttributeEqualsEventually(origE, Attributes.SERVICE_STATE_ACTUAL, Lifecycle.ON_FIRE);
+
+        newApp = (TestApplication) rebind();
+        MyService newE = (MyService) Iterables.getOnlyElement(newApp.getChildren());
+        assertNull(newE.getDriver(), "driver should not be initialized because entity is in a permanent failure");
+    }
+
     private TestApplication rebind() throws Exception {
         RebindTestUtils.waitForPersisted(app);
         TestApplication result = (TestApplication) RebindTestUtils.rebind(mementoDir, getClass().getClassLoader());


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

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


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

Branch: refs/heads/master
Commit: 9c120ac7906f463a47f75fa00ef22ac56f5bb987
Parents: ef699bf bc3ec90
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon May 18 16:32:17 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon May 18 16:32:17 2015 +0100

----------------------------------------------------------------------
 .../brooklyn/entity/basic/SoftwareProcess.java  |  2 +
 .../entity/basic/SoftwareProcessImpl.java       | 18 +++++---
 .../basic/SoftwareProcessEntityRebindTest.java  | 44 ++++++++++++++++++++
 3 files changed, 58 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9c120ac7/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
----------------------------------------------------------------------


[4/5] incubator-brooklyn git commit: This closes #635

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


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

Branch: refs/heads/master
Commit: ef699bf94fadf364498b0d97fee76f5f3898722e
Parents: de67eb0 32a98ea
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon May 18 16:32:14 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon May 18 16:32:14 2015 +0100

----------------------------------------------------------------------
 .../java/brooklyn/catalog/internal/CatalogBundleDto.java  |  6 +++---
 .../src/main/java/brooklyn/management/ha/OsgiManager.java | 10 +++++-----
 core/src/main/java/brooklyn/util/osgi/Osgis.java          |  3 +++
 .../camp/brooklyn/catalog/CatalogYamlEntityTest.java      | 10 +++++-----
 4 files changed, 16 insertions(+), 13 deletions(-)
----------------------------------------------------------------------