[ 
https://issues.apache.org/jira/browse/WSCOMMONS-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12719096#action_12719096
 ] 

Konrad K edited comment on WSCOMMONS-299 at 6/13/09 1:24 AM:
-------------------------------------------------------------

Indeed ... But let me explain my motivation first...

In my project, we need to generate policies based on parameters given at a 
frontend. Therefore I tried out Metro's policy library but it has the following 
disadvantages:

- PolicyAssertion subclasses aren't easy to reuse. For instance i need an 
"Issuer" assertion with an wsa:EndpointReferenceType inside. But the class is 
missing a convenient constructor or a setter to do so.
- Something which is also quite annoying are the two object models for 
policies, namely a source and a normal one. Thus serializing includes lots of 
transformation code.
- In the normal model most classes are immutable. Thus I had to package all my 
assertions into collections before passing them to an operator. Afterwards I 
had to package all my operators before creating a policy. As a result, I have 
to generate my policy backwards.
- Its object model doesn't reflect the policy specification as good as Neethi 
does.

Neethi adopts the composite pattern and generating a policy looks naturally in 
the code. Also CXF's assertions seem to be cool initially, but they have some 
mistakes (see http://issues.apache.org/jira/browse/CXF-2282). Another problem 
is that they don't implement WS-SecurityPolicy to the letter. I wasn't able to 
pass my whole EndpointReference to this setter: 
setIssuerEpr(org.w3c.dom.Element issuerEpr), because I might have a wsa:Address 
and but also a Metadata element, which need to be direct childs of the Issuer 
Assertion. In the end I implemented most Assertions again.

Summarizing my experience i came to the following conclusions:
- The implementation of standardized assertions should be a part of Neethi and 
the enforcement of them should be a part of CXF. That would enable people like 
me to reuse assertions, as they are specified.
- It would also be nice to support WS-Policy 1.5 ... but currently we can't 
switch the policy version consistently, because the serialize methods have 
opaque nested policies.


      was (Author: creme-fresh):
    Indeed ... But let me explain my motivation first...

In my project, we need to generate policies based on parameters given at a 
frontend. Therefore I tried out Metro's policy library but it has the following 
disadvantages:

- PolicyAssertion subclasses aren't easy to reuse. For instance i need an 
"Issuer" assertion with an wsa:EndpointReferenceType inside. But the class is 
missing a convenient constructor or a setter to do so.
- Something which is also quite annoying are the two object models for 
policies, namely a source and a normal one. Thus serializing includes lots of 
transformation code.
- In the normal model most classes are immutable. Thus I had to package all my 
assertions into collections before passing them to an operator. Afterwards I 
had to package all my operators before creating a policy. As a result, I have 
to generate my policy backwards.
- Its object model doesn't reflect the policy specification as good as Neethi 
does.

Neethi adopts the composite pattern and generating a policy looks naturally in 
the code. Also CXF's assertions seem to be cool initially, but they have some 
mistakes (see http://issues.apache.org/jira/browse/CXF-2282). Another problem 
is that they don't implement WS-SecurityPolicy to the letter. I wasn't able to 
pass my whole EndpointReference to this setter: 
setIssuerEpr(org.w3c.dom.Element issuerEpr), because I might have a wsa:Address 
and but also a Metadata element, which need to be direct childs of the Issuer 
Assertion. In the end I implemented most Assertions again.

Summarizing my experience i came to the following conclusions:
- CXF's Assertions have too much duplicate code ... also because of the 
Assertion interface design
- The implementation of standardized assertions should be a part of Neethi and 
the enforcement of them should be a part of CXF. That would enable people like 
me to reuse assertions, as they are specified.
- It would also be nice to support WS-Policy 1.5 ... but currently we can't 
switch the policy version consistently, because the serialize methods have 
opaque nested policies.

  
> Policy intersection is not yet implemented
> ------------------------------------------
>
>                 Key: WSCOMMONS-299
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-299
>             Project: WS-Commons
>          Issue Type: Bug
>          Components: Policy
>            Reporter: Tammo van Lessen
>         Attachments: patch.txt, patch2.txt
>
>
> Intersection is crucial for testing compatibility. It was already implemented 
> it one of the earlier versions but got somehow lost...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to