I've added a new annotation that resolves the feature request shown below.
It also adds the capability for performing child resource initialization before parent resource initialization.
The change replaces the various servlet and REST call lifecycle methods with a single unifying method annotation:
http://juneau.incubator.apache.org/site/apidocs/org/apache/juneau/rest/annotation/RestHook.html
One of the nice features is that you can add as many of these annotated methods as you like to your class. For example, instead of a single init(RestConfig) method, just add your own init methods and never have to worry about calling super.init(RestConfig).
In order to get this to work, I did have to make the RestServlet.init(ServletConfig) final so that it can no longer be extended. The normal HttpServlet.init() method can still be overridden, however it's probably best-practice to just use @RestHook(INIT).
I debated whether to keep these, but decided to remove them from the RestServlet
class to keep things simple:
init(RestConfig)
- UseHookEvent.INIT
instead.onSuccess(RestRequest, RestResponse, long)
- UseHookEvent.END_CALL
instead.onPreCall(RestRequest)
- UseHookEvent.PRE_CALL
instead.onPostCall(RestRequest, RestResponse)
- UseHookEvent.POST_CALL
instead.