+1 to fixing all these things. It definitely needs a combing over. I'm
completely OK with breaking the Policy APIs.
Some things to keep in mind while refactoring:
1. IIRC, its still only possible to use one policy version across the
whole runtime. Seems like a bad limitation.
2. There is no support for global polices which are enforced across all
servers. I tried figuring this out one day but got completely lost in
the code. :-(
3. Along the lines of #2, WSPolicyFeature.initialize(Bus) doesn't do the
right thing.
Good luck and I'll be happy to test stuff out down the road :-)
- Dan
Sergey Beryozkin wrote:
Hi
CXF WS-Policy framework needs a bit of refactoring. While it's already quite
sophisticated in what it can do, and some of its features are really cool, like
the ability to add JAXB derived assertions, the ability to attach policy
expressions externally and inline from Spring using WSPolicyFeature, etc, etc,
there're few things which need to be fixed a bit :
* how various policy subjects contribute to corrresponding effective policies
* how policy alternatives are selected on the server and on the client
(generally a server has to support all the alternatives while the client can
select only a single one)
* automatic policy publication on the server side
* policy engine needs to be enabled by default, etc...
As such some breaking changes to interfaces like EndpointPolicy (which itself
may go in the end, with Policies just keyed by the type of policy subject),
PolicyEngine, may need to be applied. CXF does not allow for alternative
PolicyEngine or EndpointPolicy implementations be injected anyway. This should
not have any adverse affect on any applications out there, if any, which do
rely on WSPolicy expressions, perhaps those dealing with WS-Addressing or WS-RM
or MTOM...
Cheers, Sergey
----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
--
Dan Diephouse
MuleSource
http://mulesource.com | http://netzooid.com/blog