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 2011/03/14 11:15:00 UTC

svn commit: r1081303 - in /cxf/branches/2.3.x-fixes: ./ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/

Author: sergeyb
Date: Mon Mar 14 10:15:00 2011
New Revision: 1081303

URL: http://svn.apache.org/viewvc?rev=1081303&view=rev
Log:
Merged revisions 1081299 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1081299 | sergeyb | 2011-03-14 10:08:12 +0000 (Mon, 14 Mar 2011) | 1 line
  
  JAX-RS: Documenting the ResourceProvider interface and implementations
........

Modified:
    cxf/branches/2.3.x-fixes/   (props changed)
    cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/PerRequestResourceProvider.java
    cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/ResourceProvider.java
    cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/SingletonResourceProvider.java
    cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java

Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
    svn:mergeinfo = /cxf/trunk:1081299

Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/PerRequestResourceProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/PerRequestResourceProvider.java?rev=1081303&r1=1081302&r2=1081303&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/PerRequestResourceProvider.java (original)
+++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/PerRequestResourceProvider.java Mon Mar 14 10:15:00 2011
@@ -30,6 +30,10 @@ import org.apache.cxf.jaxrs.utils.Inject
 import org.apache.cxf.jaxrs.utils.ResourceUtils;
 import org.apache.cxf.message.Message;
 
+/**
+ * The default per-request resource provider which creates 
+ * a new resource instance per every request
+ */
 public class PerRequestResourceProvider implements ResourceProvider {
     private Constructor<?> c;
     private Method postConstructMethod;
@@ -45,15 +49,20 @@ public class PerRequestResourceProvider 
         preDestroyMethod = ResourceUtils.findPreDestroyMethod(clazz);
     }
     
+    /**
+     * {@inheritDoc}
+     */
     public boolean isSingleton() {
         return false;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public Object getInstance(Message m) {  
         return createInstance(m);
     }
     
-        
     protected Object createInstance(Message m) {
         
         Object[] values = ResourceUtils.createConstructorArguments(c, m);
@@ -77,10 +86,16 @@ public class PerRequestResourceProvider 
         
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void releaseInstance(Message m, Object o) {
         InjectionUtils.invokeLifeCycleMethod(o, preDestroyMethod);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public Class<?> getResourceClass() {
         return c.getDeclaringClass();
     }

Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/ResourceProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/ResourceProvider.java?rev=1081303&r1=1081302&r2=1081303&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/ResourceProvider.java (original)
+++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/ResourceProvider.java Mon Mar 14 10:15:00 2011
@@ -22,13 +22,33 @@ package org.apache.cxf.jaxrs.lifecycle;
 import org.apache.cxf.message.Message;
 
 /**
- * ResourceProviders are used to specify the lifecycle 
- * (per-request or singleton primarily) of root resources.
+ * ResourceProvider controls the life-cycle of the JAX-RS root resources.
  */
 public interface ResourceProvider {
 
+    /**
+     * Returns the resource instance which will handle the current request 
+     * @param m the current request message
+     * @return resource instance
+     */
     Object getInstance(Message m);
+    
+    /**
+     * Releases the resource instance if needed
+     * @param m the current request message
+     * @param o resource instance
+     */
     void releaseInstance(Message m, Object o);
+    
+    /**
+     * Returns the Class of the resource
+     * @return
+     */
     Class<?> getResourceClass();
+    
+    /**
+     * Indicates if the managed resource is a singleton
+     * @return
+     */
     boolean isSingleton();
 }

Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/SingletonResourceProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/SingletonResourceProvider.java?rev=1081303&r1=1081302&r2=1081303&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/SingletonResourceProvider.java (original)
+++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/lifecycle/SingletonResourceProvider.java Mon Mar 14 10:15:00 2011
@@ -24,6 +24,10 @@ import org.apache.cxf.jaxrs.utils.Inject
 import org.apache.cxf.jaxrs.utils.ResourceUtils;
 import org.apache.cxf.message.Message;
 
+/**
+ * The default singleton resource provider which returns 
+ * the same resource instance per every request
+ */
 public class SingletonResourceProvider implements ResourceProvider {
     private Object resourceInstance;
     
@@ -39,18 +43,30 @@ public class SingletonResourceProvider i
         this(o, false);
     }
     
+    /**
+     * {@inheritDoc}
+     */
     public boolean isSingleton() {
         return true;
     }
     
+    /**
+     * {@inheritDoc}
+     */
     public Object getInstance(Message m) {
         return resourceInstance;
     }
     
+    /**
+     * {@inheritDoc}
+     */
     public void releaseInstance(Message m, Object o) {
-        // TODO Auto-generated method stub
+        // complete
     }
     
+    /**
+     * {@inheritDoc}
+     */
     public Class<?> getResourceClass() {
         return ClassHelper.getRealClass(resourceInstance);
     }

Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java?rev=1081303&r1=1081302&r2=1081303&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java (original)
+++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java Mon Mar 14 10:15:00 2011
@@ -31,6 +31,10 @@ import org.springframework.beans.BeansEx
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 
+/**
+ * The ResourceProvider implementation which delegates to 
+ * ApplicationContext to manage the life-cycle of the resource
+ */
 public class SpringResourceFactory implements ResourceProvider, ApplicationContextAware {
 
     private Constructor<?> c;
@@ -63,6 +67,9 @@ public class SpringResourceFactory imple
         isSingleton = ac.isSingleton(beanId);
     }
     
+    /**
+     * {@inheritDoc}
+     */
     public Object getInstance(Message m) {
         Object[] values = ResourceUtils.createConstructorArguments(c, m);
         Object instance = values.length > 0 ? ac.getBean(beanId, values) : ac.getBean(beanId);
@@ -72,10 +79,16 @@ public class SpringResourceFactory imple
         return instance;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public boolean isSingleton() {
         return isSingleton; 
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void releaseInstance(Message m, Object o) {
         if (!isSingleton) {
             InjectionUtils.invokeLifeCycleMethod(o, preDestroyMethod);
@@ -99,6 +112,9 @@ public class SpringResourceFactory imple
         return c;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public Class<?> getResourceClass() {
         return c.getDeclaringClass();
     }