You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2015/09/23 12:51:56 UTC
[04/10] incubator-brooklyn git commit: Deleted
EntityInternal.getSubscriptionContext
Deleted EntityInternal.getSubscriptionContext
- Added Entity.subscriptions().unsubscribe(handle)
- Added EntityInternal.subscriptions().unsubscribeAll()
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/2b29795b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/2b29795b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/2b29795b
Branch: refs/heads/master
Commit: 2b29795b6ef9c37cb14242ccc28249b16a708c68
Parents: e48bdaa
Author: Aled Sage <al...@gmail.com>
Authored: Mon Sep 21 09:22:24 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Sep 23 10:32:56 2015 +0100
----------------------------------------------------------------------
.../org/apache/brooklyn/api/entity/Entity.java | 9 +++++++
.../brooklyn/core/entity/AbstractEntity.java | 28 ++++++++++++--------
.../brooklyn/core/entity/EntityInternal.java | 14 +---------
.../core/mgmt/internal/SubscriptionTracker.java | 16 +++++++++++
.../core/sensor/DependentConfiguration.java | 8 +++---
.../brooklyn/core/entity/EntityTypeTest.java | 4 +--
.../core/entity/hello/LocalEntitiesTest.java | 8 +++---
.../core/test/entity/TestApplicationImpl.java | 2 +-
.../entity/proxy/nginx/UrlMappingImpl.java | 4 +--
.../AbstractWebAppFixtureIntegrationTest.java | 5 ++--
10 files changed, 58 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2b29795b/api/src/main/java/org/apache/brooklyn/api/entity/Entity.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/entity/Entity.java b/api/src/main/java/org/apache/brooklyn/api/entity/Entity.java
index 4df913b..795218c 100644
--- a/api/src/main/java/org/apache/brooklyn/api/entity/Entity.java
+++ b/api/src/main/java/org/apache/brooklyn/api/entity/Entity.java
@@ -391,6 +391,15 @@ public interface Entity extends BrooklynObject {
*/
@Beta
boolean unsubscribe(Entity producer, SubscriptionHandle handle);
+
+ /**
+ * Unsubscribes the given handle.
+ *
+ * It is (currently) more efficient to also pass in the producer -
+ * see {@link BasicSubscriptionSupport#unsubscribe(Entity, SubscriptionHandle)}
+ */
+ @Beta
+ boolean unsubscribe(SubscriptionHandle handle);
}
@Beta
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2b29795b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
index 13079d3..48a07a4 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
@@ -1069,7 +1069,7 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
if (getManagementSupport().isNoLongerManaged())
throw new IllegalStateException("Entity "+AbstractEntity.this+" is no longer managed, when trying to publish "+sensor+" "+val);
- SubscriptionContext subsContext = getSubscriptionContext();
+ SubscriptionContext subsContext = subscriptions().getSubscriptionContext();
if (subsContext != null) subsContext.publish(sensor.newEvent(getProxyIfAvailable(), val));
}
}
@@ -1390,8 +1390,23 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
return getSubscriptionTracker().unsubscribe(producer, handle);
}
+ /**
+ * Unsubscribes the given handle.
+ *
+ * It is (currently) more efficient to also pass in the producer -
+ * see {@link BasicSubscriptionSupport#unsubscribe(Entity, SubscriptionHandle)}
+ */
@Override
- public SubscriptionContext getSubscriptionContext() {
+ public boolean unsubscribe(SubscriptionHandle handle) {
+ return getSubscriptionTracker().unsubscribe(handle);
+ }
+
+ @Override
+ public void unsubscribeAll() {
+ getSubscriptionTracker().unsubscribeAll();
+ }
+
+ protected SubscriptionContext getSubscriptionContext() {
synchronized (AbstractEntity.this) {
return getManagementSupport().getSubscriptionContext();
}
@@ -1460,15 +1475,6 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
}
/**
- * @deprecated since 0.9.0; see {@code subscriptions().getSubscriptionContext()}
- */
- @Override
- @Deprecated
- public synchronized SubscriptionContext getSubscriptionContext() {
- return subscriptions().getSubscriptionContext();
- }
-
- /**
* @deprecated since 0.9.0; for internal use only
*/
@Deprecated
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2b29795b/core/src/main/java/org/apache/brooklyn/core/entity/EntityInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/EntityInternal.java b/core/src/main/java/org/apache/brooklyn/core/entity/EntityInternal.java
index 04fa88b..4fa9c67 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/EntityInternal.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/EntityInternal.java
@@ -24,25 +24,19 @@ import java.util.Map;
import org.apache.brooklyn.api.effector.Effector;
import org.apache.brooklyn.api.entity.Entity;
import org.apache.brooklyn.api.entity.EntityLocal;
-import org.apache.brooklyn.api.entity.Entity.SensorSupport;
import org.apache.brooklyn.api.location.Location;
import org.apache.brooklyn.api.mgmt.ExecutionContext;
import org.apache.brooklyn.api.mgmt.ManagementContext;
-import org.apache.brooklyn.api.mgmt.SubscriptionContext;
import org.apache.brooklyn.api.mgmt.rebind.RebindSupport;
import org.apache.brooklyn.api.mgmt.rebind.Rebindable;
import org.apache.brooklyn.api.mgmt.rebind.mementos.EntityMemento;
-import org.apache.brooklyn.api.objs.Configurable;
import org.apache.brooklyn.api.sensor.AttributeSensor;
import org.apache.brooklyn.api.sensor.Feed;
import org.apache.brooklyn.config.ConfigKey;
-import org.apache.brooklyn.config.ConfigKey.HasConfigKey;
import org.apache.brooklyn.core.entity.internal.EntityConfigMap;
import org.apache.brooklyn.core.mgmt.internal.EntityManagementSupport;
import org.apache.brooklyn.core.objs.BrooklynObjectInternal;
-import org.apache.brooklyn.core.objs.BrooklynObjectInternal.ConfigurationSupportInternal;
import org.apache.brooklyn.util.core.config.ConfigBag;
-import org.apache.brooklyn.util.guava.Maybe;
import com.google.common.annotations.Beta;
@@ -152,12 +146,6 @@ public interface EntityInternal extends BrooklynObjectInternal, EntityLocal, Reb
*/
ExecutionContext getExecutionContext();
- /**
- * @deprecated since 0.9.0; see {@link SubscriptionSupportInternal#getSubscriptionContext()}, e.g. with {@code subscriptions().getSubscriptionContext()}
- */
- @Deprecated
- SubscriptionContext getSubscriptionContext();
-
/** returns the dynamic type corresponding to the type of this entity instance */
@Beta
EntityDynamicType getMutableEntityType();
@@ -243,7 +231,7 @@ public interface EntityInternal extends BrooklynObjectInternal, EntityLocal, Reb
@Beta
public interface SubscriptionSupportInternal extends Entity.SubscriptionSupport {
- SubscriptionContext getSubscriptionContext();
+ public void unsubscribeAll();
}
@Beta
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2b29795b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/SubscriptionTracker.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/SubscriptionTracker.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/SubscriptionTracker.java
index 3d5793c..bafa150 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/SubscriptionTracker.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/SubscriptionTracker.java
@@ -27,6 +27,7 @@ import org.apache.brooklyn.api.mgmt.SubscriptionContext;
import org.apache.brooklyn.api.mgmt.SubscriptionHandle;
import org.apache.brooklyn.api.sensor.Sensor;
import org.apache.brooklyn.api.sensor.SensorEventListener;
+import org.apache.brooklyn.core.entity.AbstractEntity.BasicSubscriptionSupport;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableList;
@@ -121,6 +122,21 @@ public class SubscriptionTracker {
return context.unsubscribe(handle);
}
+ /**
+ * Unsubscribes the given handle.
+ *
+ * It is (currently) more efficient to also pass in the producer -
+ * see {@link BasicSubscriptionSupport#unsubscribe(Entity, SubscriptionHandle)}
+ *
+ * @see SubscriptionContext#unsubscribe(SubscriptionHandle)
+ */
+ public boolean unsubscribe(SubscriptionHandle handle) {
+ synchronized (subscriptions) {
+ subscriptions.values().remove(handle);
+ }
+ return context.unsubscribe(handle);
+ }
+
/**
* @return an ordered list of all subscription handles
*/
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2b29795b/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java b/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java
index 01e3426..ddca05c 100644
--- a/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java
+++ b/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java
@@ -274,13 +274,13 @@ public class DependentConfiguration {
List<SubscriptionHandle> abortSubscriptions = Lists.newArrayList();
try {
- subscription = ((EntityInternal)entity).getSubscriptionContext().subscribe(source, sensor, new SensorEventListener<T>() {
+ subscription = entity.subscriptions().subscribe(source, sensor, new SensorEventListener<T>() {
@Override public void onEvent(SensorEvent<T> event) {
synchronized (publishedValues) { publishedValues.add(event.getValue()); }
semaphore.release();
}});
for (final AttributeAndSensorCondition abortCondition : abortSensorConditions) {
- abortSubscriptions.add(((EntityInternal)entity).getSubscriptionContext().subscribe(abortCondition.source, abortCondition.sensor, new SensorEventListener<Object>() {
+ abortSubscriptions.add(entity.subscriptions().subscribe(abortCondition.source, abortCondition.sensor, new SensorEventListener<Object>() {
@Override public void onEvent(SensorEvent<Object> event) {
if (abortCondition.predicate.apply(event.getValue())) {
abortionExceptions.add(new Exception("Abort due to "+abortCondition.source+" -> "+abortCondition.sensor));
@@ -354,10 +354,10 @@ public class DependentConfiguration {
throw Exceptions.propagate(e);
} finally {
if (subscription != null) {
- ((EntityInternal)entity).getSubscriptionContext().unsubscribe(subscription);
+ entity.subscriptions().unsubscribe(subscription);
}
for (SubscriptionHandle handle : abortSubscriptions) {
- ((EntityInternal)entity).getSubscriptionContext().unsubscribe(handle);
+ entity.subscriptions().unsubscribe(handle);
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2b29795b/core/src/test/java/org/apache/brooklyn/core/entity/EntityTypeTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/EntityTypeTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/EntityTypeTest.java
index 5851c35..130327f 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/EntityTypeTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/EntityTypeTest.java
@@ -87,8 +87,8 @@ public class EntityTypeTest extends BrooklynAppUnitTestSupport {
super.setUp();
entity = (EntityInternal) app.createAndManageChild(EntitySpec.create(Entity.class, EmptyEntityForTesting.class));
listener = new RecordingSensorEventListener<>();
- app.getSubscriptionContext().subscribe(entity, SENSOR_ADDED, listener);
- app.getSubscriptionContext().subscribe(entity, SENSOR_REMOVED, listener);
+ app.subscriptions().subscribe(entity, SENSOR_ADDED, listener);
+ app.subscriptions().subscribe(entity, SENSOR_REMOVED, listener);
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2b29795b/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java
index 28ee8c1..6d64d2b 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java
@@ -94,7 +94,7 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport {
final AtomicReference<SensorEvent<?>> evt = new AtomicReference<SensorEvent<?>>();
final CountDownLatch latch = new CountDownLatch(1);
- app.getSubscriptionContext().subscribe(h, HelloEntity.AGE, new SensorEventListener<Integer>() {
+ app.subscriptions().subscribe(h, HelloEntity.AGE, new SensorEventListener<Integer>() {
@Override public void onEvent(SensorEvent<Integer> event) {
evt.set(event);
latch.countDown();
@@ -121,7 +121,7 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport {
app.start(ImmutableList.of(loc));
final AtomicReference<SensorEvent<?>> evt = new AtomicReference<SensorEvent<?>>();
- app.getSubscriptionContext().subscribe(h, HelloEntity.ITS_MY_BIRTHDAY, new SensorEventListener<Object>() {
+ app.subscriptions().subscribe(h, HelloEntity.ITS_MY_BIRTHDAY, new SensorEventListener<Object>() {
@Override public void onEvent(SensorEvent<Object> event) {
evt.set(event);
synchronized (evt) {
@@ -149,7 +149,7 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport {
final List<Integer> data = Lists.newArrayList();
final CountDownLatch latch = new CountDownLatch(5);
- app.getSubscriptionContext().subscribe(h, HelloEntity.AGE, new SensorEventListener<Integer>() {
+ app.subscriptions().subscribe(h, HelloEntity.AGE, new SensorEventListener<Integer>() {
@Override public void onEvent(SensorEvent<Integer> event) {
data.add(event.getValue());
Time.sleep((int)(20*Math.random()));
@@ -163,7 +163,7 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport {
}
assertTrue(latch.await(5000, TimeUnit.MILLISECONDS));
- app.getSubscriptionContext().unsubscribeAll();
+ app.subscriptions().unsubscribeAll();
h.setAge(6);
long totalTime = stopwatch.elapsed(TimeUnit.MILLISECONDS);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2b29795b/core/src/test/java/org/apache/brooklyn/core/test/entity/TestApplicationImpl.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/test/entity/TestApplicationImpl.java b/core/src/test/java/org/apache/brooklyn/core/test/entity/TestApplicationImpl.java
index 47faafd..7ce08d3 100644
--- a/core/src/test/java/org/apache/brooklyn/core/test/entity/TestApplicationImpl.java
+++ b/core/src/test/java/org/apache/brooklyn/core/test/entity/TestApplicationImpl.java
@@ -63,7 +63,7 @@ public class TestApplicationImpl extends AbstractApplication implements TestAppl
@Override
public <T> SubscriptionHandle subscribeToMembers(Group parent, Sensor<T> sensor, SensorEventListener<? super T> listener) {
- return getSubscriptionContext().subscribeToMembers(parent, sensor, listener);
+ return subscriptions().subscribeToMembers(parent, sensor, listener);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2b29795b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/UrlMappingImpl.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/UrlMappingImpl.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/UrlMappingImpl.java
index 98d0de2..121219a 100644
--- a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/UrlMappingImpl.java
+++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/UrlMappingImpl.java
@@ -184,8 +184,8 @@ public class UrlMappingImpl extends AbstractGroupImpl implements UrlMapping {
@Override
public synchronized void recompute() {
- if (subscriptionHandle != null) getSubscriptionContext().unsubscribe(subscriptionHandle);
- if (subscriptionHandle2 != null) getSubscriptionContext().unsubscribe(subscriptionHandle2);
+ if (subscriptionHandle != null) subscriptions().unsubscribe(subscriptionHandle);
+ if (subscriptionHandle2 != null) subscriptions().unsubscribe(subscriptionHandle2);
Entity t = getTarget();
if (t != null) {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2b29795b/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/AbstractWebAppFixtureIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/AbstractWebAppFixtureIntegrationTest.java b/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/AbstractWebAppFixtureIntegrationTest.java
index 7a66c87..9c77b45 100644
--- a/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/AbstractWebAppFixtureIntegrationTest.java
+++ b/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/AbstractWebAppFixtureIntegrationTest.java
@@ -369,11 +369,10 @@ public abstract class AbstractWebAppFixtureIntegrationTest {
Entities.start(entity.getApplication(), ImmutableList.of(loc));
SubscriptionHandle subscriptionHandle = null;
- SubscriptionContext subContext = ((EntityInternal)entity).getSubscriptionContext();
try {
final List<SensorEvent> events = new CopyOnWriteArrayList<SensorEvent>();
- subscriptionHandle = subContext.subscribe(entity, WebAppService.REQUESTS_PER_SECOND_IN_WINDOW, new SensorEventListener<Double>() {
+ subscriptionHandle = entity.subscriptions().subscribe(entity, WebAppService.REQUESTS_PER_SECOND_IN_WINDOW, new SensorEventListener<Double>() {
public void onEvent(SensorEvent<Double> event) {
log.info("publishesRequestsPerSecondMetricRepeatedly.onEvent: {}", event);
events.add(event);
@@ -395,7 +394,7 @@ public abstract class AbstractWebAppFixtureIntegrationTest {
}
}});
} finally {
- if (subscriptionHandle != null) subContext.unsubscribe(subscriptionHandle);
+ if (subscriptionHandle != null) entity.subscriptions().unsubscribe(subscriptionHandle);
entity.stop();
}
}