org.apache.catalina.deploy

## Class WebXml

- java.lang.Object
- - org.apache.catalina.deploy.WebXml

    public class WebXml
    extends Object

Representation of common elements of web.xml and web-fragment.xml. Provides a repository for parsed data before the elements are merged. Validation is spread between multiple classes: The digester checks for structural correctness (eg single login-config) This class checks for invalid duplicates (eg filter/servlet names) StandardContext will check validity of values (eg URL formats etc)

### Field Summary

Fields
`protected static String` `ORDER_OTHERS`

### Constructor Summary

Constructors
Constructor and Description
`WebXml()`

### Method Summary

Methods
`void` `addAbsoluteOrdering(String fragmentName)`
`void` `addAbsoluteOrderingOthers()`
`void` `addAfterOrdering(String fragmentName)`
`void` `addAfterOrderingOthers()`
`void` `addBeforeOrdering(String fragmentName)`
`void` `addBeforeOrderingOthers()`
`void` `addContextParam(String param, String value)`
`void` `addEjbLocalRef(ContextLocalEjb ejbLocalRef)`
`void` `addEjbRef(ContextEjb ejbRef)`
`void` `addEnvEntry(ContextEnvironment envEntry)`
`void` `addErrorPage(ErrorPage errorPage)`
`void` `addFilter(FilterDef filter)`
`void` `addFilterMapping(FilterMap filterMap)`
`void` `addJspPropertyGroup(JspPropertyGroup propertyGroup)`
`void` `addListener(String className)`
`void` `addLocaleEncodingMapping(String locale, String encoding)`
`void` `addMessageDestination(MessageDestination messageDestination)`
`void` `addMessageDestinationRef(MessageDestinationRef messageDestinationRef)`
`void` `addMimeMapping(String extension, String mimeType)`
`void` `addPostConstructMethods(String clazz, String method)`
`void` `addPreDestroyMethods(String clazz, String method)`
`void` `addResourceEnvRef(ContextResourceEnvRef resourceEnvRef)`
`void` `addResourceRef(ContextResource resourceRef)`
`void` `addSecurityConstraint(SecurityConstraint securityConstraint)`
`void` `addSecurityRole(String securityRole)`
`void` `addServiceRef(ContextService serviceRef)`
`void` `addServlet(ServletDef servletDef)`
`void` `addServletMapping(String urlPattern, String servletName)`
`void` `addTaglib(String uri, String location)`
`void` `addWelcomeFile(String welcomeFile)`
`void` `configureContext(Context context)` Configure a `Context` using the stored web.xml representation.
`void` `createAbsoluteOrdering()`
`Set<String>` `getAbsoluteOrdering()`
`Set<String>` `getAfterOrdering()`
`Set<String>` `getBeforeOrdering()`
`Map<String,String>` `getContextParams()`
`String` `getDisplayName()`
`Map<String,ContextLocalEjb>` `getEjbLocalRefs()`
`Map<String,ContextEjb>` `getEjbRefs()`
`Map<String,ContextEnvironment>` `getEnvEntries()`
`Map<String,ErrorPage>` `getErrorPages()`
`Set<FilterMap>` `getFilterMappings()`
`Map<String,FilterDef>` `getFilters()`
`String` `getJarName()`
`Set<JspPropertyGroup>` `getJspPropertyGroups()`
`Set<String>` `getListeners()`
`Map<String,String>` `getLocalEncodingMappings()`
`LoginConfig` `getLoginConfig()`
`int` `getMajorVersion()`
`Map<String,MessageDestinationRef>` `getMessageDestinationRefs()`
`Map<String,MessageDestination>` `getMessageDestinations()`
`Map<String,String>` `getMimeMappings()`
`int` `getMinorVersion()`
`String` `getName()`
`Map<String,String>` `getPostConstructMethods()`
`Map<String,String>` `getPreDestroyMethods()`
`String` `getPublicId()`
`Map<String,ContextResourceEnvRef>` `getResourceEnvRefs()`
`Map<String,ContextResource>` `getResourceRefs()`
`Set<SecurityConstraint>` `getSecurityConstraints()`
`Set<String>` `getSecurityRoles()`
`Map<String,ContextService>` `getServiceRefs()`
`Map<String,String>` `getServletMappings()`
`Map<String,ServletDef>` `getServlets()`
`SessionConfig` `getSessionConfig()`
`Map<String,String>` `getTaglibs()`
`URL` `getURL()`
`String` `getVersion()`
`Set<String>` `getWelcomeFiles()`
`boolean` `isDistributable()`
`boolean` `isMetadataComplete()`
`boolean` `isOverridable()`
`boolean` `merge(Set<WebXml> fragments)` Merge the supplied web fragments into this main web.xml.
`static Set<WebXml>` `orderWebFragments(WebXml application, Map<String,WebXml> fragments, ServletContext servletContext)` Generates the sub-set of the web-fragment.xml files to be processed in the order that the fragments must be processed as per the rules in the Servlet spec.
`void` `setAlwaysAddWelcomeFiles(boolean alwaysAddWelcomeFiles)` When merging from this web.xml, should the welcome files be added to the target web.xml even if it already contains welcome file definitions.
`void` `setDisplayName(String displayName)`
`void` `setDistributable(boolean distributable)`
`void` `setJarName(String jarName)`
`void` `setLoginConfig(LoginConfig loginConfig)`
`void` `setMetadataComplete(boolean metadataComplete)`
`void` `setName(String name)`
`void` `setOverridable(boolean overridable)`
`void` `setPublicId(String publicId)`
`void` `setReplaceWelcomeFiles(boolean replaceWelcomeFiles)` When merging/parsing web.xml files into this web.xml should the current set be completely replaced?
`void` `setSessionConfig(SessionConfig sessionConfig)`
`void` `setURL(URL url)`
`void` `setVersion(String version)` Set the version for this web.xml file
`String` `toString()`
`String` `toXml()` Generate a web.xml in String form that matches the representation stored in this object.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### ORDER_OTHERS

    protected static final String ORDER_OTHERS

