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