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 2012/01/12 15:47:09 UTC
svn commit: r1230569 - in /cxf/trunk: api/src/main/java/org/apache/cxf/
api/src/main/java/org/apache/cxf/configuration/
common/wstx-msv-validation/src/main/resources/META-INF/cxf/
common/xerces-xsd-validation/src/main/resources/META-INF/cxf/ integratio...
Author: dkulp
Date: Thu Jan 12 14:47:08 2012
New Revision: 1230569
URL: http://svn.apache.org/viewvc?rev=1230569&view=rev
Log:
Allow bus extensions to be marked optional which allows them to not be
loaded at all if dependencies are not available.
Modified:
cxf/trunk/api/src/main/java/org/apache/cxf/Bus.java
cxf/trunk/api/src/main/java/org/apache/cxf/configuration/ConfiguredBeanLocator.java
cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.txt
cxf/trunk/common/xerces-xsd-validation/src/main/resources/META-INF/cxf/bus-extensions.txt
cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/cxf/test/DummyBus.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/CXFBusImpl.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/blueprint/BlueprintBeanLocator.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/Extension.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/TextExtensionFragmentParser.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/osgi/OSGiBeanLocator.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBeanLocator.java
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
cxf/trunk/rt/transports/http/pom.xml
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/PolicyUtils.java
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/bus-extensions.txt
cxf/trunk/rt/ws/addr/src/main/resources/META-INF/cxf/bus-extensions.txt
cxf/trunk/rt/ws/policy/src/main/resources/META-INF/cxf/bus-extensions.txt
cxf/trunk/rt/ws/rm/src/main/resources/META-INF/cxf/bus-extensions.txt
cxf/trunk/rt/ws/security/src/main/resources/META-INF/cxf/bus-extensions.txt
Modified: cxf/trunk/api/src/main/java/org/apache/cxf/Bus.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/Bus.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/Bus.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/Bus.java Thu Jan 12 14:47:08 2012
@@ -39,6 +39,9 @@ public interface Bus extends Interceptor
<T> void setExtension(T extension, Class<T> extensionType);
+ boolean hasExtensionByName(String name);
+
+
String getId();
void shutdown(boolean wait);
Modified: cxf/trunk/api/src/main/java/org/apache/cxf/configuration/ConfiguredBeanLocator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/configuration/ConfiguredBeanLocator.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/configuration/ConfiguredBeanLocator.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/configuration/ConfiguredBeanLocator.java Thu Jan 12 14:47:08 2012
@@ -93,4 +93,6 @@ public interface ConfiguredBeanLocator {
*/
boolean beanLoaded(String name, T bean);
}
+
+ boolean hasBeanOfName(String name);
}
Modified: cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.txt?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.txt (original)
+++ cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.txt Thu Jan 12 14:47:08 2012
@@ -1 +1 @@
-org.apache.cxf.wstx_msv_validation.WoodstoxValidationImpl:org.apache.cxf.io.StaxValidationManager:true
+org.apache.cxf.wstx_msv_validation.WoodstoxValidationImpl:org.apache.cxf.io.StaxValidationManager:true:true
Modified: cxf/trunk/common/xerces-xsd-validation/src/main/resources/META-INF/cxf/bus-extensions.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/common/xerces-xsd-validation/src/main/resources/META-INF/cxf/bus-extensions.txt?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/common/xerces-xsd-validation/src/main/resources/META-INF/cxf/bus-extensions.txt (original)
+++ cxf/trunk/common/xerces-xsd-validation/src/main/resources/META-INF/cxf/bus-extensions.txt Thu Jan 12 14:47:08 2012
@@ -1 +1 @@
-org.apache.cxf.xsdvalidation.XercesXsdValidationImpl:org.apache.cxf.common.xmlschema.XmlSchemaValidationManager:true
+org.apache.cxf.xsdvalidation.XercesXsdValidationImpl:org.apache.cxf.common.xmlschema.XmlSchemaValidationManager:true:true
Modified: cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/cxf/test/DummyBus.java
URL: http://svn.apache.org/viewvc/cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/cxf/test/DummyBus.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/cxf/test/DummyBus.java (original)
+++ cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/cxf/test/DummyBus.java Thu Jan 12 14:47:08 2012
@@ -52,7 +52,10 @@ public class DummyBus extends AbstractBa
throwException = false;
}
-
+ public boolean hasExtensionByName(String name) {
+ return false;
+ }
+
public static Bus init(String[] args) throws BusException {
initializeCount++;
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/CXFBusImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/CXFBusImpl.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/CXFBusImpl.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/CXFBusImpl.java Thu Jan 12 14:47:08 2012
@@ -111,6 +111,22 @@ public class CXFBusImpl extends Abstract
return null;
}
+ public boolean hasExtensionByName(String name) {
+ for (Class<?> c : extensions.keySet()) {
+ if (name.equals(c.getName())) {
+ return true;
+ }
+ }
+ ConfiguredBeanLocator loc = (ConfiguredBeanLocator)extensions.get(ConfiguredBeanLocator.class);
+ if (loc == null) {
+ loc = createConfiguredBeanLocator();
+ }
+ if (loc != null) {
+ return loc.hasBeanOfName(name);
+ }
+ return false;
+ }
+
protected synchronized ConfiguredBeanLocator createConfiguredBeanLocator() {
ConfiguredBeanLocator loc = (ConfiguredBeanLocator)extensions.get(ConfiguredBeanLocator.class);
if (loc == null) {
@@ -132,6 +148,9 @@ public class CXFBusImpl extends Abstract
public <T> T getBeanOfType(String name, Class<T> type) {
return null;
}
+ public boolean hasBeanOfName(String name) {
+ return false;
+ }
};
this.setExtension(loc, ConfiguredBeanLocator.class);
}
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/blueprint/BlueprintBeanLocator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/blueprint/BlueprintBeanLocator.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/blueprint/BlueprintBeanLocator.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/blueprint/BlueprintBeanLocator.java Thu Jan 12 14:47:08 2012
@@ -185,4 +185,13 @@ public class BlueprintBeanLocator implem
return orig.hasConfiguredPropertyValue(beanName, propertyName, value);
}
+ @Override
+ public boolean hasBeanOfName(String name) {
+ ComponentMetadata cmd = getComponentMetadata(name);
+ if (cmd instanceof BeanMetadata) {
+ return true;
+ }
+ return orig.hasBeanOfName(name);
+ }
+
}
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/Extension.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/Extension.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/Extension.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/Extension.java Thu Jan 12 14:47:08 2012
@@ -37,6 +37,8 @@ public class Extension {
protected Collection<String> namespaces = new ArrayList<String>();
protected Object args[];
protected Object obj;
+ protected boolean optional;
+ protected boolean notFound;
public Extension() {
}
@@ -64,6 +66,14 @@ public class Extension {
intf = ext.intf;
classloader = ext.classloader;
args = ext.args;
+ optional = ext.optional;
+ }
+
+ public void setOptional(boolean b) {
+ optional = b;
+ }
+ public boolean isOptional() {
+ return optional;
}
public String getName() {
@@ -108,6 +118,7 @@ public class Extension {
public void setClassname(String i) {
clazz = null;
+ notFound = false;
className = i;
}
@@ -117,6 +128,7 @@ public class Extension {
public void setInterfaceName(String i) {
interfaceName = i;
+ notFound = false;
}
public boolean isDeferred() {
@@ -135,32 +147,45 @@ public class Extension {
args = a;
}
- public Class<?> getClassObject(ClassLoader cl) {
- if (clazz == null) {
- if (classloader != null) {
- try {
- clazz = classloader.loadClass(className);
- return clazz;
- } catch (ClassNotFoundException nex) {
- //ignore, fall into the stuff below
- }
- }
+ private Class<?> tryClass(String name, ClassLoader cl) {
+ if (classloader != null) {
+ try {
+ return classloader.loadClass(name);
+ } catch (Throwable nex) {
+ //ignore, fall into the stuff below
+ }
+ }
+ try {
+ return cl.loadClass(name);
+ } catch (Throwable ex) {
try {
- clazz = cl.loadClass(className);
- } catch (ClassNotFoundException ex) {
- try {
- // using the extension classloader as a fallback
- clazz = this.getClass().getClassLoader().loadClass(className);
- } catch (ClassNotFoundException nex) {
+ // using the extension classloader as a fallback
+ return this.getClass().getClassLoader().loadClass(name);
+ } catch (Throwable nex) {
+ notFound = true;
+ if (!optional) {
throw new ExtensionException(nex);
}
}
}
+ return null;
+ }
+
+ public Class<?> getClassObject(ClassLoader cl) {
+ if (notFound) {
+ return null;
+ }
+ if (clazz == null) {
+ clazz = tryClass(className, cl);
+ }
return clazz;
}
public Object load(ClassLoader cl, Bus b) {
try {
Class<?> cls = getClassObject(cl);
+ if (notFound) {
+ return null;
+ }
try {
//if there is a Bus constructor, use it.
if (b != null && args == null) {
@@ -200,30 +225,10 @@ public class Extension {
}
public Class<?> loadInterface(ClassLoader cl) {
- if (intf != null) {
+ if (intf != null || notFound) {
return intf;
}
- if (classloader != null) {
- try {
- intf = classloader.loadClass(interfaceName);
- if (intf != null) {
- return intf;
- }
- } catch (ClassNotFoundException nex) {
- //ignore, fall into the stuff below
- }
- }
-
- try {
- intf = cl.loadClass(interfaceName);
- } catch (ClassNotFoundException ex) {
- try {
- // using the extension classloader as a fallback
- intf = this.getClass().getClassLoader().loadClass(interfaceName);
- } catch (ClassNotFoundException nex) {
- throw new ExtensionException(nex);
- }
- }
+ intf = tryClass(interfaceName, cl);
return intf;
}
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java Thu Jan 12 14:47:08 2012
@@ -134,12 +134,19 @@ public class ExtensionManagerImpl implem
}
public synchronized <T> void activateAllByType(Class<T> type) {
for (Extension e : all.values()) {
- if (e.getLoadedObject() == null
- && type.isAssignableFrom(e.getClassObject(loader))) {
- loadAndRegister(e);
+ if (e.getLoadedObject() == null) {
+ Class<?> cls = e.getClassObject(loader);
+ if (cls != null && type.isAssignableFrom(cls)) {
+ loadAndRegister(e);
+ }
}
}
}
+
+ public boolean hasBeanOfName(String name) {
+ return all.containsKey(name);
+ }
+
final void load(String resource) throws IOException {
if (loader != getClass().getClassLoader()) {
load(resource, getClass().getClassLoader());
@@ -231,12 +238,15 @@ public class ExtensionManagerImpl implem
public synchronized <T> T getExtension(String name, Class<T> type) {
Extension e = all.get(name);
- if (e != null
- && type.isAssignableFrom(e.getClassObject(loader))) {
- if (e.getLoadedObject() == null) {
- loadAndRegister(e);
+ if (e != null) {
+ Class<?> cls = e.getClassObject(loader);
+
+ if (cls != null && type.isAssignableFrom(e.getClassObject(loader))) {
+ if (e.getLoadedObject() == null) {
+ loadAndRegister(e);
+ }
+ return type.cast(e.getLoadedObject());
}
- return type.cast(e.getLoadedObject());
}
return null;
}
@@ -267,7 +277,8 @@ public class ExtensionManagerImpl implem
public List<String> getBeanNamesOfType(Class<?> type) {
List<String> ret = new LinkedList<String>();
for (Extension ex : all.values()) {
- if (type.isAssignableFrom(ex.getClassObject(loader))) {
+ Class<?> cls = ex.getClassObject(loader);
+ if (cls != null && type.isAssignableFrom(cls)) {
ret.add(ex.getName());
}
}
@@ -286,7 +297,8 @@ public class ExtensionManagerImpl implem
public synchronized <T> Collection<? extends T> getBeansOfType(Class<T> type) {
List<T> ret = new LinkedList<T>();
for (Extension ex : all.values()) {
- if (type.isAssignableFrom(ex.getClassObject(loader))) {
+ Class<?> cls = ex.getClassObject(loader);
+ if (cls != null && type.isAssignableFrom(cls)) {
if (ex.getLoadedObject() == null) {
loadAndRegister(ex);
}
@@ -299,7 +311,8 @@ public class ExtensionManagerImpl implem
boolean loaded = false;
for (Extension ex : all.values()) {
Class<?> cls = ex.getClassObject(loader);
- if (ex.getLoadedObject() == null
+ if (cls != null
+ && ex.getLoadedObject() == null
&& type.isAssignableFrom(cls)
&& listener.loadBean(ex.getName(), cls.asSubclass(type))) {
loadAndRegister(ex);
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/TextExtensionFragmentParser.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/TextExtensionFragmentParser.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/TextExtensionFragmentParser.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/TextExtensionFragmentParser.java Thu Jan 12 14:47:08 2012
@@ -56,7 +56,7 @@ public class TextExtensionFragmentParser
/**
* Reads extension definitions from a Text file and instantiates them
* The text file has the following syntax
- * classname:interfacename:deferred(true|false)
+ * classname:interfacename:deferred(true|false):optional(true|false)
*
* @param is stream to read the extension from
* @return list of Extensions
@@ -97,6 +97,9 @@ public class TextExtensionFragmentParser
if (parts.length >= 3) {
ext.setDeferred(Boolean.parseBoolean(parts[2]));
}
+ if (parts.length >= 4) {
+ ext.setOptional(Boolean.parseBoolean(parts[3]));
+ }
return ext;
}
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/osgi/OSGiBeanLocator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/osgi/OSGiBeanLocator.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/osgi/OSGiBeanLocator.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/osgi/OSGiBeanLocator.java Thu Jan 12 14:47:08 2012
@@ -77,4 +77,8 @@ public class OSGiBeanLocator implements
public List<String> getBeanNamesOfType(Class<?> type) {
return cbl.getBeanNamesOfType(type);
}
+ @Override
+ public boolean hasBeanOfName(String name) {
+ return cbl.hasBeanOfName(name);
+ }
}
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBeanLocator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBeanLocator.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBeanLocator.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBeanLocator.java Thu Jan 12 14:47:08 2012
@@ -288,4 +288,12 @@ public class SpringBeanLocator implement
return lst;
}
+ @Override
+ public boolean hasBeanOfName(String name) {
+ if (context.containsBean(name)) {
+ return true;
+ }
+ return orig.hasBeanOfName(name);
+ }
+
}
Modified: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java (original)
+++ cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java Thu Jan 12 14:47:08 2012
@@ -69,7 +69,6 @@ import org.apache.cxf.transports.http.co
import org.apache.cxf.ws.addressing.AddressingProperties;
import org.apache.cxf.ws.addressing.EndpointReferenceType;
import org.apache.cxf.ws.addressing.JAXWSAConstants;
-import org.apache.cxf.ws.policy.PolicyEngine;
import org.apache.cxf.wsdl.EndpointReferenceUtils;
import org.easymock.EasyMock;
import org.eclipse.jetty.http.HttpFields;
@@ -571,8 +570,8 @@ public class JettyHTTPDestinationTest ex
bus = EasyMock.createMock(Bus.class);
bus.getExtension(EndpointResolverRegistry.class);
EasyMock.expectLastCall().andReturn(null);
- bus.getExtension(PolicyEngine.class);
- EasyMock.expectLastCall().andReturn(null);
+ bus.hasExtensionByName("org.apache.cxf.ws.policy.PolicyEngine");
+ EasyMock.expectLastCall().andReturn(false);
bus.getExtension(ClassLoader.class);
EasyMock.expectLastCall().andReturn(this.getClass().getClassLoader());
EasyMock.replay(bus);
Modified: cxf/trunk/rt/transports/http/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/pom.xml?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/pom.xml (original)
+++ cxf/trunk/rt/transports/http/pom.xml Thu Jan 12 14:47:08 2012
@@ -63,6 +63,7 @@
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-ws-policy</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original)
+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Thu Jan 12 14:47:08 2012
@@ -72,7 +72,6 @@ import org.apache.cxf.transport.https.Ce
import org.apache.cxf.transport.https.SSLUtils;
import org.apache.cxf.transports.http.configuration.HTTPServerPolicy;
import org.apache.cxf.ws.addressing.EndpointReferenceType;
-import org.apache.cxf.ws.policy.PolicyEngine;
import org.apache.cxf.wsdl.EndpointReferenceUtils;
import org.apache.cxf.wsdl.WSDLLibrary;
@@ -420,11 +419,8 @@ public abstract class AbstractHTTPDestin
}
private void initConfig() {
- PolicyEngine engine = bus.getExtension(PolicyEngine.class);
- // for a decoupled endpoint there is no service info
- if (null != engine && engine.isEnabled()
- && null != endpointInfo.getService()) {
- server = PolicyUtils.getServer(engine, endpointInfo, this);
+ if (bus.hasExtensionByName("org.apache.cxf.ws.policy.PolicyEngine")) {
+ server = PolicyUtils.getServer(bus, endpointInfo, this);
}
if (null == server && WSDLLibrary.isAvailable()) {
server = endpointInfo.getTraversedExtensor(
Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original)
+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Thu Jan 12 14:47:08 2012
@@ -85,7 +85,6 @@ import org.apache.cxf.transports.http.co
import org.apache.cxf.workqueue.AutomaticWorkQueue;
import org.apache.cxf.workqueue.WorkQueueManager;
import org.apache.cxf.ws.addressing.EndpointReferenceType;
-import org.apache.cxf.ws.policy.PolicyEngine;
import static org.apache.cxf.message.Message.DECOUPLED_CHANNEL_MESSAGE;
@@ -304,10 +303,10 @@ public class HTTPConduit
// wsdl extensors are superseded by policies which in
// turn are superseded by injection
- PolicyEngine pe = bus.getExtension(PolicyEngine.class);
- if (null != pe && pe.isEnabled() && endpointInfo.getService() != null) {
+ if (bus.hasExtensionByName("org.apache.cxf.ws.policy.PolicyEngine")
+ && endpointInfo.getService() != null) {
clientSidePolicy =
- PolicyUtils.getClient(pe, endpointInfo, this);
+ PolicyUtils.getClient(bus, endpointInfo, this);
}
CXFAuthenticator.addAuthenticator();
}
Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/PolicyUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/PolicyUtils.java?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/PolicyUtils.java (original)
+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/PolicyUtils.java Thu Jan 12 14:47:08 2012
@@ -26,6 +26,7 @@ import java.util.logging.Logger;
import javax.xml.namespace.QName;
+import org.apache.cxf.Bus;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageUtils;
@@ -136,17 +137,18 @@ public final class PolicyUtils {
}
return compatible;
}
-
+
/**
* Returns a HTTPClientPolicy that is compatible with the assertions included in the
* service and endpoint policy subjects, or null if there are no such assertions.
- * @param pe the policy engine
+ * @param bus the bus
* @param ei the endpoint info
* @param c the conduit
* @return the compatible policy
* @throws PolicyException if no compatible HTTPClientPolicy can be determined
*/
- public static HTTPClientPolicy getClient(PolicyEngine pe, EndpointInfo ei, Conduit c) {
+ public static HTTPClientPolicy getClient(Bus bus, EndpointInfo ei, Conduit c) {
+ PolicyEngine pe = bus.getExtension(PolicyEngine.class);
Collection<Assertion> alternative = pe.getClientEndpointPolicy(ei, c).getChosenAlternative();
HTTPClientPolicy compatible = null;
for (Assertion a : alternative) {
@@ -166,17 +168,18 @@ public final class PolicyUtils {
}
return compatible;
}
-
+
/**
* Returns a HTTPServerPolicy that is compatible with the assertions included in the
* service and endpoint policy subjects, or null if there are no such assertions.
- * @param pe the policy engine
+ * @param bus the bus
* @param ei the endpoint info
* @param d the destination
* @return the compatible policy
* @throws PolicyException if no compatible HTTPServerPolicy can be determined
*/
- public static HTTPServerPolicy getServer(PolicyEngine pe, EndpointInfo ei, Destination d) {
+ public static HTTPServerPolicy getServer(Bus b, EndpointInfo ei, Destination d) {
+ PolicyEngine pe = b.getExtension(PolicyEngine.class);
Collection<Assertion> alternative = pe.getServerEndpointPolicy(ei, d).getChosenAlternative();
HTTPServerPolicy compatible = null;
for (Assertion a : alternative) {
@@ -634,6 +637,10 @@ public final class PolicyUtils {
return s1 == null || s2 == null || s1.equals(s2);
}
+
+
+
+
private static HTTPClientPolicy getClient(Collection<Assertion> alternative) {
HTTPClientPolicy compatible = null;
for (Assertion a : alternative) {
Modified: cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/bus-extensions.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/bus-extensions.txt?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/bus-extensions.txt (original)
+++ cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/bus-extensions.txt Thu Jan 12 14:47:08 2012
@@ -1,6 +1,6 @@
org.apache.cxf.transport.http.HTTPTransportFactory::true
org.apache.cxf.transport.http.HTTPWSDLExtensionLoader::true
-org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder::true
-org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder::true
-org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider::true
+org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder::true:true
+org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder::true:true
+org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider::true:true
Modified: cxf/trunk/rt/ws/addr/src/main/resources/META-INF/cxf/bus-extensions.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/resources/META-INF/cxf/bus-extensions.txt?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/main/resources/META-INF/cxf/bus-extensions.txt (original)
+++ cxf/trunk/rt/ws/addr/src/main/resources/META-INF/cxf/bus-extensions.txt Thu Jan 12 14:47:08 2012
@@ -1,4 +1,4 @@
-org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder::true
-org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder::true
-org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider::true
-org.apache.cxf.ws.addressing.AddressingWSDLExtensionLoader::true
+org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder::true:true
+org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder::true:true
+org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider::true:true
+org.apache.cxf.ws.addressing.AddressingWSDLExtensionLoader::true:true
Modified: cxf/trunk/rt/ws/policy/src/main/resources/META-INF/cxf/bus-extensions.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/resources/META-INF/cxf/bus-extensions.txt?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/main/resources/META-INF/cxf/bus-extensions.txt (original)
+++ cxf/trunk/rt/ws/policy/src/main/resources/META-INF/cxf/bus-extensions.txt Thu Jan 12 14:47:08 2012
@@ -7,7 +7,7 @@ org.apache.cxf.ws.policy.PolicyAnnotatio
org.apache.cxf.ws.policy.attachment.ServiceModelPolicyProvider::true
org.apache.cxf.ws.policy.attachment.external.DomainExpressionBuilderRegistry::true
org.apache.cxf.ws.policy.attachment.external.EndpointReferenceDomainExpressionBuilder::true
-org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider::true
+org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider::true:true
# MTOM Policy Support
org.apache.cxf.ws.policy.mtom.MTOMAssertionBuilder::true
org.apache.cxf.ws.policy.mtom.MTOMPolicyInterceptorProvider::true
Modified: cxf/trunk/rt/ws/rm/src/main/resources/META-INF/cxf/bus-extensions.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/resources/META-INF/cxf/bus-extensions.txt?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/resources/META-INF/cxf/bus-extensions.txt (original)
+++ cxf/trunk/rt/ws/rm/src/main/resources/META-INF/cxf/bus-extensions.txt Thu Jan 12 14:47:08 2012
@@ -1,4 +1,4 @@
org.apache.cxf.ws.rm.RMManager::true
-org.apache.cxf.ws.rm.policy.RMPolicyInterceptorProvider::true
-org.apache.cxf.ws.rm.policy.RMAssertionBuilder::true
+org.apache.cxf.ws.rm.policy.RMPolicyInterceptorProvider::true:true
+org.apache.cxf.ws.rm.policy.RMAssertionBuilder::true:true
Modified: cxf/trunk/rt/ws/security/src/main/resources/META-INF/cxf/bus-extensions.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/resources/META-INF/cxf/bus-extensions.txt?rev=1230569&r1=1230568&r2=1230569&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/resources/META-INF/cxf/bus-extensions.txt (original)
+++ cxf/trunk/rt/ws/security/src/main/resources/META-INF/cxf/bus-extensions.txt Thu Jan 12 14:47:08 2012
@@ -1 +1 @@
-org.apache.cxf.ws.security.policy.WSSecurityPolicyLoader::true
+org.apache.cxf.ws.security.policy.WSSecurityPolicyLoader::true:true