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
The following commit(s) were added to refs/heads/master by this push: new 8abb4cfb90 support AddTags initializer and better errors 8abb4cfb90 is described below commit 8abb4cfb9079c280584b7d55f54a1c0a9a77d766 Author: Alex Heneveld <a...@cloudsoft.io> AuthorDate: Thu Dec 7 20:10:14 2023 +0000 support AddTags initializer and better errors --- .../org/apache/brooklyn/core/entity/EntityInitializers.java | 4 +++- .../workflow/steps/appmodel/UpdateChildrenWorkflowStep.java | 1 + .../core/json/ErrorAndToStringUnknownTypeSerializer.java | 3 +++ karaf/init/src/main/resources/catalog.bom | 12 ++++++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/EntityInitializers.java b/core/src/main/java/org/apache/brooklyn/core/entity/EntityInitializers.java index bbbb95dbfd..0468c50f48 100644 --- a/core/src/main/java/org/apache/brooklyn/core/entity/EntityInitializers.java +++ b/core/src/main/java/org/apache/brooklyn/core/entity/EntityInitializers.java @@ -48,13 +48,15 @@ public class EntityInitializers { public static class AddTags implements EntityInitializer { public final List<Object> tags; - private AddTags() { tags = null; } + /** JSON/internal constructor; does not allow setting tags */ + public AddTags() { tags = null; } public AddTags(Object... tags) { this.tags = ImmutableList.copyOf(tags); } @Override public void apply(EntityLocal entity) { + if (tags==null) throw new IllegalStateException("Initializer needs to be configured with the tags to add"); for (Object tag: tags) entity.tags().addTag(tag); } diff --git a/core/src/main/java/org/apache/brooklyn/core/workflow/steps/appmodel/UpdateChildrenWorkflowStep.java b/core/src/main/java/org/apache/brooklyn/core/workflow/steps/appmodel/UpdateChildrenWorkflowStep.java index 777b0da50e..27ed3d0c68 100644 --- a/core/src/main/java/org/apache/brooklyn/core/workflow/steps/appmodel/UpdateChildrenWorkflowStep.java +++ b/core/src/main/java/org/apache/brooklyn/core/workflow/steps/appmodel/UpdateChildrenWorkflowStep.java @@ -356,6 +356,7 @@ public class UpdateChildrenWorkflowStep extends WorkflowStepDefinition implement "condition", MutableMap.of("target", "${child.effector.on_update}") )) ), checkWorkflow -> outerWorkflowCustomers.apply(checkWorkflow, + // TODO run _on_ each child foreach -> { foreach.setTarget(onUpdateTargets); foreach.setTargetVarName("{child,item,index}"); diff --git a/core/src/main/java/org/apache/brooklyn/util/core/json/ErrorAndToStringUnknownTypeSerializer.java b/core/src/main/java/org/apache/brooklyn/util/core/json/ErrorAndToStringUnknownTypeSerializer.java index 613c55f663..3519882766 100644 --- a/core/src/main/java/org/apache/brooklyn/util/core/json/ErrorAndToStringUnknownTypeSerializer.java +++ b/core/src/main/java/org/apache/brooklyn/util/core/json/ErrorAndToStringUnknownTypeSerializer.java @@ -91,6 +91,9 @@ public class ErrorAndToStringUnknownTypeSerializer extends UnknownSerializer { jgen.writeFieldName("type"); jgen.writeString(value.getClass().getCanonicalName()); + jgen.writeFieldName("viaErrorSerializer"); + jgen.writeString(ErrorAndToStringUnknownTypeSerializer.class.getName()); + jgen.writeFieldName("toString"); jgen.writeString(value.toString()); diff --git a/karaf/init/src/main/resources/catalog.bom b/karaf/init/src/main/resources/catalog.bom index 1dfba42476..5993ec6c73 100644 --- a/karaf/init/src/main/resources/catalog.bom +++ b/karaf/init/src/main/resources/catalog.bom @@ -283,6 +283,18 @@ brooklyn.catalog: item: type: org.apache.brooklyn.core.workflow.WorkflowPolicy + # other useful initializers (because we don't have an "add tags" workflow step) + - id: add-tags-initializer + format: java-type-name + itemType: bean + item: + type: org.apache.brooklyn.core.entity.EntityInitializers$AddTags + + # useful entities + - id: basic-entity + itemType: entity + item: + type: org.apache.brooklyn.entity.stock.BasicEntity - id: workflow-entity itemType: entity item: