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

ManagedStandaloneConnectorModule

public class ManagedStandaloneConnectorModule extends ConfigMBeanBase implements ConfigAttributeName.StandaloneConnectorModule
A class that represents a Standalone Managed J2EE Connector module. Note that this is a standalone J2EE module, because it is deployed independently and not as a part of an application. Such a Connector Module has certain additional manageable interface.

When a Connector 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=StandaloneConnectorModule, ModuleName=

Fields Summary
private static final String[]
MAPLIST
private static final String[]
ATTRIBUTES
private static final String[]
OPERATIONS
Constructors Summary
public ManagedStandaloneConnectorModule()
Default constructor sets MBean description tables


                     
       
    
        this.setDescriptions(MAPLIST, ATTRIBUTES, OPERATIONS);
    
public ManagedStandaloneConnectorModule(String instanceName, String moduleName)

        this(); //set description tables
        initialize(ObjectNames.kConnectorModule, new String[]{instanceName, moduleName});
    
Methods Summary
public voiddisable()
Disables this module.

throws
J2EEConnectorModuleException if there is some error during disabling.

        return; //FIXME for RI only;
/*        try
        {
            super.setAttribute(new Attribute(kEnabled, new Boolean(false)));
            super.getConfigContext().flush();
        }
        catch (Exception e)
        {
            sLogger.throwing(getClass().getName(), "disable", e);
            throw new J2EEConnectorModuleException(e.getMessage());
        }
*/
    
public voidenable()
Enables this module.

throws
J2EEConnectorModuleException if there is some error during enablement.

        return; //FIXME for RI only;
/*        try
        {
            super.setAttribute(new Attribute(kEnabled, new Boolean(true)));
            super.getConfigContext().flush();
        }
        catch (Exception e)
        {
            sLogger.throwing(getClass().getName(), "enable", e);
            throw new J2EEConnectorModuleException(e.getMessage());
        }
*/
    
public java.lang.IntegergetState()
Gets the jsr77 state corresponding to this module

        try {
            String moduleName = (String)this.getAttribute(kName);
            MBeanServer mbs = MBeanServerFactory.getMBeanServer();
            ServerContext serverContext = ApplicationServer.getServerContext();
            ObjectName objName = new ObjectName(
                serverContext.getDefaultDomainName() + ":" + 
                "j2eeType=ResourceAdapterModule," +
                "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 J2EEConnectorModuleException(e.getMessage());
        }
    
public com.sun.enterprise.admin.common.EntityStatusgetStatus()
Returns the Status of this module.

throws
J2EEConnectorModuleException if the status can't be retrieved.

        EntityStatus status = null;
        try
        {
            boolean isModuleEnabled = true; //FIXME for RI only
//            Object value = super.getAttribute(kEnabled);
//            boolean isModuleEnabled = ((Boolean)value).booleanValue();
            status = new EntityStatus();
            if (isModuleEnabled)
            {
                status.setEnabled();
            }
            else
            {
                status.setDisabled();
            }
        }
        catch (Exception e)
        {
            sLogger.throwing(getClass().getName(), "getStatus", e);
            throw new J2EEConnectorModuleException(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(), "getBeansByType", e);
            throw new J2EEConnectorModuleException(e.getMessage());
        }
         **/
        AdminEvent event = new ModuleDeployEvent(instanceName, entityName, 
                                ModuleDeployEvent.TYPE_CONNECTOR, 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.

        try {
            String moduleName = (String)this.getAttribute(kName);
            multicastAdminEvent(moduleName, BaseDeployEvent.ENABLE);
        } catch (Exception e) {
            sLogger.throwing(getClass().getName(), "start", e);
            throw new J2EEConnectorModuleException(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.

        try {
            String moduleName = (String)this.getAttribute(kName);
            multicastAdminEvent(moduleName, BaseDeployEvent.DISABLE);
        } catch (Exception e) {
            sLogger.throwing(getClass().getName(), "stop", e);
            throw new J2EEConnectorModuleException(e.getMessage());
        }