Changes propagator getDestinationSensor to lookup on sensor name, rather than sensor equality
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/dab66540 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/dab66540 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/dab66540 Branch: refs/heads/master Commit: dab66540056e6b19932cd3eaa0214d2c932a37dc Parents: f53d536 Author: Martin Harris <[email protected]> Authored: Thu Sep 10 15:33:32 2015 +0100 Committer: Martin Harris <[email protected]> Committed: Thu Sep 10 16:40:35 2015 +0100 ---------------------------------------------------------------------- .../apache/brooklyn/enricher/stock/Propagator.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/dab66540/core/src/main/java/org/apache/brooklyn/enricher/stock/Propagator.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/enricher/stock/Propagator.java b/core/src/main/java/org/apache/brooklyn/enricher/stock/Propagator.java index e6050fd..195fc9c 100644 --- a/core/src/main/java/org/apache/brooklyn/enricher/stock/Propagator.java +++ b/core/src/main/java/org/apache/brooklyn/enricher/stock/Propagator.java @@ -39,6 +39,7 @@ import org.apache.brooklyn.util.core.task.ValueResolver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.base.Predicate; import com.google.common.base.Predicates; @@ -162,7 +163,7 @@ public class Propagator extends AbstractEnricher implements SensorEventListener< // propagate upwards Sensor<?> sourceSensor = event.getSensor(); Sensor<?> destinationSensor = getDestinationSensor(sourceSensor); - + if (!sensorFilter.apply(sourceSensor)) { return; // ignoring excluded sensor } @@ -195,7 +196,15 @@ public class Propagator extends AbstractEnricher implements SensorEventListener< } } - private Sensor<?> getDestinationSensor(Sensor<?> sourceSensor) { - return sensorMapping.containsKey(sourceSensor) ? sensorMapping.get(sourceSensor): sourceSensor; + private Sensor<?> getDestinationSensor(final Sensor<?> sourceSensor) { + Optional<? extends Sensor<?>> mappingSensor = Iterables.tryFind(sensorMapping.keySet(), new Predicate<Sensor<?>>() { + @Override + public boolean apply(Sensor<?> sensor) { + return sourceSensor.getName().equals(sensor.getName()); + } + }); + + return mappingSensor.isPresent() ? sensorMapping.get(mappingSensor.get()) : sourceSensor; } + }
