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 2014/10/07 14:50:23 UTC

svn commit: r1629874 - /tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java

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());