My suggestion is (unless there is a good reason why we should not) to
reuse the javax.jws.HandlerChain and javax.jws.soap.SOAPMessageHandlers
annotation.    It would be nice not to invent new annotations if there
are already defined.

We may also be able to reuse the handler code of the WSM in the service
control.

Daryoush

> -----Original Message-----
> From: Chad Schoettger [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, July 27, 2005 3:01 PM
> To: Beehive Developers
> Subject: 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


Reply via email to