You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2008/09/05 02:21:04 UTC
svn commit: r692310 - in /cxf/trunk:
api/src/main/java/org/apache/cxf/ws/policy/builder/primitive/
rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/
rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/
rt/ws/policy/src/test/java/org/apache/cxf/ws/po...
Author: dkulp
Date: Thu Sep 4 17:21:03 2008
New Revision: 692310
URL: http://svn.apache.org/viewvc?rev=692310&view=rev
Log:
Change the default to not throw an exception when encountering an unknown extensor. Parse it into a XmlPrimitiveAssertion and allow the effective policy computation consider other alternatives.
Modified:
cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/builder/primitive/PrimitiveAssertion.java
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/AssertionBuilderRegistryImpl.java
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyEngineImpl.java
cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/AssertionBuilderRegistryImplTest.java
cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/attachment/wsdl11/Wsdl11AttachmentPolicyProviderTest.java
cxf/trunk/systests/src/test/resources/wsdl_systest/DoubleIt.wsdl
Modified: cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/builder/primitive/PrimitiveAssertion.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/builder/primitive/PrimitiveAssertion.java?rev=692310&r1=692309&r2=692310&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/builder/primitive/PrimitiveAssertion.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/builder/primitive/PrimitiveAssertion.java Thu Sep 4 17:21:03 2008
@@ -63,11 +63,13 @@
public PrimitiveAssertion(Element element) {
name = new QName(element.getNamespaceURI(), element.getLocalName());
NamedNodeMap atts = element.getAttributes();
- for (int x = 0; x < atts.getLength(); x++) {
- Attr att = (Attr)atts.item(x);
- QName qn = new QName(att.getNamespaceURI(), att.getLocalName());
- if (PolicyConstants.isOptionalAttribute(qn)) {
- optional = Boolean.valueOf(att.getValue());
+ if (atts != null) {
+ for (int x = 0; x < atts.getLength(); x++) {
+ Attr att = (Attr)atts.item(x);
+ QName qn = new QName(att.getNamespaceURI(), att.getLocalName());
+ if (PolicyConstants.isOptionalAttribute(qn)) {
+ optional = Boolean.valueOf(att.getValue());
+ }
}
}
}
Modified: cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/AssertionBuilderRegistryImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/AssertionBuilderRegistryImpl.java?rev=692310&r1=692309&r2=692310&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/AssertionBuilderRegistryImpl.java (original)
+++ cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/AssertionBuilderRegistryImpl.java Thu Sep 4 17:21:03 2008
@@ -36,6 +36,7 @@
import org.apache.cxf.configuration.spring.MapProvider;
import org.apache.cxf.extension.BusExtension;
import org.apache.cxf.extension.RegistryImpl;
+import org.apache.cxf.ws.policy.builder.xml.XmlPrimitiveAssertion;
/**
*
@@ -47,7 +48,7 @@
private static final Logger LOG
= LogUtils.getL7dLogger(AssertionBuilderRegistryImpl.class);
private static final int IGNORED_CACHE_SIZE = 10;
- private boolean ignoreUnknownAssertions;
+ private boolean ignoreUnknownAssertions = true;
private List<QName> ignored = new ArrayList<QName>(IGNORED_CACHE_SIZE);
public AssertionBuilderRegistryImpl() {
@@ -100,7 +101,7 @@
if (!alreadyWarned) {
LOG.warning(m.toString());
}
- return null;
+ return new XmlPrimitiveAssertion(element);
} else {
throw new PolicyException(m);
}
Modified: cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyEngineImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyEngineImpl.java?rev=692310&r1=692309&r2=692310&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyEngineImpl.java (original)
+++ cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyEngineImpl.java Thu Sep 4 17:21:03 2008
@@ -60,7 +60,7 @@
private PolicyRegistry registry;
private Collection<PolicyProvider> policyProviders;
private boolean enabled;
- private boolean ignoreUnknownAssertions;
+ private boolean ignoreUnknownAssertions = true;
private boolean addedBusInterceptors;
private AlternativeSelector alternativeSelector;
Modified: cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/AssertionBuilderRegistryImplTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/AssertionBuilderRegistryImplTest.java?rev=692310&r1=692309&r2=692310&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/AssertionBuilderRegistryImplTest.java (original)
+++ cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/AssertionBuilderRegistryImplTest.java Thu Sep 4 17:21:03 2008
@@ -23,6 +23,7 @@
import org.w3c.dom.Element;
+import org.apache.cxf.ws.policy.builder.xml.XmlPrimitiveAssertion;
import org.easymock.classextension.EasyMock;
import org.easymock.classextension.IMocksControl;
import org.junit.After;
@@ -50,6 +51,7 @@
@Test
public void testBuildUnknownAssertion() {
AssertionBuilderRegistry reg = new AssertionBuilderRegistryImpl();
+ reg.setIgnoreUnknownAssertions(false);
Element[] elems = new Element[11];
QName[] qnames = new QName[11];
for (int i = 0; i < 11; i++) {
@@ -71,11 +73,11 @@
reg.setIgnoreUnknownAssertions(true);
assertTrue(reg.isIgnoreUnknownAssertions());
for (int i = 0; i < 10; i++) {
- assertNull(reg.build(elems[i]));
+ assertTrue(reg.build(elems[i]) instanceof XmlPrimitiveAssertion);
}
for (int i = 9; i >= 0; i--) {
- assertNull(reg.build(elems[i]));
+ assertTrue(reg.build(elems[i]) instanceof XmlPrimitiveAssertion);
}
- assertNull(reg.build(elems[10]));
+ assertTrue(reg.build(elems[10]) instanceof XmlPrimitiveAssertion);
}
}
Modified: cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/attachment/wsdl11/Wsdl11AttachmentPolicyProviderTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/attachment/wsdl11/Wsdl11AttachmentPolicyProviderTest.java?rev=692310&r1=692309&r2=692310&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/attachment/wsdl11/Wsdl11AttachmentPolicyProviderTest.java (original)
+++ cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/attachment/wsdl11/Wsdl11AttachmentPolicyProviderTest.java Thu Sep 4 17:21:03 2008
@@ -117,7 +117,8 @@
public void setUp() {
control = EasyMock.createNiceControl();
bus = control.createMock(Bus.class);
- AssertionBuilderRegistry abr = new AssertionBuilderRegistryImpl();
+ AssertionBuilderRegistry abr = new AssertionBuilderRegistryImpl();
+ abr.setIgnoreUnknownAssertions(false);
XMLPrimitiveAssertionBuilder ab = new XMLPrimitiveAssertionBuilder();
ab.setBus(bus);
abr.register(new QName("http://cxf.apache.org/test/assertions", "A"), ab);
Modified: cxf/trunk/systests/src/test/resources/wsdl_systest/DoubleIt.wsdl
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/resources/wsdl_systest/DoubleIt.wsdl?rev=692310&r1=692309&r2=692310&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/resources/wsdl_systest/DoubleIt.wsdl (original)
+++ cxf/trunk/systests/src/test/resources/wsdl_systest/DoubleIt.wsdl Thu Sep 4 17:21:03 2008
@@ -82,6 +82,9 @@
<wsp:Policy wsu:Id="DoubleItBindingPolicy">
<wsp:ExactlyOne>
<wsp:All>
+ <foo:unknownPolicy xmlns:foo="http://cxf.apache.org/not/a/policy"/>
+ </wsp:All>
+ <wsp:All>
<wsaws:UsingAddressing xmlns:wsaws="http://www.w3.org/2006/05/addressing/wsdl"/>
<sp:TransportBinding>
<wsp:Policy>