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.descriptor;
  
  
  import java.util.*;

 
The concrete implementation of abstract super class com.sun.enterprise.deployment.WebBundleDescriptor. TODO WebBundleDescriptor could be changed from abstract class to an interface in the future, with this class as its implementation.
  
  
  public class WebBundleDescriptorImpl extends WebBundleDescriptor {
      //XXX the constant is duplicated here temporary
      private static final String SPEC_VERSION = "3.0";
  
      private final static String DEPLOYMENT_DESCRIPTOR_DIR = "WEB-INF";
  
      private static LocalStringManagerImpl localStrings =
              new LocalStringManagerImpl(WebBundleDescriptor.class);
  
      private SessionConfig sessionConfig;
      private Set<MimeMappingmimeMappings;
      private Set<StringwelcomeFiles;
      private Set<ContextParametercontextParameters;
      private Set<EjbReferenceejbReferences;
  
              new HashSet<LifecycleCallbackDescriptor>();
              new HashSet<LifecycleCallbackDescriptor>();
  
              entityManagerFactoryReferences =
             new HashSet<EntityManagerFactoryReferenceDescriptor>();
 
             entityManagerReferences =
             new HashSet<EntityManagerReferenceDescriptor>();
 
     private Boolean isDistributable;
     private String contextRoot;
     private JspConfigDescriptorImpl jspConfigDescriptor = null;
 
     private Vector<ServletFilterservletFilters = null;
 
     private AbsoluteOrderingDescriptor absOrdering = null;
 
     private SunWebApp sunWebApp = null;
 
     // An entry here, may be set to indicate additional processing.
     // This entry may be set, for example, by a Deployer.
     //
     private Map<StringStringextensionProperty = null;
 
     private Map<StringStringjarName2WebFragNameMap  = null;
 
     // this is for checking whether there are more than one servlets for a given url-pattern
     private Map<StringStringurlPattern2ServletName = null;
 
     private List<StringorderedLibs = new ArrayList<String>();
 
     private boolean showArchivedRealPathEnabled = true;
 
     private int servletReloadCheckSecs = 1;

    
Constrct an empty web app [{0}].
 
     public WebBundleDescriptorImpl() {
     }
 
         return new WebBundleDescriptorImpl();
     }

    
This method will merge the contents of webComponents.

Parameters:
webBundleDescriptor
 
     public void addWebBundleDescriptor(WebBundleDescriptor webBundleDescriptor) {
         getWelcomeFilesSet().addAll(webBundleDescriptor.getWelcomeFilesSet());
         addCommonWebBundleDescriptor(webBundleDescriptor);
     }
 
     public void addDefaultWebBundleDescriptor(WebBundleDescriptor webBundleDescriptor) {
         if (getWelcomeFilesSet().size() == 0) {
             getWelcomeFilesSet().addAll(webBundleDescriptor.getWelcomeFilesSet());
         }
         addCommonWebBundleDescriptor(webBundleDescriptor);
     }

    
