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 2017/03/02 17:01:52 UTC

[08/19] brooklyn-server git commit: Merge branch 'master' into config-self-reference-fix

Merge branch 'master' into config-self-reference-fix


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

Branch: refs/heads/master
Commit: 72eff85763db0a6c6b6d854af3834f5e1940f3d8
Parents: 49f0e22 39301e0
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Feb 15 18:33:30 2017 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Feb 15 18:33:30 2017 +0000

----------------------------------------------------------------------
 .../spi/dsl/BrooklynDslInterpreter.java         |   2 +-
 .../spi/dsl/DslDeferredFunctionCall.java        | 109 +++++++----
 .../spi/dsl/methods/BrooklynDslCommon.java      |  56 +++---
 .../brooklyn/spi/dsl/methods/DslComponent.java  | 144 +++++++++-----
 .../spi/dsl/methods/DslToStringHelpers.java     |  79 ++++++++
 .../brooklyn/AddChildrenEffectorYamlTest.java   | 190 +++++++++++++++++++
 .../camp/brooklyn/ConfigParametersYamlTest.java | 177 +++++++++++++++++
 .../camp/brooklyn/CreatePasswordSensorTest.java |  64 +++++++
 .../CreatePasswordSensorIntegrationTest.java    |  67 -------
 .../spi/dsl/DslParseComponentsTest.java         | 162 ++++++++++++++++
 .../brooklyn/camp/brooklyn/spi/dsl/DslTest.java |   2 +-
 .../camp/brooklyn/spi/dsl/DslYamlTest.java      |  13 +-
 .../brooklyn/test/lite/CampYamlLiteTest.java    |   1 +
 .../EmptySoftwareProcessWithPassword.yaml       |  36 ----
 .../example-with-CreatePasswordSensor.yaml      |  36 ++++
 .../core/effector/AddChildrenEffector.java      |  40 +++-
 .../brooklyn/core/objs/BasicSpecParameter.java  |  69 +++++--
 .../brooklyn/core/objs/BrooklynDynamicType.java |   2 +-
 .../apache/brooklyn/rest/api/ActivityApi.java   |   4 +-
 .../rest/resources/ActivityResource.java        |  41 +++-
 20 files changed, 1057 insertions(+), 237 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/72eff857/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/DslComponent.java
----------------------------------------------------------------------
diff --cc camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/DslComponent.java
index e745794,9de3340..7d9a951
--- 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
@@@ -510,11 -539,12 +550,13 @@@ public class DslComponent extends Brook
          @Override
          public final Maybe<Object> getImmediately() {
              Maybe<Entity> targetEntityMaybe = component.getImmediately();
 -            if (targetEntityMaybe.isAbsent()) return Maybe.absent("Target entity not available");
 +            if (targetEntityMaybe.isAbsent()) return Maybe.<Object>cast(targetEntityMaybe);
              EntityInternal targetEntity = (EntityInternal) targetEntityMaybe.get();
-             ConfigKey<?> key = targetEntity.getEntityType().getConfigKey(keyName);
 +            checkAndTagForRecursiveReference(targetEntity);
-             Maybe<?> result = targetEntity.config().getNonBlocking(key != null ? key : ConfigKeys.newConfigKey(Object.class, keyName));
+ 
+             String keyNameS = resolveKeyName(true);
+             ConfigKey<?> key = targetEntity.getEntityType().getConfigKey(keyNameS);
+             Maybe<?> result = targetEntity.config().getNonBlocking(key != null ? key : ConfigKeys.newConfigKey(Object.class, keyNameS));
              return Maybe.<Object>cast(result);
          }
  
@@@ -528,24 -558,11 +570,26 @@@
                          @Override
                          public Object call() throws Exception {
                              Entity targetEntity = component.get();
 +                            checkAndTagForRecursiveReference(targetEntity);
-                             ConfigKey<?> key = targetEntity.getEntityType().getConfigKey(keyName);
-                             return targetEntity.getConfig(key != null ? key : ConfigKeys.newConfigKey(Object.class, keyName));
++
+                             String keyNameS = resolveKeyName(true);
+                             ConfigKey<?> key = targetEntity.getEntityType().getConfigKey(keyNameS);
+                             return targetEntity.getConfig(key != null ? key : ConfigKeys.newConfigKey(Object.class, keyNameS));
 -                        }})
 -                    .build();
 +                        }
 +                    }).build();
 +        }
 +        
 +        private void checkAndTagForRecursiveReference(Entity targetEntity) {
 +            String tag = "DSL:entity('"+targetEntity.getId()+"').config('"+keyName+"')";
 +            Task<?> ancestor = Tasks.current();
 +            while (ancestor!=null) {
 +                if (TaskTags.hasTag(ancestor, tag)) {
 +                    throw new IllegalStateException("Recursive config reference "+tag); 
 +                }
 +                ancestor = ancestor.getSubmittedByTask();
 +            }
 +            
 +            Tasks.addTagDynamically(tag);
          }
  
          @Override

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/72eff857/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslTest.java
----------------------------------------------------------------------
diff --cc camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslTest.java
index 170b799,d387920..63aba8e
--- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslTest.java
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslTest.java
@@@ -365,7 -365,7 +365,7 @@@ public class DslTest extends BrooklynAp
              return this;
          }
          
-         @SuppressWarnings("unused")  // kept in case useful for additional tests
 -        @SuppressWarnings("unused")  // included for completeness?
++        @SuppressWarnings("unused")  // kept in case useful for additional tests, for completeness
          public DslTestWorker wrapInTaskForImmediately(boolean val) {
              wrapInTaskForImmediately = val;
              return this;