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

John McCabe commented on BROOKLYN-261:
--------------------------------------

Some pertinent additional comments:

[~svet]: {{PlanInterpreterGuessingType}} will try to parse the yaml itself to 
validate it but it only works for top-level catalog item references and it's 
doing it because the standard camp code path doesn't see the already parsed 
items because they are still not in the catalog
[~alex.heneveld]: so the right fix is to make sure we use some sort of 
temporary extra catalog with the new versions?
[~svet]: yes, the parser should use some kind of overlay catalog passed from 
the caller, not the global one
[~alex.heneveld]: the old behaviour skipped that deeper validation i guess? (so 
alternatively we could restore that...)

[~svet]: You can work around it by adding a top level BasicApplication entity 
(which is what happens behind the scenes any way). But agree we need to address 
the underlying problem.

> Unable to use previous catalog item in the same file if nested inside services
> ------------------------------------------------------------------------------
>
>                 Key: BROOKLYN-261
>                 URL: https://issues.apache.org/jira/browse/BROOKLYN-261
>             Project: Brooklyn
>          Issue Type: Bug
>    Affects Versions: 0.10.0, 0.9.1
>            Reporter: John McCabe
>            Priority: Minor
>
> Attempting to add a catalog with multiple items where an item defined in the 
> catalog is used by a later item nested inside {{services:}} currently fails:
> bq. Could not resolve item 'built-from-test-entity'; 2 errors including: 
> Transformer for Brooklyn OASIS CAMP interpreter gave an error creating this 
> plan: Unable to match plan item: 
> Service[name=<null>,description=<null>,serviceType=test-entity,characteristics=[],customAttributes={}]
> {code:title=Not Working|xml}
> brooklyn.catalog:
>   version: 0.0.1
>   items:
>   - id: test-entity
>     name: Test Entity
>     item:
>       services:
>       - type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
>   - id: built-from-test-entity
>     name: Built From Test Entity
>     item:
>       services:
>       - type: test-entity
> {code}
> *Note* that {{test-entity}} above must not already exist in the catalog or 
> else the bom above would load.
> Altering the {{built-from-test-entity}} to not use nested services allows the 
> catalog bom to be added:
> {code}
>   - id: built-from-test-entity
>     name: Built From Test Entity
>     item:
>       type: test-entity
> {code}
> But this does not help for cases where the nesting is necessary, for example:
> {code}
>   - id: built-from-test-entity
>     name: Built From Test Entity
>     item:
>       services:
>       - type: test-entity
>       - type: another-entity
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to