JBoss.org Community Documentation

5.6.1. Programatic Registration

Simplest way to do this is to create your PojoCache and pass it to the PojoCacheJmxWrapper constructor.

   // Build but don't start the cache
   // (although it would work OK if we started it)
   PojoCache cache = PojoCacheFactory.createCache("cache-configuration.xml", false);

   PojoCacheJmxWrapperMBean wrapper = new PojoCacheJmxWrapper(cache);
   MBeanServer server = getMBeanServer(); // however you do it
   ObjectName on = new ObjectName("jboss.cache:service=PojoCache");
   server.registerMBean(wrapper, on);

   // Invoking lifecycle methods on the wrapper results
   // in a call through to the cache
   wrapper.create();
   wrapper.start();

   ... use the cache

   ... on application shutdown

   // Invoking lifecycle methods on the wrapper results
   // in a call through to the cache
   wrapper.stop();
   wrapper.destroy();
      	   

Alternatively, build a Configuration object and pass it to the PojoCacheJmxWrapper. The wrapper will construct the PojoCache:

   Configuration config = buildConfiguration(); // whatever it does

   PojoCacheJmxWrapperMBean wrapper = new PojoCacheJmxWrapper(config);
   MBeanServer server = getMBeanServer(); // however you do it
   ObjectName on = new ObjectName("jboss.cache:service=TreeCache");
   server.registerMBean(wrapper, on);

   // Call to wrapper.create() will build the Cache if one wasn't injected
   wrapper.create();
   wrapper.start();

   // Now that it's built, created and started, get the cache from the wrapper
   PojoCache cache = wrapper.getPojoCache();

   // ... use the cache

   // ... on application shutdown

   wrapper.stop();
   wrapper.destroy();