You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2013/12/09 17:28:30 UTC

svn commit: r1549611 - /cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceServer.java

Author: sergeyb
Date: Mon Dec  9 16:28:30 2013
New Revision: 1549611

URL: http://svn.apache.org/r1549611
Log:
Minor updates to JAX-RS Spring server

Modified:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceServer.java

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceServer.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceServer.java?rev=1549611&r1=1549610&r2=1549611&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceServer.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceServer.java Mon Dec  9 16:28:30 2013
@@ -18,6 +18,7 @@
  */
 package org.apache.cxf.jaxrs.spring;
 
+import java.lang.annotation.Annotation;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
@@ -51,15 +52,16 @@ public class SpringResourceServer {
         List<ResourceProvider> resourceProviders = new LinkedList<ResourceProvider>();
         List<Object> jaxrsProviders = new LinkedList<Object>();
         
+        boolean checkJaxrsRoots = checkJaxrsRoots();
+        boolean checkJaxrsProviders = checkJaxrsProviders(); 
+        
         for (String beanName : ctx.getBeanDefinitionNames()) {
-            if (isBeanSupported(beanName)) {
-                if (ctx.findAnnotationOnBean(beanName, Path.class) != null) {
-                    SpringResourceFactory factory = new SpringResourceFactory(beanName);
-                    factory.setApplicationContext(ctx);
-                    resourceProviders.add(factory);
-                } else if (checkJaxrsProviders() && ctx.findAnnotationOnBean(beanName, Provider.class) != null) {
-                    jaxrsProviders.add(ctx.getBean(beanName));
-                }
+            if (checkJaxrsRoots && isAnnotationAvailable(beanName, Path.class)) {
+                SpringResourceFactory factory = new SpringResourceFactory(beanName);
+                factory.setApplicationContext(ctx);
+                resourceProviders.add(factory);
+            } else if (checkJaxrsProviders && isAnnotationAvailable(beanName, Provider.class)) {
+                jaxrsProviders.add(ctx.getBean(beanName));
             }
         }
 
@@ -68,12 +70,26 @@ public class SpringResourceServer {
         factory.setResourceProviders(resourceProviders);
         factory.setProviders(jaxrsProviders);
         factory.setAddress(getAddress());
+        finalizeFactorySetup(factory);
         return factory.create();
     }
     
+    protected <A extends Annotation> boolean isAnnotationAvailable(String beanName, Class<A> annClass) {
+        return isBeanSupported(beanName) 
+            && ctx.findAnnotationOnBean(beanName, annClass) != null;
+    }
+    
+    protected void finalizeFactorySetup(JAXRSServerFactoryBean factory) {
+        // complete
+    }
+    
     protected boolean checkJaxrsProviders() {
         return true;    
     }
+    
+    protected boolean checkJaxrsRoots() {
+        return true;    
+    }
 
     public String getAddress() {
         return address;