This milestone release includes many additions and fixes, and brings us much closer to a 0.6.0 release.
It incorporates a lot of improvements and feedback from our community. Thank you!
Thanks also go to Brooklyn's commercial users. Already Brooklyn has been adopted into some very exciting projects including controlling custom PaaS offerings, big data clusters, and three-tier web-apps.
For more information, please checkout http://brooklyncentral.github.io, and subscribe to the mailing lists:
The major changes between 0.5 and 0.6.0 (including any and all previous 0.6.0 milestone releases) are:
Locations are now constructed using a LocationSpec, rather than calling the constructor directly. This improvement is required to allow the Brooklyn management plane to track locations and persist their state.
A datagrid can be used to store the entity/location state within Brooklyn. This feature is currently disabled by default (i.e. storing to an in-memory pseduo-datagrid); work will continue on this in subsequent releases.
A new location-metadata.properties file allows metadata values (e.g. ISO-3166, lat/lon coordinates, etc) to be added to and overridden.
Several additional clouds are supported, including:
Several new entities have been added, including:
For upgrading from 0.5.0 to 0.6.0, existing entities/applications/policies will still work, provided they did not previously have deprecation warnings.
Some additional code has been deprecated - users are strongly encouraged to update these:
Some previously deprecated code has been deleted.
Use LocationSpec
(and managementContext.getLocationManager().createLocation(LocationSpec.spec(MyLocClazz.class)
), rather than calling location constructors directly.
Use camelCase for property names in brooklyn.properties (e.g. brooklyn.jclouds.publicKeyFile instead of brooklyn.jclouds.public-key-file).
Use @Effector
and @EffectorParam
for annotating effector methods in an entity (rather than @Description
, @NamedParameter
and @DefaultValue
).
location.getName()
has been renamed to location.getDisplayName()
, to be consistent with Entity. The location.getChildLocations()
and location.getParentLocation()
have also been renamed to getChildren()
and getParent()
respectively.
If overriding a config key in an entity to change the default value specified in a super-type entity or constant, then use ConfigKeys.newConfigKeyWithDefault(...)
.
Use ConfigKeys.newStringConfigKey(...)
and similar methods, rather than using new ConfigKey<String>(String.class, ...)
ListConfigKey
has been deprecated because it no longer guarantees order; instead use SetConfigKey
. This is a consequence of efficiently using a datagrid to store the data.
Use the new FeedConfig.onFailure()
, FeedConfig.onError()
and FeedConfig.checkSuccess()
. This is now called for example to determine if a http 404 is a success or failure (default failure), and if an ssh non-zero exit code is a failure (default yes).
Some package/class changes, such as:
brooklyn.util.NetworkUtils
renamed to brooklyn.util.net.Networking
brooklyn.entity.basic.lifecycle.CommonCommands
renamed to brooklyn.util.ssh.CommonCommands
brooklyn.util.MutableMap
renamed to brooklyn.util.collections.MutableMap
http://brooklyncentral.github.io/v/0.5.0/start/release-notes.html