You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by dr...@apache.org on 2017/11/27 10:15:16 UTC

[1/3] brooklyn-server git commit: BROOKLYN-565: fix Brooklyn:object with nested dsl

Repository: brooklyn-server
Updated Branches:
  refs/heads/master 749d6f193 -> ba05e9642


BROOKLYN-565: fix Brooklyn:object with nested dsl

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

Branch: refs/heads/master
Commit: 397a83253c13a50f63eacdad1a2c91a98f59fc23
Parents: f77b9f0
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 23 11:37:26 2017 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 23 11:37:26 2017 +0000

----------------------------------------------------------------------
 .../camp/brooklyn/spi/dsl/DslUtils.java         | 27 +++++++---
 .../brooklyn/camp/brooklyn/ObjectsYamlTest.java | 51 ++++++++++++++++--
 .../camp/brooklyn/spi/dsl/DslUtilsTest.java     | 54 ++++++++++++++++++++
 3 files changed, 122 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/397a8325/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtils.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtils.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtils.java
index f75b0f9..2c9f025 100644
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtils.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtils.java
@@ -18,27 +18,40 @@
  */
 package org.apache.brooklyn.camp.brooklyn.spi.dsl;
 
-import org.apache.brooklyn.util.core.task.DeferredSupplier;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Map;
 
