[
https://issues.apache.org/jira/browse/BROOKLYN-454?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15928226#comment-15928226
]
Aled Sage commented on BROOKLYN-454:
------------------------------------
This is not related to inherited config. I think a better name would be
something like:
{noformat}
can't chain `$brooklyn:config("entity")` with subsequent DSL expressions
{noformat}
Try this blueprint:
{noformat}
location: localhost
services:
- type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
brooklyn.parameters:
- name: root.entity
type: org.apache.brooklyn.api.entity.Entity
brooklyn.config:
root.entity: $brooklyn:self()
launch.command: echo Launching
checkRunning.command: echo CheckRunning
stop.command: echo Stopping
launch.latch: $brooklyn:config("root.entity").attributeWhenReady("mysensor")
{noformat}
It fails to even deploy, giving back the error:
{noformat}
Error launching blueprint: Error resolving
$brooklyn:config("root.entity").attributeWhenReady([mysensor]), in
org.apache.brooklyn.util.core.task.BasicExecutionContext@5c3c0b8f([Wrapped[contextEntity:VanillaSoftwareProcessImpl{id=ir7jenazjs}],
LocalManagementContext[Aa5aJoCe-Tm6SWtZJ]]): Error resolving
$brooklyn:entity(org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.BrooklynDslCommon$DslFacades$EntitySupplier@3489e896).attributeWhenReady("mysensor"),
in
org.apache.brooklyn.util.core.task.BasicExecutionContext@5c3c0b8f([Wrapped[contextEntity:VanillaSoftwareProcessImpl{id=ir7jenazjs}],
LocalManagementContext[Aa5aJoCe-Tm6SWtZJ]]): component-id blank, from
org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.BrooklynDslCommon$DslFacades$EntitySupplier@3489e896
{noformat}
I think the problem is the DSL parsing doesn't understand that
{{$brooklyn:config("root.entity")}} will return an entity, so it gives an error.
In contrast, the blueprint below does deploy:
{noformat}
location: localhost
services:
- type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
brooklyn.config:
launch.command: echo Launching
checkRunning.command: echo CheckRunning
stop.command: echo Stopping
launch.latch: $brooklyn:self().attributeWhenReady("mysensor")
{noformat}
> DSL config evaluation fails for inherited entity
> ------------------------------------------------
>
> Key: BROOKLYN-454
> URL: https://issues.apache.org/jira/browse/BROOKLYN-454
> Project: Brooklyn
> Issue Type: Bug
> Environment: Brooklyn 0.11.0-SNAPSHOT
> Reporter: Duncan Godwin
>
> Brooklyn seems to evaluate {{$brooklyn:config}} correctly in a latch when
> inheriting the value from a parent. The following used to work in Apache
> Brooklyn 0.10.0 but no longer does:
> {code}
> location: localhost
> services:
> - type: org.apache.brooklyn.entity.stock.BasicApplication
> name: my-parent
> brooklyn.config:
> root.entity: $brooklyn:self()
> brooklyn.children:
> - type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
> name: my-child
> brooklyn.config:
> launch.command: echo Launching
> checkRunning.command: echo CheckRunning
> stop.command: echo Stopping
> launch.latch:
> $brooklyn:config("root.entity").attributeWhenReady("sensorInParent")
> {code}
> The following does work:
> {code}
> location: localhost
> services:
> - type: org.apache.brooklyn.entity.stock.BasicApplication
> name: my-parent
> brooklyn.config:
> root.entity: $brooklyn:self()
> brooklyn.children:
> - type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
> name: my-child
> brooklyn.initializers:
> - type: org.apache.brooklyn.core.sensor.StaticSensor
> brooklyn.config:
> name: root.entity
> targetType: org.apache.brooklyn.api.entity.Entity
> static.value: $brooklyn:config("root.entity")
> brooklyn.config:
> launch.command: echo Launching
> checkRunning.command: echo CheckRunning
> stop.command: echo Stopping
> launch.latch:
> $brooklyn:attributeWhenReady("root.entity").attributeWhenReady("sensorInParent")
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)