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