users@jax-rs-spec.java.net

[jax-rs-spec users] Re: Lifecycle management in Application subclasses

From: Marek Potociar <marek.potociar_at_oracle.com>
Date: Thu, 13 Dec 2012 16:52:28 +0100

On Dec 6, 2012, at 12:29 PM, James Shaw <js102_at_zepler.net> wrote:

> I hope this is the correct place to raise this.
>
> I was looking for an Application method I could override that would be
> executed when the servlet container shuts down (I have some
> ExecutorServices that need to be stopped)
>
> I couldn't find such a method, so I've worked around the problem by
> implementing my own ServletContextListener and exposing the
> ExecutorServices through a static accessor. Something like this:
>
> @ApplicationPath("/") public class MyApplication extends Application {
> public MyApplication() {
> LifecycleListener.getExecutorService();
> ...
> }
> }
>
> @WebListener public class LifecycleListener implements
> ServletContextListener { ... }
>
> Has adding an Application.shutdown() hook to JAX-RS been discussed
> before? Is there another way I ought to be doing this?

It hasn't been discussed IIRC. I wonder why you consider your solution a workaround? Why should JAX-RS specification define another callback for Servlet container, if there is one already defined in the Servlet API?

Marek