Class PlusDescriptorProcessor
- All Implemented Interfaces:
DescriptorProcessor
-
Field Summary
Fields inherited from class org.eclipse.jetty.ee10.webapp.IterativeDescriptorProcessor
__signature, _visitors
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addInjections
(WebAppContext context, Descriptor descriptor, XmlParser.Node node, String jndiName, Class<?> valueClass) Iterate over the<injection-target>
entries for a nodeprotected void
bindEntry
(WebAppContext context, String name, Class<?> typeClass) Bind a resource with the given name from web.xml of the given type with a jndi resource from either the server or the webapp's naming environment.void
bindEnvEntry
(String name, Object value) void
bindMessageDestinationRef
(WebAppContext context, String name, Class<?> typeClass) void
bindResourceEnvRef
(WebAppContext context, String name, Class<?> typeClass) void
bindResourceRef
(WebAppContext context, String name, Class<?> typeClass) Bind a resource reference.void
end
(WebAppContext context, Descriptor descriptor) void
makeEnvEntryInjectionsAndBindings
(WebAppContext context, Descriptor descriptor, XmlParser.Node node, String name, String type, String value) Make injections and any java:comp/env bindings necessary given an env-entry declaration.void
start
(WebAppContext context, Descriptor descriptor) void
visitEnvEntry
(WebAppContext context, Descriptor descriptor, XmlParser.Node node) JavaEE 5.4.1.3void
visitMessageDestinationRef
(WebAppContext context, Descriptor descriptor, XmlParser.Node node) Common Annotations Spec section 2.3:void
visitPostConstruct
(WebAppContext context, Descriptor descriptor, XmlParser.Node node) If web.xml has at least 1 post-construct, then all post-constructs in fragments are ignored.void
visitPreDestroy
(WebAppContext context, Descriptor descriptor, XmlParser.Node node) pre-destroy is the name of a class and method to call just as the instance is being destroyedvoid
visitResourceEnvRef
(WebAppContext context, Descriptor descriptor, XmlParser.Node node) Common Annotations Spec section 2.3:void
visitResourceRef
(WebAppContext context, Descriptor descriptor, XmlParser.Node node) Common Annotations Spec section 2.3:Methods inherited from class org.eclipse.jetty.ee10.webapp.IterativeDescriptorProcessor
process, registerVisitor, visit
-
Constructor Details
-
PlusDescriptorProcessor
public PlusDescriptorProcessor()
-
-
Method Details
-
start
- Specified by:
start
in classIterativeDescriptorProcessor
-
end
- Specified by:
end
in classIterativeDescriptorProcessor
-
visitEnvEntry
public void visitEnvEntry(WebAppContext context, Descriptor descriptor, XmlParser.Node node) throws Exception JavaEE 5.4.1.3- Parameters:
context
- the contextdescriptor
- the descriptornode
- the xml node- Throws:
Exception
- if unable to process jndi bindings
-
visitResourceRef
public void visitResourceRef(WebAppContext context, Descriptor descriptor, XmlParser.Node node) throws Exception Common Annotations Spec section 2.3:resource-ref is for:
- javax.sql.DataSource
- javax.jms.ConnectionFactory
- javax.jms.QueueConnectionFactory
- javax.jms.TopicConnectionFactory
- jakarta.mail.Session
- java.net.URL
- javax.resource.cci.ConnectionFactory
- org.omg.CORBA_2_3.ORB
- any other connection factory defined by a resource adapter
Maintenance update 3.0a to spec:
Update Section 8.2.3.h.ii with the following - If a resource reference element is specified in two fragments, while absent from the main web.xml, and all the attributes and child elements of the resource reference element are identical, the resource reference will be merged into the main web.xml. It is considered an error if a resource reference element has the same name specified in two fragments, while absent from the main web.xml and the attributes and child elements are not identical in the two fragments. For example, if two web fragments declare a
<resource-ref>
with the same<resource-ref-name>
element but the type in one is specified as javax.sql.DataSource while the type in the other is that of a java mail resource, then an error must be reported and the application MUST fail to deploy.- Parameters:
context
- the contextdescriptor
- the descriptornode
- the xml node- Throws:
Exception
- if unable to bind nodes, or load classes
-
visitResourceEnvRef
public void visitResourceEnvRef(WebAppContext context, Descriptor descriptor, XmlParser.Node node) throws Exception Common Annotations Spec section 2.3:resource-env-ref is for:
- javax.transaction.UserTransaction
- javax.resource.cci.InteractionSpec
- anything else that is not a connection factory
- Parameters:
context
- the contextdescriptor
- the descriptornode
- the xml node- Throws:
Exception
- if unable to load classes, or bind jndi entries
-
visitMessageDestinationRef
public void visitMessageDestinationRef(WebAppContext context, Descriptor descriptor, XmlParser.Node node) throws Exception Common Annotations Spec section 2.3:message-destination-ref is for:
- javax.jms.Queue
- javax.jms.Topic
- Parameters:
context
- the contextdescriptor
- the descriptornode
- the xml node- Throws:
Exception
- if unable to load classes or bind jndi entries
-
visitPostConstruct
If web.xml has at least 1 post-construct, then all post-constructs in fragments are ignored. Otherwise, post-constructs from fragments are merged. post-construct is the name of a class and method to call after all resources have been setup but before the class is put into use- Parameters:
context
- the contextdescriptor
- the descriptornode
- the xml node
-
visitPreDestroy
pre-destroy is the name of a class and method to call just as the instance is being destroyed- Parameters:
context
- the contextdescriptor
- the descriptornode
- the xml node
-
addInjections
public void addInjections(WebAppContext context, Descriptor descriptor, XmlParser.Node node, String jndiName, Class<?> valueClass) Iterate over the<injection-target>
entries for a node- Parameters:
context
- the contextdescriptor
- the descriptornode
- the xml nodejndiName
- the jndi namevalueClass
- the value class
-
bindEnvEntry
- Parameters:
name
- the jndi namevalue
- the value- Throws:
Exception
- if unable to bind entry
-
makeEnvEntryInjectionsAndBindings
public void makeEnvEntryInjectionsAndBindings(WebAppContext context, Descriptor descriptor, XmlParser.Node node, String name, String type, String value) throws Exception Make injections and any java:comp/env bindings necessary given an env-entry declaration. The handling of env-entries is different to other resource declarations like resource-ref, resource-env-ref etc because we allow the EnvEntry (@see org.eclipse.jetty.plus.jndi.EnvEntry) class that is configured externally to the webapp to specify a value that can override a value present in a web.xml descriptor.- Parameters:
context
- the WebAppContext of the env-entrydescriptor
- the web.xml, web-default.xml, web-override.xml or web-fragment.xmlnode
- the parsed xml representation of the env-entry declarationname
- the name field of the env-entrytype
- the type field of the env-entryvalue
- the value field of the env-entry- Throws:
Exception
- if there is an unspecified problem
-
bindResourceRef
public void bindResourceRef(WebAppContext context, String name, Class<?> typeClass) throws Exception Bind a resource reference.If a resource reference with the same name is in a jetty-env.xml file, it will already have been bound.
- Parameters:
context
- the contextname
- the jndi nametypeClass
- the type class- Throws:
Exception
- if unable to bind resource
-
bindResourceEnvRef
public void bindResourceEnvRef(WebAppContext context, String name, Class<?> typeClass) throws Exception - Throws:
Exception
-
bindMessageDestinationRef
public void bindMessageDestinationRef(WebAppContext context, String name, Class<?> typeClass) throws Exception - Throws:
Exception
-
bindEntry
Bind a resource with the given name from web.xml of the given type with a jndi resource from either the server or the webapp's naming environment.As the servlet spec does not cover the mapping of names in web.xml with names from the execution environment, jetty uses the concept of a Link, which is a subclass of the NamingEntry class. A Link defines a mapping of a name from web.xml with a name from the execution environment (ie either the server or the webapp's naming environment).
- Parameters:
context
- the contextname
- name of the resource from web.xmltypeClass
- the type class- Throws:
Exception
- the exception
-