Class ApplicationHandler
- All Implemented Interfaces:
ContainerLifecycleListener
Container implementations use the ApplicationHandler
API to process requests
by invoking the handle(request)
method on a configured application handler instance.
ApplicationHandler
provides two implementations of config
that can be injected
into the application classes. The first is resource config
which implements Configuration
itself and is configured by the user. The resource config is not modified by this application handler so the future reloads of
the application is not disrupted by providers found on a classpath. This config can
be injected only as ResourceConfig
or Application
. The second one can be injected into the
Configuration
parameters / fields and contains info about all the properties / provider classes / provider instances
from the resource config and also about all the providers found during processing classes registered under
server properties
. After the application handler is initialized both configurations are marked as
read-only.
Application handler instance also acts as an aggregate ContainerLifecycleListener
instance
for the associated application. It aggregates all the registered container lifecycle listeners
under a single, umbrella listener, represented by this application handler instance, that delegates all container lifecycle
listener method calls to all the registered listeners. Jersey containers
are expected to invoke
the container lifecycle methods directly on the active ApplicationHandler
instance. The application handler will then
make sure to delegate the lifecycle listener calls further to all the container lifecycle listeners registered within the
application. Additionally, invoking the ContainerLifecycleListener.onShutdown(Container)
method on this application
handler instance will release all the resources associated with the underlying application instance as well as close the
application-specific injection manager
.
- Author:
- Pavel Bucek, Jakub Podlesak, Marek Potociar, Libor Kramolis
- See Also:
-
Constructor Summary
ConstructorDescriptionCreate a new Jersey application handler using a default configuration.ApplicationHandler
(Application application) Create a new Jersey server-side application handler configured by an instance of aJAX-RS Application sub-class
.ApplicationHandler
(Application application, org.glassfish.jersey.internal.inject.Binder customBinder) Create a new Jersey server-side application handler configured by an instance of aResourceConfig
and a customBinder
.ApplicationHandler
(Application application, org.glassfish.jersey.internal.inject.Binder customBinder, Object parentManager) Create a new Jersey server-side application handler configured by an instance of aResourceConfig
, customBinder
and a parent used byInjectionManager
.ApplicationHandler
(Class<? extends Application> jaxrsApplicationClass) Create a new Jersey server-side application handler configured by aJAX-RS Application (sub-)class
.ApplicationHandler
(Class<? extends Application> applicationClass, org.glassfish.jersey.internal.inject.Binder customBinder) Create a new Jersey server-side application handler configured by aJAX-RS Application (sub-)class
. -
Method Summary
Modifier and TypeMethodDescriptionapply
(ContainerRequest requestContext) Invokes a request and returns theresponse future
.apply
(ContainerRequest request, OutputStream outputStream) Invokes a request and returns theresponse future
.Get the application configuration.org.glassfish.jersey.internal.inject.InjectionManager
ReturnsInjectionManager
relevant to current application.void
handle
(ContainerRequest request) The main request/response processing entry point for Jersey container implementations.void
Invoked when thecontainer
has been reloaded.void
onShutdown
(Container container) Invoke at thecontainer
shut-down.void
Invoked at thecontainer
start-up.
-
Constructor Details
-
ApplicationHandler
public ApplicationHandler()Create a new Jersey application handler using a default configuration. -
ApplicationHandler
Create a new Jersey server-side application handler configured by aJAX-RS Application (sub-)class
.- Parameters:
jaxrsApplicationClass
- JAX-RSApplication
(sub-)class that will be instantiated and used to configure the new Jersey application handler.
-
ApplicationHandler
public ApplicationHandler(Class<? extends Application> applicationClass, org.glassfish.jersey.internal.inject.Binder customBinder) Create a new Jersey server-side application handler configured by aJAX-RS Application (sub-)class
.- Parameters:
applicationClass
- JAX-RSApplication
(sub-)class that will be instantiated and used to configure the new Jersey application handler.customBinder
- additional custom bindings used to configure the application's.
-
ApplicationHandler
Create a new Jersey server-side application handler configured by an instance of aJAX-RS Application sub-class
.- Parameters:
application
- an instance of a JAX-RSApplication
(sub-)class that will be used to configure the new Jersey application handler.
-
ApplicationHandler
public ApplicationHandler(Application application, org.glassfish.jersey.internal.inject.Binder customBinder) Create a new Jersey server-side application handler configured by an instance of aResourceConfig
and a customBinder
.- Parameters:
application
- an instance of a JAX-RSApplication
(sub-)class that will be used to configure the new Jersey application handler.customBinder
- additional custom bindings used to configure the application's.
-
ApplicationHandler
public ApplicationHandler(Application application, org.glassfish.jersey.internal.inject.Binder customBinder, Object parentManager) Create a new Jersey server-side application handler configured by an instance of aResourceConfig
, customBinder
and a parent used byInjectionManager
.- Parameters:
application
- an instance of a JAX-RSApplication
(sub-)class that will be used to configure the new Jersey application handler.customBinder
- additional custom bindings used duringInjectionManager
creation.parentManager
- parent used inInjectionManager
for a specific DI provider.
-
-
Method Details
-
apply
Invokes a request and returns theresponse future
.- Parameters:
requestContext
- request data.- Returns:
- response future.
-
apply
Invokes a request and returns theresponse future
.- Parameters:
request
- request data.outputStream
- response output stream.- Returns:
- response future.
-
handle
The main request/response processing entry point for Jersey container implementations.The method invokes the request processing of the provided
container request context
and uses thecontainer response writer
to suspend & resume the processing as well as write the response back to the container.The the
security context
stored in the container request context is bound as an injectable instance in the scope of the processed request context. Also, anycustom scope injections
are initialized in the current request scope.- Parameters:
request
- container request context of the current request.
-
getInjectionManager
public org.glassfish.jersey.internal.inject.InjectionManager getInjectionManager()ReturnsInjectionManager
relevant to current application.- Returns:
InjectionManager
instance.- Since:
- 2.26
-
getConfiguration
Get the application configuration.- Returns:
- application configuration.
-
onStartup
Description copied from interface:ContainerLifecycleListener
Invoked at thecontainer
start-up. This method is invoked even when application is reloaded and new instance of application has started.- Specified by:
onStartup
in interfaceContainerLifecycleListener
- Parameters:
container
- container that has been started.
-
onReload
Description copied from interface:ContainerLifecycleListener
Invoked when thecontainer
has been reloaded.- Specified by:
onReload
in interfaceContainerLifecycleListener
- Parameters:
container
- container that has been reloaded.
-
onShutdown
Description copied from interface:ContainerLifecycleListener
Invoke at thecontainer
shut-down. This method is invoked even before the application is being stopped as a part of reload.- Specified by:
onShutdown
in interfaceContainerLifecycleListener
- Parameters:
container
- container that has been shut down.
-