This method combines all except welcome file set for two webBundleDescriptors.
 
     private void addCommonWebBundleDescriptor(WebBundleDescriptor wbd) {
         super.addBundleDescriptor(wbd);
 
         WebBundleDescriptorImpl webBundleDescriptor = (WebBundleDescriptorImplwbd;
         for (WebComponentDescriptor webComponentDesc :webBundleDescriptor.getWebComponentDescriptors())
         {
             // don't modify the original one
             WebComponentDescriptorImpl webComponentDescriptor =
                 new WebComponentDescriptorImpl(webComponentDesc);
             // set web bundle to null so that the urlPattern2ServletName
             // of the others will not be changed,
             // see WebComponentDescriptor.getUrlPatternsSet()
             webComponentDescriptor.setWebBundleDescriptor(null);
 
             List<StringremoveUrlPatterns = null;
             for (String urlPatternwebComponentDescriptor.getUrlPatternsSet()) {
                 String servletName = null;
                 if ( != null) {
                     servletName = .get(urlPattern);
                 }
                 if (servletName != null &&
                         (!servletName.equals(webComponentDescriptor.getCanonicalName()))) {
                     // url pattern already exists in current bundle
                     // need to remove the url pattern in current bundle servlet
                     if (removeUrlPatterns == null) {
                         removeUrlPatterns = new ArrayList<String>();
                     }
                     removeUrlPatterns.add(urlPattern);
                 }
             }
 
             if (removeUrlPatterns != null) {
                 webComponentDescriptor.getUrlPatternsSet().removeAll(removeUrlPatterns);
             }
 
             addWebComponentDescriptor(webComponentDescriptor);
         }
 
         getContextParametersSet().addAll(webBundleDescriptor.getContextParametersSet());
 
         // do not call getMimeMappingsSet().addAll() as there is special overriding rule
         for (MimeMapping mimeMap : webBundleDescriptor.getMimeMappingsSet()) {
             addMimeMapping(mimeMap);
         }
 
         // do not call getErrorPageDescriptorsSet.addAll() as there is special overriding rule
         for (ErrorPageDescriptor errPageDesc : webBundleDescriptor.getErrorPageDescriptorsSet()) {
             addErrorPageDescriptor(errPageDesc);
         }
         getAppListeners().addAll(webBundleDescriptor.getAppListeners());
 
         // ServletFilters
         combineServletFilters(webBundleDescriptor);
         combineServletFilterMappings(webBundleDescriptor);
 
         if (getLocaleEncodingMappingListDescriptor() == null) {
         }
 
         if (webBundleDescriptor.getJspConfigDescriptor() != null) {
             JspConfigDescriptorImpl jspConfigDesc = getJspConfigDescriptor();
             if (jspConfigDesc == null) {
                 jspConfigDesc = new JspConfigDescriptorImpl();
                 setJspConfigDescriptor(jspConfigDesc);
             }
             .add(webBundleDescriptor.getJspConfigDescriptor());
         }
 
         // WebServices
         WebServicesDescriptor thisWebServices = this.getWebServices();
         WebServicesDescriptor otherWebServices = webBundleDescriptor.getWebServices();
         for (WebService ws : otherWebServices.getWebServices()) {
             thisWebServices.addWebService(new WebService(ws));
         }
 
         if (getSessionConfig() == null) {
             setSessionConfig(webBundleDescriptor.getSessionConfig());
         }
 
         // combine login config with conflict resolution check
         combineLoginConfiguration(webBundleDescriptor);
 
         Boolean otherIsDistributable = webBundleDescriptor.isDistributable();
         if (otherIsDistributable != null) {
             if ( != null) {
                 setDistributable( && otherIsDistributable);
             } else {
                 setDistributable(otherIsDistributable);
             }
         }
         combinePostConstructDescriptors(webBundleDescriptor);
         combinePreDestroyDescriptors(webBundleDescriptor);
         addJndiNameEnvironment(webBundleDescriptor);
     }
 
     public void addJndiNameEnvironment(JndiNameEnvironment env) {
 
         // combine with conflict resolution check
         combineEnvironmentEntries(env);
         combineEjbReferenceDescriptors(env);
         // resource-env-ref
         // persistence-context-ref
         // persistence-unit-ref
         combineAllResourceDescriptors(env);
     }
 
     public boolean isEmpty() {
         return ( == null || .isEmpty());
     }

    

Returns:
the default version of the deployment descriptor loaded by this descriptor
 
     public String getDefaultSpecVersion() {
         return ;
     }

    
Return the set of named descriptors that I have.
 
     public Collection getNamedDescriptors() {
         return super.getNamedDescriptorsFrom(this);
     }

    
Return the saet of NamedReferencePairs that I have.
 
         return super.getNamedReferencePairsFrom(this);
     }

    
return the name of my context root
 
     public String getContextRoot() {
         if (getModuleDescriptor() != null && getModuleDescriptor().getContextRoot() != null) {
             return getModuleDescriptor().getContextRoot();
         }
         if ( == null) {
              = "";
         }
         return ;
     }

    
Set the name of my context root.
 
     public void setContextRoot(String contextRoot) {
         if (getModuleDescriptor() != null) {
             getModuleDescriptor().setContextRoot(contextRoot);
         }
         this. = contextRoot;
     }

    
Return the Set of Web COmponent Descriptors (JSP or JavaServlets) in me.
 
         if ( == null) {
              = new OrderedSet<WebComponentDescriptor>();
         }
         return ;
     }

    
