ManagedStandaloneJ2EEWebModulepublic class ManagedStandaloneJ2EEWebModule extends ConfigMBeanBase implements ConfigAttributeName.StandaloneWebModuleA class that represents a Standalone Managed J2EE Web module. Note that this is a
standalone J2EE module, because it is deployed independently and not
as a part of an application. Such a Web Module has certain additional
manageable interface.
When a Web ARchive is deployed, an instance of this MBean is created in
the MBeanServer. The MBean is deregistered when the module is removed.
ObjectName of this MBean is:
ias:type=StandaloneJ2EEWebModule, name= |
Fields Summary |
---|
private int | stateMethods start and stop will use this attribute to store
the current state, RUNNING or STOPPED
These states correspond to jsr77 states
RUNNING_STATE (1) and STOPPED_STATE (3) | private static final String[] | MAPLIST | private static final String[] | ATTRIBUTES | private static final String[] | OPERATIONS |
Constructors Summary |
---|
public ManagedStandaloneJ2EEWebModule()Default constructor sets MBean description tables
this.setDescriptions(MAPLIST, ATTRIBUTES, OPERATIONS);
| public ManagedStandaloneJ2EEWebModule(String instanceName, String moduleName)
this(); //set description tables
initialize(ObjectNames.kStandaloneWebModule, new String[]{instanceName, moduleName});
|
Methods Summary |
---|
public void | disable()Disables this module.
return; //FIXME for RI only;
/* try
{
this.setAttribute(new Attribute(kEnabled, new Boolean(false)));
super.getConfigContext().flush();
}
catch (Exception e)
{
sLogger.throwing(getClass().getName(), "disable", e);
throw new J2EEWebModuleException(e.getMessage());
}
*/
| public void | enable()Enables this module.
return; //FIXME for RI only;
/* try
{
this.setAttribute(new Attribute(kEnabled, new Boolean(true)));
super.getConfigContext().flush();
}
catch (Exception e)
{
sLogger.throwing(getClass().getName(), "enable", e);
throw new J2EEWebModuleException(e.getMessage());
}
*/
| public java.lang.String[] | getServlets()
try
{
String location = (String)this.getAttribute(kLocation);
return ModulesXMLHelper.getServletsForWebModule(location, null);
}
catch (Exception e)
{
sLogger.throwing(getClass().getName(), "getServlets", e);
throw new J2EEWebModuleException(e.getMessage());
}
| public java.lang.Integer | getState()Gets the jsr77 state corresponding to this module
return (new Integer(state));
/**
* Commented the following since Tomcat container is
* not ready with state management functionality
* Until such time it will return the value for state
* set by start and stop.
*
* Once the Tomcat functionality is ready this needs to be modified
*
*/
/*
try {
MBeanServer mbs = MBeanServerFactory.getMBeanServer();
ServerContext serverContext = ApplicationServer.getServerContext();
ObjectName objName = new ObjectName(
serverContext.getDefaultDomainName() + ":" +
"j2eeType=WebModule," +
"name=" + ((String)this.getAttribute(kName)) + "," +
"J2EEApplication=" + "null" + "," +
"J2EEServer=" + serverContext.getInstanceName());
Integer intObj = (Integer) mbs.getAttribute(objName, "state");
return intObj;
} catch (Exception e) {
sLogger.throwing(getClass().getName(), "getState", e);
throw new J2EEWebModuleException(e.getMessage());
}
*/
| public com.sun.enterprise.admin.common.EntityStatus | getStatus()Returns the Status of this module.
EntityStatus status = null;
try
{
boolean isModuleEnabled = true; //FIXME for RI only
// boolean isModuleEnabled = ((Boolean)this.getAttribute(kEnabled)).booleanValue();
status = new EntityStatus();
if (isModuleEnabled)
{
status.setEnabled();
}
else
{
status.setDisabled();
}
}
catch (Exception e)
{
sLogger.throwing(getClass().getName(), "getStatus", e);
throw new J2EEWebModuleException(e.getMessage());
}
return status;
| private void | multicastAdminEvent(java.lang.String entityName, java.lang.String actionCode)Multicasts the admin event so that the application gets loaded
dynamically without the need for reconfig.
String instanceName = super.getServerInstanceName();
InstanceEnvironment instEnv = new InstanceEnvironment(instanceName);
/*
try {
instEnv.applyServerXmlChanges(false);
} catch (Exception e) {
sLogger.throwing(getClass().getName(), "getAttr", e);
throw new J2EEWebModuleException(e.getMessage());
}
**/
AdminEvent event = new ModuleDeployEvent(instanceName, entityName, "web", actionCode);
//AdminEventCache.populateConfigChange(super.getConfigContext(), event);
RMIClient serverInstancePinger = AdminChannel.getRMIClient(instanceName);
if (serverInstancePinger.getInstanceStatusCode() != Status.kInstanceRunningCode) {
return;
}
AdminEventResult multicastResult = AdminEventMulticaster.multicastEvent(event);
if (!AdminEventResult.SUCCESS.equals(multicastResult.getResultCode())) {
AdminEventCache cache = AdminEventCache.getInstance(instanceName);
cache.setRestartNeeded(true);
}
| public void | start()Enables the application. Difference between this method
and enable is persistence of the state. Enable method persists
the state and this method does not persist the state.
state = StateManageable.STARTING_STATE;
try {
String moduleName = (String)this.getAttribute(kName);
multicastAdminEvent(moduleName, BaseDeployEvent.ENABLE);
state = StateManageable.RUNNING_STATE;
} catch (Exception e) {
sLogger.throwing(getClass().getName(), "start", e);
state = StateManageable.FAILED_STATE;
throw new J2EEWebModuleException(e.getMessage());
}
| public void | stop()Disables the application. Difference between this method
and disable is persistence of the state. Disable method persists
the state and this method does not persist the state.
state = StateManageable.STOPPING_STATE;
try {
String moduleName = (String)this.getAttribute(kName);
multicastAdminEvent(moduleName, BaseDeployEvent.DISABLE);
state = StateManageable.STOPPED_STATE;
} catch (Exception e) {
sLogger.throwing(getClass().getName(), "stop", e);
state = StateManageable.FAILED_STATE;
throw new J2EEWebModuleException(e.getMessage());
}
|
|