-import com.google.common.collect.Iterables;
+import org.apache.brooklyn.util.core.task.DeferredSupplier;
 
 public class DslUtils {
 
     /** true iff none of the args are deferred / tasks */
-    public static boolean resolved(Iterable<Object> args) {
-        return resolved(Iterables.toArray(args, Object.class));
+    public static boolean resolved(final Object... args) {
+        if (args == null) return true;
+        return resolved(Arrays.asList(args));
     }
-
+    
     /** true iff none of the args are deferred / tasks */
-    public static boolean resolved(final Object... args) {
+    public static boolean resolved(Iterable<?> args) {
+        if (args == null) return true;
         boolean allResolved = true;
         for (Object arg: args) {
             if (arg instanceof DeferredSupplier<?>) {
                 allResolved = false;
                 break;
+            } else if (arg instanceof Collection) {
+                if (!resolved((Collection<?>)arg)) {
+                    allResolved = false;
+                    break;
+                }
+            } else if (arg instanceof Map) {
+                if (!(resolved(((Map<?,?>)arg).keySet()) && resolved(((Map<?,?>)arg).values()))) {
+                    allResolved = false;
+                    break;
+                }
             }
         }
         return allResolved;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/397a8325/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ObjectsYamlTest.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ObjectsYamlTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ObjectsYamlTest.java
index 85aed95..5ff3f15 100644
--- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ObjectsYamlTest.java
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ObjectsYamlTest.java
@@ -65,6 +65,7 @@ public class ObjectsYamlTest extends AbstractYamlTest {
         private String string;
         private Integer number;
         private Object object;
+        private List<String> list;
 
         // Factory method.
         public static TestObject newTestObjectWithNoArgs() {
@@ -95,6 +96,9 @@ public class ObjectsYamlTest extends AbstractYamlTest {
         public Object getObject() { return object; }
         public void setObject(Object object) { this.object = object; }
 
+        public List<String> getList() { return list; }
+        public void setList(List<String> list) { this.list = list; }
+
         @Override
         public void setManagementContext(ManagementContext managementContext) {
             log.info("Detected injection of {}", managementContext);
@@ -410,7 +414,7 @@ public class ObjectsYamlTest extends AbstractYamlTest {
         String val = (String) testEntity.getConfig(TestEntity.CONF_OBJECT);
         assertEquals(val, "1970-01-01T00:00:01");
     }
-
+    
     @Test
     public void testFieldsAsDeferredSuppliers() throws Exception {
         // all fields as deferred suppliers
@@ -424,13 +428,16 @@ public class ObjectsYamlTest extends AbstractYamlTest {
                 "        type: "+ObjectsYamlTest.class.getName()+"$TestObject",
                 "        object.fields:",
                 "          number: $brooklyn:config(\"myint\")",
-                "          string: $brooklyn:config(\"mystring\")");
+                "          string: $brooklyn:config(\"mystring\")",
+                "          list: ",
+                "          - $brooklyn:config(\"mystring\")");
     
             TestObject testObject = (TestObject) testEntity.getConfig(TestEntity.CONF_OBJECT);
             Assert.assertEquals(testObject.getNumber(), Integer.valueOf(123));
             Assert.assertEquals(testObject.getString(), "myval");
+            Assert.assertEquals(testObject.getList(), ImmutableList.of("myval"));
         }
-        
+
         // Only first field as deferred supplier
         {
             Entity testEntity = setupAndCheckTestEntityInBasicYamlWith(
@@ -469,6 +476,44 @@ public class ObjectsYamlTest extends AbstractYamlTest {
     }
 
     @Test
+    public void testFieldOfTypeListAsDeferredSuppliers() throws Exception {
+        {
+            // Using explicit `deferred: true`
+            Entity testEntity = setupAndCheckTestEntityInBasicYamlWith(
+                "  brooklyn.config:",
+                "    mystring: myval",
+                "    myint: 123",
+                "    test.confObject:",
+                "      $brooklyn:object:",
+                "        type: "+ObjectsYamlTest.class.getName()+"$TestObject",
+                "        deferred: true",
+                "        object.fields:",
+                "          list: ",
+                "          - $brooklyn:config(\"mystring\")");
+    
+            TestObject testObject = (TestObject) testEntity.getConfig(TestEntity.CONF_OBJECT);
+            Assert.assertEquals(testObject.getList(), ImmutableList.of("myval"));
+        }
+        {
+            // See https://issues.apache.org/jira/browse/BROOKLYN-565
+            // should defer evaluation automatically, and resolve config in `getConfig()`
+            Entity testEntity = setupAndCheckTestEntityInBasicYamlWith(
+                "  brooklyn.config:",
+                "    mystring: myval",
+                "    myint: 123",
+                "    test.confObject:",
+                "      $brooklyn:object:",
+                "        type: "+ObjectsYamlTest.class.getName()+"$TestObject",
+                "        object.fields:",
+                "          list: ",
+                "          - $brooklyn:config(\"mystring\")");
+    
+            TestObject testObject = (TestObject) testEntity.getConfig(TestEntity.CONF_OBJECT);
+            Assert.assertEquals(testObject.getList(), ImmutableList.of("myval"));
+        }
+    }
+    
+    @Test
     public void testConfigAsDeferredSuppliers() throws Exception {
         // all fields as deferred suppliers
         {

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/397a8325/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtilsTest.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtilsTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtilsTest.java
new file mode 100644
index 0000000..60dec99
--- /dev/null
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtilsTest.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.brooklyn.camp.brooklyn.spi.dsl;
+
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import java.util.List;
+
+import org.apache.brooklyn.util.collections.MutableList;
+import org.apache.brooklyn.util.core.task.DeferredSupplier;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
+public class DslUtilsTest {
+
+    @Test
+    public void testResolved() throws Exception {
+        DeferredSupplier<String> deferredVal = new DeferredSupplier<String>() {
+            public String get() {return "myval";};
+        };
+        
+        assertTrue(DslUtils.resolved());
+        assertTrue(DslUtils.resolved((Object)null));
+        assertTrue(DslUtils.resolved((List<?>)null));
+        assertTrue(DslUtils.resolved(ImmutableList.of()));
+        assertTrue(DslUtils.resolved(MutableList.of(null)));
+        assertTrue(DslUtils.resolved(1, "a", ImmutableList.of("b"), ImmutableMap.of("c", "d")));
+        
+        assertFalse(DslUtils.resolved(deferredVal));
+        assertFalse(DslUtils.resolved(ImmutableList.of(deferredVal)));
+        assertFalse(DslUtils.resolved(ImmutableList.of(ImmutableList.of(deferredVal))));
+        assertFalse(DslUtils.resolved(ImmutableList.of(ImmutableMap.of(deferredVal, "myval"))));
+        assertFalse(DslUtils.resolved(ImmutableList.of(ImmutableMap.of("mykey", deferredVal))));
+    }
+}


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

Posted by dr...@apache.org.
This closes #904


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

Branch: refs/heads/master
Commit: ba05e964253c998ebe795861d62f58c0ae2e547f
Parents: 749d6f1 8f2edef
Author: Duncan Godwin <dr...@googlemail.com>
Authored: Mon Nov 27 10:15:09 2017 +0000
Committer: Duncan Godwin <dr...@googlemail.com>
Committed: Mon Nov 27 10:15:09 2017 +0000

----------------------------------------------------------------------
 .../camp/brooklyn/spi/dsl/DslUtils.java         | 15 ++---
 .../brooklyn/camp/brooklyn/ObjectsYamlTest.java | 56 ++++++++++++++++++-
 .../camp/brooklyn/spi/dsl/DslUtilsTest.java     | 59 ++++++++++++++++++++
 3 files changed, 120 insertions(+), 10 deletions(-)
----------------------------------------------------------------------



[2/3] brooklyn-server git commit: BROOKLYN-565: revert “fix”; include broken tests

Posted by dr...@apache.org.
BROOKLYN-565: revert “fix”; include broken tests

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

Branch: refs/heads/master
Commit: 8f2edef3353e04a72775c7aa7bcd1b60488f6690
Parents: 397a832
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 23 16:40:13 2017 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 23 16:40:13 2017 +0000

----------------------------------------------------------------------
 .../brooklyn/camp/brooklyn/spi/dsl/DslUtils.java       | 12 ------------
 .../apache/brooklyn/camp/brooklyn/ObjectsYamlTest.java |  7 ++++++-
 .../brooklyn/camp/brooklyn/spi/dsl/DslUtilsTest.java   | 13 +++++++++----
 3 files changed, 15 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8f2edef3/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtils.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtils.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtils.java
index 2c9f025..9789c86 100644
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtils.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtils.java
@@ -19,8 +19,6 @@
 package org.apache.brooklyn.camp.brooklyn.spi.dsl;
 
 import java.util.Arrays;
-import java.util.Collection;
-import java.util.Map;
 
 import org.apache.brooklyn.util.core.task.DeferredSupplier;
 
@@ -40,16 +38,6 @@ public class DslUtils {
             if (arg instanceof DeferredSupplier<?>) {
                 allResolved = false;
                 break;
-            } else if (arg instanceof Collection) {
-                if (!resolved((Collection<?>)arg)) {
-                    allResolved = false;
-                    break;
-                }
-            } else if (arg instanceof Map) {
-                if (!(resolved(((Map<?,?>)arg).keySet()) && resolved(((Map<?,?>)arg).values()))) {
-                    allResolved = false;
-                    break;
-                }
             }
         }
         return allResolved;

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8f2edef3/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ObjectsYamlTest.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ObjectsYamlTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ObjectsYamlTest.java
index 5ff3f15..edbc201 100644
--- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ObjectsYamlTest.java
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ObjectsYamlTest.java
@@ -476,7 +476,7 @@ public class ObjectsYamlTest extends AbstractYamlTest {
     }
 
     @Test
-    public void testFieldOfTypeListAsDeferredSuppliers() throws Exception {
+    public void testFieldOfTypeListAsDeferredSuppliersExplicitlyDeferred() throws Exception {
         {
             // Using explicit `deferred: true`
             Entity testEntity = setupAndCheckTestEntityInBasicYamlWith(
@@ -494,6 +494,11 @@ public class ObjectsYamlTest extends AbstractYamlTest {
             TestObject testObject = (TestObject) testEntity.getConfig(TestEntity.CONF_OBJECT);
             Assert.assertEquals(testObject.getList(), ImmutableList.of("myval"));
         }
+    }
+    
+    // TODO See https://issues.apache.org/jira/browse/BROOKLYN-565
+    @Test(groups="Broken")
+    public void testFieldOfTypeListAsDeferredSuppliers() throws Exception {
         {
             // See https://issues.apache.org/jira/browse/BROOKLYN-565
             // should defer evaluation automatically, and resolve config in `getConfig()`

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8f2edef3/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtilsTest.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtilsTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtilsTest.java
index 60dec99..f10e8d8 100644
--- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtilsTest.java
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslUtilsTest.java
@@ -32,12 +32,12 @@ import com.google.common.collect.ImmutableMap;
 
 public class DslUtilsTest {
 
+    private DeferredSupplier<String> deferredVal = new DeferredSupplier<String>() {
+        public String get() {return "myval";};
+    };
+
     @Test
     public void testResolved() throws Exception {
-        DeferredSupplier<String> deferredVal = new DeferredSupplier<String>() {
-            public String get() {return "myval";};
-        };
-        
         assertTrue(DslUtils.resolved());
         assertTrue(DslUtils.resolved((Object)null));
         assertTrue(DslUtils.resolved((List<?>)null));
@@ -47,6 +47,11 @@ public class DslUtilsTest {
         
         assertFalse(DslUtils.resolved(deferredVal));
         assertFalse(DslUtils.resolved(ImmutableList.of(deferredVal)));
+    }
+    
+    // TODO See https://issues.apache.org/jira/browse/BROOKLYN-565
+    @Test(groups="Broken")
+    public void testResolvedDetectionInNestedCollections() throws Exception {
         assertFalse(DslUtils.resolved(ImmutableList.of(ImmutableList.of(deferredVal))));
         assertFalse(DslUtils.resolved(ImmutableList.of(ImmutableMap.of(deferredVal, "myval"))));
         assertFalse(DslUtils.resolved(ImmutableList.of(ImmutableMap.of("mykey", deferredVal))));