brooklyn-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From henev...@apache.org
Subject [1/6] incubator-brooklyn git commit: Adds yaml-based tests for regexReplacement
Date Wed, 28 Oct 2015 12:05:16 GMT
Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 13887f699 -> 404b7e02b


Adds yaml-based tests for regexReplacement


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

Branch: refs/heads/master
Commit: a96cb55cd4dd44b4b8bfb60f39794cc2beb7c9e1
Parents: 0779626
Author: Martin Harris <github@nakomis.com>
Authored: Mon Sep 21 14:03:16 2015 +0100
Committer: Martin Harris <github@nakomis.com>
Committed: Thu Oct 15 15:40:41 2015 +0100

----------------------------------------------------------------------
 .../enricher/stock/AbstractTransformer.java     |  6 +-
 .../core/entity/DependentConfigurationTest.java |  3 -
 .../camp/brooklyn/DslAndRebindYamlTest.java     | 70 ++++++++++++++++++++
 3 files changed, 74 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a96cb55c/core/src/main/java/org/apache/brooklyn/enricher/stock/AbstractTransformer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/enricher/stock/AbstractTransformer.java
b/core/src/main/java/org/apache/brooklyn/enricher/stock/AbstractTransformer.java
index 89ebb1a..8a9cf53 100644
--- a/core/src/main/java/org/apache/brooklyn/enricher/stock/AbstractTransformer.java
+++ b/core/src/main/java/org/apache/brooklyn/enricher/stock/AbstractTransformer.java
@@ -57,14 +57,16 @@ public abstract class AbstractTransformer<T,U> extends AbstractEnricher
implemen
     public void setEntity(EntityLocal entity) {
         super.setEntity(entity);
 
-        Function<SensorEvent<T>, U> transformation = getTransformation();
         this.producer = getConfig(PRODUCER) == null ? entity: getConfig(PRODUCER);
         this.sourceSensor = (Sensor<T>) getRequiredConfig(SOURCE_SENSOR);
         Sensor<?> targetSensorSpecified = getConfig(TARGET_SENSOR);
         this.targetSensor = targetSensorSpecified!=null ? (Sensor<U>) targetSensorSpecified
: (Sensor<U>) this.sourceSensor;
         if (producer.equals(entity) && targetSensorSpecified==null) {
+            // We cannot call getTransformation() here to log the tranformation, as it will
attempt
+            // to resolve the transformation, which will cause the entity initialization
thread to
+            // block
             LOG.error("Refusing to add an enricher which reads and publishes on the same
sensor: "+
-                producer+"."+sourceSensor+" (computing "+transformation+")");
+                producer+"."+sourceSensor+" (computing transformation)");
             // we don't throw because this error may manifest itself after a lengthy deployment,

             // and failing it at that point simply because of an enricher is not very pleasant
             // (at least not until we have good re-run support across the board)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a96cb55c/core/src/test/java/org/apache/brooklyn/core/entity/DependentConfigurationTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/DependentConfigurationTest.java
b/core/src/test/java/org/apache/brooklyn/core/entity/DependentConfigurationTest.java
index 17cc6fd..6d73c6d 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/DependentConfigurationTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/DependentConfigurationTest.java
@@ -32,9 +32,6 @@ import java.util.concurrent.atomic.AtomicReference;
 import org.apache.brooklyn.api.entity.EntitySpec;
 import org.apache.brooklyn.api.mgmt.Task;
 import org.apache.brooklyn.api.sensor.AttributeSensor;
-import org.apache.brooklyn.api.sensor.Sensor;
-import org.apache.brooklyn.core.entity.Attributes;
-import org.apache.brooklyn.core.entity.Entities;
 import org.apache.brooklyn.core.entity.lifecycle.Lifecycle;
 import org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogic;
 import org.apache.brooklyn.core.sensor.DependentConfiguration;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a96cb55c/usage/camp/src/test/java/org/apache/brooklyn/camp/brooklyn/DslAndRebindYamlTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/org/apache/brooklyn/camp/brooklyn/DslAndRebindYamlTest.java
b/usage/camp/src/test/java/org/apache/brooklyn/camp/brooklyn/DslAndRebindYamlTest.java
index 42bf9f1..1408d13 100644
--- a/usage/camp/src/test/java/org/apache/brooklyn/camp/brooklyn/DslAndRebindYamlTest.java
+++ b/usage/camp/src/test/java/org/apache/brooklyn/camp/brooklyn/DslAndRebindYamlTest.java
@@ -25,6 +25,7 @@ import java.util.concurrent.Callable;
 import org.apache.brooklyn.api.entity.Application;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.mgmt.ManagementContext;
+import org.apache.brooklyn.api.sensor.AttributeSensor;
 import org.apache.brooklyn.api.sensor.Sensor;
 import org.apache.brooklyn.config.ConfigKey;
 import org.apache.brooklyn.core.config.ConfigKeys;
@@ -35,6 +36,7 @@ import org.apache.brooklyn.core.mgmt.internal.LocalManagementContext;
 import org.apache.brooklyn.core.mgmt.rebind.RebindTestUtils;
 import org.apache.brooklyn.core.sensor.Sensors;
 import org.apache.brooklyn.core.test.entity.TestEntity;
+import org.apache.brooklyn.test.EntityTestUtils;
 import org.apache.brooklyn.util.collections.MutableSet;
 import org.apache.brooklyn.util.core.task.Tasks;
 import org.slf4j.Logger;
@@ -241,4 +243,72 @@ public class DslAndRebindYamlTest extends AbstractYamlTest {
             "    test.confName: $brooklyn:formatString(\"hello %s\", \"world\")");
     }
 
