Information
Technologies
Decompiled Java File
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.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");
InitialContext 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]");
}
}
}