FileDocCategorySizeDatePackage
DOLLoadingContextFactory.javaAPI DocGlassfish v2 API5661Fri May 04 22:31:58 BST 2007com.sun.enterprise.deployment.util

DOLLoadingContextFactory

public class DOLLoadingContextFactory extends Object

Fields Summary
private static com.sun.enterprise.deployment.WebBundleDescriptor
defaultWebXMLWbd
private static boolean
isParsingDefaultWebXML
private static boolean
isDefaultWebXMLInitialized
private static Class
dolLoadingContext
private static final String
DLC_CLASS_NAME
private static final String
DLC_METHOD_NAME
private static Logger
_logger
Constructors Summary
Methods Summary
private static java.lang.ClassgetDOLLoadingContext()


         
        try {
            if (dolLoadingContext == null) {
                dolLoadingContext = Class.forName(DLC_CLASS_NAME, 
                    true, Thread.currentThread().getContextClassLoader());
            }
        } catch (ClassNotFoundException cnfe) {
            _logger.log(Level.WARNING, "enterprise.deployment.class.not.found", 
                 new Object[] {DLC_CLASS_NAME});
        }

        return dolLoadingContext;
    
public static com.sun.enterprise.deployment.WebBundleDescriptorgetDefaultWebBundleDescriptor()

return
a copy of default WebBundleDescriptor populated from default-web.xml

        initDefaultWebBundleDescriptor();

        // when default-web.xml exists, add the default bundle descriptor
        // as the base web bundle descriptor
        WebBundleDescriptor defaultWebBundleDesc = 
            new WebBundleDescriptor();
        if (defaultWebXMLWbd != null) {
            defaultWebBundleDesc.addWebBundleDescriptor(defaultWebXMLWbd);
        }
        return defaultWebBundleDesc;
    
private static synchronized voidinitDefaultWebBundleDescriptor()
initialize the default WebBundleDescriptor from default-web.xml

        // it's possible after we attempt to initialize defaultXMLWbd, it 
        // is still null, for instance, when default-web.xml does not exist
        // for these cases, we don't want to call initialize again
        if (defaultWebXMLWbd == null && !isDefaultWebXMLInitialized) { 
            // delegate to DOLLoadingContext 
            try {
                Class dlcClass = getDOLLoadingContext(); 
                Method initWbdMethod = 
                    dlcClass.getMethod(DLC_METHOD_NAME, new Class[0]); 
                if (initWbdMethod != null) {
                    defaultWebXMLWbd = 
                        (WebBundleDescriptor)initWbdMethod.invoke(dlcClass, 
                        new Object[0]);
                } else {
                    _logger.log(Level.WARNING, 
                         "enterprise.deployment.method.not.found", 
                      new Object[] {DLC_METHOD_NAME});
                }
            } catch (Exception e) { 
                _logger.log(Level.WARNING, e.getMessage());
                defaultWebXMLWbd = null;
            } finally {
                isDefaultWebXMLInitialized = true;
            }
        }
    
public static booleanisParsingDefaultWebXML()

return
the flag to indicate whether we are parsing the default-web.xml

        return isParsingDefaultWebXML;
    
public static voidsetParsingDefaultWebXML(boolean isDefault)
sets the flag to indicate whether we are parsing the default-web.xml

param
isDefault

        isParsingDefaultWebXML = isDefault;