Author: dkulp
Date: Thu Jun 27 18:04:21 2013
New Revision: 1497481
URL: http://svn.apache.org/r1497481
Log:
[CXF-5099] Fix problem of optional extensions not being truely optional
Modified:
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/transports/http-hc/src/main/resources/META-INF/cxf/bus-extensions.txt
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=1497481&r1=1497480&r2=1497481&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 Jun 27 18:04:21 2013
@@ -230,19 +230,18 @@ public class Extension {
}
obj = cls.getConstructor().newInstance();
} catch (ExtensionException ex) {
- throw ex;
- } catch (IllegalAccessException ex) {
- throw new ExtensionException(new
Message("PROBLEM_CREATING_EXTENSION_CLASS", LOG, cls.getName()), ex);
- } catch (InstantiationException ex) {
- throw new ExtensionException(new
Message("PROBLEM_CREATING_EXTENSION_CLASS", LOG, cls.getName()), ex);
- } catch (IllegalArgumentException e) {
- throw new ExtensionException(new
Message("PROBLEM_CREATING_EXTENSION_CLASS", LOG, cls.getName()), e);
- } catch (SecurityException e) {
- throw new ExtensionException(new
Message("PROBLEM_CREATING_EXTENSION_CLASS", LOG, cls.getName()), e);
+ notFound = true;
+ if (!optional) {
+ throw ex;
+ }
} catch (InvocationTargetException ex) {
- throw new ExtensionException(new
Message("PROBLEM_CREATING_EXTENSION_CLASS", LOG, cls.getName()),
- ex.getCause());
+ notFound = true;
+ if (!optional) {
+ throw new ExtensionException(new
Message("PROBLEM_CREATING_EXTENSION_CLASS", LOG, cls.getName()),
+ ex.getCause());
+ }
} catch (NoSuchMethodException ex) {
+ notFound = true;
List<Object> a = new ArrayList<Object>();
if (b != null) {
a.add(b);
@@ -250,8 +249,15 @@ public class Extension {
if (args != null) {
a.add(args);
}
- throw new ExtensionException(new
Message("PROBLEM_FINDING_CONSTRUCTOR", LOG,
- cls.getName(), a), ex);
+ if (!optional) {
+ throw new ExtensionException(new
Message("PROBLEM_FINDING_CONSTRUCTOR", LOG,
+ cls.getName(), a),
ex);
+ }
+ } catch (Throwable e) {
+ notFound = true;
+ if (!optional) {
+ throw new ExtensionException(new
Message("PROBLEM_CREATING_EXTENSION_CLASS", LOG, cls.getName()), e);
+ }
}
return obj;
}
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=1497481&r1=1497480&r2=1497481&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 Jun 27 18:04:21 2013
@@ -185,6 +185,9 @@ public class ExtensionManagerImpl implem
}
Object obj = e.load(loader, bus);
+ if (obj == null) {
+ return;
+ }
if (null != activated) {
Configurer configurer =
(Configurer)(activated.get(Configurer.class));
Modified:
cxf/trunk/rt/transports/http-hc/src/main/resources/META-INF/cxf/bus-extensions.txt
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-hc/src/main/resources/META-INF/cxf/bus-extensions.txt?rev=1497481&r1=1497480&r2=1497481&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http-hc/src/main/resources/META-INF/cxf/bus-extensions.txt
(original)
+++
cxf/trunk/rt/transports/http-hc/src/main/resources/META-INF/cxf/bus-extensions.txt
Thu Jun 27 18:04:21 2013
@@ -1,2 +1,2 @@
-org.apache.cxf.transport.http.asyncclient.AsyncHTTPConduitFactory:org.apache.cxf.transport.http.HTTPConduitFactory:true
+org.apache.cxf.transport.http.asyncclient.AsyncHTTPConduitFactory:org.apache.cxf.transport.http.HTTPConduitFactory:true:true