You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/03/07 17:49:14 UTC
svn commit: r1298018 -
/openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
Author: rmannibucau
Date: Wed Mar 7 16:49:14 2012
New Revision: 1298018
URL: http://svn.apache.org/viewvc?rev=1298018&view=rev
Log:
better classloading management for jaxrs providers
Modified:
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
Modified: openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java?rev=1298018&r1=1298017&r2=1298018&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java Wed Mar 7 16:49:14 2012
@@ -62,7 +62,7 @@ public class CxfRsHttpListener implement
public static final String OPENEJB_CXF_JAXRS_PROVIDERS_SUFFIX = ".providers";
public static final String DEFAULT_CXF_JAXRS_PROVIDERS_KEY = "default";
- private static final List<?> PROVIDERS = createProviderList("");
+ private static final List<?> PROVIDERS = createProviderList("", CxfRsHttpListener.class.getClassLoader());
private HTTPTransportFactory transportFactory;
private AbstractHTTPDestination destination;
@@ -106,7 +106,7 @@ public class CxfRsHttpListener implement
factory.setDestinationFactory(transportFactory);
factory.setBus(transportFactory.getBus());
factory.setAddress(address);
- factory.setProviders(createProviderList(nameForProviders(clazz)));
+ factory.setProviders(createProviderList(nameForProviders(clazz), clazz.getClassLoader()));
if (rp != null) {
factory.setResourceProvider(rp);
}
@@ -137,7 +137,7 @@ public class CxfRsHttpListener implement
server.stop();
}
- private static List<?> createProviderList(String prefix) {
+ private static List<?> createProviderList(final String prefix, final ClassLoader loader) {
String key;
if (prefix == null || prefix.trim().isEmpty()) {
key = OPENEJB_CXF_JAXRS_PROVIDERS_KEY;
@@ -160,11 +160,6 @@ public class CxfRsHttpListener implement
if (providersProperty != null && !providersProperty.trim().isEmpty()) {
String[] providers = providersProperty.split(",|;| ");
- ClassLoader cl = Thread.currentThread().getContextClassLoader();
- if (cl == null) {
- cl = CxfRsHttpListener.class.getClassLoader();
- }
-
List<Object> providerList = new ArrayList<Object>();
for (String provider : providers) {
if (DEFAULT_CXF_JAXRS_PROVIDERS_KEY.equals(provider)) {
@@ -172,11 +167,11 @@ public class CxfRsHttpListener implement
providerList.add(jaxb);
} else {
try {
- Class<?> providerClass = cl.loadClass(provider);
+ Class<?> providerClass = loader.loadClass(provider);
Object providerInstance = providerClass.newInstance();
providerList.add(providerInstance);
} catch (Exception e) {
- LOGGER.error("can't add jax-rs provider " + provider, e);
+ LOGGER.error("can't add jax-rs provider " + provider + " in the current webapp"); // don't print this exception
}
}
}