Thank makes sense, I actually had some questions about why it was the way it 
was. I'll create a JIRA issue for this enhancement (modification of the 
service control interface to allow for user defined handlers) and add the 
relevant portions of this thead to it.

- Chad

On 7/26/05, Daryoush Mehrtash <[EMAIL PROTECTED]> wrote:
> 
> Chad,
> 
> The ThreadLocal was primarily designed to handle the
> getInputHeader/setOutputHeader interface of the Service Control. As
> you pointed out the Controls depends on its container to maintain a
> single threaded environment, which means the thread safety concern has
> added unnecessary complication. I don't have problem removing this
> code.
> 
> IMHO though, the problem is actually in the interface of the service
> control. I think it is worth while to bring this up and see if there
> are any other suggestions on this.
> 
> The problme that I see is that getInputHeader/setOutputHeader doesn't
> really make sense. Headers should be responsibility of Handlers and
> should not be concern of the service control. For instance, let's
> assume headers are to be used as message checksum. With the current
> interface this is impossible to do since the client would not have
> access to the Soap message to generate the checksum. What you need is
> a user defined Handler that is installed in the processing chain
> such that it would add the header elements based on the checksum of
> the whole message, or validate the message checsum for incomming
> messages.
> 
> JSR 181 defines the similar functionality on the server side that we
> can use as a model. My suggestion would be to adopt the same model
> which menas to add annotations for defining Handlers and removing the
> getInputHeaders/setOutputHeaders interface all together. I think
> this would solve your concern and also make the interface of the
> service control usable.
> 
> Daryoush
> 
> 
> On 7/26/05, Chad Schoettger <[EMAIL PROTECTED]> wrote:
> > Currently the service control is coded to be able to be used in a
> > free-threaded manner (such as from a servlet) which is not the use 
> pattern
> > for Beehive controls. Over the next couple of days I would like to do 
> some
> > cleanup in the service control so it will conform more closely to the 
> usage
> > patterns of Beehive controls. The modifications I would like to propose 
> are:
> >
> > 1) Remove the Thread.locals from the HeaderHandler class of the control.
> > 2) Add onAquire() and onRelease() control event handlers to the service
> > control (see jdbc control for examples of these)
> > 2a) Move the invocation of the initialize() method from the invoke() 
> method
> > of the control to the onAquire() method
> > 2b) Do any control cleanup in the onRelease() method
> > 3) Add a cache for Call objects created by the control, and the logic
> > necessary to resuse the cached Calls.
> >
> > Anything else I may be missing or anyone would like to see?
> >
> > - Chad
> >
> >
> 
> 
> --
> Daryoush
> 
> Weblog: http://perlustration.blogspot.com/
>

Reply via email to