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 2016/11/07 11:41:35 UTC

[1/3] brooklyn-server git commit: Added test for transformer using parameters

Repository: brooklyn-server
Updated Branches:
  refs/heads/master 4d1e3f32f -> aa73099a0


Added test for transformer using parameters


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

Branch: refs/heads/master
Commit: ae651a64c419ffdbd5d36c16109e830d510b07aa
Parents: 90d166e
Author: Andrew Donald Kennedy <an...@cloudsoftcorp.com>
Authored: Sun Nov 6 16:15:20 2016 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Mon Nov 7 09:57:17 2016 +0000

----------------------------------------------------------------------
 .../camp/brooklyn/EnrichersYamlTest.java        | 30 ++++++++++++++++++++
 1 file changed, 30 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ae651a64/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EnrichersYamlTest.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EnrichersYamlTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EnrichersYamlTest.java
index cf9f204..ea61068 100644
--- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EnrichersYamlTest.java
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EnrichersYamlTest.java
@@ -28,6 +28,7 @@ import org.apache.brooklyn.config.ConfigKey;
 import org.apache.brooklyn.core.entity.Entities;
 import org.apache.brooklyn.core.entity.EntityAdjuncts;
 import org.apache.brooklyn.core.entity.EntityInternal;
+import org.apache.brooklyn.core.sensor.Sensors;
 import org.apache.brooklyn.core.test.entity.TestEntity;
 import org.apache.brooklyn.core.test.policy.TestEnricher;
 import org.apache.brooklyn.enricher.stock.Propagator;
@@ -109,6 +110,35 @@ public class EnrichersYamlTest extends AbstractYamlTest {
     }
     
     @Test
