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/08/29 19:07:52 UTC

svn commit: r1518711 - in /cxf/branches/2.7.x-fixes: ./ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java

Author: sergeyb
Date: Thu Aug 29 17:07:51 2013
New Revision: 1518711

URL: http://svn.apache.org/r1518711
Log:
Merged revisions 1518627 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1518627 | sergeyb | 2013-08-29 13:48:17 +0100 (Thu, 29 Aug 2013) | 1 line
  
  Making it easy to disable JAXRS SpringResourceFactory calling lifecycle methods
........

Modified:
    cxf/branches/2.7.x-fixes/   (props changed)
    cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java

Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
  Merged /cxf/trunk:r1518627

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

Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java?rev=1518711&r1=1518710&r2=1518711&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java Thu Aug 29 17:07:51 2013
@@ -43,6 +43,7 @@ public class SpringResourceFactory imple
     private Method postConstructMethod;
     private Method preDestroyMethod;
     private boolean isSingleton;
+    private boolean callLifecycleMethods = true;
     
     public SpringResourceFactory() {
         
@@ -73,12 +74,18 @@ public class SpringResourceFactory imple
     public Object getInstance(Message m) {
         Object[] values = ResourceUtils.createConstructorArguments(c, m);
         Object instance = values.length > 0 ? ac.getBean(beanId, values) : ac.getBean(beanId);
-        if (!isSingleton || m == null) {
+        initInstance(m, instance);
+        return instance;
+    }
+
+    protected void initInstance(Message m, Object instance) {
+        if (callLifecycleMethods && (!isSingleton() || m == null)) {
             InjectionUtils.invokeLifeCycleMethod(instance, postConstructMethod);
         }
-        return instance;
     }
 
+    
+    
     /**
      * {@inheritDoc}
      */
@@ -90,7 +97,7 @@ public class SpringResourceFactory imple
      * {@inheritDoc}
      */
     public void releaseInstance(Message m, Object o) {
-        if (!isSingleton) {
+        if (callLifecycleMethods && !isSingleton()) {
             InjectionUtils.invokeLifeCycleMethod(o, preDestroyMethod);
         }
     }
@@ -119,4 +126,7 @@ public class SpringResourceFactory imple
         return c.getDeclaringClass();
     }
 
+    public void setCallLifecycleMethods(boolean callLifecycleMethods) {
+        this.callLifecycleMethods = callLifecycleMethods;
+    }
 }