This is best practice and will prevent unlock from being attempted
inside of a finally block when the thread doesn't actually own the
lock which can happen when the lock attempt throws an exception
such as calling lockInterruptibly()
On network connector add or update after broker start (such as the
runtime plugins) the mbean was not created. There was also a couple of
other properties not set. Fixed the network connector start to be the
same for normal broker start and runtime reload.
The JavaRuntimeConfigurationBroker can now apply a subset of policy
properties retrospectively to existing destinations versus applying
all properties of the policy update.
The runtime plugins will now find the exact policy to update which means
that a destination can match more than one policy and the policy can
still be updated at runtime.
The java runtime broker also supports the ability to replace or add a
policy entry based on a flag on a new method call.
Adding support for consumers on virtual destinations to create network
demand. This behavior is turned off by default but can be enabled.
For example, if a consumer comes online for a queue that is part of a
VirtualTopic, this will cause a network of brokers to forward messages
because a demand subscription will be created. Same for if a consumer
comes online for a forwarded destination from a composite
destination.
There is also an option to enable flow based on the existence of a
virtual destination if the virtual destination is forwarding to a
Queue.
Full configuration instructions for this feature will be on the wiki page.
Adding a new JavaRuntimeConfigurationBroker which allows dynamic
changes to parts of the broker through a Java api instead of
just through xml configuration. This is useful if starting a broker
with java config and not using xml. It is also useful for temporary
changes that shouldn't be persisted.
Adding support for auto detection of wire protocols over a transport.
OpenWire, AMQP, STOMP, and MQTT can all be detected and the broker
will properly handle each one over a given Transport. Currently
auto TCP, NIO, SSL, and NIO+SSL transports can handle auto-detection
of the wire format and client but support could be added in the
future for other transports like websockets.