Adds a new Web Component Descriptor to me.

Parameters:
webComponentDescriptor
 
     public void addWebComponentDescriptor(WebComponentDescriptor webComponentDescriptor) {
         String name = webComponentDescriptor.getCanonicalName();
         webComponentDescriptor.setWebBundleDescriptor(this);
 
         WebComponentDescriptor resultDesc =
                 combineWebComponentDescriptor(webComponentDescriptor);
 
         // sync up urlPattern2ServletName map
         for (String up : resultDesc.getUrlPatternsSet()) {
             String oldName = getUrlPatternToServletNameMap().put(upname);
             if (oldName != null && (!oldName.equals(name))) {
                 throw new IllegalArgumentException(.getLocalString(
                     "enterprise.deployment.exceptionsameurlpattern",
                     "Servlet [{0}] and Servlet [{1}] have the same url pattern: [{2}]",
                     new Object[] { oldNamenameup }));
             }
         }
     }

    
This method combines descriptor except urlPattern and add to current bundle descriptor if necessary. It returns the web component descriptor in the current bundle descriptor.

Parameters:
webComponentDescriptor the new descriptor
Returns:
web component descriptor in current bundle
 
             WebComponentDescriptor webComponentDescriptor) {
 
         WebComponentDescriptor resultDesc = null;
         String name = webComponentDescriptor.getCanonicalName();
         WebComponentDescriptor webCompDesc = getWebComponentByCanonicalName(name);
 
         if (webCompDesc != null) {
             // Servlet defined in web.xml
             resultDesc = webCompDesc;
             if (!webCompDesc.isConflict(webComponentDescriptortrue)) {
                 // combine the contents of the given one to this one
                 // except the urlPatterns
                 webCompDesc.add(webComponentDescriptorfalse);
             }
 
             String implFile = webCompDesc.getWebComponentImplementation();
             if (webComponentDescriptor.isConflict() &&
                     (implFile == null || implFile.length() == 0)) {
 
                 throw new IllegalArgumentException(.getLocalString(
                         "enterprise.deployment.exceptionconflictwebcompwithoutimpl",
                         "Two or more web fragments define the same Servlet with conflicting implementation class names that are not overridden by the web.xml"));
             }
         } else {
             resultDesc = webComponentDescriptor;
             if (webComponentDescriptor.isConflict()) {
                 throw new IllegalArgumentException(.getLocalString(
                         "enterprise.deployment.exceptionconflictwebcomp",
                         "One or more web fragments define the same Servlet in a conflicting way, and the Servlet is not defined in web.xml"));
             } else {
                 this.getWebComponentDescriptors().add(webComponentDescriptor);
             }
         }
 
         return resultDesc;
     }

    
Remove the given web component from me.
 
 
     public void removeWebComponentDescriptor(WebComponentDescriptor webComponentDescriptor) {
         webComponentDescriptor.setWebBundleDescriptor(null);
         getWebComponentDescriptors().remove(webComponentDescriptor);
     }
 
     public SessionConfig getSessionConfig() {
         return ;
     }
 
     public void setSessionConfig(SessionConfig sessionConfig) {
         this. = sessionConfig;
     }

    
DeploymentDescriptorNode.addNodeDescriptor(node) need this.
 
     public void setSessionConfig(SessionConfigDescriptor sessionConfigDesc) {
         this. = sessionConfigDesc;
     }

    
WEB SERVICES REF APIS
 
     public boolean hasServiceReferenceDescriptors() {
         if ( == null)
             return false;
         return .size() != 0;
     }
 
         if ( == null) {
              = new OrderedSet<ServiceReferenceDescriptor>();
         }
         return ;
     }
 
             serviceRef) {
         serviceRef.setBundleDescriptor(this);
         getServiceReferenceDescriptors().add(serviceRef);
     }
 
             serviceRef) {
         serviceRef.setBundleDescriptor(null);
         getServiceReferenceDescriptors().remove(serviceRef);
     }

    
