Fixes to get CatalogYamlEntityTest.testCatalogItemIdInReferencedItems working.
Haven't re-run all unit tests yet. Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/a9e96185 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/a9e96185 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/a9e96185 Branch: refs/heads/master Commit: a9e961855f4e5874939602bc969ca87f537a0031 Parents: 8c44272 Author: Geoff Macartney <[email protected]> Authored: Tue Sep 20 15:51:47 2016 +0100 Committer: Geoff Macartney <[email protected]> Committed: Thu Apr 20 11:18:42 2017 +0100 ---------------------------------------------------------------------- .../brooklyn/api/internal/AbstractBrooklynObjectSpec.java | 8 +++++++- .../brooklyn/camp/brooklyn/ConfigInheritanceYamlTest.java | 1 + .../camp/brooklyn/catalog/CatalogYamlEntityTest.java | 6 +++++- .../org/apache/brooklyn/core/mgmt/EntityManagementUtils.java | 3 +-- .../brooklyn/core/typereg/AbstractTypePlanTransformer.java | 2 +- 5 files changed, 15 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/a9e96185/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java ---------------------------------------------------------------------- diff --git a/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java b/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java index 048a440..d7442fe 100644 --- a/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java +++ b/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java @@ -110,6 +110,12 @@ public abstract class AbstractBrooklynObjectSpec<T,SpecT extends AbstractBrookly return nestCatalogItemId(val); } + public SpecT catalogItemIds(List<String> ids) { + catalogItemIdStack.clear(); + catalogItemIdStack.addAll(ids); + return self(); + } + /** * Adds (stacks) the catalog item id of a wrapping specification. * Does nothing if the value is null. @@ -120,7 +126,7 @@ public abstract class AbstractBrooklynObjectSpec<T,SpecT extends AbstractBrookly */ @Beta public SpecT nestCatalogItemId(String val) { - if (null != val) { + if (null != val && (catalogItemIdStack.isEmpty() || !catalogItemIdStack.element().equals(val))) { catalogItemIdStack.addFirst(val); } return self(); http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/a9e96185/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigInheritanceYamlTest.java ---------------------------------------------------------------------- diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigInheritanceYamlTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigInheritanceYamlTest.java index 89f282b..458c5ca 100644 --- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigInheritanceYamlTest.java +++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigInheritanceYamlTest.java @@ -42,6 +42,7 @@ import org.apache.brooklyn.core.sensor.Sensors; import org.apache.brooklyn.core.test.entity.TestEntity; import org.apache.brooklyn.core.test.entity.TestEntityImpl; import org.apache.brooklyn.entity.software.base.EmptySoftwareProcess; +import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.entity.stock.BasicApplication; import org.apache.brooklyn.util.collections.MutableMap; import org.apache.brooklyn.util.core.internal.ssh.RecordingSshTool; http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/a9e96185/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java ---------------------------------------------------------------------- diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java index dff6689..4e6cfb8 100644 --- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java +++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java @@ -37,6 +37,7 @@ import org.apache.brooklyn.core.config.ConfigKeys; import org.apache.brooklyn.core.test.entity.TestEntity; import org.apache.brooklyn.core.test.entity.TestEntityImpl; import org.apache.brooklyn.core.typereg.RegisteredTypes; +import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.entity.stock.BasicApplication; import org.apache.brooklyn.entity.stock.BasicEntity; import org.apache.brooklyn.util.exceptions.Exceptions; @@ -634,10 +635,13 @@ public class CatalogYamlEntityTest extends AbstractYamlTest { " - serviceType: "+ver(symbolicNameOuter); Entity app = createAndStartApplication(yaml); + Entity entity = app.getChildren().iterator().next(); assertEquals(entity.getCatalogItemId(), ver(symbolicNameOuter)); - // TODO check nested ids + assertEquals(entity.getCatalogItemSuperIds().size(), 2); + assertEquals(entity.getCatalogItemSuperIds().get(0), ver(symbolicNameOuter)); + assertEquals(entity.getCatalogItemSuperIds().get(1), ver(symbolicNameInner)); deleteCatalogEntity(symbolicNameInner); deleteCatalogEntity(symbolicNameOuter); http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/a9e96185/core/src/main/java/org/apache/brooklyn/core/mgmt/EntityManagementUtils.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/EntityManagementUtils.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/EntityManagementUtils.java index cfee58f..70ce4fb 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/EntityManagementUtils.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/EntityManagementUtils.java @@ -259,8 +259,7 @@ public class EntityManagementUtils { wrappedChild.parametersAdd(wrapperParent.getParameters()); } - // prefer the wrapper ID (change in 2016-01); see notes on the catalogItemIdIfNotNull method - wrappedChild.catalogItemIdIfNotNull(wrapperParent.getCatalogItemId()); + wrappedChild.nestCatalogItemId(wrapperParent.getCatalogItemId()); // NB: this clobber's child config wherever they conflict; might prefer to deeply merge maps etc // (or maybe even prevent the merge in these cases; http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/a9e96185/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java b/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java index 5ba36b3..dab0c35 100644 --- a/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java +++ b/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java @@ -104,7 +104,7 @@ public abstract class AbstractTypePlanTransformer implements BrooklynTypePlanTra try { AbstractBrooklynObjectSpec<?, ?> result = createSpec(type, context); // see notes on catalogItemIdIfNotNull - result.catalogItemIdIfNotNull(type.getId()); + result.nestCatalogItemId(type.getId()); return result; } catch (Exception e) { throw Exceptions.propagate(e); } }
