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/08/25 22:51:11 UTC

svn commit: r1620429 - in /tomee/tomee/trunk: pom.xml server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java

Author: rmannibucau
Date: Mon Aug 25 20:51:11 2014
New Revision: 1620429

URL: http://svn.apache.org/r1620429
Log:
cxf 3.1 + renaming our internal ProviderFactory since it means something for cxf

Modified:
    tomee/tomee/trunk/pom.xml
    tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java

Modified: tomee/tomee/trunk/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/pom.xml?rev=1620429&r1=1620428&r2=1620429&view=diff
==============================================================================
--- tomee/tomee/trunk/pom.xml (original)
+++ tomee/tomee/trunk/pom.xml Mon Aug 25 20:51:11 2014
@@ -130,7 +130,7 @@
 
     <tomcat.version>8.0.9</tomcat.version>
 
-    <cxf.version>3.0.2-SNAPSHOT</cxf.version>
+    <cxf.version>3.1.0-SNAPSHOT</cxf.version>
     <!--2.6.4 requires wss4j 1.6.8-->
     <ehcache.version>2.8.3</ehcache.version>
     <!-- used by cxf for security (replay attack) -->

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=1620429&r1=1620428&r2=1620429&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 Mon Aug 25 20:51:11 2014
@@ -23,12 +23,19 @@ import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
 import org.apache.cxf.jaxrs.JAXRSServiceImpl;
 import org.apache.cxf.jaxrs.ext.ResourceComparator;
+import org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper;
 import org.apache.cxf.jaxrs.lifecycle.ResourceProvider;
 import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
 import org.apache.cxf.jaxrs.model.ClassResourceInfo;
 import org.apache.cxf.jaxrs.model.MethodDispatcher;
 import org.apache.cxf.jaxrs.model.OperationResourceInfo;
+import org.apache.cxf.jaxrs.provider.BinaryDataProvider;
+import org.apache.cxf.jaxrs.provider.DataSourceProvider;
+import org.apache.cxf.jaxrs.provider.FormEncodingProvider;
 import org.apache.cxf.jaxrs.provider.JAXBElementProvider;
+import org.apache.cxf.jaxrs.provider.MultipartProvider;
+import org.apache.cxf.jaxrs.provider.PrimitiveTextProvider;
+import org.apache.cxf.jaxrs.provider.SourceProvider;
 import org.apache.cxf.service.invoker.Invoker;
 import org.apache.cxf.transport.DestinationFactory;
 import org.apache.cxf.transport.http.AbstractHTTPDestination;
@@ -316,7 +323,7 @@ public class CxfRsHttpListener implement
                     }
                 }
 
-                final Collection<Object> instance = ServiceInfos.resolve(services, new String[]{clazz.getName()}, ProviderFactory.INSTANCE);
+                final Collection<Object> instance = ServiceInfos.resolve(services, new String[]{clazz.getName()}, OpenEJBProviderFactory.INSTANCE);
                 if (instance != null && !instance.isEmpty()) {
                     instances.add(instance.iterator().next());
                 } else {
@@ -338,6 +345,15 @@ public class CxfRsHttpListener implement
         instances.add(new JsrProvider()); // is this one really mandatory?
         instances.add(new WadlDocumentMessageBodyWriter());
         instances.add(EJBAccessExceptionMapper.INSTANCE);
+
+        // CXF defaults: cause we don't put defaults in the Bus
+        instances.add(new WebApplicationExceptionMapper());
+        instances.add(new BinaryDataProvider<>());
+        instances.add(new SourceProvider<>());
+        instances.add(new DataSourceProvider<>());
+        instances.add(new FormEncodingProvider<>());
+        instances.add(new PrimitiveTextProvider<>());
+        instances.add(new MultipartProvider());
     }
 
     private Object newProvider(final Class<?> clazz) throws IllegalAccessException, InstantiationException {
@@ -638,7 +654,7 @@ public class CxfRsHttpListener implement
         final Collection<Object> additionalProviders = ignoreAutoProviders ? Collections.emptyList() : givenAdditionalProviders;
         List<Object> providers = null;
         if (providersConfig != null) {
-            providers = ServiceInfos.resolve(services, providersConfig.toArray(new String[providersConfig.size()]), ProviderFactory.INSTANCE);
+            providers = ServiceInfos.resolve(services, providersConfig.toArray(new String[providersConfig.size()]), OpenEJBProviderFactory.INSTANCE);
             if (providers != null && additionalProviders != null && !additionalProviders.isEmpty()) {
                 providers.addAll(providers(services, additionalProviders, ctx));
             }
@@ -675,9 +691,8 @@ public class CxfRsHttpListener implement
         return providers;
     }
 
-    private static class ProviderFactory implements ServiceInfos.Factory {
-
-        private static final ServiceInfos.Factory INSTANCE = new ProviderFactory();
+    private static class OpenEJBProviderFactory implements ServiceInfos.Factory {
+        private static final ServiceInfos.Factory INSTANCE = new OpenEJBProviderFactory();
 
         @Override
         public Object newInstance(final Class<?> clazz) throws Exception {