Author: rmannibucau Date: Tue Oct 7 12:50:23 2014 New Revision: 1629874 URL: http://svn.apache.org/r1629874 Log: TOMEE-1386 skipping wink providers to not conflict with CXF
Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java?rev=1629874&r1=1629873&r2=1629874&view=diff ============================================================================== --- tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java (original) +++ tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java Tue Oct 7 12:50:23 2014 @@ -351,7 +351,8 @@ public class CxfRsHttpListener implement for (final Object o : additionalProviders) { if (o instanceof Class<?>) { final Class<?> clazz = (Class<?>) o; - if ("false".equalsIgnoreCase(SystemInstance.get().getProperty(clazz.getName() + ".activated", "true"))) { + final String name = clazz.getName(); + if (shouldSkipProvider(name)) { continue; } @@ -366,22 +367,23 @@ public class CxfRsHttpListener implement continue; } } catch (final Throwable th) { - LOGGER.info("Can't use CDI to create provider " + clazz.getName()); + LOGGER.info("Can't use CDI to create provider " + name); } } - final Collection<Object> instance = ServiceInfos.resolve(services, new String[]{clazz.getName()}, OpenEJBProviderFactory.INSTANCE); + final Collection<Object> instance = ServiceInfos.resolve(services, new String[]{name}, OpenEJBProviderFactory.INSTANCE); if (instance != null && !instance.isEmpty()) { instances.add(instance.iterator().next()); } else { try { instances.add(newProvider(clazz)); } catch (final Exception e) { - LOGGER.error("can't instantiate " + clazz.getName(), e); + LOGGER.error("can't instantiate " + name, e); } } } else { - if ("false".equalsIgnoreCase(SystemInstance.get().getProperty(o.getClass().getName() + ".activated", "true"))) { + final String name = o.getClass().getName(); + if (shouldSkipProvider(name)) { continue; } instances.add(o); @@ -391,6 +393,11 @@ public class CxfRsHttpListener implement return instances; } + private static boolean shouldSkipProvider(final String name) { + return "false".equalsIgnoreCase(SystemInstance.get().getProperty(name + ".activated", "true")) + || name.startsWith("org.apache.wink.common.internal."); + } + private static void addMandatoryProviders(final Collection<Object> instances) { instances.add(new JsrProvider()); // is this one really mandatory? instances.add(new WadlDocumentMessageBodyWriter());