Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 1997-2012 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 
 package org.glassfish.web.deployment.node.runtime.gf;
 
 
 import java.util.List;
 import java.util.Map;
 import java.util.Set;


This node is responsible for handling all runtime information for web bundle.

Author(s):
Jerome Dochez
Version:
 
Creates new WebBundleRuntimeNode
 
     public WebBundleRuntimeNode(WebBundleDescriptorImpl descriptor) {
         super(descriptor);
         //trigger registration in standard node, if it hasn't happened
         .getService(WebBundleNode.class);
         if (descriptor != null) {
             getSunDescriptor();
         }
     }
    
    
Creates new WebBundleRuntimeNode
 
     public WebBundleRuntimeNode() {
         this(null);
     }
    
    
Initialize the child handlers
 
    protected void init() {
        // we do not care about our standard DDS handles
         = null;
        
                               SecurityRoleMappingNode.class);
			       SessionConfigNode.class);
                               ResourceEnvRefNode.class);  
                               MessageDestinationRefNode.class);
                               ResourceRefNode.class);
                               EjbRefNode.class);    
        
                               CacheNode.class); 
                               ClassLoaderNode.class); 
                                JspConfigRuntimeNode.class);
        
                               LocaleCharsetInfoNode.class);   
  	
                               WebPropertyNode.class);
			       
                               ServiceRefNode.class); 
        			MessageDestinationRuntimeNode.class);
             			WebServiceRuntimeNode.class);
                               ValveNode.class);
    }
    
    

Returns:
the XML tag associated with this XMLNode
    @Override
    protected XMLElement getXMLRootTag() {
        return new XMLElement(.);
    }    
    
    

Returns:
the DOCTYPE that should be written to the XML file
    public String getDocType() {
    }
    
    

Returns:
the SystemID of the XML file
    public String getSystemID() {
    }

    

Returns:
NULL for all runtime nodes.
    public List<StringgetSystemIDs() {
        return null;
    }
    
   
register this node as a root node capable of loading entire DD files

Parameters:
publicIDToDTD is a mapping between xml Public-ID to DTD
versionUpgrades The list of upgrades from older versions to the latest schema
Returns:
the doctype tag name
    public static String registerBundle(Map<StringStringpublicIDToDTD,
                                        Map<StringList<Class>> versionUpgrades) {
       if (!restrictDTDDeclarations()) {
       }
       
       return .;       
   }    
    
   

Returns:
the descriptor instance to associate with this XMLNode
    public Object getSunDescriptor() {
        return .getSunDescriptor();
    }

    
Adds a new DOL descriptor instance to the descriptor instance associated with this XMLNode