Looks up an service reference with the given name. Throws an IllegalArgumentException if it is not found.
 
         if (sr != null) {
             return sr;
         }
 
                 "enterprise.deployment.exceptionwebapphasnoservicerefbyname",
                 "This web app [{0}] has no service reference by the name of [{1}]",
                 new Object[]{getName(), name}));
     }
 
         for (ServiceReferenceDescriptor srd : getServiceReferenceDescriptors()) {
             if (srd.getName().equals(name)) {
                 return srd;
             }
         }
         return null;
     }
 
         for (Object oserviceRefenv.getServiceReferenceDescriptors()) {
             ServiceReferenceDescriptor serviceRef =
                 (ServiceReferenceDescriptor)oserviceRef;
             ServiceReferenceDescriptor sr = _getServiceReferenceByName(serviceRef.getName());
             if (sr != null) {
                 combineInjectionTargets(sr, (EnvironmentProperty)serviceRef);
             } else {
                 if (env instanceof WebBundleDescriptor &&
                         ((WebBundleDescriptor)env).) {
                     throw new IllegalArgumentException(.getLocalString(
                             "enterprise.deployment.exceptionconflictserviceref",
                             "There are more than one service references defined in web fragments with the same name, but not overrided in web.xml"));
                 } else {
                     addServiceReferenceDescriptor(serviceRef);
                 }
             }
         }
     }

    

Returns:
the set of resource environment references this ejb declares.
 
         if ( == null) {
         }
         return ;
     }

    
adds a resource environment reference to the bundle
 
     public void addResourceEnvReferenceDescriptor(ResourceEnvReferenceDescriptor resourceEnvRefReference) {
         getResourceEnvReferenceDescriptors().add(resourceEnvRefReference);
     }

    
removes a existing resource environment reference from the bundle
 
     public void removeResourceEnvReferenceDescriptor(ResourceEnvReferenceDescriptor resourceEnvRefReference) {
         getResourceEnvReferenceDescriptors().remove(resourceEnvRefReference);
     }

    

Returns:
a resource environment reference by the same name or throw an IllegalArgumentException.
 
         if (jrd != null) {
             return jrd;
         }
 
                 "enterprise.deployment.exceptionwebapphasnoresourceenvrefbyname",
                 "This web app [{0}] has no resource environment reference by the name of [{1}]"new Object[]{getName(), name}));
     }
 
             if (jdr.getName().equals(name)) {
                 return jdr;
             }
         }
         return null;
     }
 
         for (Object ojdRefenv.getResourceEnvReferenceDescriptors()) {
             ResourceEnvReferenceDescriptor jdRef =
                 (ResourceEnvReferenceDescriptor)ojdRef;
             ResourceEnvReferenceDescriptor jdr = _getResourceEnvReferenceByName(jdRef.getName());
             if (jdr != null) {
                 combineInjectionTargets(jdrjdRef);
             } else {
                 if (env instanceof WebBundleDescriptor &&
                         ((WebBundleDescriptor)env).) {
                     throw new IllegalArgumentException(.getLocalString(
                             "enterprise.deployment.exceptionconflictresourceenvref",
                             "There are more than one resource env references defined in web fragments with the same name, but not overrided in web.xml"));
                 } else {
                     addResourceEnvReferenceDescriptor(jdRef);
                 }
 
             }
         }
     }
 
     public Set<MimeMappinggetMimeMappingsSet() {
         if ( == null) {
              = new HashSet<MimeMapping>();
         }
         return ;
     }

    
Sets the Set of Mime Mappings for this web application.
 
     public void setMimeMappings(Set<MimeMappingmimeMappings) {
         this. = mimeMappings;
     }


    

Returns:
an enumeration of my mime mappings.
 
     public Enumeration<MimeMappinggetMimeMappings() {
         return (new Vector<MimeMapping>(this.getMimeMappingsSet())).elements();
     }

    

Add:
the given mime mapping to my list.
 
     public void addMimeMapping(MimeMapping mimeMapping) {
         // there should be at most one mapping per extension
         boolean found = false;
         for (Iterator<MimeMappingitr = getMimeMappingsSet().iterator(); itr.hasNext();) {
             MimeMapping mm = itr.next();
             if (mm.getExtension().equals(mimeMapping.getExtension())) {
                 found = true;
                 break;
             }
         }
         
         if (!found) {
             getMimeMappingsSet().add(mimeMapping);
         }
     }

    
add the given mime mapping to my list.
 
     public void addMimeMapping(MimeMappingDescriptor mimeMapping) {
         addMimeMapping((MimeMappingmimeMapping);
     }
 
          = lemDesc;
     }
 
         return ;
     }
 
          = lemDesc;
     }

    
Removes the given mime mapping from my list.
 
     public void removeMimeMapping(MimeMapping mimeMapping) {
         getMimeMappingsSet().remove(mimeMapping);
     }

    
Return an enumeration of the welcome files I have..
 
     public Enumeration<StringgetWelcomeFiles() {
         return (new Vector<String>(this.getWelcomeFilesSet())).elements();
     }
 
     public Set<StringgetWelcomeFilesSet() {
         if ( == null) {
              = new OrderedSet<String>();
         }
         return ;
     }

    
Adds a new welcome file to my list.
 
     public void addWelcomeFile(String fileUri) {
         getWelcomeFilesSet().add(fileUri);
     }

    
Removes a welcome file from my list.
 
     public void removeWelcomeFile(String fileUri) {
         getWelcomeFilesSet().remove(fileUri);
     }

    
Sets the collection of my welcome files.
 
     public void setWelcomeFiles(Set<StringwelcomeFiles) {
         this. = welcomeFiles;
     }
 
         if ( == null) {
              = new HashSet<ErrorPageDescriptor>();
         }
         return ;
     }

    
Returns an enumeration of the error pages I have.
 
         return (new Vector<ErrorPageDescriptor>(getErrorPageDescriptorsSet())).elements();
     }

    
Adds a new error page to my list.
 
     public void addErrorPageDescriptor(ErrorPageDescriptor errorPageDescriptor) {
         String errorSignifier = errorPageDescriptor.getErrorSignifierAsString();
         ErrorPageDescriptor errPageDesc =
             getErrorPageDescriptorBySignifier(errorSignifier);
 
         if (errPageDesc == null) {
             getErrorPageDescriptorsSet().add(errorPageDescriptor);
         }
     }

    
Removes the given error page from my list.
 
     public void removeErrorPageDescriptor(ErrorPageDescriptor errorPageDescriptor) {
         getErrorPageDescriptorsSet().remove(errorPageDescriptor);
     }

    
Search my error pages for one with thei given signifier or null if there isn't one.
 
         for (ErrorPageDescriptor next : getErrorPageDescriptorsSet()) {
             if (next.getErrorSignifierAsString().equals(signifier)) {
                 return next;
             }
         }
         return null;
     }

    

Returns:
the Set of my Context Parameters.
 
         if ( == null) {
              = new OrderedSet<ContextParameter>();
         }
         return ;
     }

    

Returns:
my Context Parameters in an enumeration.
 
         return (new Vector<ContextParameter>(getContextParametersSet())).elements();
     }

    
Adds a new context parameter to my list.
 
     public void addContextParameter(ContextParameter contextParameter) {
         getContextParametersSet().add(contextParameter);
     }

    
Adds a new context parameter to my list.
 
     public void addContextParameter(EnvironmentProperty contextParameter) {
         addContextParameter((ContextParametercontextParameter);
     }

    
Removes the given context parameter from my list.
 
     public void removeContextParameter(ContextParameter contextParameter) {
         getContextParametersSet().remove(contextParameter);
     }

    
Return true if this web app [{0}] can be distributed across different processes.
 
 
     public Boolean isDistributable() {
         return ;
     }

    
Sets whether this web app [{0}] can be distributed across different processes.
 
     public void setDistributable(Boolean isDistributable) {
         this. = isDistributable;
     }

    
Returns the enumeration of my references to Enterprise Beans.
 
 
         return (new Vector<EjbReference>(this.getEjbReferenceDescriptors())).elements();
     }

    
Returns the Set of my references to Enterprise Beans.
 
 
         if ( == null) {
              = new OrderedSet<EjbReference>();
         }
         return ;
     }

    

Returns:
an Enterprise Bean with the matching name or throw.
 
 
         return (EjbReferenceDescriptorgetEjbReference(name);
     }
 
     public EjbReference getEjbReference(String name) {
         EjbReference er = _getEjbReference(name);
         if (er != null) {
             return er;
         }
 
                 "enterprise.deployment.exceptionwebapphasnoejbrefbyname",
                 "This web app [{0}] has no ejb reference by the name of [{1}] "new Object[]{getName(), name}));
     }
 
     protected EjbReference _getEjbReference(String name) {
         for (EjbReference er : getEjbReferenceDescriptors()) {
             if (er.getName().equals(name)) {
                 return er;
             }
         }
         return null;
     }

    

