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 <[email protected]>
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: