Daniel,
Thanks for answering my question, following is my current workaround:
StAXOMBuilder builder = new StAXOMBuilder(is);
OMElement documentElement = builder.getDocumentElement();
Iterator<OMElement> itr =
documentElement.getChildrenWithLocalName(Constants.ELEM_POLICY);
Policy policy = new Policy();
while(itr.hasNext()) {
OMElement e = itr.next();
Policy subPolicy = PolicyEngine.getPolicy(e);
policy.addPolicyComponent(subPolicy);
}
On Thu, Aug 2, 2012 at 6:19 AM, Daniel Kulp <[email protected]> wrote:
> On Wednesday, August 01, 2012 01:46:14 PM C.h. Lee wrote:
>> Hi Dev,
>>
>> Thanks for the good work, this library helps us a lot!
>>
>> In version 2.0.5, org.apache.neethi.PolicyEngine:
>>
>> public static Policy getPolicy(OMElement element) {
>> return getPolicyOperator(element);
>> }
>>
>> Above method handles just fine if root element is not a policy element.
>>
>> In version 3.0.2, org.apache.neethi.PolicyEngine:
>>
>> public static Policy getPolicy(OMElement element) {
>> return getBuilder().getPolicy(element);
>> }
>>
>> Above method throws IllegalArgumentException if root element is not a
>> policy element.
>> I suppose this is due to following fix:
>> https://issues.apache.org/jira/browse/NEETHI-12
>>
>> Question: Is the behavior in 3.0.2 by design and the behavior in 2.0.5 is
>> a bug?
>
> Yes. Neethi is a library to parse/process Policy documents. Thus, making
> sure proper policy documents are passed in is important for the methods that
> are supposed to actually return a Policy object.
>
> That said, I had thought about adding method like:
>
> PolicyComponent getPolicyFragment(Object)
>
> or similar for parsing subsections of a policy document, but even that may
> require the "root" to be a known policy, although that would at least allow
> you to manually iterate over the child elements and process one at a time.
>
> Just never got around to that.
>
> --
> Daniel Kulp
> [email protected] - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]