Red Hat Application Migration Toolkit
package com.acme.anvil.listener; import com.acme.anvil.management.AnvilInvokeBeanImpl; import java.util.Properties; import javax.management.MBeanServer; import javax.management.ObjectName; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import org.apache.log4j.Logger; import weblogic.application.ApplicationLifecycleEvent; import weblogic.application.ApplicationLifecycleListener; public class AnvilWebLifecycleListener extends ApplicationLifecycleListener { private static Logger LOG = Logger.getLogger(AnvilWebLifecycleListener.class); private static final String MBEAN_NAME = "com.acme:Name=anvil,Type=com.acme.anvil.management.AnvilInvokeBeanApplicationLifecycleListener"; public void preStart(ApplicationLifecycleEvent evt) { String appName = evt.getApplicationContext().getApplicationName(); LOG.info("Before Start Application[" + appName + "]"); } public void postStart(ApplicationLifecycleEvent evt) { String appName = evt.getApplicationContext().getApplicationName(); LOG.info("After Start Application[" + appName + "]"); this.registerMBean(); } public void postStop(ApplicationLifecycleEvent evt) { String appName = evt.getApplicationContext().getApplicationName(); LOG.info("Before Stop Application[" + appName + "]"); this.unregisterMBean(); } public void preStop(ApplicationLifecycleEvent evt) { String appName = evt.getApplicationContext().getApplicationName(); LOG.info("After Stop Application[" + appName + "]"); } private MBeanServer getMBeanServer() throws NamingException { Properties environment = new Properties(); environment.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory"); environment.put("java.naming.provider.url", "t3://localhost:7001"); Context context = new InitialContext(environment); MBeanServer server = (MBeanServer)context.lookup("java:comp/jmx/runtime"); return server; } private void registerMBean() { LOG.info("Registering MBeans."); try { MBeanServer server = this.getMBeanServer(); server.registerMBean(new AnvilInvokeBeanImpl(), new ObjectName("com.acme:Name=anvil,Type=com.acme.anvil.management.AnvilInvokeBeanApplicationLifecycleListener")); LOG.info("Registered MBean[com.acme:Name=anvil,Type=com.acme.anvil.management.AnvilInvokeBeanApplicationLifecycleListener]"); } catch (Exception var3) { LOG.error("Exception while registering MBean[com.acme:Name=anvil,Type=com.acme.anvil.management.AnvilInvokeBeanApplicationLifecycleListener]"); } } private void unregisterMBean() { LOG.info("Unregistering MBeans."); try { MBeanServer server = this.getMBeanServer(); server.unregisterMBean(new ObjectName("com.acme:Name=anvil,Type=com.acme.anvil.management.AnvilInvokeBeanApplicationLifecycleListener")); LOG.info("Unregistered MBean[com.acme:Name=anvil,Type=com.acme.anvil.management.AnvilInvokeBeanApplicationLifecycleListener]"); } catch (Exception var3) { LOG.error("Exception while unregistering MBean[com.acme:Name=anvil,Type=com.acme.anvil.management.AnvilInvokeBeanApplicationLifecycleListener]"); } } }