Hi Brooklyners,
I am new here, but while writing CAMP blueprints using Brooklyn DSL I hit a wall. Here’s my situation: I have a brooklyn.parameter of a custom type named Credential, that is defined like this: - *id*: Credential *format*: bean-with-type *item*: *type*: my.type.Credential The Credential class has two properties: user and token. I want to be able to use the value of the ‘user’ property when configuring my service, like this: *items*: - *itemType*: template *item*: *brooklyn.parameters*: - *name*: user_credentials *type*: Credential *default*: *user*: *"unsername" **token*: *"password" **services*: - *id*: credential-service *type*: my.credential.Service *brooklyn.initializers*: - *type*: my.initializer.AAA *brooklyn.config*: *name*: user.name *static.value*: *$brooklyn:config("user_credentials")["user"]* Currently I see no way to access the value of the "user" property of my brooklyn parameter. Also, in case the Credential type also has a "roles" property which is a list<string> or an array, I would very much like to be able to write *$brooklyn:config("user_credentials")["roles"]["0"]* Of if the “user.credentials” is of type list<Credentials>, it would be nice if I could do *$brooklyn:config("user_credentials")["0"]["user"]* I personally like the [x] approach where x is tried (in order): - an argument to a `get(x)` method (works for lists and maps: index or key) - a bean property (if x is a string, look for method called getX() or a field called x - a config key, if the target is Configurable , ie getConfig(x) or config().get(x) Or we could go for something pretty similar to a JsonPath style ( https://github.com/json-path/JsonPath) This would allow us to write constructs like: *$brooklyn:config("user_credentials").user* *$brooklyn:config("user_credentials").roles[0]* *$brooklyn:config("user_credentials")[0].user* I think a change like this would make Brooklyn DSL more flexible and open the door to further improvements and also make blueprints more readable. I propose to work on the above and welcome any thoughts from the community. Cheers, Iuliana -- Cheers, Iuliana Cosmina