support AddTags initializer and better errors
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 bbbb95d..0468c50 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 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 777b0da..27ed3d0 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 @@
                                 "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 613c55f..3519882 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 @@
             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 1dfba42..5993ec6 100644
--- a/karaf/init/src/main/resources/catalog.bom
+++ b/karaf/init/src/main/resources/catalog.bom
@@ -283,6 +283,18 @@
     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: