You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2021/05/28 15:15:17 UTC
[brooklyn-server] 05/07: call it `spec_hierarchy` and let it take a
list when supplied via catalog
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 <al...@cloudsoftcorp.com>
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) {