See Also:
  Constant Field Values

### Constructor Detail

#### WebXml

    public WebXml()

### Method Detail

#### isOverridable

    public boolean isOverridable()

#### setOverridable

    public void setOverridable(boolean overridable)

#### createAbsoluteOrdering

    public void createAbsoluteOrdering()

#### addAbsoluteOrdering

    public void addAbsoluteOrdering(String fragmentName)

#### addAbsoluteOrderingOthers

    public void addAbsoluteOrderingOthers()

#### getAbsoluteOrdering

    public Set<String> getAbsoluteOrdering()

#### addAfterOrdering

    public void addAfterOrdering(String fragmentName)

#### addAfterOrderingOthers

    public void addAfterOrderingOthers()

#### getAfterOrdering

    public Set<String> getAfterOrdering()

#### addBeforeOrdering

    public void addBeforeOrdering(String fragmentName)

#### addBeforeOrderingOthers

    public void addBeforeOrderingOthers()

#### getBeforeOrdering

    public Set<String> getBeforeOrdering()

#### getVersion

    public String getVersion()

#### setVersion

    public void setVersion(String version)

Set the version for this web.xml file

Parameters:
  `version` - Values of `null` will be ignored

#### getPublicId

    public String getPublicId()

#### setPublicId

    public void setPublicId(String publicId)

#### isMetadataComplete

    public boolean isMetadataComplete()

#### setMetadataComplete

    public void setMetadataComplete(boolean metadataComplete)

#### getName

    public String getName()

#### setName

    public void setName(String name)

#### getMajorVersion

    public int getMajorVersion()

#### getMinorVersion

    public int getMinorVersion()

#### getDisplayName

    public String getDisplayName()

#### setDisplayName

    public void setDisplayName(String displayName)

#### isDistributable

    public boolean isDistributable()

#### setDistributable

    public void setDistributable(boolean distributable)

#### addContextParam

    public void addContextParam(String param,
                       String value)

#### getContextParams

    public Map<String,String> getContextParams()

#### addFilter

    public void addFilter(FilterDef filter)

#### getFilters

    public Map<String,FilterDef> getFilters()

#### addFilterMapping

    public void addFilterMapping(FilterMap filterMap)

#### getFilterMappings

    public Set<FilterMap> getFilterMappings()

#### addListener

    public void addListener(String className)

#### getListeners

    public Set<String> getListeners()

#### addServlet

    public void addServlet(ServletDef servletDef)

#### getServlets

    public Map<String,ServletDef> getServlets()

#### addServletMapping

    public void addServletMapping(String urlPattern,
                         String servletName)

#### getServletMappings

    public Map<String,String> getServletMappings()

#### setSessionConfig

    public void setSessionConfig(SessionConfig sessionConfig)

#### getSessionConfig

    public SessionConfig getSessionConfig()

#### addMimeMapping

    public void addMimeMapping(String extension,
                      String mimeType)

#### getMimeMappings

    public Map<String,String> getMimeMappings()

#### setReplaceWelcomeFiles

    public void setReplaceWelcomeFiles(boolean replaceWelcomeFiles)

When merging/parsing web.xml files into this web.xml should the current set be completely replaced?

