cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher Moesel" <Christopher_Moe...@avid.com>
Subject RE: Questions While Implementing MTOM Policy
Date Fri, 20 Apr 2007 21:26:16 GMT
I fit in a little more work...  It's almost their, except that even
though I set my policy assertion to wsp:Optional="true", by the time it
makes it to the interceptor, the optional attribute is false.

If I debug, I can see that when the PrimitiveAssertion is built, it
correctly sets the "optional" attribute to true.  But somewhere down the
line, the assertion is "normalized" and the optional flag gets reset to
false.  This appears to be happening in the PrimitiveAssertion.normalize
method.  The PolicyComponent returned is an ExactlyOne that contains two
Alls.  The first All has a PrimitiveAssertion with optional set to
false.  The second All is empty.

Is this the intended behavior?  Is this a translation of optional=true
to an ExactlyOne with one required Assertion and one empty Assertion?
If so, how can I tell the difference between that and optional=false
from within an interceptor?

Or does that question not even make sense? ;)

-Chris

-----Original Message-----
From: Christopher Moesel [mailto:Christopher_Moesel@avid.com] 
Sent: Friday, April 20, 2007 4:16 PM
To: cxf-dev@incubator.apache.org
Subject: RE: Questions While Implementing MTOM Policy

Thanks Dan-- that information has helped me get a bit further.  I'm
afraid I won't be able to do any more work on it until Monday though...
I'll let you know how things are going...

-Chris

-----Original Message-----
From: Dan Diephouse [mailto:dan@envoisolutions.com] 
Sent: Friday, April 20, 2007 3:15 PM
To: cxf-dev@incubator.apache.org
Subject: Re: Questions While Implementing MTOM Policy

Hi Christopher,

A zip of the module or a paste of the interceptor, mtom-policy.xml file,
and
interceptor provider would be extremely helpful.

Re question #2 - is your question how do I apply this mtom policy to my
service? I think the two mechanisms we have right now are WSDL Policy
Attachments and creating an external policy. I'm working on a third
where we
can embed it in an <endpoint>/<client> configuration.

Here's a small example of how to load an external policy file:

    <bean class="
org.apache.cxf.ws.policy.attachment.external.ExternalAttachmentProvider"
>
        <constructor-arg ref="cxf"/>
        <property name="location"
value="org/apache/cxf/systest/ws/policy/addr-external.xml"/>
    </bean>

And then the external file:

<attachments xmlns:wsp="http://www.w3.org/2006/07/ws-policy" xmlns:wsa="
http://www.w3.org/2005/08/addressing">
    <wsp:PolicyAttachment>
        <wsp:AppliesTo>
            <wsa:EndpointReference>
 
<wsa:Address>http://localhost:9020/SoapContext/GreeterPort
</wsa:Address>
            </wsa:EndpointReference>
        </wsp:AppliesTo>
        <wsp:Policy>
            <wsam:Addressing xmlns:wsam="
http://www.w3.org/2007/01/addressing/metadata">
                <wsp:Policy/>
            </wsam:Addressing>
        </wsp:Policy>
    </wsp:PolicyAttachment>
</attachments>

This is part of the policy system tests.  How are you configuring your
service right now? Via the API? Via Spring?
- Dan

On 4/20/07, Christopher Moesel <Christopher_Moesel@avid.com> wrote:
>
> A Quick Update:
>
> I moved the bean configurations from the
> META-INF/cxf/cxf-extension-mtom-policy.xml file to my service's own
> Spring configuration file.  Now I can see that my
MTOMAssertionBuilder,
> MTOMPolicyInterceptorProvider, and MTOMPolicyInterceptors are at least
> instantiated (which is further than I got before).
>
> But, the handleMessage method on my MTOMPolicyInterceptor is never
> called when I make a request to the service, so something still
doesn't
> seem to be registered right.
>
> So two questions now:
>
> 1)  Why wasn't my META-INF/cxf/cxf-extension-mtom-policy.xml file
never
> loaded by the framework?
>
> 2)  How do I get my service to actually build those assertions and
> intercept the messages?
>
> Thanks,
> Chris
>
> -----Original Message-----
> From: Christopher Moesel [mailto:Christopher_Moesel@avid.com]
> Sent: Friday, April 20, 2007 2:40 PM
> To: cxf-dev@incubator.apache.org
> Subject: Questions While Implementing MTOM Policy
>
> Hello,
>
> I'm trying to implement a plugin for the MTOM Policy specification.
> This is essentially a policy that states whether or not MTOM should be
> used (or is optional).  I intend on contributing it back to CXF, so I
> figure I'm OK sending this to the dev list. ;)
>
> I've created a MTOMAssertionBuilder that uses PrimitiveAssertions, a
> MTOMPolicyInterceptor (that at this point just prints out if it is
> asserted), and a MTOMPolicyInterceptorProvider.
>
> I've registered the MTOMAssertionBuilder and
> MTOMPolicyInterceptorProvider in
> META-INF/cxf/cxf-extension-mtom-policy.xml and created a corresponding
> META-INF/cxf/cxf.extension file.  According to the documentation, this
> is all that is needed to register them in CXF.
>
> When I try my service (that has the ws-policy and ws-mtom-policy jars
in
> its classpath), none of my MTOM policy classes seem to be called.  Do
I
> need to do something else to register them with my service, or is
having
> the policy assertion in the port of my WSDL file enough?  It seems I
> must be missing something important.
>
> If it would be helpful, I can zip up the module and send it along.
>
> Thanks!
> Chris
>



-- 
Dan Diephouse
Envoi Solutions
http://envoisolutions.com | http://netzooid.com/blog

Mime
View raw message