[ 
https://issues.apache.org/jira/browse/BROOKLYN-460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15946845#comment-15946845
 ] 

ASF GitHub Bot commented on BROOKLYN-460:
-----------------------------------------

Github user aledsage commented on a diff in the pull request:

    https://github.com/apache/brooklyn-server/pull/612#discussion_r108631894
  
    --- Diff: 
camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityDecorationResolver.java
 ---
    @@ -227,7 +234,54 @@ 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) {
    +            if (getDecorationAttributeJsonValue(attrs) != null) {
    +                
entitySpec.tagsAdd((Iterable<Object>)getDecorationAttributeJsonValue(attrs));
    +            }
    +        }
    +
    +        @Override
    +        protected String getDecorationKind() {
    +            return "Brooklyn Tags";
    +        }
    +
    +        @Override
    +        protected Object getDecorationAttributeJsonValue(ConfigBag attrs) {
    --- End diff --
    
    You can declare the return type as `Iterable<Object>`, and therefore avoid 
the cast in `decorate()`.
    
    As an aside, the `entitySpec.tagsAdd() should really take an `Iterable<?>` 
rather than an `Iterable<Object>`, but don't worry about that for this PR.


> 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)

Reply via email to