This is an automated email from the ASF dual-hosted git repository. heneveld pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
commit 66887707c8f0d28e1d42c6c8617a0308365c8899 Author: Alex Heneveld <[email protected]> AuthorDate: Fri May 28 15:02:02 2021 +0100 call it `spec_hierarchy` and let it take a list when supplied via catalog --- .../CatalogYamlEntityOsgiTypeRegistryTest.java | 4 ++-- .../brooklyn/catalog/CatalogYamlEntityTest.java | 4 ++-- .../apache/brooklyn/core/mgmt/BrooklynTags.java | 26 +++++++++++++++------- .../core/typereg/AbstractTypePlanTransformer.java | 8 +++---- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityOsgiTypeRegistryTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityOsgiTypeRegistryTest.java index 101978c..42677df 100644 --- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityOsgiTypeRegistryTest.java +++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityOsgiTypeRegistryTest.java @@ -223,8 +223,8 @@ public class CatalogYamlEntityOsgiTypeRegistryTest extends CatalogYamlEntityTest " id: " + symbolicName, " version: " + TEST_VERSION, " tags:", - " - "+ BrooklynTags.YAML_SPEC_HIERARCHY +": ", - " format: " + CampTypePlanTransformer.FORMAT, + " - "+ BrooklynTags.SPEC_HIERARCHY +": ", + " - format: " + CampTypePlanTransformer.FORMAT, " summary: Plan for " + symbolicName, " contents: | " , " line 1" , 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 f99eb5c..e499639 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 @@ -248,8 +248,8 @@ public class CatalogYamlEntityTest extends AbstractYamlTest { " item:", " type: " + TestEntity.class.getName(), " tags:" , - " - yaml_spec_hierarchy:" , - " format: camp-test", + " - "+BrooklynTags.SPEC_HIERARCHY+":", + " - format: camp-test", " summary: Test Type." , " contents: |" , " type: " + referencedSymbolicName, diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java index 3eefe5d..37f87e4 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java @@ -43,9 +43,13 @@ public class BrooklynTags { private static final Logger LOG = LoggerFactory.getLogger(BrooklynTags.class); + // could deprecate this in favour of spec_hierarchy public static final String YAML_SPEC_KIND = "yaml_spec"; - public static final String YAML_SPEC_HIERARCHY = "yaml_spec_hierarchy"; // TODO rename spec_hierarchy, have spec_source for catalog which gets removed + + public static final String SPEC_HIERARCHY = "spec_hierarchy"; + public static final String DEPTH_IN_ANCESTOR = "depth_in_ancestor"; + public static final String NOTES_KIND = "notes"; public static final String OWNER_ENTITY_ID = "owner_entity_id"; public static final String ICON_URL = "icon_url"; @@ -181,7 +185,7 @@ public class BrooklynTags { public static class SpecHierarchyTag implements Serializable, HasKind { private static final long serialVersionUID = 3805124696862755492L; - public static final String KIND = YAML_SPEC_HIERARCHY; + public static final String KIND = SPEC_HIERARCHY; public static class SpecSummary implements Serializable { @JsonProperty @@ -257,7 +261,7 @@ public class BrooklynTags { } public SpecHierarchyTag buildSpecHierarchyTag() { - return new SpecHierarchyTag(BrooklynTags.YAML_SPEC_HIERARCHY, MutableList.of(buildSpecSummary())); + return new SpecHierarchyTag(SPEC_HIERARCHY, MutableList.of(buildSpecSummary())); } } @@ -306,14 +310,20 @@ public class BrooklynTags { } public void push(SpecSummary newFirstSpecTag) { - // usually the list has a single element here, if specList.add(0, newFirstSpecTag); } + public void push(List<SpecSummary> newFirstSpecs) { + if (newFirstSpecs==null || newFirstSpecs.isEmpty()) return; + if (newFirstSpecs.size()==1) { + push(newFirstSpecs.iterator().next()); + } else { + List<SpecSummary> l = MutableList.copyOf(newFirstSpecs); + Collections.reverse(l); + l.forEach(this::push); + } + } public void push(SpecHierarchyTag newFirstSpecs) { - // usually the list has a single element here, if - List<SpecSummary> l = MutableList.copyOf(newFirstSpecs.getSpecList()); - Collections.reverse(l); - l.forEach(this::push); + push(newFirstSpecs.getSpecList()); } public SpecSummary pop() { 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 e97ac0f..081957d 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 @@ -18,6 +18,7 @@ */ package org.apache.brooklyn.core.typereg; +import com.google.common.reflect.TypeToken; import java.util.List; import java.util.function.Function; import java.util.function.Supplier; @@ -193,11 +194,10 @@ public abstract class AbstractTypePlanTransformer implements BrooklynTypePlanTra spec.tag(specTag); } - // TODO rename key as spec_sources - SpecSummary source = BrooklynTags.findSingleKeyMapValue(BrooklynTags.YAML_SPEC_HIERARCHY, SpecSummary.class, type.getTags()); - if (source != null) { + List<SpecSummary> sources = BrooklynTags.findSingleKeyMapValue(BrooklynTags.SPEC_HIERARCHY, new TypeToken<List<SpecSummary>>() {}, type.getTags()); + if (sources != null) { specTag.modifyHeadSummary(s -> "Converted for catalog to "+s); - specTag.push(source); + specTag.push(sources); } if (spec instanceof EntitySpec) {