Returns:
a reource reference with the matching name or throw.
 
 
         if (rrd != null) {
             return rrd;
         }
 
                 "enterprise.deployment.exceptionwebapphasnoresourcerefbyname",
                 "This web app [{0}] has no resource reference by the name of [{1}]"new Object[]{getName(), name}));
     }
 
         for (ResourceReference next : getResourceReferenceDescriptors()) {
             if (next.getName().equals(name)) {
                 return (ResourceReferenceDescriptornext;
             }
         }
         return null;
     }


    

Returns:
my Set of references to resources.
 
 
         if ( == null) {
              = new OrderedSet<ResourceReferenceDescriptor>();
         }
         return ;
     }
 
         return ;
     }

    
Return the entity manager factory reference descriptor corresponding to the given name.
 
             _getEntityManagerFactoryReferenceByName(name);
         if (emfr != null) {
             return emfr;
         }
 
                 "exceptionwebapphasnoentitymgrfactoryrefbyname",
                 "This web app [{0}] has no entity manager factory reference by the name of [{1}]",
                 new Object[]{getName(), name}));
     }
 
         for (EntityManagerFactoryReferenceDescriptor next :
                 getEntityManagerFactoryReferenceDescriptors()) {
 
             if (next.getName().equals(name)) {
                 return next;
             }
         }
         return null;
     }
 
             (EntityManagerFactoryReferenceDescriptor reference) {
         reference.setReferringBundleDescriptor(this);
         this.getEntityManagerFactoryReferenceDescriptors().add(reference);
     }
 
         for (EntityManagerFactoryReferenceDescriptor emfRef :
             env.getEntityManagerFactoryReferenceDescriptors()) {
             EntityManagerFactoryReferenceDescriptor emfr =
                 _getEntityManagerFactoryReferenceByName(emfRef.getName());
             if (emfr != null) {
                 combineInjectionTargets(emfremfRef);
             } else {
                 if (env instanceof WebBundleDescriptor &&
                         ((WebBundleDescriptor)env).) {
                     throw new IllegalArgumentException(.getLocalString(
                             "enterprise.deployment.exceptionconflictpersistenceunitref",
                             "There are more than one persistence unit references defined in web fragments with the same name, but not overrided in web.xml"));
 
                 } else {
                     addEntityManagerFactoryReferenceDescriptor(emfRef);
                 }
             }
         }
     }
 
         return ;
     }

    
Return the entity manager factory reference descriptor corresponding to the given name.
 
         EntityManagerReferenceDescriptor emr =
             _getEntityManagerReferenceByName(name);
         if (emr != null) {
             return emr;
         }
 
                 "exceptionwebapphasnoentitymgrrefbyname",
                 "This web app [{0}] has no entity manager reference by the name of [{1}]",
                 new Object[]{getName(), name}));
     }
 
         for (EntityManagerReferenceDescriptor next :
                 getEntityManagerReferenceDescriptors()) {
 
             if (next.getName().equals(name)) {
                 return next;
             }
         }
         return null;
     }
 
 
             (EntityManagerReferenceDescriptor reference) {
         reference.setReferringBundleDescriptor(this);
         getEntityManagerReferenceDescriptors().add(reference);
     }
 
         for (EntityManagerReferenceDescriptor emRef :
                 env.getEntityManagerReferenceDescriptors()) {
             EntityManagerReferenceDescriptor emr =
                 _getEntityManagerReferenceByName(emRef.getName());
             if (emr != null) {
                 combineInjectionTargets(emremRef);
             } else {
                 if (env instanceof WebBundleDescriptor &&
                     ((WebBundleDescriptor)env).) {
                     throw new IllegalArgumentException(.getLocalString(
                             "enterprise.deployment.exceptionconflictpersistencecontextref",
                             "There are more than one persistence context references defined in web fragments with the same name, but not overrided in web.xml"));
                 } else {
                     addEntityManagerReferenceDescriptor(emRef);
                 }
             }
         }
     }

    
 
     @Override
     public Collection<? extends PersistenceUnitDescriptor>
            findReferencedPUs() {
         Collection<PersistenceUnitDescriptorpus =
                 new HashSet<PersistenceUnitDescriptor>(
                         findReferencedPUsViaPURefs(this));
         pus.addAll(findReferencedPUsViaPCRefs(this));
         if (.containsKey(EjbBundleDescriptor.class)) {
             for (RootDeploymentDescriptor extension : .get(EjbBundleDescriptor.class)) {
                 pus.addAll(((EjbBundleDescriptorextension).findReferencedPUs());
             }
         }
         return pus;
     }

    
Return my set of environment properties.
        return getEnvironmentEntrySet();
    }

    
