[exo-jcr-commits] exo-jcr SVN: r3974 - ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Feb 15 04:03:39 EST 2011


Author: aparfonov
Date: 2011-02-15 04:03:38 -0500 (Tue, 15 Feb 2011)
New Revision: 3974

Modified:
   ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/ApplicationRegistry.java
Log:
EXOJCR-1196

Modified: ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/ApplicationRegistry.java
===================================================================
--- ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/ApplicationRegistry.java	2011-02-15 08:29:10 UTC (rev 3973)
+++ ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/ApplicationRegistry.java	2011-02-15 09:03:38 UTC (rev 3974)
@@ -35,6 +35,7 @@
 import org.picocontainer.Startable;
 
 import java.util.List;
+import java.util.Set;
 
 import javax.ws.rs.Path;
 import javax.ws.rs.core.Application;
@@ -48,7 +49,7 @@
  * Purpose of this class is to get all subclasses of
  * {@link javax.ws.rs.core.Application} from eXo container and to process set of
  * object of classes provided by it as JAX-RS components.
- *
+ * 
  * @author <a href="mailto:andrew00x at gmail.com">Andrey Parfonov</a>
  * @version $Id$
  */
@@ -91,72 +92,80 @@
    {
       String applicationId = app.getClass().getName();
       ApplicationProviders appProviders = new ApplicationProviders(applicationId);
-      for (Object obj : app.getSingletons())
+      Set<Object> singletons = app.getSingletons();
+      if (singletons != null && singletons.size() > 0)
       {
-         Class clazz = obj.getClass();
-         if (clazz.getAnnotation(Provider.class) != null)
+         for (Object obj : singletons)
          {
-            if (obj instanceof ContextResolver)
-               appProviders.addContextResolver((ContextResolver)obj);
-            if (obj instanceof ExceptionMapper)
-               appProviders.addExceptionMapper((ExceptionMapper)obj);
-            if (obj instanceof MessageBodyReader)
-               appProviders.addMessageBodyReader((MessageBodyReader)obj);
-            if (obj instanceof MessageBodyWriter)
-               appProviders.addMessageBodyWriter((MessageBodyWriter)obj);
+            Class clazz = obj.getClass();
+            if (clazz.getAnnotation(Provider.class) != null)
+            {
+               if (obj instanceof ContextResolver)
+                  appProviders.addContextResolver((ContextResolver)obj);
+               if (obj instanceof ExceptionMapper)
+                  appProviders.addExceptionMapper((ExceptionMapper)obj);
+               if (obj instanceof MessageBodyReader)
+                  appProviders.addMessageBodyReader((MessageBodyReader)obj);
+               if (obj instanceof MessageBodyWriter)
+                  appProviders.addMessageBodyWriter((MessageBodyWriter)obj);
+            }
+            else if (clazz.getAnnotation(Filter.class) != null)
+            {
+               if (obj instanceof MethodInvokerFilter)
+                  appProviders.addMethodInvokerFilter((MethodInvokerFilter)obj);
+               if (obj instanceof RequestFilter)
+                  appProviders.addRequestFilter((RequestFilter)obj);
+               if (obj instanceof ResponseFilter)
+                  appProviders.addResponseFilter((ResponseFilter)obj);
+            }
+            else if (clazz.getAnnotation(Path.class) != null)
+            {
+               AbstractResourceDescriptor descriptor = new ApplicationResource(applicationId, obj);
+               descriptor.accept(rdv);
+               resources.addResource(new SingletonObjectFactory<AbstractResourceDescriptor>(descriptor, obj));
+            }
+            else
+            {
+               LOG.warn("Unknown class type: " + clazz.getName() + " found in " + applicationId);
+            }
          }
-         else if (clazz.getAnnotation(Filter.class) != null)
-         {
-            if (obj instanceof MethodInvokerFilter)
-               appProviders.addMethodInvokerFilter((MethodInvokerFilter)obj);
-            if (obj instanceof RequestFilter)
-               appProviders.addRequestFilter((RequestFilter)obj);
-            if (obj instanceof ResponseFilter)
-               appProviders.addResponseFilter((ResponseFilter)obj);
-         }
-         else if (clazz.getAnnotation(Path.class) != null)
-         {
-            AbstractResourceDescriptor descriptor = new ApplicationResource(applicationId, obj);
-            descriptor.accept(rdv);
-            resources.addResource(new SingletonObjectFactory<AbstractResourceDescriptor>(descriptor, obj));
-         }
-         else
-         {
-            LOG.warn("Unknown class type: " + clazz.getName() + " found in " + applicationId);
-         }
       }
-      for (Class clazz : app.getClasses())
+      Set<Class<?>> classes = app.getClasses();
+      if (classes != null && classes.size() > 0)
       {
-         if (clazz.getAnnotation(Provider.class) != null)
+         for (Class clazz : classes)
          {
-            if (ContextResolver.class.isAssignableFrom(clazz))
-               appProviders.addContextResolver(clazz);
-            if (ExceptionMapper.class.isAssignableFrom(clazz))
-               appProviders.addExceptionMapper(clazz);
-            if (MessageBodyReader.class.isAssignableFrom(clazz))
-               appProviders.addMessageBodyReader(clazz);
-            if (MessageBodyWriter.class.isAssignableFrom(clazz))
-               appProviders.addMessageBodyWriter(clazz);
+            if (clazz.getAnnotation(Provider.class) != null)
+            {
+               if (ContextResolver.class.isAssignableFrom(clazz))
+                  appProviders.addContextResolver(clazz);
+               if (ExceptionMapper.class.isAssignableFrom(clazz))
+                  appProviders.addExceptionMapper(clazz);
+               if (MessageBodyReader.class.isAssignableFrom(clazz))
+                  appProviders.addMessageBodyReader(clazz);
+               if (MessageBodyWriter.class.isAssignableFrom(clazz))
+                  appProviders.addMessageBodyWriter(clazz);
+            }
+            else if (clazz.getAnnotation(Filter.class) != null)
+            {
+               if (MethodInvokerFilter.class.isAssignableFrom(clazz))
+                  appProviders.addMethodInvokerFilter(clazz);
+               if (RequestFilter.class.isAssignableFrom(clazz))
+                  appProviders.addRequestFilter(clazz);
+               if (ResponseFilter.class.isAssignableFrom(clazz))
+                  appProviders.addResponseFilter(clazz);
+            }
+            else if (clazz.getAnnotation(Path.class) != null)
+            {
+               AbstractResourceDescriptor descriptor = new ApplicationResource(applicationId, clazz);
+               descriptor.accept(rdv);
+               resources.addResource(new PerRequestObjectFactory<AbstractResourceDescriptor>(descriptor));
+            }
+            else
+            {
+               LOG.warn("Unknown class type: " + clazz.getName() + " found in: " + applicationId);
+            }
          }
-         else if (clazz.getAnnotation(Filter.class) != null)
-         {
-            if (MethodInvokerFilter.class.isAssignableFrom(clazz))
-               appProviders.addMethodInvokerFilter(clazz);
-            if (RequestFilter.class.isAssignableFrom(clazz))
-               appProviders.addRequestFilter(clazz);
-            if (ResponseFilter.class.isAssignableFrom(clazz))
-               appProviders.addResponseFilter(clazz);
-         }
-         else if (clazz.getAnnotation(Path.class) != null)
-         {
-            AbstractResourceDescriptor descriptor = new ApplicationResource(applicationId, clazz);
-            descriptor.accept(rdv);
-            resources.addResource(new PerRequestObjectFactory<AbstractResourceDescriptor>(descriptor));
-         }
-         else
-         {
-            LOG.warn("Unknown class type: " + clazz.getName() + " found in: " + applicationId);
-         }
       }
       this.providers.addProviders(appProviders);
    }



More information about the exo-jcr-commits mailing list