allow locations to be overridden when referring to a type
authorAlex Heneveld <alex.heneveld@cloudsoftcorp.com>
Thu, 14 Jan 2016 12:16:23 +0000 (12:16 +0000)
committerAlex Heneveld <alex.heneveld@cloudsoftcorp.com>
Thu, 14 Jan 2016 14:43:00 +0000 (14:43 +0000)
commit70ed345e4b4cb992d92f363f250000b4c00558ae
tree9da235fd7690f4e8d66899d171190ffee6a43932
parent01833f20621a34bf5437d0a4dff8a775823fcbb8
allow locations to be overridden when referring to a type

not sure of the cleanest way to achieve this, but where a type includes a location,
a caller may wish to override it, such as in the default catalog references to template 2.

previously i think locations in referenced types were just dropped (?)
but then it was changed to be additive, which makes sense and is consistent, but
breaks the examples and means there was no way to override a location in a referenced type.

this changes it so that *if* a location block is included on the *referencer*, even if empty,
it overrides the locations on the referenced type. examples are updated accordingly.

an alternative would be to introduce a new explicit field to clear locations;
or a very different alternative would be to put locations in comments in the examples,
and clarify in the code templates/applications (as presently the presence of a location
is what triggers something being editable!); those are worth considering, especially the latter,
but the present change actually seems sensible as it is rare a caller would want to *add*
a location to a referenced type!
brooklyn-server/api/src/main/java/org/apache/brooklyn/api/entity/EntitySpec.java
brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
brooklyn-server/server-cli/src/main/resources/brooklyn/default.catalog.bom