You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by eh...@apache.org on 2006/10/16 22:57:36 UTC
svn commit: r464660 -
/incubator/wicket/branches/wicket-1.x/wicket-jmx/src/main/java/wicket/jmx/Initializer.java
Author: ehillenius
Date: Mon Oct 16 13:57:35 2006
New Revision: 464660
URL: http://svn.apache.org/viewvc?view=rev&rev=464660
Log:
added destroy
Modified:
incubator/wicket/branches/wicket-1.x/wicket-jmx/src/main/java/wicket/jmx/Initializer.java
Modified: incubator/wicket/branches/wicket-1.x/wicket-jmx/src/main/java/wicket/jmx/Initializer.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket-jmx/src/main/java/wicket/jmx/Initializer.java?view=diff&rev=464660&r1=464659&r2=464660
==============================================================================
--- incubator/wicket/branches/wicket-1.x/wicket-jmx/src/main/java/wicket/jmx/Initializer.java (original)
+++ incubator/wicket/branches/wicket-1.x/wicket-jmx/src/main/java/wicket/jmx/Initializer.java Mon Oct 16 13:57:35 2006
@@ -15,8 +15,11 @@
package wicket.jmx;
import java.lang.management.ManagementFactory;
+import java.util.ArrayList;
+import java.util.List;
import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
import javax.management.MBeanRegistrationException;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
@@ -26,6 +29,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import wicket.IDestroyer;
import wicket.IInitializer;
import wicket.WicketRuntimeException;
@@ -34,11 +38,39 @@
*
* @author eelcohillenius
*/
-public class Initializer implements IInitializer
+public class Initializer implements IInitializer, IDestroyer
{
private static Log log = LogFactory.getLog(Initializer.class);
/**
+ * List of registered names
+ */
+ private List<ObjectName> registered = new ArrayList<ObjectName>();
+
+ /**
+ * @see wicket.IDestroyer#destroy(wicket.Application)
+ */
+ public void destroy(wicket.Application application)
+ {
+ MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+ for (ObjectName objectName : registered)
+ {
+ try
+ {
+ mbs.unregisterMBean(objectName);
+ }
+ catch (InstanceNotFoundException e)
+ {
+ log.error(e.getMessage(), e);
+ }
+ catch (MBeanRegistrationException e)
+ {
+ log.error(e.getMessage(), e);
+ }
+ }
+ }
+
+ /**
* @see wicket.IInitializer#init(wicket.Application)
*/
public void init(wicket.Application application)
@@ -63,30 +95,30 @@
domain = tempDomain;
Application appBean = new Application(application);
- mbs.registerMBean(appBean, appBeanName);
+ register(mbs, appBean, appBeanName);
- mbs.registerMBean(new ApplicationSettings(application), new ObjectName(domain
+ register(mbs, new ApplicationSettings(application), new ObjectName(domain
+ ":type=Application,name=ApplicationSettings"));
- mbs.registerMBean(new DebugSettings(application), new ObjectName(domain
+ register(mbs, new DebugSettings(application), new ObjectName(domain
+ ":type=Application,name=DebugSettings"));
- mbs.registerMBean(new MarkupSettings(application), new ObjectName(domain
+ register(mbs, new MarkupSettings(application), new ObjectName(domain
+ ":type=Application,name=MarkupSettings"));
- mbs.registerMBean(new ResourceSettings(application), new ObjectName(domain
+ register(mbs, new ResourceSettings(application), new ObjectName(domain
+ ":type=Application,name=ResourceSettings"));
- mbs.registerMBean(new PageSettings(application), new ObjectName(domain
+ register(mbs, new PageSettings(application), new ObjectName(domain
+ ":type=Application,name=PageSettings"));
- mbs.registerMBean(new RequestCycleSettings(application), new ObjectName(domain
+ register(mbs, new RequestCycleSettings(application), new ObjectName(domain
+ ":type=Application,name=RequestCycleSettings"));
- mbs.registerMBean(new SecuritySettings(application), new ObjectName(domain
+ register(mbs, new SecuritySettings(application), new ObjectName(domain
+ ":type=Application,name=SecuritySettings"));
- mbs.registerMBean(new SessionSettings(application), new ObjectName(domain
+ register(mbs, new SessionSettings(application), new ObjectName(domain
+ ":type=Application,name=SessionSettings"));
- mbs.registerMBean(new CookieValuePersisterSettings(application), new ObjectName(domain
+ register(mbs, new CookieValuePersisterSettings(application), new ObjectName(domain
+ ":type=Application,name=CookieValuePersisterSettings"));
RequestLogger sessionsBean = new RequestLogger(application);
ObjectName sessionsBeanName = new ObjectName(domain + ":type=RequestLogger");
- mbs.registerMBean(sessionsBean, sessionsBeanName);
+ register(mbs, sessionsBean, sessionsBeanName);
}
catch (MalformedObjectNameException e)
{
@@ -104,5 +136,34 @@
{
throw new WicketRuntimeException(e);
}
+ }
+
+ /**
+ * @see java.lang.Object#toString()
+ */
+ public String toString()
+ {
+ return "Wicket JMX initializer";
+ }
+
+ /**
+ * Register MBean.
+ *
+ * @param mbs
+ * server
+ * @param o
+ * MBean
+ * @param objectName
+ * Object name
+ * @throws NotCompliantMBeanException
+ * @throws MBeanRegistrationException
+ * @throws InstanceAlreadyExistsException
+ */
+ private void register(MBeanServer mbs, Object o, ObjectName objectName)
+ throws InstanceAlreadyExistsException, MBeanRegistrationException,
+ NotCompliantMBeanException
+ {
+ mbs.registerMBean(o, objectName);
+ registered.add(objectName);
}
}