--- Cut ---


Hi Gang,
In general new features are added to 2.x, and 1.x gets bug fixes that are
considered important from a user perspective.  The issues that you have
been raising seem to be a mixture of the above, so I am not quite sure
what is the best approach, especially as more issues are continuing to
come to light as your work proceeds.

Whatever is done for 1.x should be consistent with the longer term
direction for 2.x, though it wouldn't be unreasonable for the 1.x solution
to be a pragmatic "meets minimum" approach.

If these fixes/features are essential for what you need to do, and you're
unable to move to 2.x, then I think it makes sense to do a "meets minimum"
update to 1.x that would bridge the gap until you are able to move to 2.x.

Would it be possible for you to move to 2.x?  If not, what are the issues
that prevent you from doing this?

  Simon


Hi, Simon N.,

Thanks for the reply. I understand that 2.x is the future and I agree with your longer term consideration. However, the application side of our projects has been using 1.6.x for some time and from my limited experience with 2.0, it's not backword compatible with 1.6.x due to the namespace and API changes. From the WS-security consideration, even though I did have a 2.0 prototype, which got stuck at the policy extension using interceptor, our effort has mainly been focussed on 1.6.x and got pretty good progress. Adding all these plus an end-of-March delivery, it's impractical for us to move to 2.0 in the immediate future.

So far, I have raised four issues with 1.6.x (may also apply to 2.0 with the interceptor approach):

1. PolicyHandler.afterInvoke() needs to be called with the outbound MessageContext instead of the inbound MC. This is critical for WS-security. I have provided my fixes in the JIRA. With some generalization we discussed, I think this should be fixable in 1.6.x.

2. SOAP message encryption is not supported because the PolicyHandler.beforeInvoke() is called after Axis2 dispatching phase, which needs to analize SOAP body in order to determine the endpoint method. This can be worked around by defining SOAPaction in WSDL or Java interface using @WebMethod. However, a future fix is still nice to have.

3. A state-sharing mechanism is needed to allow sharing states among service side interceptors/handlers, component and reference side interceptors/handlers. I'm currently using the ThreadLocal as a workaround, which I wish to have your blessing - for now, it's only used from the service handler to component and then to reference handler and I hope you can confirm that the same thread is used for processing. However, we all agreed that this is not desirable to use ThreadLocal in the service framework and a state-sharing mechanism is needed.

4. PolicyHandler.afterInvoke is not called when Fault is generated. So far, I have no workaround on this and would like a fix. If I remember the code correctly, a quick fix is possible if Axis2ServiceInOutSyncMessageReceiver.invokeBusinessLogic() can catch the exception, create the Fault body and call PolicyHandler.afterInvoke() on the service side. I'm not sure how the client (requester) side works, but the PolicyHandler.afterInvoke() is also skipped on the return with the Fault.

Thanks,
Gang

Reply via email to