| Title: JMX |
| |
| +++<a name="JMX">++++++</a>+++ #JMX# |
| |
| This page describes the Aries JMX component. |
| |
| The Aries JMX component is the Reference Implementation of the OSGi JMX Management Model Specification, chapter 124 in the http://www.osgi.org/Download/Release5[OSGi Enterprise Specification]. |
| |
| ##Getting Started## To use the Aries JMX component, obtain the following: |
| |
| * The Aries JMX bundle, e.g. |
| from Maven Central: http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22org.apache.aries.jmx%22[org.apache.aries.jmx] |
| * The Aries Util bundle, e.g. |
| from Maven Central: http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22org.apache.aries.util%22[org.apache.aries.util] |
| |
| As prescribed by the OSGi JMX specification, to hook it in with an MBean Server the relevant MBean Server needs to be registered in the OSGi Service Registry. |
| |
| The easiest way to get things to do this is to use the platform mbean server, and register that. |
| For example create a simple bundle that contains the following Bundle Activator: |
| |
| .... |
| import java.lang.management.ManagementFactory; |
| import javax.management.MBeanServer; |
| import org.osgi.framework.BundleActivator; |
| import org.osgi.framework.BundleContext; |
| |
| public class Activator implements BundleActivator { |
| public void start(BundleContext context) throws Exception { |
| MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); |
| context.registerService(MBeanServer.class.getName(), mbs, null); |
| } |
| |
| public void stop(BundleContext context) throws Exception {} |
| } |
| .... |
| |
| Then install the Aries JMX Bundle and the Aries Util Bundle and start everything: |
| |
| g! lb |
| START LEVEL 1 |
| ID|State |Level|Name |
| 0|Active | 0|System Bundle (4.2.1) |
| 1|Active | 1|Apache Felix Bundle Repository (1.6.6) |
| 2|Active | 1|Apache Felix Gogo Command (0.12.0) |
| 3|Active | 1|Apache Felix Gogo Runtime (0.10.0) |
| 4|Active | 1|Apache Felix Gogo Shell (0.10.0) |
| 5|Active | 1|My Glue Activator (1.0.0) |
| 6|Active | 1|Apache Aries JMX Bundle (1.1.1) |
| 7|Active | 1|Apache Aries Util (1.1.0) |
| |
| Now you can access the OSGi functionality through MBeans, for example via jconsole: image:http://aries.apache.org/images/modules/jmx-screenshot.png[JMX Screenshot] |
| |
| ##Blueprint Integration## TODO |
| |
| ##Whiteboard support## The JMX Whiteboard support bundle allows registration of JMX MBeans through the OSGi service registry. |
| As a prerequisite the Apache Aries JMX Whiteboard Bundle has to be installed. |
| |
| Once this is installed, register your services with the `jmx.objectname` service registration property. |
| This is either a JMX `ObjectName` or a single String. |
| The value is used as the JMX Object Name to register the MBean. |
| If the property is of some other type a message is logged and the MBean is still registered if the service implements the `MBeanRegistration` interface and the implmentation provides the actual JMX Object Name to use for the registration. |
| |
| The name of the service as which the MBean service is registered is ignored by the Whiteboard. |
| |
| The service object, though, must be a valid JMX MBean: It has to either implement the `DynamicMBean` interface or implement an interface whose name is the object's (simple) class name with the `MBean` suffix. |
| |
| Additional Service Properties supported: |
| |
| * `warning.exceptions` (String+): One or more exception class names can be specified in this service property. |
| If an exception occurs during the MBean registration and the exception is of one of these types mentioned, then this exception is logged as a warning. |
| Otherwise the exception is logged as an error. |