| :jbake-type: page |
| :jbake-status: published |
| |
| = Apache Tamaya - Extension: JMX Management Access |
| |
| toc::[] |
| |
| |
| [[ExtModel]] |
| == Tamaya Management (JMX Support) (Extension Module) |
| Tamaya _Management_ is an extension module. Refer to the link:../extensions.html[extensions documentation] for further details. |
| |
| === What functionality this module provides ? |
| |
| The Tamaya _Management_ module provides support for registering a JMX management bean for |
| accessing configuration. |
| |
| === Compatibility |
| |
| The module is based on Java 7, so it will run on Java 7 and beyond. |
| |
| |
| === Installation |
| |
| To use the _management_ extension you only must add the corresponding dependency |
| to your module: |
| |
| [source, xml, subs=attributes+] |
| ----------------------------------------------- |
| <dependency> |
| <groupId>org.apache.tamaya.ext</groupId> |
| <artifactId>tamaya-management</artifactId> |
| <version>{tamaya_version}</version> |
| </dependency> |
| ----------------------------------------------- |
| |
| |
| === The ManagedConfigMBean bean |
| |
| The management model defines the MBean of type +ManagedConfigMBean+ as follows: |
| |
| |
| [source,java] |
| ----------------------------------------------------------------------------- |
| public interface ManagedConfigMBean { |
| String getJsonConfigurationInfo(); |
| String getXmlConfigurationInfo(); |
| Map<String, String> getConfiguration(); |
| Map<String, String> getSection(String area, boolean recursive); |
| Set<String> getSections(); |
| Set<String> getTransitiveSections(); |
| boolean isSectionExisting(String area); |
| default boolean isSectionEmpty(String area); |
| } |
| ----------------------------------------------------------------------------- |
| |
| * +getJsonConfigurationInfo,getXmlConfigurationInfo+ return a JSON or XML representation of the |
| current configuration. |
| * +getConfiguration+ access the current configuration properties. |
| * +getSection+ allows to extract all entries below a certain subkey. With _recursive_ the query |
| will not only return direct children, but also recursively walk down all subsection of the |
| given section key. |
| * +getSections+ returns all current known section names. |
| * +getTransitiveSections+ return all sections, but also adds all transitive subsection as single |
| entries to the set as well. |
| * +isSectionExisting+ and +isSectionEmpty+ allow for quering if entries are present under the given |
| section keys. |
| |
| |
| === Registering the ManagedConfigMBean |
| |
| For registering the current +ManagedConfigMBean+ instance to the current MBean platform server, the |
| following static methods are available: |
| |
| [source,java] |
| ----------------------------------------------------------------------------- |
| public final class ConfigManagementSupport{ |
| |
| private JMXSupport(){} |
| |
| public static ObjectName registerMBean(); |
| public static ObjectName registerMBean(String context); |
| public static ObjectName unregisterMBean(); |
| public static ObjectName unregisterMBean(String context); |
| } |
| ----------------------------------------------------------------------------- |
| |
| * +registerMBean+ creates a new +ManagedConfigMBean+ instance using the +ServiceContextManager+ |
| and registers it. Optionally an additional _context_ parameter can be passed, which allows |
| to register the management bean for different classloaders, e.g. for different |
| ears. |
| * +unregisterMBean+ does the oppsite than registering obviously. |
| |
| NOTE: The instance of +ManagedConfigMBean+ to be created and registered is evaluated by use og the |
| +ServiceContextManager+. So you can replace the bean implementation by registering your |
| overriding implementation using the current +ServiceContext+ (by default using |
| +java.util.ServiceLoader+ and +@Priority+ annotation. |