You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by Chad Schoettger <ch...@gmail.com> on 2005/07/28 00:01:13 UTC
Design proposal for enhanced JAX-RPC handler functionality for the service control
As discussed in a previous email thread on this list (Service control free
threading cleanup) I would like to make a design proposal for adding
enhanced JAX-RPC handler functionality to the service control.
One of the primary goals of this change would be to allow service control
users to define their own JAX-RPC handler chains for a service control.
Currently the service control only supports the HeaderHandler (see source
tree) which can add SOAP headers to outgoing messages and SOAP retrieve
headers from incoming messages. There are two service control API's which
support this: Element[] getInputHeaders() and void
setOutputHeaders(Element[])
I propose that these two API's be removed as well as the HeaderHandler
class.
The API's would be replaced with a new annotation in the ServiceControl
interface:
public @interface HandlerConfigParams {
String name();
String value();
}
public @interface MessageHandler {
Class handlerClass();
HandlerConfigParams[] configParams() default {};
String[] headers() default {};
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface MessageHandlers {
MessageHandler[] value();
}
If this optional annotation is set service control would add the handlers to
the HandlerRegistry at runtime. I'm thinking this would be a class-level
annotation for the service control - would it also be useful to be able to
define this on a per method basis?
- Chad