A lightweight library (with no external dependencies) that simplifies the creation and registration of JMX MBeans by providing some annotations that you can easily add to your classes.
Take a look at the following class:
public class Statistics {
public int counter;
@ManagedAttribute
public int getCounter() {
return this.counter;
}
public void setCounter(int counter) {
this.counter = counter;
}
@ManagedOperation
public void resetCounter() {
this.counter = 0;
}
}
As you can see the getCounter()
method is annotated with @ManagedAttribute
and the resetCounter()
method with @ManagedOperation
. We can now register the JMX MBean in one single line of code:
Management.register(new Statistics(), "org.test:type=Statistics");
This will create a DynamicMBean from the object and will register it in the default MBeanServer (it calls ManagementFactory.getPlatformMBeanServer()
underneath).
That's it. Enjoy!
If you are using Maven, you just need to add the dependency and the repository to your pom.xml file:
<dependencies>
<dependency>
<groupId>net.gescobar</groupId>
<artifactId>jmx-annotations</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>elibom</id>
<url>http://repository.elibom.net/nexus/content/groups/public/</url>
</repository>
</repositories>