Annotation Type ManagedThreadFactoryDefinition
-
@Repeatable(List.class) @Retention(RUNTIME) @Target(TYPE) public @interface ManagedThreadFactoryDefinition
Defines a
ManagedThreadFactory
to be registered in JNDI by the container under the JNDI name that is specified in thename()
attribute.Application components can refer to this JNDI name in the
lookup
attribute of aResource
annotation,@ManagedThreadFactoryDefinition( name = "java:global/concurrent/MyThreadFactory", context = "java:global/concurrent/MyThreadFactoryContext", priority = 4) @ContextServiceDefinition( name = "java:global/concurrent/MyThreadFactoryContext", propagated = APPLICATION) public class MyServlet extends HttpServlet { @Resource(lookup = "java:global/concurrent/MyThreadFactory", name = "java:module/concurrent/env/MyThreadFactoryRef") ManagedThreadFactory myThreadFactory;
Resource environment references in a deployment descriptor can similarly specify the
lookup-name
,<resource-env-ref> <resource-env-ref-name>java:module/env/concurrent/MyThreadFactoryRef</resource-env-ref-name> <resource-env-ref-type>jakarta.enterprise.concurrent.ManagedThreadFactory</resource-env-ref-type> <lookup-name>java:global/concurrent/MyThreadFactory</lookup-name> </resource-env-ref>
You can also define aManagedThreadFactory
with the<managed-thread-factory>
deployment descriptor element. For example,<managed-thread-factory> <name>java:global/concurrent/MyThreadFactory</name> <context-service-ref>java:global/concurrent/MyThreadFactoryContext</context-service-ref> <priority>4</priority> </managed-thread-factory>
If amanaged-thread-factory
andManagedThreadFactoryDefinition
have the same name, their attributes are merged to define a singleManagedThreadFactory
definition, with each attribute that is specified in themanaged-thread-factory
deployment descriptor entry taking precedence over the corresponding attribute of the annotation.- Since:
- 3.0
-
-
Required Element Summary
Required Elements Modifier and Type Required Element Description String
name
JNDI name of theManagedThreadFactory
instance.
-
-
-
Element Detail
-
name
String name
JNDI name of theManagedThreadFactory
instance. The JNDI name must be in a valid Jakarta EE namespace, such as,- java:comp
- java:module
- java:app
- java:global
- Returns:
ManagedThreadFactory
JNDI name.
-
-
-
context
String context
Determines how context is applied to threads from this thread factory.The name can be the name of a
ContextServiceDefinition
or the name of acontext-service
deployment descriptor element or the JNDI name of the Jakarta EE defaultContextService
instance,java:comp/DefaultContextService
.The name of the
ContextService
must be no more granular than the name of thisManagedThreadFactoryDefinition
. For example, if thisManagedThreadFactoryDefinition
has a name injava:app
, theContextService
can be injava:app
orjava:global
, but not injava:module
which would be ambiguous as to which module'sContextService
definition should be used.The default value,
java:comp/DefaultContextService
, is the JNDI name of the Jakarta EE defaultContextService
.- Returns:
- instructions for capturing and propagating or clearing context.
- Default:
- "java:comp/DefaultContextService"
-
-
-
priority
int priority
Priority for threads created by this thread factory.
The default is
Thread.NORM_PRIORITY
.- Returns:
- the priority for new threads.
- Default:
- 5
-
-