[
https://issues.apache.org/jira/browse/BROOKLYN-460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15950621#comment-15950621
]
ASF GitHub Bot commented on BROOKLYN-460:
-----------------------------------------
Github user geomacy commented on a diff in the pull request:
https://github.com/apache/brooklyn-server/pull/612#discussion_r109126372
--- Diff:
camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityDecorationResolver.java
---
@@ -227,7 +234,55 @@ protected Object
getDecorationAttributeJsonValue(ConfigBag attrs) {
@Override
protected void addDecorationFromJsonMap(Map<?, ?> decorationJson,
List<SpecParameter<?>> decorations) {
- throw new IllegalStateException("Not called");
+ throw new
UnsupportedOperationException("SpecParameterResolver.addDecorationFromJsonMap
should never be called.");
+ }
+ }
+
+ public static class TagsResolver extends
BrooklynEntityDecorationResolver<Iterable<Object>> {
+ protected TagsResolver(BrooklynYamlTypeInstantiator.Factory
instantiator) {
+ super(instantiator);
+ }
+
+ @Override
+ public void decorate(EntitySpec<?> entitySpec, ConfigBag attrs,
Set<String> encounteredRegisteredTypeIds) {
+ Object decorationAttributeJsonValue =
getDecorationAttributeJsonValue(attrs);
+ if (decorationAttributeJsonValue != null) {
+
entitySpec.tagsAdd((Iterable<Object>)decorationAttributeJsonValue);
+ }
+ }
+
+ @Override
+ protected String getDecorationKind() {
+ return "Brooklyn Tags";
+ }
+
+ @Override
+ protected Object getDecorationAttributeJsonValue(ConfigBag attrs) {
+ Object brooklynTags =
attrs.getStringKey(BrooklynCampReservedKeys.BROOKLYN_TAGS);
+ if (brooklynTags == null) {
+ return null;
+ } else if (!(brooklynTags instanceof List)) {
+ throw new
IllegalArgumentException(BrooklynCampReservedKeys.BROOKLYN_TAGS + " should be a
List of String elements. You supplied " + brooklynTags);
+ } else {
+ checkArgument(Iterables.all((List) brooklynTags, new
Predicate() {
+ @Override
+ public boolean apply(@Nullable Object input) {
--- End diff --
Why is this marked nullable?
> Brooklyn Camp syntax for adding tags to an entity spec
> ------------------------------------------------------
>
> Key: BROOKLYN-460
> URL: https://issues.apache.org/jira/browse/BROOKLYN-460
> Project: Brooklyn
> Issue Type: New Feature
> Reporter: Valentin Aitken
> Priority: Minor
>
> Current requirement is to be able to supply String tags in an entity spec in
> YAML so it can be then retrieved via REST API with {{GET
> /v1/applications/<appId>/entities/<entityId>/tags}}.
> Example usage in a YAML blueprint:
> {noformat}
> services:
> - type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
> brooklyn.tags:
> - tag1
> - tag2
> {noformat}
> Please shout if you have further requirements for {{brooklyn.tags}}.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)