brooklyn-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [13/24] incubator-brooklyn git commit: in AbstractApplication, don't infer locations to pass to start(...)
Date Thu, 14 Jan 2016 23:54:27 GMT
in AbstractApplication, don't infer locations to pass to start(...)

with this, locations defined on an app are no longer inserted automatically by BasicApplication.start().
 this is because locations are now normally defined on yaml.  entities typically prefer a
location if supplied to start(...), but if none are supplied there they look in local configuration
and then ancestor configuration.  if BasicApplication passes their configured location to
the start method, that is trumping any location defined on they descendant entity, which is
probably not desired.  if an entity does not define a location, there is no change to behaviour
as it looks up ancestor location regardless.  but this fixes a bug where if a location A is
defined on an application, and another location B defined on a particular entity in that application,
the entity now uses B whereas previously it was using A.  this makes explicit entity startup
behaviour consistent with how an entity spec used in a cluster works (which has and still
prefers the location defined in the entity spec)


Branch: refs/heads/master
Commit: add81aada1d5da340248f03c6438585d4c7aea5c
Parents: 70ed345
Author: Alex Heneveld <>
Authored: Thu Jan 14 13:36:05 2016 +0000
Committer: Alex Heneveld <>
Committed: Thu Jan 14 14:43:01 2016 +0000

 .../org/apache/brooklyn/core/entity/    | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/entity/
index e000997..3fd4b05 100644
--- a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/entity/
+++ b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/entity/
@@ -38,6 +38,8 @@ import org.apache.brooklyn.util.time.Time;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
  * Users can extend this to define the entities in their application, and the relationships
  * those entities. Users should override the {@link #init()} method, and in there should
@@ -143,7 +145,8 @@ public abstract class AbstractApplication extends AbstractEntity implements
     public void start(Collection<? extends Location> locations) {
-        Collection<? extends Location> locationsToUse = getLocations();
+        // 2016-01: only pass locations passed to us, as per ML discussion
+        Collection<? extends Location> locationsToUse = locations==null ? ImmutableSet.<Location>of()
: locations;
         ServiceProblemsLogic.clearProblemsIndicator(this, START);
         ServiceStateLogic.ServiceNotUpLogic.updateNotUpIndicator(this, Attributes.SERVICE_STATE_ACTUAL,
"Application starting");

View raw message