+    public void testWithEntityEnricherAndParameters() throws Exception {
+        Entity app = createAndStartApplication(loadYaml("test-entity-basic-template.yaml",
+                    "  id: parentId",
+                    "  brooklyn.parameters:",
+                    "    - name: test.fqdn",
+                    "      type: string",
+                    "      default: \"www.example.org\"",
+                    "  brooklyn.enrichers:",
+                    "    - enricherType: org.apache.brooklyn.enricher.stock.Transformer",
+                    "      brooklyn.config:",
+                    "        enricher.triggerSensors:",
+                    "          - $brooklyn:sensor(\"test.sequence\")",
+                    "        enricher.targetSensor: $brooklyn:sensor(\"main.uri\")",
+                    "        enricher.targetValue:",
+                    "          $brooklyn:formatString:",
+                    "            - \"http://%s:%d/\"",
+                    "            - $brooklyn:config(\"test.fqdn\")",
+                    "            - $brooklyn:attributeWhenReady(\"test.sequence\")"));
+        waitForApplicationTasks(app);
+        
+        log.info("App started:");
+        final Entity parentEntity = app.getChildren().iterator().next();
+        Entities.dumpInfo(app);
+        Assert.assertTrue(parentEntity instanceof TestEntity, "Expected parent entity to be TestEntity, found:" + parentEntity);
+        parentEntity.sensors().set(TestEntity.SEQUENCE, 1234);
+        Asserts.eventually(Entities.attributeSupplier(parentEntity, Sensors.newStringSensor("main.uri")), Predicates.<String>equalTo("http://www.example.org:1234/"));
+    }
+    
+    @Test
     public void testPropagatingEnricher() throws Exception {
         Entity app = createAndStartApplication(loadYaml("test-propagating-enricher.yaml"));
         waitForApplicationTasks(app);


[3/3] brooklyn-server git commit: This closes #410

Posted by al...@apache.org.
This closes #410


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

Branch: refs/heads/master
Commit: aa73099a03e10f1d70fd2573872c930061157157
Parents: 4d1e3f3 ba62cad
Author: Aled Sage <al...@gmail.com>
Authored: Mon Nov 7 11:41:13 2016 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Mon Nov 7 11:41:13 2016 +0000

----------------------------------------------------------------------
 .../brooklyn/spi/dsl/methods/DslComponent.java  | 10 +++++--
 .../camp/brooklyn/EnrichersYamlTest.java        | 30 ++++++++++++++++++++
 .../brooklyn/camp/brooklyn/dsl/DslTest.java     | 24 +++++++++++++++-
 .../AbstractConfigurationSupportInternal.java   |  3 ++
 .../org/apache/brooklyn/util/guava/Maybe.java   |  9 ++++++
 5 files changed, 72 insertions(+), 4 deletions(-)
----------------------------------------------------------------------



[2/3] brooklyn-server git commit: Fix DSL config() to use parameter defaults

Posted by al...@apache.org.
Fix DSL config() to use parameter defaults

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

Branch: refs/heads/master
Commit: ba62cad9fb3f02256d4c7d40efbd3d31a86b30bc
Parents: ae651a6
Author: Aled Sage <al...@gmail.com>
Authored: Mon Nov 7 10:09:13 2016 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Mon Nov 7 10:09:13 2016 +0000

----------------------------------------------------------------------
 .../brooklyn/spi/dsl/methods/DslComponent.java  | 10 +++++---
 .../brooklyn/camp/brooklyn/dsl/DslTest.java     | 24 +++++++++++++++++++-
 .../AbstractConfigurationSupportInternal.java   |  3 +++
 .../org/apache/brooklyn/util/guava/Maybe.java   |  9 ++++++++
 4 files changed, 42 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ba62cad9/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/DslComponent.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/DslComponent.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/DslComponent.java
index 720dfae..5e42fbe 100644
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/DslComponent.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/DslComponent.java
@@ -29,6 +29,7 @@ import org.apache.brooklyn.api.sensor.AttributeSensor;
 import org.apache.brooklyn.api.sensor.Sensor;
 import org.apache.brooklyn.camp.brooklyn.BrooklynCampConstants;
 import org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier;
+import org.apache.brooklyn.config.ConfigKey;
 import org.apache.brooklyn.core.config.ConfigKeys;
 import org.apache.brooklyn.core.entity.Entities;
 import org.apache.brooklyn.core.entity.EntityInternal;
@@ -361,8 +362,10 @@ public class DslComponent extends BrooklynDslDeferredSupplier<Entity> {
             Maybe<Entity> targetEntityMaybe = component.getImmediately();
             if (targetEntityMaybe.isAbsent()) return Maybe.absent("Target entity not available");
             EntityInternal targetEntity = (EntityInternal) targetEntityMaybe.get();
-            
-            return targetEntity.config().getNonBlocking(ConfigKeys.newConfigKey(Object.class, keyName));
+
+            ConfigKey<?> key = targetEntity.getEntityType().getConfigKey(keyName);
+            Maybe<? extends Object> result = targetEntity.config().getNonBlocking(key != null ? key : ConfigKeys.newConfigKey(Object.class, keyName));
+            return Maybe.<Object>cast(result);
         }
 
         @Override
@@ -376,7 +379,8 @@ public class DslComponent extends BrooklynDslDeferredSupplier<Entity> {
                         @Override
                         public Object call() throws Exception {
                             Entity targetEntity = component.get();
-                            return targetEntity.getConfig(ConfigKeys.newConfigKey(Object.class, keyName));
+                            ConfigKey<?> key = targetEntity.getEntityType().getConfigKey(keyName);
+                            return targetEntity.getConfig(key != null ? key : ConfigKeys.newConfigKey(Object.class, keyName));
                         }})
                     .build();
         }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ba62cad9/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/dsl/DslTest.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/dsl/DslTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/dsl/DslTest.java
index 69a0aee..b4ff405 100644
--- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/dsl/DslTest.java
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/dsl/DslTest.java
@@ -35,6 +35,7 @@ import org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.BrooklynDslCommon;
 import org.apache.brooklyn.config.ConfigKey;
 import org.apache.brooklyn.core.config.ConfigKeys;
 import org.apache.brooklyn.core.entity.EntityInternal;
+import org.apache.brooklyn.core.objs.BasicSpecParameter;
 import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
 import org.apache.brooklyn.core.test.entity.TestApplication;
 import org.apache.brooklyn.core.test.entity.TestEntity;
@@ -52,6 +53,7 @@ import org.testng.annotations.Test;
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
 import com.google.common.base.Supplier;
+import com.google.common.collect.ImmutableList;
 import com.google.common.util.concurrent.ListenableScheduledFuture;
 import com.google.common.util.concurrent.ListeningScheduledExecutorService;
 import com.google.common.util.concurrent.MoreExecutors;
@@ -177,6 +179,21 @@ public class DslTest extends BrooklynAppUnitTestSupport {
     }
     
     @Test
