brooklyn-server git commit: Fix DSL recursive-reference detection

2018-09-11 Thread richard
Repository: brooklyn-server
Updated Branches:
  refs/heads/1.0.0-M1 8f47a8e70 -> ab2f98b49


Fix DSL recursive-reference detection

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

Branch: refs/heads/1.0.0-M1
Commit: ab2f98b4920ba96d5778233c189d298e61f80c23
Parents: 8f47a8e
Author: Aled Sage 
Authored: Fri Sep 7 19:50:39 2018 +0100
Committer: Richard Downer 
Committed: Tue Sep 11 12:12:21 2018 +

--
 .../spi/dsl/BrooklynDslDeferredSupplier.java|  3 +-
 .../brooklyn/spi/dsl/methods/DslComponent.java  | 12 ++--
 .../camp/brooklyn/spi/dsl/DslYamlTest.java  | 61 
 3 files changed, 69 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ab2f98b4/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
--
diff --git 
a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
 
b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
index f7cf4cc..484aacb 100644
--- 
a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
+++ 
b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
@@ -131,8 +131,7 @@ public abstract class BrooklynDslDeferredSupplier 
implements DeferredSupplier
 @Override
 public abstract Task newTask();
 
-protected void checkAndTagForRecursiveReference(Entity targetEntity) {
-String tag = toString();
+protected void checkAndTagForRecursiveReference(Entity targetEntity, 
String tag) {
 Task ancestor = Tasks.current();
 if (ancestor!=null) {
 ancestor = ancestor.getSubmittedByTask();

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ab2f98b4/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 f542ff2..1040fa9 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
@@ -585,7 +585,8 @@ public class DslComponent extends 
BrooklynDslDeferredSupplier implements
 }
 
 // this is always run in a new dedicated task (possibly a 
fake task if immediate), so no need to clear
-checkAndTagForRecursiveReference(targetEntity);
+String tag = 
"DSL:entity('"+targetEntity.getId()+"').config('"+keyName+"')";
+checkAndTagForRecursiveReference(targetEntity, tag);
 
 String keyNameS = resolveKeyName(true);
 ConfigKey key = 
targetEntity.getEntityType().getConfigKey(keyNameS);
@@ -777,11 +778,12 @@ public class DslComponent extends 
BrooklynDslDeferredSupplier implements
 public Object call() throws Exception {
 Entity targetEntity = component.get();
 
-// this is always run in a new dedicated task (possibly a 
fake task if immediate), so no need to clear
-checkAndTagForRecursiveReference(targetEntity);
-
 int indexI = resolveIndex(immediate);
 
+// this is always run in a new dedicated task (possibly a 
fake task if immediate), so no need to clear
+String tag = 
"DSL:entity('"+targetEntity.getId()+"').location('"+indexI+"')";
+checkAndTagForRecursiveReference(targetEntity, tag);
+
 // TODO Try repeatedly if no location(s)?
 Collection locations = 
getLocations(targetEntity);
 if (locations.size() < (indexI + 1)) {
@@ -811,7 +813,7 @@ public class DslComponent extends 
BrooklynDslDeferredSupplier implements
 .as(Integer.class)
 .context(findExecutionContext(this))
 .immediately(immediately)
-.description("Resolving indx from " + index)
+.description("Resolving index from " + index)

[1/2] brooklyn-server git commit: Fix DSL recursive-reference detection

2018-09-07 Thread duncangrant
Repository: brooklyn-server
Updated Branches:
  refs/heads/master e601350d7 -> c782aae54


Fix DSL recursive-reference detection

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

Branch: refs/heads/master
Commit: 5bc7546b9e2f5af743fad41533322c7804dd8e1b
Parents: 6dafb3f
Author: Aled Sage 
Authored: Fri Sep 7 19:50:39 2018 +0100
Committer: Aled Sage 
Committed: Fri Sep 7 19:50:39 2018 +0100

--
 .../spi/dsl/BrooklynDslDeferredSupplier.java|  3 +-
 .../brooklyn/spi/dsl/methods/DslComponent.java  | 12 ++--
 .../camp/brooklyn/spi/dsl/DslYamlTest.java  | 61 
 3 files changed, 69 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5bc7546b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
--
diff --git 
a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
 
b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
index f7cf4cc..484aacb 100644
--- 
a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
+++ 
b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
@@ -131,8 +131,7 @@ public abstract class BrooklynDslDeferredSupplier 
implements DeferredSupplier
 @Override
 public abstract Task newTask();
 
-protected void checkAndTagForRecursiveReference(Entity targetEntity) {
-String tag = toString();
+protected void checkAndTagForRecursiveReference(Entity targetEntity, 
String tag) {
 Task ancestor = Tasks.current();
 if (ancestor!=null) {
 ancestor = ancestor.getSubmittedByTask();

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5bc7546b/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 f542ff2..1040fa9 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
@@ -585,7 +585,8 @@ public class DslComponent extends 
BrooklynDslDeferredSupplier implements
 }
 
 // this is always run in a new dedicated task (possibly a 
fake task if immediate), so no need to clear
-checkAndTagForRecursiveReference(targetEntity);
+String tag = 
"DSL:entity('"+targetEntity.getId()+"').config('"+keyName+"')";
+checkAndTagForRecursiveReference(targetEntity, tag);
 
 String keyNameS = resolveKeyName(true);
 ConfigKey key = 
targetEntity.getEntityType().getConfigKey(keyNameS);
@@ -777,11 +778,12 @@ public class DslComponent extends 
BrooklynDslDeferredSupplier implements
 public Object call() throws Exception {
 Entity targetEntity = component.get();
 
-// this is always run in a new dedicated task (possibly a 
fake task if immediate), so no need to clear
-checkAndTagForRecursiveReference(targetEntity);
-
 int indexI = resolveIndex(immediate);
 
+// this is always run in a new dedicated task (possibly a 
fake task if immediate), so no need to clear
+String tag = 
"DSL:entity('"+targetEntity.getId()+"').location('"+indexI+"')";
+checkAndTagForRecursiveReference(targetEntity, tag);
+
 // TODO Try repeatedly if no location(s)?
 Collection locations = 
getLocations(targetEntity);
 if (locations.size() < (indexI + 1)) {
@@ -811,7 +813,7 @@ public class DslComponent extends 
BrooklynDslDeferredSupplier implements
 .as(Integer.class)
 .context(findExecutionContext(this))
 .immediately(immediately)
-.description("Resolving indx from " + index)
+.description("Resolving index from " + index)