#### setAlwaysAddWelcomeFiles

    public void setAlwaysAddWelcomeFiles(boolean alwaysAddWelcomeFiles)

When merging from this web.xml, should the welcome files be added to the target web.xml even if it already contains welcome file definitions.

#### addWelcomeFile

    public void addWelcomeFile(String welcomeFile)

#### getWelcomeFiles

    public Set<String> getWelcomeFiles()

#### addErrorPage

    public void addErrorPage(ErrorPage errorPage)

#### getErrorPages

    public Map<String,ErrorPage> getErrorPages()

#### addTaglib

    public void addTaglib(String uri,
                 String location)

#### getTaglibs

    public Map<String,String> getTaglibs()

#### addJspPropertyGroup

    public void addJspPropertyGroup(JspPropertyGroup propertyGroup)

#### getJspPropertyGroups

    public Set<JspPropertyGroup> getJspPropertyGroups()

#### addSecurityConstraint

    public void addSecurityConstraint(SecurityConstraint securityConstraint)

#### getSecurityConstraints

    public Set<SecurityConstraint> getSecurityConstraints()

#### setLoginConfig

    public void setLoginConfig(LoginConfig loginConfig)

#### getLoginConfig

    public LoginConfig getLoginConfig()

#### addSecurityRole

    public void addSecurityRole(String securityRole)

#### getSecurityRoles

    public Set<String> getSecurityRoles()

#### addEnvEntry

    public void addEnvEntry(ContextEnvironment envEntry)

#### getEnvEntries

    public Map<String,ContextEnvironment> getEnvEntries()

#### addEjbRef

    public void addEjbRef(ContextEjb ejbRef)

#### getEjbRefs

    public Map<String,ContextEjb> getEjbRefs()

#### addEjbLocalRef

    public void addEjbLocalRef(ContextLocalEjb ejbLocalRef)

#### getEjbLocalRefs

    public Map<String,ContextLocalEjb> getEjbLocalRefs()

#### addServiceRef

    public void addServiceRef(ContextService serviceRef)

#### getServiceRefs

    public Map<String,ContextService> getServiceRefs()

#### addResourceRef

    public void addResourceRef(ContextResource resourceRef)

#### getResourceRefs

    public Map<String,ContextResource> getResourceRefs()

#### addResourceEnvRef

    public void addResourceEnvRef(ContextResourceEnvRef resourceEnvRef)

#### getResourceEnvRefs

    public Map<String,ContextResourceEnvRef> getResourceEnvRefs()

#### addMessageDestinationRef

    public void addMessageDestinationRef(MessageDestinationRef messageDestinationRef)

#### getMessageDestinationRefs

    public Map<String,MessageDestinationRef> getMessageDestinationRefs()

#### addMessageDestination

    public void addMessageDestination(MessageDestination messageDestination)

#### getMessageDestinations

    public Map<String,MessageDestination> getMessageDestinations()

#### addLocaleEncodingMapping

    public void addLocaleEncodingMapping(String locale,
                                String encoding)

#### getLocalEncodingMappings

    public Map<String,String> getLocalEncodingMappings()

#### addPostConstructMethods

    public void addPostConstructMethods(String clazz,
                               String method)

#### getPostConstructMethods

    public Map<String,String> getPostConstructMethods()

#### addPreDestroyMethods

    public void addPreDestroyMethods(String clazz,
                            String method)

#### getPreDestroyMethods

    public Map<String,String> getPreDestroyMethods()

#### setURL

    public void setURL(URL url)

#### getURL

    public URL getURL()

#### setJarName

    public void setJarName(String jarName)

#### getJarName

    public String getJarName()

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### toXml

    public String toXml()

Generate a web.xml in String form that matches the representation stored in this object.

Returns:
  The complete contents of web.xml as a String

#### configureContext

    public void configureContext(Context context)

Configure a `Context` using the stored web.xml representation.

Parameters:
  `context` - The context to be configured

#### merge

    public boolean merge(Set<WebXml> fragments)

Merge the supplied web fragments into this main web.xml.

Parameters:
  `fragments` - The fragments to merge in
Returns:
  `true` if merge is successful, else `false`

#### orderWebFragments

    public static Set<WebXml> orderWebFragments(WebXml application,
                                Map<String,WebXml> fragments,
                                ServletContext servletContext)

Generates the sub-set of the web-fragment.xml files to be processed in the order that the fragments must be processed as per the rules in the Servlet spec.

Parameters:
  `application` - The application web.xml file
  `fragments` - The map of fragment names to web fragments
  `servletContext` - The servlet context the fragments are associated with
Returns:
  Ordered list of web-fragment.xml files to process