+
+    /*
+           - type: org.apache.brooklyn.enricher.stock.Transformer
+          brooklyn.config:
+            enricher.sourceSensor: $brooklyn:sensor("mongodb.server.replicaSet.primary.endpoint")
+            enricher.targetSensor: $brooklyn:sensor("justtheport")
+            enricher.transformation: $brooklyn:function.regexReplacement("^.*:", "")
+        - type: org.apache.brooklyn.enricher.stock.Transformer
+          brooklyn.config:
+            enricher.sourceSensor: $brooklyn:sensor("mongodb.server.replicaSet.primary.endpoint")
+            enricher.targetSensor: $brooklyn:sensor("directport")
+            enricher.targetValue: $brooklyn:regexReplacement($brooklyn:attributeWhenReady("mongodb.server.replicaSet.primary.endpoint"),
"^.*:", "foo")
+     */
+
+    @Test
+    public void testRegexReplacementWithStrings() throws Exception {
+        Entity testEntity = setupAndCheckTestEntityInBasicYamlWith(
+                "  brooklyn.config:",
+                "    test.regex.config: $brooklyn:regexReplacement(\"somefooname\", \"foo\",
\"bar\")"
+        );
+        Assert.assertEquals("somebarname", testEntity.getConfig(ConfigKeys.newStringConfigKey("test.regex.config")));
+    }
+
+    @Test
+    public void testRegexReplacementWithAttributeWhenReady() throws Exception {
+        Entity testEntity = setupAndCheckTestEntityInBasicYamlWith(
+                "  brooklyn.config:",
+                "    test.regex.config: $brooklyn:regexReplacement($brooklyn:attributeWhenReady(\"test.regex.source\"),
$brooklyn:attributeWhenReady(\"test.regex.pattern\"), $brooklyn:attributeWhenReady(\"test.regex.replacement\"))"
+        );
+        testEntity.sensors().set(Sensors.newStringSensor("test.regex.source"), "somefooname");
+        testEntity.sensors().set(Sensors.newStringSensor("test.regex.pattern"), "foo");
+        testEntity.sensors().set(Sensors.newStringSensor("test.regex.replacement"), "bar");
+
+        Assert.assertEquals("somebarname", testEntity.getConfig(ConfigKeys.newStringConfigKey("test.regex.config")));
+    }
+
+    @Test
+    public void testRegexReplacementFunctionWithStrings() throws Exception {
+        Entity testEntity = setupAndCheckTestEntityInBasicYamlWith(
+                "  brooklyn.enrichers:",
+                "  - type: org.apache.brooklyn.enricher.stock.Transformer",
+                "    brooklyn.config:",
+                "      enricher.sourceSensor: $brooklyn:sensor(\"test.name\")",
+                "      enricher.targetSensor: $brooklyn:sensor(\"test.name.transformed\")",
+                "      enricher.transformation: $brooklyn:function.regexReplacement(\"foo\",
\"bar\")"
+        );
+        testEntity.sensors().set(TestEntity.NAME, "somefooname");
+        AttributeSensor<String> transformedSensor = Sensors.newStringSensor("test.name.transformed");
+        EntityTestUtils.assertAttributeEqualsEventually(testEntity, transformedSensor, "somebarname");
+    }
+
+    @Test
+    public void testRegexReplacementFunctionWithAttributeWhenReady() throws Exception {
+        Entity testEntity = setupAndCheckTestEntityInBasicYamlWith(
+                "  brooklyn.enrichers:",
+                "  - type: org.apache.brooklyn.enricher.stock.Transformer",
+                "    brooklyn.config:",
+                "      enricher.sourceSensor: $brooklyn:sensor(\"test.name\")",
+                "      enricher.targetSensor: $brooklyn:sensor(\"test.name.transformed\")",
+                "      enricher.transformation: $brooklyn:function.regexReplacement($brooklyn:attributeWhenReady(\"test.pattern\"),
$brooklyn:attributeWhenReady(\"test.replacement\"))"
+        );
+        testEntity.sensors().set(Sensors.newStringSensor("test.pattern"), "foo");
+        testEntity.sensors().set(Sensors.newStringSensor("test.replacement"), "bar");
+        testEntity.sensors().set(TestEntity.NAME, "somefooname");
+        AttributeSensor<String> transformedSensor = Sensors.newStringSensor("test.name.transformed");
+        EntityTestUtils.assertAttributeEqualsEventually(testEntity, transformedSensor, "somebarname");
+    }
+
 }


Mime
View raw message