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 14:48:17 UTC

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

Author: sergeyb
Date: Thu Aug 29 12:48:17 2013
New Revision: 1518627

URL: http://svn.apache.org/r1518627
Log:
Making it easy to disable JAXRS SpringResourceFactory calling lifecycle methods

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

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java?rev=1518627&r1=1518626&r2=1518627&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java Thu Aug 29 12:48:17 2013
@@ -49,6 +49,7 @@ public class SpringResourceFactory imple
     private Method postConstructMethod;
     private Method preDestroyMethod;
     private boolean isSingleton;
+    private boolean callLifecycleMethods = true;
     
     public SpringResourceFactory() {
         
@@ -83,12 +84,18 @@ public class SpringResourceFactory imple
             : Collections.singletonMap(Application.class, application.getProvider()));
         Object[] values = ResourceUtils.createConstructorArguments(c, m, !isSingleton(), mapValues);
         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}
      */
@@ -100,7 +107,7 @@ public class SpringResourceFactory imple
      * {@inheritDoc}
      */
     public void releaseInstance(Message m, Object o) {
-        if (!isSingleton()) {
+        if (callLifecycleMethods && !isSingleton()) {
             InjectionUtils.invokeLifeCycleMethod(o, preDestroyMethod);
         }
     }
@@ -129,4 +136,7 @@ public class SpringResourceFactory imple
         return c.getDeclaringClass();
     }
 
+    public void setCallLifecycleMethods(boolean callLifecycleMethods) {
+        this.callLifecycleMethods = callLifecycleMethods;
+    }
 }