FileDocCategorySizeDatePackage
CustomResourceDeployer.javaAPI DocGlassfish v2 API7875Fri May 04 22:35:14 BST 2007com.sun.enterprise.resource

CustomResourceDeployer

public class CustomResourceDeployer extends Object implements com.sun.enterprise.server.ResourceDeployer
Handles custom resource events in the server instance. The custom resource events from the admin instance are propagated to this object. The methods can potentially be called concurrently, therefore implementation need to be synchronized.

Note: Since a notification is not sent to the user of the custom resources upon undeploy, it is possible that there would be stale objects not being garbage collected. Future versions should take care of this problem.

author
Nazrul Islam
since
JDK1.4

Fields Summary
private static final com.sun.enterprise.util.i18n.StringManager
localStrings
Stringmanager for this deployer
private static Logger
_logger
logger for this deployer
Constructors Summary
Methods Summary
public synchronized voiddeployResource(java.lang.Object resource)
Deploy the resource into the server's runtime naming context

param
resource a resource object (eg. JmsResource)
exception
Exception thrown if fail


                              
	       
        
        com.sun.enterprise.config.serverbeans.CustomResource customRes = 
            (com.sun.enterprise.config.serverbeans.CustomResource) resource;
        
        if (customRes.isEnabled()) {
            // converts the config data to j2ee resource
            J2EEResource j2eeResource = 
                IASJ2EEResourceFactoryImpl.toCustomJ2EEResource(customRes);

            // resource installer
            ResourceInstaller installer = 
                Switch.getSwitch().getResourceInstaller();

            // installs the resource
            installer.installCustomResource((CustomResource) j2eeResource);

            // adds the resource to the resource collection
            installer.addResource(j2eeResource);
        } else {
            _logger.log(Level.INFO, "core.resource_disabled", 
                new Object[] {customRes.getJndiName(), 
                              IASJ2EEResourceFactoryImpl.CUSTOM_RES_TYPE});
        }
    
public synchronized voiddisableResource(java.lang.Object resource)
Disable the resource in the server's runtime naming context

param
resource a resource object (eg. JmsResource)
exception
Exception thrown if fail

        undeployResource(resource);
    
public synchronized voidenableResource(java.lang.Object resource)
Enable the resource in the server's runtime naming context

param
resource a resource object (eg. JmsResource)
exception
Exception thrown if fail

        deployResource(resource);
    
public java.lang.ObjectgetResource(java.lang.String name, com.sun.enterprise.config.serverbeans.Resources rbeans)
Utility method to find a resource from Resources beans and converte it to a resource object to be used by the implemented ResourceDeployer

param
name resource name (normally the jndi-name)
param
rbeans Resources config-beans
exception
Exception thrown if fail


        Object res = rbeans.getCustomResourceByJndiName(name);

        if (res == null) {
            String msg = localStrings.getString(
                         "resource.no_resource",name);
            throw new Exception(msg);
        }

        return res;
    
public synchronized voidredeployResource(java.lang.Object resource)
Redeploy the resource into the server's runtime naming context

param
resource a resource object (eg. JmsResource)
exception
Exception thrown if fail


        undeployResource(resource);
        deployResource(resource);
    
public synchronized voidundeployResource(java.lang.Object resource)
Undeploy the resource from the server's runtime naming context

param
resource a resource object (eg. JmsResource)
exception
Exception thrown if fail


        // naming manager - provides jndi support
        NamingManager namingMgr = Switch.getSwitch().getNamingManager();

        com.sun.enterprise.config.serverbeans.CustomResource customRes = 
            (com.sun.enterprise.config.serverbeans.CustomResource) resource;

        // converts the config data to j2ee resource
        J2EEResource j2eeResource = 
            IASJ2EEResourceFactoryImpl.toCustomJ2EEResource(customRes);

        // removes the resource from jndi naming
        namingMgr.unpublishObject( j2eeResource.getName() );

        // resource installer
        ResourceInstaller installer = Switch.getSwitch().getResourceInstaller();

        // removes the resource from the collection
        installer.removeResource(j2eeResource);