axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vance Maverick" <maver...@cs.unibo.it>
Subject Re: Can Handler in requestFlow act as pivot?
Date Tue, 28 Oct 2003 12:37:15 GMT
Thanks for the feedback.  I was thinking along similar lines.  However, I'm
worried about adding this logic to all instances of SimpleChain.  I think we
should apply it only to request flows.  (A response-flow Handler would
presumably expect to be invoked after the generation of a response -- even
if this came from another Handler rather than the service object.)

It seems to me the right place to start is the InvocationStrategy
implementation (last stop before calling the Handler).  Right now, there's
just one implementation of this interface -- indeed just one instance, used
for invocation by all instances of SimpleChain.  To tailor the logic, we
would

- create a new implementation of InvocationStrategy (maybe
ShortCircuitImplementationStrategy) which checks the bail-out condition, and
doesn't call the Handler if it is set

- make the InvocationStrategy an instance variable within SimpleChain,
defaulting to the current standard instance, but writable at least by
subclasses

- in org.apache.axis.deployment.wsdd.WSDDRequestFlow, override the standard
InvocationStrategy, using the short-circuit version

Does this sound right?

Also, how do you think we should represent the bail-out condition?  Could we
use the pastPivot bit, or should we introduce something new?

    Vance

PS.  I'm not sure of the relevance here of the JAX-RPC version of
"handlers".  As far as I can tell, this is an unrelated interface -- 
javax.xml.rpc.handler.Handler rather than org.apache.axis.Handler.  Indeed
the JAX-RPC signature would make this kind of logic cleaner, but we're
working with Axis.


----- Original Message ----- 
Subject:  Re: Can Handler in requestFlow act as pivot?
From:     "chaddad" <chaddad () cobia ! net>
Date:     2003-10-27 18:20:36
[Download message RAW]

Hi vance -

Axis will need to be enhanced to provide the ability to bail out of the
request \
processing chain.

The correct processing model to use is defined in section 12.1.1 Handlers of
the \
JAX-RPC 1.1 specification.

rather than changing the method signature of the Axis handler interface,
maybe \
setting a flag in the global context would suffice.  The doVisiting method
of \
SimpleChain would pick up the bail-out condition.

Everyplace that calls .invoke on the dispatcher would have to be modified as
well so \
that the target service endpoint is not invoked. Classes to modify include \
/AxisClient.java and /AxisServer.java

/Chris
http://cvs.apache.org/~haddadc


Mime
View raw message