FileDocCategorySizeDatePackage
ManagedStandaloneJ2EEWebModule.javaAPI DocGlassfish v2 API12582Fri May 04 22:33:56 BST 2007com.sun.enterprise.admin.server.core.mbean.config

ManagedStandaloneJ2EEWebModule

public class ManagedStandaloneJ2EEWebModule extends ConfigMBeanBase implements ConfigAttributeName.StandaloneWebModule
A 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
state
Methods 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 voiddisable()
Disables this module.

throws
J2EEEjbJarModuleException if there is some error during disabling.

        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 voidenable()
Enables this module.

throws
J2EEEjbJarModuleException if there is some error during enablement.

        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.IntegergetState()
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.EntityStatusgetStatus()
Returns the Status of this module.

throws
J2EEEjbJarModuleException if the status can't be retrieved.

        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 voidmulticastAdminEvent(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 voidstart()
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 voidstop()
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());
        }