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:

Reply via email to