- java.lang.Object
-
- org.eclipse.jetty.webapp.MetaData
-
public class MetaData extends java.lang.ObjectMetaData All data associated with the configuration and deployment of a web application.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMetaData.Completestatic classMetaData.OriginInfoMetadata regarding where a deployable element was declared: by annotation or by descriptor.
-
Field Summary
Fields Modifier and Type Field Description protected boolean_allowDuplicateFragmentNamesprotected java.util.Map<org.eclipse.jetty.util.resource.Resource,java.util.List<DiscoveredAnnotation>>_annotationsprotected java.util.List<DescriptorProcessor>_descriptorProcessorsprotected boolean_metaDataCompleteprotected java.util.List<org.eclipse.jetty.util.resource.Resource>_orderedContainerResourcesprotected java.util.List<org.eclipse.jetty.util.resource.Resource>_orderedWebInfResourcesprotected Ordering_orderingprotected java.util.Map<java.lang.String,MetaData.OriginInfo>_originsprotected boolean_validateXmlprotected WebDescriptor_webDefaultsRootprotected java.util.Map<java.lang.String,FragmentDescriptor>_webFragmentNameMapprotected java.util.Map<org.eclipse.jetty.util.resource.Resource,FragmentDescriptor>_webFragmentResourceMapprotected java.util.List<FragmentDescriptor>_webFragmentRootsprotected java.util.List<org.eclipse.jetty.util.resource.Resource>_webInfClassesprotected java.util.List<org.eclipse.jetty.util.resource.Resource>_webInfJarsprotected java.util.List<WebDescriptor>_webOverrideRootsprotected WebDescriptor_webXmlRootstatic org.eclipse.jetty.util.resource.ResourceNON_FRAG_RESOURCEstatic java.lang.StringORDERED_LIBSstatic java.lang.StringVALIDATE_XML
-
Constructor Summary
Constructors Constructor Description MetaData()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddContainerResource(org.eclipse.jetty.util.resource.Resource jar)voidaddDescriptorProcessor(DescriptorProcessor p)voidaddDiscoveredAnnotation(DiscoveredAnnotation annotation)Add an annotation that has been discovered on a class, method or field within a resource eg a jar or dir.voidaddDiscoveredAnnotations(java.util.List<DiscoveredAnnotation> annotations)Annotations such as WebServlet, WebFilter, WebListener that can be discovered by scanning unloaded classes.voidaddFragmentDescriptor(org.eclipse.jetty.util.resource.Resource jarResource, FragmentDescriptor descriptor)Add a web-fragment.xml, and the jar it is contained in.voidaddOverrideDescriptor(OverrideDescriptor descriptor)Add a override-web.xml descriptor.voidaddWebInfResource(org.eclipse.jetty.util.resource.Resource newResource)voidclear()Empty ready for reusejava.util.List<org.eclipse.jetty.util.resource.Resource>getContainerResources()WebDescriptorgetDefaultsDescriptor()FragmentDescriptorgetFragmentDescriptor(java.lang.String name)FragmentDescriptorgetFragmentDescriptor(org.eclipse.jetty.util.resource.Resource descriptorResource)FragmentDescriptorgetFragmentDescriptorForJar(org.eclipse.jetty.util.resource.Resource jar)Get the web-fragment.xml related to a jarorg.eclipse.jetty.util.resource.ResourcegetJarForFragmentName(java.lang.String name)java.util.Map<java.lang.String,FragmentDescriptor>getNamedFragmentDescriptors()OrderinggetOrdering()OrigingetOrigin(java.lang.String name)DescriptorgetOriginDescriptor(java.lang.String name)MetaData.OriginInfogetOriginInfo(java.lang.String name)java.util.Map<java.lang.String,MetaData.OriginInfo>getOrigins()java.util.List<WebDescriptor>getOverrideDescriptors()WebDescriptorgetWebDescriptor()java.util.List<org.eclipse.jetty.util.resource.Resource>getWebInfClassesResources()java.util.List<org.eclipse.jetty.util.resource.Resource>getWebInfResources(boolean withOrdering)booleanisAllowDuplicateFragmentNames()booleanisDistributable()A webapp is distributable if web.xml is metadata-complete and distributable=true, or if metadata-complete is false, but all web-fragments.xml are distributable=true.booleanisMetaDataComplete()booleanisOrdered()booleanisValidateXml()voidorderFragments()voidremoveDescriptorProcessor(DescriptorProcessor p)voidresolve(WebAppContext context)Resolve all servlet/filter/listener metadata from all sources: descriptors and annotations.voidsetAllowDuplicateFragmentNames(boolean allowDuplicateFragmentNames)voidsetDefaultsDescriptor(DefaultsDescriptor descriptor)Set the web-default.xml.voidsetOrdering(Ordering o)voidsetOrigin(java.lang.String name, java.lang.annotation.Annotation annotation, java.lang.Class<?> annotated)voidsetOrigin(java.lang.String name, Descriptor d)voidsetOriginAPI(java.lang.String name)voidsetValidateXml(boolean validateXml)voidsetWebDescriptor(WebDescriptor descriptor)voidsetWebInfClassesResources(java.util.List<org.eclipse.jetty.util.resource.Resource> dirs)
-
-
-
Field Detail
-
VALIDATE_XML
public static final java.lang.String VALIDATE_XML
- See Also:
- Constant Field Values
-
ORDERED_LIBS
public static final java.lang.String ORDERED_LIBS
- See Also:
- Constant Field Values
-
NON_FRAG_RESOURCE
public static final org.eclipse.jetty.util.resource.Resource NON_FRAG_RESOURCE
-
_origins
protected java.util.Map<java.lang.String,MetaData.OriginInfo> _origins
-
_webDefaultsRoot
protected WebDescriptor _webDefaultsRoot
-
_webXmlRoot
protected WebDescriptor _webXmlRoot
-
_webOverrideRoots
protected final java.util.List<WebDescriptor> _webOverrideRoots
-
_metaDataComplete
protected boolean _metaDataComplete
-
_descriptorProcessors
protected final java.util.List<DescriptorProcessor> _descriptorProcessors
-
_webFragmentRoots
protected final java.util.List<FragmentDescriptor> _webFragmentRoots
-
_webFragmentNameMap
protected final java.util.Map<java.lang.String,FragmentDescriptor> _webFragmentNameMap
-
_webFragmentResourceMap
protected final java.util.Map<org.eclipse.jetty.util.resource.Resource,FragmentDescriptor> _webFragmentResourceMap
-
_annotations
protected final java.util.Map<org.eclipse.jetty.util.resource.Resource,java.util.List<DiscoveredAnnotation>> _annotations
-
_webInfClasses
protected final java.util.List<org.eclipse.jetty.util.resource.Resource> _webInfClasses
-
_webInfJars
protected final java.util.List<org.eclipse.jetty.util.resource.Resource> _webInfJars
-
_orderedContainerResources
protected final java.util.List<org.eclipse.jetty.util.resource.Resource> _orderedContainerResources
-
_orderedWebInfResources
protected final java.util.List<org.eclipse.jetty.util.resource.Resource> _orderedWebInfResources
-
_ordering
protected Ordering _ordering
-
_allowDuplicateFragmentNames
protected boolean _allowDuplicateFragmentNames
-
_validateXml
protected boolean _validateXml
-
-
Method Detail
-
clear
public void clear()
Empty ready for reuse
-
setDefaultsDescriptor
public void setDefaultsDescriptor(DefaultsDescriptor descriptor) throws java.lang.Exception
Set the web-default.xml.- Parameters:
descriptor- the web-default.xml- Throws:
java.lang.Exception
-
setWebDescriptor
public void setWebDescriptor(WebDescriptor descriptor) throws java.lang.Exception
- Parameters:
descriptor- the web.xml descriptor- Throws:
java.lang.Exception
-
addOverrideDescriptor
public void addOverrideDescriptor(OverrideDescriptor descriptor) throws java.lang.Exception
Add a override-web.xml descriptor.- Parameters:
descriptor- the override-web.xml- Throws:
java.lang.Exception
-
addFragmentDescriptor
public void addFragmentDescriptor(org.eclipse.jetty.util.resource.Resource jarResource, FragmentDescriptor descriptor) throws java.lang.ExceptionAdd a web-fragment.xml, and the jar it is contained in.- Parameters:
jarResource- the jar of the fragmentdescriptor- web-fragment.xml- Throws:
java.lang.Exception- if unable to add fragment
-
addDiscoveredAnnotations
public void addDiscoveredAnnotations(java.util.List<DiscoveredAnnotation> annotations)
Annotations such as WebServlet, WebFilter, WebListener that can be discovered by scanning unloaded classes.- Parameters:
annotations- the list of discovered annotations to add
-
addDiscoveredAnnotation
public void addDiscoveredAnnotation(DiscoveredAnnotation annotation)
Add an annotation that has been discovered on a class, method or field within a resource eg a jar or dir. The annotation may also have no associated resource, or that resource may be a system or container resource. This method is synchronized as it is anticipated that it may be called by many threads during the annotation scanning phase.- Parameters:
annotation- the discovered annotation
-
addDescriptorProcessor
public void addDescriptorProcessor(DescriptorProcessor p)
-
removeDescriptorProcessor
public void removeDescriptorProcessor(DescriptorProcessor p)
-
orderFragments
public void orderFragments()
-
resolve
public void resolve(WebAppContext context) throws java.lang.Exception
Resolve all servlet/filter/listener metadata from all sources: descriptors and annotations.- Parameters:
context- the context to resolve servlets / filters / listeners metadata from- Throws:
java.lang.Exception- if unable to resolve metadata
-
isDistributable
public boolean isDistributable()
A webapp is distributable if web.xml is metadata-complete and distributable=true, or if metadata-complete is false, but all web-fragments.xml are distributable=true.- Returns:
- true if the webapp is distributable, false otherwise
-
getWebDescriptor
public WebDescriptor getWebDescriptor()
-
getOverrideDescriptors
public java.util.List<WebDescriptor> getOverrideDescriptors()
-
getDefaultsDescriptor
public WebDescriptor getDefaultsDescriptor()
-
isOrdered
public boolean isOrdered()
-
getOrdering
public Ordering getOrdering()
-
setOrdering
public void setOrdering(Ordering o)
-
getFragmentDescriptor
public FragmentDescriptor getFragmentDescriptor(java.lang.String name)
- Parameters:
name- the name specified in a web-fragment.xml- Returns:
- the web-fragment.xml that defines that name or null
-
getFragmentDescriptor
public FragmentDescriptor getFragmentDescriptor(org.eclipse.jetty.util.resource.Resource descriptorResource)
- Parameters:
descriptorResource- the web-fragment.xml location as a Resource- Returns:
- the FrgmentDescriptor for the web-fragment.xml, or null if none exists
-
getJarForFragmentName
public org.eclipse.jetty.util.resource.Resource getJarForFragmentName(java.lang.String name)
- Parameters:
name- the name specified in a web-fragment.xml- Returns:
- the jar that contains the web-fragment.xml with the given name or null
-
getFragmentDescriptorForJar
public FragmentDescriptor getFragmentDescriptorForJar(org.eclipse.jetty.util.resource.Resource jar)
Get the web-fragment.xml related to a jar- Parameters:
jar- the jar to check for a mapping to web-fragment.xml- Returns:
- the FragmentDescriptor or null if no web-fragment.xml is associated with the jar
-
getNamedFragmentDescriptors
public java.util.Map<java.lang.String,FragmentDescriptor> getNamedFragmentDescriptors()
- Returns:
- a map of name to FragmentDescriptor, for those FragmentDescriptors that define a name element.
-
getOrigin
public Origin getOrigin(java.lang.String name)
-
getOriginInfo
public MetaData.OriginInfo getOriginInfo(java.lang.String name)
-
getOriginDescriptor
public Descriptor getOriginDescriptor(java.lang.String name)
-
setOrigin
public void setOrigin(java.lang.String name, Descriptor d)
-
setOrigin
public void setOrigin(java.lang.String name, java.lang.annotation.Annotation annotation, java.lang.Class<?> annotated)
-
setOriginAPI
public void setOriginAPI(java.lang.String name)
-
isMetaDataComplete
public boolean isMetaDataComplete()
-
addWebInfResource
public void addWebInfResource(org.eclipse.jetty.util.resource.Resource newResource)
-
getWebInfResources
public java.util.List<org.eclipse.jetty.util.resource.Resource> getWebInfResources(boolean withOrdering)
-
getContainerResources
public java.util.List<org.eclipse.jetty.util.resource.Resource> getContainerResources()
-
addContainerResource
public void addContainerResource(org.eclipse.jetty.util.resource.Resource jar)
-
setWebInfClassesResources
public void setWebInfClassesResources(java.util.List<org.eclipse.jetty.util.resource.Resource> dirs)
-
getWebInfClassesResources
public java.util.List<org.eclipse.jetty.util.resource.Resource> getWebInfClassesResources()
-
isAllowDuplicateFragmentNames
public boolean isAllowDuplicateFragmentNames()
-
setAllowDuplicateFragmentNames
public void setAllowDuplicateFragmentNames(boolean allowDuplicateFragmentNames)
-
isValidateXml
public boolean isValidateXml()
- Returns:
- true if the parser validates, false otherwise
-
setValidateXml
public void setValidateXml(boolean validateXml)
- Parameters:
validateXml- if true xml syntax is validated by the parser, false otherwise
-
getOrigins
public java.util.Map<java.lang.String,MetaData.OriginInfo> getOrigins()
-
-