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/07/08 18:59:17 UTC

svn commit: r1608851 - in /tomee/tomee/trunk/server: openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java

Author: rmannibucau
Date: Tue Jul  8 16:59:17 2014
New Revision: 1608851

URL: http://svn.apache.org/r1608851
Log:
TOMEE-1270 avoid to use deprecated @Providers

Modified:
    tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
    tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.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=1608851&r1=1608850&r2=1608851&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 Jul  8 16:59:17 2014
@@ -270,8 +270,7 @@ public class CxfRsHttpListener implement
                           final ServiceConfiguration configuration) {
         final Object proxy = ProxyEJB.subclassProxy(beanContext);
 
-        deploy(contextRoot, beanContext.getBeanClass(), fullContext, new NoopResourceProvider(beanContext.getBeanClass(), proxy),
-                proxy, null, new OpenEJBEJBInvoker(Collections.singleton(beanContext)), additionalProviders, configuration);
+        deploy(contextRoot, beanContext.getBeanClass(), fullContext, new NoopResourceProvider(beanContext.getBeanClass(), proxy), proxy, null, new OpenEJBEJBInvoker(Collections.singleton(beanContext)), additionalProviders, configuration);
     }
 
     private void deploy(final String contextRoot, final Class<?> clazz, final String address, final ResourceProvider rp, final Object serviceBean,

Modified: tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java?rev=1608851&r1=1608850&r2=1608851&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java (original)
+++ tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java Tue Jul  8 16:59:17 2014
@@ -69,6 +69,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -288,14 +289,9 @@ public abstract class RESTService implem
 
     private void addAppProvidersIfNeeded(AppInfo appInfo, WebAppInfo webApp, ClassLoader classLoader, Collection<Object> additionalProviders) {
         if (useDiscoveredProviders(appInfo)) {
-            for (final String name : webApp.jaxRsProviders) {
-                try {
-                    additionalProviders.add(classLoader.loadClass(name));
-                } catch (final ClassNotFoundException e) {
-                    LOGGER.warning("can't load '" + name + "'", e);
-                }
-            }
-            additionalProviders.addAll(appProviders(appInfo, classLoader));
+            final Set<String> jaxRsProviders = new HashSet<>(webApp.jaxRsProviders);
+            jaxRsProviders.addAll(appInfo.jaxRsProviders);
+            additionalProviders.addAll(appProviders(jaxRsProviders, classLoader));
         }
     }
 
@@ -547,11 +543,15 @@ public abstract class RESTService implem
         return SystemInstance.get().getOptions().get(OPENEJB_JAXRS_PROVIDERS_AUTO_PROP, true);
     }
 
-    private Collection<Object> appProviders(final AppInfo appInfo, final ClassLoader classLoader) {
+    private Collection<Object> appProviders(final Collection<String> jaxRsProviders, final ClassLoader classLoader) {
         final Collection<Object> additionalProviders = new HashSet<Object>();
-        for (final String name : appInfo.jaxRsProviders) {
+        for (final String name : jaxRsProviders) {
             try {
-                additionalProviders.add(classLoader.loadClass(name));
+                final Class<?> providerClass = classLoader.loadClass(name);
+                if (providerClass.getAnnotation(Deprecated.class) != null) {
+                    continue;
+                }
+                additionalProviders.add(providerClass);
             } catch (final ClassNotFoundException e) {
                 LOGGER.warning("can't load '" + name + "'", e);
             }
@@ -584,7 +584,7 @@ public abstract class RESTService implem
 
                     final Collection<Object> providers;
                     if (useDiscoveredProviders(appInfo)) {
-                        providers = appProviders(appInfo, appClassLoader);
+                        providers = appProviders(appInfo.jaxRsProviders, appClassLoader);
                     } else {
                         providers = new ArrayList<Object>();
                     }