Adds a new reference to an ejb.
    public void addEjbReferenceDescriptor(EjbReference ejbReference) {
        if (getEjbReferenceDescriptors().add(ejbReference)) {
            ejbReference.setReferringBundleDescriptor(this);
        }
    }

    
Adds a new reference to an ejb.
    public void addEjbReferenceDescriptor(EjbReferenceDescriptor ejbReferenceDescriptor) {
        addEjbReferenceDescriptor((EjbReferenceejbReferenceDescriptor);
    }

    
Removes a reference to an ejb.
    public void removeEjbReferenceDescriptor(EjbReferenceDescriptor ejbReferenceDescriptor) {
        removeEjbReferenceDescriptor((EjbReferenceejbReferenceDescriptor);
    }
    public void removeEjbReferenceDescriptor(EjbReference ejbReferenceDescriptor) {
        if(getEjbReferenceDescriptors().remove(ejbReferenceDescriptor)) {
            ejbReferenceDescriptor.setReferringBundleDescriptor(null);
        }
    }
        for (Object oejbRefenv.getEjbReferenceDescriptors()) {
            EjbReference ejbRef = (EjbReference)oejbRef;
            EjbReferenceDescriptor ejbRefDesc =
                    (EjbReferenceDescriptor)_getEjbReference(ejbRef.getName());
            if (ejbRefDesc != null) {
                combineInjectionTargets(ejbRefDesc, (EnvironmentProperty)ejbRef);
            } else {
                if (env instanceof WebBundleDescriptor &&
                        ((WebBundleDescriptor)env).) {
                    throw new IllegalArgumentException(.getLocalString(
                            "enterprise.deployment.exceptionconflictejbref",
                            "There are more than one ejb references defined in web fragments with the same name, but not overrided in web.xml"));
                } else {
                    addEjbReferenceDescriptor(ejbRef);
                }
            }
        }
    }

    
Return an enumeration of references to resources that I have.
    }

    
adds a new reference to a resource.
    public void addResourceReferenceDescriptor(ResourceReferenceDescriptor resourceReference) {
        getResourceReferenceDescriptors().add(resourceReference);
    }

    
removes a reference to a resource.
    public void removeResourceReferenceDescriptor(ResourceReferenceDescriptor resourceReference) {
        getResourceReferenceDescriptors().remove(resourceReference);
    }
        for (Object oresRef : env.getResourceReferenceDescriptors()) {
            ResourceReferenceDescriptor resRef =
                (ResourceReferenceDescriptor)oresRef;
            ResourceReferenceDescriptor rrd = _getResourceReferenceByName(resRef.getName());
            if (rrd != null) {
                combineInjectionTargets(rrdresRef);
            } else {
                if (env instanceof WebBundleDescriptor &&
                        ((WebBundleDescriptor)env).) {
                    throw new IllegalArgumentException(.getLocalString(
                            "enterprise.deployment.exceptionconflictresourceref",
                            "There are more than one resource references defined in web fragments with the same name, but not overrided in web.xml"));
                } else {
                    addResourceReferenceDescriptor(resRef);
                }
            }
        }
    }
        if ( == null) {
        }
        return ;
    }
            (MessageDestinationReferenceDescriptor messageDestRef) {
        messageDestRef.setReferringBundleDescriptor(this);
        getMessageDestinationReferenceDescriptors().add(messageDestRef);
    }
            (MessageDestinationReferenceDescriptor msgDestRef) {
    }

    
Looks up an message destination reference with the given name. Throws an IllegalArgumentException if it is not found.