brooklyn-server git commit: Fix DSL recursive-reference detection
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
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)