+    public void testConfigUsesParameterDefaultValue() throws Exception {
+        final ConfigKey<String> configKey = ConfigKeys.newStringConfigKey("testConfig");
+        ConfigKey<String> configParam = ConfigKeys.newStringConfigKey("testParam", "myDescription", "myDefaultConfigValue");
+        BrooklynDslDeferredSupplier<?> dsl = BrooklynDslCommon.config(configKey.getName());
+        Supplier<ConfigValuePair> valueSupplier = new Supplier<ConfigValuePair>() {
+            @Override public ConfigValuePair get() {
+                return new ConfigValuePair(BrooklynDslCommon.config("testParam"), "myDefaultConfigValue");
+            }
+        };
+        new ConfigTestWorker(app, configKey, valueSupplier, dsl)
+                .childSpec(EntitySpec.create(TestEntity.class).parameters(ImmutableList.of(new BasicSpecParameter<String>("myLabel", true, configParam))))
+                .run();
+    }
+    
+    @Test
     @SuppressWarnings({ "unchecked", "rawtypes" })
     public void testConfigImmediatelyDoesNotBlock() throws Exception {
         ConfigKey<String> configKey = ConfigKeys.newStringConfigKey("testConfig");
@@ -236,7 +253,7 @@ public class DslTest extends BrooklynAppUnitTestSupport {
         protected final TestApplication parent;
         protected final BrooklynDslDeferredSupplier<?> dsl;
         protected final Class<?> type;
-        protected EntitySpec<TestEntity> childSpec = EntitySpec.create(TestEntity.class);
+        protected EntitySpec<? extends TestEntity> childSpec = EntitySpec.create(TestEntity.class);
         protected int resolverIterations = MANY_RESOLVER_ITERATIONS;
         protected boolean satisfiedAsynchronously = false;
         private boolean wrapInTaskForImmediately = true;
@@ -247,6 +264,11 @@ public class DslTest extends BrooklynAppUnitTestSupport {
             this.type = checkNotNull(type, "type");
         }
 
+        public DslTestWorker childSpec(EntitySpec<? extends TestEntity> val) {
+            childSpec = val;
+            return this;
+        }
+        
         public DslTestWorker resolverIterations(int val) {
             resolverIterations = val;
             return this;

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ba62cad9/core/src/main/java/org/apache/brooklyn/core/objs/AbstractConfigurationSupportInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/objs/AbstractConfigurationSupportInternal.java b/core/src/main/java/org/apache/brooklyn/core/objs/AbstractConfigurationSupportInternal.java
index 3465ecf..57730b6 100644
--- a/core/src/main/java/org/apache/brooklyn/core/objs/AbstractConfigurationSupportInternal.java
+++ b/core/src/main/java/org/apache/brooklyn/core/objs/AbstractConfigurationSupportInternal.java
@@ -131,6 +131,9 @@ public abstract class AbstractConfigurationSupportInternal implements BrooklynOb
      * See {@link #getNonBlockingResolvingStructuredKey(ConfigKey)}.
      */
     protected <T> Maybe<T> getNonBlockingResolvingSimple(ConfigKey<T> key) {
+        // TODO See AbstractConfigMapImpl.getConfigImpl, for how it looks up the "container" of the
+        // key, so that it gets the right context entity etc.
+        
         // getRaw returns Maybe(val) if the key was explicitly set (where val can be null)
         // or Absent if the config key was unset.
         Object unresolved = getRaw(key).or(key.getDefaultValue());

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ba62cad9/utils/common/src/main/java/org/apache/brooklyn/util/guava/Maybe.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/guava/Maybe.java b/utils/common/src/main/java/org/apache/brooklyn/util/guava/Maybe.java
index 37aa7c9..5270595 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/guava/Maybe.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/guava/Maybe.java
@@ -135,6 +135,15 @@ public abstract class Maybe<T> implements Serializable, Supplier<T> {
         return ofAllowingNull(value);
     }
     
+    /**
+     * Casts the given value to the desired type. This is valid because {@link Maybe} is immutable,
+     * so things like {@code Maybe<Object>} is a super-type of {@code Maybe<String>}.
+     */
+    @SuppressWarnings("unchecked")
+    public static <T> Maybe<T> cast(Maybe<? extends T> value) {
+        return (Maybe<T>) value;
+    }
+    
     /** Converts the given {@link Maybe} to {@link Optional}, failing if this {@link Maybe} contains null. */
     public Optional<T> toOptional() {
         if (isPresent()) return Optional.of(get());