Thanks Jeff .. +1.

Sanjiva.

Jeff Barrett wrote:
Hi All,

I think for 1.3, the JAXWS handler hack will work. Here's my proposal for 1.3 which removes the new API from AxisOperation added in revision 549924 and has a minimal effect on the JAXWS code that is doing the mustUnderstand validation for SEI header parameters:

1) In modules/kernel, remove the following methods from AxisOperation: registerUnderstoodHeaderQNames(QName) and getUnderstoodHeaderQNames(). This removes the new API that Sanjiva was concerned about.

2) In modules/metadata, change OperationDesc from using the above AxisOperation methods to instead set a property on the AxisOperation to contain the QNames for header parameters.

3) In modules/jaxws, add a new JAXWS handler which will look on the AxisOperation for the property set in (2) and if found it will mark any headers with the associated QNames as processed.

4) In modules/kernel AxisEngine, remove the understood-header-processing logic from checkMustUnderstand and change it back to simply checking for any headers that are marked mustUnderstand bur are not marked processed.

I will not update axis2.xml to include the handler in (3); that can be done systems that are integrating Axis2 and JAXWS (such as Geronimo).

For post-1.3, I have a proposal for extensible, pluggable mustUnderstand-header-validation that solves all the problems we were discussing, including allowing higher level components to participate in mustUnderstand checking. I will be sending out that post 1.3 proposal later on.

Thanks,
Jeff

IBM Software Group - WebSphere Web Services Development
Phone: 512-838-4587 or Tie Line 678-4587
Internet e-mail and Sametime ID: [EMAIL PROTECTED]
----- Forwarded by Jeff Barrett/Austin/IBM on 07/02/2007 01:14 PM -----

Jeff Barrett/Austin/IBM
06/28/2007 01:05 PM

To
axis-dev@ws.apache.org
cc

Subject
Re: [axis2] header processing by !handlers





Hi All,

Thanks for all the feedback. I think we need to break this up into two different threads of discussion:
- What to do in 1.3 (so there are no API changes)
- How to fix this correctly in post 1.3 for all the scenarios (which will include API changes for headers and roles, plugability, and such)

I'll start a new thread for the post 1.3 discussion.

For the 1.3 discussion, I agree with David Illsley's observation that the JAXWS-handler approach and marking headers as "processed" even though they have not been is a "hack". But I also understand Sanjiva's concern about introducing an API that doesn't necessarily solve all the problems this close to 1.3. So, I'm thinking through if the JAXWS handler hack will solve the specific issues my commit (and a few subsequent changes based on it) was addressing. Assuming it will, I'll post a description of how I intend to refactor it to remove the API introduced on AxisOperation. This refactoring will be done under https://issues.apache.org/jira/browse/AXIS2-2853 , but note that the 1.3 solution will likely not be pluggable, just workable.

Thanks,
Jeff

IBM Software Group - WebSphere Web Services Development
Phone: 512-838-4587 or Tie Line 678-4587
Internet e-mail and Sametime ID: [EMAIL PROTECTED]



Sanjiva Weerawarana <[EMAIL PROTECTED]> 06/27/2007 07:44 PM
Please respond to
axis-dev@ws.apache.org


To
axis-dev@ws.apache.org
cc

Subject
Re: [axis2] header processing by !handlers






Glen Daniels wrote:
So we're not going to support <soap:header> in 1.3 either then - or at least not completely, in that if someone actually sends us one of the headers they specified in the WSDL with MU switched on, we'll barf?

Hmm. Yes I think this is what I'm saying. I believe that's been the case since Axis1 days right?

If you're vetoing a commit (which it sounds like you are?), fire away with the -1s! However... I'm not entirely sure that "adding a feature without discussion" is sufficient technical justification for a -1, though. If we were doing review-then-commit, sure, but we're doing commit-then-review. What do you think?

I was talking about vetoing a commit on the basis that its not the right solution and that a better solution needs more fundamental design. I was avoiding doing it and suggesting that we don't do this feature at this point.

Not sure exactly what the right thing here is, but I think I'd prefer to

leave it in in some form rather than having JAXWS rely on a Handler-based mechanism....

Problem is "some form" is not a good model because whatever we put in is permanent and this is a key API that'd touch a lot including codegen. If JAX-WS rely on a handler based mechanism for now I'd rather let get go and talk thru some of the scenarios and figure out the right solution (which is very likely along the path you suggested).

Sanjiva.

--
Sanjiva Weerawarana, Ph.D.
Founder & Director; Lanka Software Foundation; http://www.opensource.lk/
Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
Director; Open Source Initiative; http://www.opensource.org/
Member; Apache Software Foundation; http://www.apache.org/
Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to