Class CdiSeInjectionManager
- All Implemented Interfaces:
org.glassfish.jersey.internal.inject.InjectionManager
InjectionManager
that starts CDI SE container, scans all users bean according to beans.xml file and
register Jersey's internal beans using SeBeanRegisterExtension
extension.- Author:
- Petr Bouda
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
CompletesInjectionManager
and the underlying DI provider.<T> T
Creates an object with the given class.<T> T
createAndInitialize
(Class<T> createMe) Creates, injects and post-constructs an object with the given class.org.glassfish.jersey.internal.inject.ForeignDescriptor
createForeignDescriptor
(org.glassfish.jersey.internal.inject.Binding binding) Creates and registers the descriptor in the underlying DI provider and returnsForeignDescriptor
that is specific descriptor for the underlying DI provider.<T> List<T>
getAllInstances
(Type contractOrImpl) Gets all services from this injection manager that implement this contract or have this implementation.<T> List<org.glassfish.jersey.internal.inject.ServiceHolder<T>>
getAllServiceHolders
(Class<T> contractOrImpl, Annotation... qualifiers) Gets all services from this injection manager that implements this contract or has this implementation along with information about the service which can be kept byServiceHolder
.jakarta.enterprise.inject.spi.BeanManager
protected org.glassfish.jersey.internal.inject.AbstractBinder
jakarta.enterprise.inject.se.SeContainer
<T> T
getInstance
(Class<T> contractOrImpl) Gets the best service from this injection manager that implements this contract or has this implementation.<T> T
getInstance
(Class<T> contractOrImpl, Annotation... qualifiers) Gets the best service from this injection manager that implements this contract or has this implementation.<T> T
getInstance
(Class<T> contractOrImpl, String classAnalyzer) Gets the best service from this injection manager that implements this contract or has this implementation.<T> T
getInstance
(Type contractOrImpl) Gets the best service from this injection manager that implements this contract or has this implementation.getInstance
(org.glassfish.jersey.internal.inject.ForeignDescriptor foreignDescriptor) Gets the service instance according toForeignDescriptor
which is specific to the underlying DI provider.void
Analyzes the given object and inject into its fields and methods.void
This will analyze the given object and inject into its fields and methods.boolean
isRegistrable
(Class<?> clazz) Tests whether the providedclazz
can be registered by the implementation of theInjectionManager
.boolean
Returnstrue
when theInjectionManager
has been shutdown,false
otherwise.void
preDestroy
(Object preDestroyMe) Analyzes the given object and call the preDestroy method.void
Registers a collection of beans represented using fields in the provided descriptors.void
Registers a provider.void
register
(org.glassfish.jersey.internal.inject.Binder binder) Registers beans which are included inBinder
.void
register
(org.glassfish.jersey.internal.inject.Binding binding) Registers one bean represented using fields in the provided descriptor.void
setBeanManager
(jakarta.enterprise.inject.spi.BeanManager beanManager) void
setContainer
(jakarta.enterprise.inject.se.SeContainer container) void
shutdown()
Shuts down the entireInjectionManager
and the underlying DI provider.
-
Constructor Details
-
CdiSeInjectionManager
public CdiSeInjectionManager()
-
-
Method Details
-
register
public void register(org.glassfish.jersey.internal.inject.Binding binding) Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Registers one bean represented using fields in the provided descriptor. The final bean can be direct bean or factory object which will create the bean at the time of injection.InjectionManager
is able to register a bean represented by a class or direct instance.- Specified by:
register
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Parameters:
binding
- one descriptor.- See Also:
-
ClassBinding
InstanceBinding
SupplierClassBinding
SupplierInstanceBinding
-
register
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Registers a collection of beans represented using fields in the provided descriptors. The final bean can be direct bean or factory object which will create the bean at the time of injection.InjectionManager
is able to register a bean represented by a class or direct instance.- Specified by:
register
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Parameters:
bindings
- collection of descriptors.- See Also:
-
ClassBinding
InstanceBinding
SupplierClassBinding
SupplierInstanceBinding
-
register
public void register(org.glassfish.jersey.internal.inject.Binder binder) Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Registers beans which are included inBinder
.Binder
can contains all descriptors extendingBinding
or other binders which are installed together in tree-structure. This method will get all descriptors bound in the given binder and register them in the order how the binders are installed together. In the tree structure, the deeper on the left side will be processed first.- Specified by:
register
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Parameters:
binder
- collection of descriptors.- See Also:
-
ClassBinding
InstanceBinding
SupplierClassBinding
SupplierInstanceBinding
-
register
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Registers a provider. An implementation of theInjectionManager
should test whether the type of the object can be registered using the methodInjectionManager.isRegistrable(Class)
. Then a caller has an certainty that the instance of the tested class can be registered inInjectionManager
. IfInjectionManager
is not able to register the provider thenIllegalArgumentException
is thrown.- Specified by:
register
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Parameters:
provider
- object that can be registered inInjectionManager
.- Throws:
IllegalArgumentException
- provider cannot be registered.
-
isRegistrable
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Tests whether the providedclazz
can be registered by the implementation of theInjectionManager
.- Specified by:
isRegistrable
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Parameters:
clazz
- type that is tested whether is registrable by the implementation ofInjectionManager
.- Returns:
true
if theInjectionManager
is able to register this type.
-
createAndInitialize
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Creates, injects and post-constructs an object with the given class. This is equivalent to calling thecreate-class
method followed by theinject-class
method followed by thepost-construct
method.The object created is not managed by the injection manager.
- Specified by:
createAndInitialize
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Parameters:
createMe
- The non-null class to create this object from;- Returns:
- An instance of the object that has been created, injected and post constructed.
-
create
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Creates an object with the given class.The object created is not managed by the injection manager.
- Specified by:
create
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Parameters:
createMe
- The non-null class to create this object from;- Returns:
- An instance of the object that has been created.
-
getAllServiceHolders
public <T> List<org.glassfish.jersey.internal.inject.ServiceHolder<T>> getAllServiceHolders(Class<T> contractOrImpl, Annotation... qualifiers) Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Gets all services from this injection manager that implements this contract or has this implementation along with information about the service which can be kept byServiceHolder
.- Specified by:
getAllServiceHolders
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Type Parameters:
T
- Instance type.- Parameters:
contractOrImpl
- May not be null, and is the contract or concrete implementation to get the best instance of.qualifiers
- The set of qualifiers that must match this service definition.- Returns:
- An instance of the contract or impl along with other information. May return null if there is no provider that provides the given implementation or contract.
-
getInstance
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Gets the best service from this injection manager that implements this contract or has this implementation.Use this method only if other information is not needed otherwise use, otherwise use
InjectionManager.getAllServiceHolders(Class, Annotation...)
.- Specified by:
getInstance
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Type Parameters:
T
- Instance type.- Parameters:
contractOrImpl
- May not be null, and is the contract or concrete implementation to get the best instance of.qualifiers
- The set of qualifiers that must match this service definition.- Returns:
- An instance of the contract or impl. May return null if there is no provider that provides the given implementation or contract.
-
getInstance
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Gets the best service from this injection manager that implements this contract or has this implementation.Use this method only if other information is not needed otherwise use, otherwise use
InjectionManager.getAllServiceHolders(Class, Annotation...)
.- Specified by:
getInstance
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Type Parameters:
T
- Instance type.- Parameters:
contractOrImpl
- May not be null, and is the contract or concrete implementation to get the best instance of.- Returns:
- An instance of the contract or impl. May return null if there is no provider that provides the given implementation or contract.
-
getInstance
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Gets the best service from this injection manager that implements this contract or has this implementation.Use this method only if other information is not needed otherwise use, otherwise use
InjectionManager.getAllServiceHolders(Class, Annotation...)
.- Specified by:
getInstance
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Type Parameters:
T
- Instance type.- Parameters:
contractOrImpl
- May not be null, and is the contract or concrete implementation to get the best instance of.- Returns:
- An instance of the contract or impl. May return null if there is no provider that provides the given implementation or contract.
-
getInstance
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Gets the service instance according toForeignDescriptor
which is specific to the underlying DI provider.- Specified by:
getInstance
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Parameters:
foreignDescriptor
- DI specific descriptor.- Returns:
- service instance according to foreign descriptor.
-
createForeignDescriptor
public org.glassfish.jersey.internal.inject.ForeignDescriptor createForeignDescriptor(org.glassfish.jersey.internal.inject.Binding binding) Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Creates and registers the descriptor in the underlying DI provider and returnsForeignDescriptor
that is specific descriptor for the underlying DI provider.- Specified by:
createForeignDescriptor
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Parameters:
binding
- jersey descriptor.- Returns:
- specific foreign descriptor of the underlying DI provider.
-
getAllInstances
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Gets all services from this injection manager that implement this contract or have this implementation.Use this method only if other information is not needed otherwise use, otherwise use
InjectionManager.getAllServiceHolders(Class, Annotation...)
.- Specified by:
getAllInstances
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Type Parameters:
T
- Instance type.- Parameters:
contractOrImpl
- May not be null, and is the contract or concrete implementation to get the best instance of.- Returns:
- A list of services implementing this contract or concrete implementation. May not return null, but may return an empty list
-
inject
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Analyzes the given object and inject into its fields and methods. The object injected in this way will not be managed by HK2- Specified by:
inject
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Parameters:
instance
- The object to be analyzed and injected into
-
preDestroy
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Analyzes the given object and call the preDestroy method. The object given will not be managed by bean manager.- Specified by:
preDestroy
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Parameters:
preDestroyMe
- The object to preDestroy
-
completeRegistration
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
CompletesInjectionManager
and the underlying DI provider. All registered components are bound to injection manager and after an invocation of this method all components are available using e.g.InjectionManager.getInstance(Class)
.- Specified by:
completeRegistration
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Throws:
IllegalStateException
-
getBindings
protected org.glassfish.jersey.internal.inject.AbstractBinder getBindings() -
getContainer
public jakarta.enterprise.inject.se.SeContainer getContainer() -
setContainer
public void setContainer(jakarta.enterprise.inject.se.SeContainer container) -
getBeanManager
public jakarta.enterprise.inject.spi.BeanManager getBeanManager() -
setBeanManager
public void setBeanManager(jakarta.enterprise.inject.spi.BeanManager beanManager) -
shutdown
public void shutdown()Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Shuts down the entireInjectionManager
and the underlying DI provider.Shutdown phase is dedicated to make some final cleaning steps regarding underlying DI provider.
- Specified by:
shutdown
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
-
isShutdown
public boolean isShutdown()Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Returnstrue
when theInjectionManager
has been shutdown,false
otherwise.- Specified by:
isShutdown
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Returns:
- Whether the
InjectionManager
has been shutdown.
-
inject
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
This will analyze the given object and inject into its fields and methods. The object injected in this way will not be managed by HK2- Specified by:
inject
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Parameters:
injectMe
- The object to be analyzed and injected into
-
getInstance
Description copied from interface:org.glassfish.jersey.internal.inject.InjectionManager
Gets the best service from this injection manager that implements this contract or has this implementation.Use this method only if other information is not needed otherwise use, otherwise use
InjectionManager.getAllServiceHolders(Class, Annotation...)
.- Specified by:
getInstance
in interfaceorg.glassfish.jersey.internal.inject.InjectionManager
- Type Parameters:
T
- Instance type.- Parameters:
contractOrImpl
- May not be null, and is the contract or concrete implementation to get the best instance of.classAnalyzer
- -------- Returns:
- An instance of the contract or impl. May return null if there is no provider that provides the given implementation or contract.
-