...
A tree of manageable categories, that are extend of the interface ConfiguredObject, underpins the Broker. A ConfiguredObject has zero or more attributes, zero or more children and zero or more childrencontext variable name/value pairs. A ConfiguredObject may be persisted to a configuration store so its state can be restored when the Broker is restarted.
The manageable categories are arranged into a tree structure. SystemConfig is at the root and has a single descendent Broker. The Broker itself has children: Port, AuthenticationProvider, VirtualHostNode amongst others. VirtualHostNode has a child VirtualHost. It is the VirtualHost that has categories directly involved in messaging such as Queue. The diagram below illustrates the category hierarchy but many categories are elided for brevity.
draw.io Diagram | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Each ConfiguredObject has zero or more attributes. Attributes have a name and a value which can be a Java primitive value or an instance of any class for which an AttributeValueConverter exist. This mechanism allows attribute values to be Lists, Sets, Maps, or arbitrary structured types ManagedAttributeValues. Attributes are marked up in the code with method annotations @ManagedAttribute
@ManagedAttribute
AttributeValueConverter
Threading
AMQP IO Layer
...