Parameters:
newDescriptor the new descriptor
    @Override
    public void addDescriptor(Object newDescriptor) {
        SunWebAppImpl sunWebApp = (SunWebAppImpl.getSunDescriptor();
	if (newDescriptor instanceof WebComponentDescriptor) {
	    WebComponentDescriptor servlet = (WebComponentDescriptornewDescriptor;
            // for backward compatibility with s1as schema2beans generated desc
            Servlet s1descriptor = new Servlet();
            s1descriptor.setServletName(servlet.getCanonicalName());
            if (servlet.getRunAsIdentity()!=null) {
                s1descriptor.setPrincipalName(servlet.getRunAsIdentity().getPrincipal());
            }
        sunWebApp.addServlet(s1descriptor);
else
        if (newDescriptor instanceof ServiceReferenceDescriptor) {
        } else 
        if (newDescriptor instanceof SecurityRoleMapping) {
            SecurityRoleMapping srm = (SecurityRoleMappingnewDescriptor;
            sunWebApp.addSecurityRoleMapping(srm);
            // store it in the application using pure DOL descriptors...
            Application app = .getApplication();
            if (app!=null) {
                Role role = new Role(srm.getRoleName());
                SecurityRoleMapper rm = app.getRoleMapper();
                if (rm != null) {
                    List<PrincipalNameDescriptorprincipals = srm.getPrincipalNames();
                    for (int i = 0; i < principals.size(); i++) {
                        rm.assignRole(principals.get(i).getPrincipal(),
                            role);
                    }
                    List<Stringgroups = srm.getGroupNames();
                    for (int i = 0; i < groups.size(); i++) {
                        rm.assignRole(new Group(groups.get(i)),
                            role);
                    }
                }
            }                
        } else if (newDescriptor instanceof IdempotentUrlPattern) {
            sunWebApp.addIdempotentUrlPattern(
                    (IdempotentUrlPatternnewDescriptor);
        } else if (newDescriptor instanceof SessionConfig) {
            sunWebApp.setSessionConfig(
                    (SessionConfignewDescriptor);
        } else if (newDescriptor instanceof Cache) {
            sunWebApp.setCache(
                    (CachenewDescriptor);
        } else if (newDescriptor instanceof ClassLoader) {
            sunWebApp.setClassLoader(
                    (ClassLoadernewDescriptor);
        } else if (newDescriptor instanceof JspConfig) {
            sunWebApp.setJspConfig(
                    (JspConfignewDescriptor);
        } else if (newDescriptor instanceof LocaleCharsetInfo) {
            sunWebApp.setLocaleCharsetInfo(
                    (LocaleCharsetInfonewDescriptor);
        } else if (newDescriptor instanceof WebProperty) {
            sunWebApp.addWebProperty(
                    (WebPropertynewDescriptor);
        } else if (newDescriptor instanceof Valve) {
            sunWebApp.addValve(
                    (ValvenewDescriptor);
        }
    }
    @Override
    public void startElement(XMLElement elementAttributes attributes) {
        if (element.getQName().equals(.)) {
            SunWebAppImpl sunWebApp = (SunWebAppImpl)getSunDescriptor();
            sunWebApp.setParameterEncoding(true);
            for (int i=0; i<attributes.getLength();i++) {
                if (..equals(
                    attributes.getQName(i))) {
                    sunWebApp.setAttributeValue(..attributes.getValue(i));
                }
                if (..equals(
                    attributes.getQName(i))) {
                    sunWebApp.setAttributeValue(..attributes.getValue(i));
                }
            }
        } else super.startElement(elementattributes);
    }

    
parsed an attribute of an element

Parameters:
elementName the element name
attributeName the attribute name
value the attribute value
Returns:
true if the attribute was processed
    @Override
    protected boolean setAttributeValue(XMLElement elementName,
        XMLElement attributeNameString value) {
        SunWebAppImpl sunWebApp = (SunWebAppImpl)getSunDescriptor();
        if (attributeName.getQName().equals(.)) {
            sunWebApp.setAttributeValue(.value);
            return true;
        }
        if (attributeName.getQName().equals(.)) {
            sunWebApp.setAttributeValue(.value);
            return true;
        }
        return false;
    }


    
receives notification of the value for a particular tag

Parameters:
element the xml element
value it's associated value
    @Override
    public void setElementValue(XMLElement elementString value) {
        if (element.getQName().equals(.)) {
            // only set the context root for standalone war;
            // for embedded war, the context root will be set 
            // using the value in application.xml
            Application app = .getApplication();
            if (app == null || app.isVirtual()) {
                .setContextRoot(value);
            }
        } else if (element.getQName().equals(.)) {
            .setKeepState(value);
        } else if (element.getQName().equals(.)) {
        } else
            super.setElementValue(elementvalue);
    }

    
write the descriptor class to a DOM tree and return it

Parameters:
parent node for the DOM tree
bundleDescriptor the descriptor to write
Returns:
the DOM tree top node
    @Override
    public Node writeDescriptor(Node parentWebBundleDescriptorImpl bundleDescriptor) {
        Element web = (Element)super.writeDescriptor(parentbundleDescriptor);
        SunWebAppImpl sunWebApp = (SunWebAppImplbundleDescriptor.getSunDescriptor();
        // context-root?
	// security-role-mapping
	SecurityRoleMapping[] roleMappings = sunWebApp.getSecurityRoleMapping();
	if (roleMappings!=null && roleMappings.length>0) {
	    for (int i=0;i<roleMappings.length;i++) {
	    }
	}
	// servlet
	Set servlets = bundleDescriptor.getServletDescriptors();
	if (servlets!=null) {
                new org.glassfish.web.deployment.node.runtime.gf.ServletNode();
	    for (Iterator itr=servlets.iterator();itr.hasNext();) {
                WebComponentDescriptor servlet = (WebComponentDescriptoritr.next();
	    }
	}
        // idempotent-url-pattern
        IdempotentUrlPattern[] patterns = sunWebApp.getIdempotentUrlPatterns();
        if (patterns != null && patterns.length > 0) {
            IdempotentUrlPatternNode node = new IdempotentUrlPatternNode();
            for (int i = 0;i < patterns.lengthi++) {
                node.writeDescriptor(web.patterns[i]);
            }
        }
	// session-config?
	if (sunWebApp.getSessionConfig()!=null) {
	    SessionConfigNode scn = new SessionConfigNode();
	}
        
	// ejb-ref*
	Set<EjbReferenceejbRefs = bundleDescriptor.getEjbReferenceDescriptors();
	if (ejbRefs!=null && ejbRefs.size()>0) {
	    EjbRefNode node = new EjbRefNode();
	    for (EjbReference ejbRef : ejbRefs) {
	    }
	}        
	// resource-ref*
	if (resourceRefs!=null && resourceRefs.size()>0) {
	    ResourceRefNode node = new ResourceRefNode();
	    for (ResourceReferenceDescriptor resourceRef : resourceRefs) {
		node.writeDescriptor(web.resourceRef);
	    }
	}
        
	// resource-env-ref*
	if (resourceEnvRefs!=null && resourceEnvRefs.size()>0) {
	    ResourceEnvRefNode node = new ResourceEnvRefNode();
	    for (ResourceEnvReferenceDescriptor resourceEnvRef : resourceEnvRefs) {
		node.writeDescriptor(web.resourceEnvRef);
	    }
	}	
        
	// service-ref*
	if (bundleDescriptor.hasServiceReferenceDescriptors()) {
	    ServiceRefNode serviceNode = new ServiceRefNode();
	    for (Iterator serviceItr=bundleDescriptor.getServiceReferenceDescriptors().iterator();
	    		serviceItr.hasNext();) {
		}
	}        
        // message-destination-ref*
        MessageDestinationRefNode.writeMessageDestinationReferences(web,
            bundleDescriptor);
	// cache?
	Cache cache = sunWebApp.getCache();
	if (cache!=null) {
	    CacheNode cn = new CacheNode();
	    cn.writeDescriptor(web.cache);
	}
	// class-loader?
        ClassLoader classLoader = sunWebApp.getClassLoader();
        if (classLoader!=null) {
            ClassLoaderNode cln = new ClassLoaderNode();
            cln.writeDescriptor(web.classLoader);
        }
	// jsp-config?
	if (sunWebApp.getJspConfig()!=null) {
	    WebPropertyNode propertyNode = new WebPropertyNode();
	    Node jspConfig = appendChild(web.);
	    propertyNode.writeDescriptor(jspConfig.sunWebApp.getJspConfig().getWebProperty());
	}
	// locale-charset-info?
	if (sunWebApp.getLocaleCharsetInfo()!=null) {
	    LocaleCharsetInfoNode localeNode = new LocaleCharsetInfoNode();
	    	sunWebApp.getLocaleCharsetInfo());
	}	
        // parameter-encoding?
        if (sunWebApp.isParameterEncoding()) {
            Element parameter = appendChild(web.);
            if (sunWebApp.getAttributeValue(..)!=null) {
                setAttribute(parameter.,
                        sunWebApp.getAttributeValue(..));
            }
            if (sunWebApp.getAttributeValue(..)!=null) {
                setAttribute(parameter.,
                        sunWebApp.getAttributeValue(..));
            }
        }          
	// property*
	if (sunWebApp.getWebProperty()!=null) {
	    WebPropertyNode props = new WebPropertyNode();
	    props.writeDescriptor(web.sunWebApp.getWebProperty());
	}
        
        // valve*
        if (sunWebApp.getValve()!=null) {
            ValveNode valve = new ValveNode();
            valve.writeDescriptor(web.,
                                  sunWebApp.getValve());
        }
	// message-destination*
        RuntimeDescriptorNode.writeMessageDestinationInfo(webbundleDescriptor);
	// webservice-description*
        WebServiceRuntimeNode webServiceNode = new WebServiceRuntimeNode();
        webServiceNode.writeWebServiceRuntimeInfo(webbundleDescriptor);
        // error-url
        if (sunWebApp.getAttributeValue(.) != null) {
            setAttribute(web.sunWebApp.getAttributeValue(.));
        }
        // httpservlet-security-provider
        if (sunWebApp.getAttributeValue(.) != null) {
                         sunWebApp.getAttributeValue(.));
        }
        // keep-state
        appendTextChild(web., String.valueOf(bundleDescriptor.getKeepState()));
        return web;
    }
New to GrepCode? Check out our FAQ X