[1/2] cxf git commit: [CXF-6121] Optimizing a bit SpringResourceFactory

2014-12-03 Thread sergeyb
Repository: cxf
Updated Branches:
  refs/heads/master ec98e18c8 - 2b2f97fe1


[CXF-6121] Optimizing a bit SpringResourceFactory


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/cba91b8f
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/cba91b8f
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/cba91b8f

Branch: refs/heads/master
Commit: cba91b8f1b4c207c35d8c3d49eed66d274aaa28f
Parents: b0ba2d1
Author: Sergey Beryozkin sberyoz...@talend.com
Authored: Wed Dec 3 17:01:00 2014 +
Committer: Sergey Beryozkin sberyoz...@talend.com
Committed: Wed Dec 3 17:01:00 2014 +

--
 .../cxf/jaxrs/spring/SpringResourceFactory.java | 28 ++--
 1 file changed, 20 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cxf/blob/cba91b8f/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
--
diff --git 
a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
 
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
index 99f496c..826f619 100644
--- 
a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
+++ 
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
@@ -54,6 +54,7 @@ public class SpringResourceFactory implements 
ResourceProvider, ApplicationConte
 private boolean callPreDestroy = true;
 private String postConstructMethodName;
 private String preDestroyMethodName;
+private Object singletonInstance; 
 
 public SpringResourceFactory() {
 
@@ -78,21 +79,32 @@ public class SpringResourceFactory implements 
ResourceProvider, ApplicationConte
 isSingleton = ac.isSingleton(beanId);
 if (!isSingleton) {
 isPrototype = ac.isPrototype(beanId);
+} else {
+try {
+singletonInstance = ac.getBean(beanId);
+} catch (BeansException ex) {
+// ignore for now, can be to do with no default constructor 
available
+}
 }
+
 }
 
 /**
  * {@inheritDoc}
  */
 public Object getInstance(Message m) {
-ProviderInfo? application = m == null ? null
-: 
(ProviderInfo?)m.getExchange().getEndpoint().get(Application.class.getName());
-MapClass?, Object mapValues = CastUtils.cast(application == null ? 
null 
-: 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);
-initInstance(m, instance);
-return instance;
+if (singletonInstance != null) {
+return singletonInstance;
+} else {
+ProviderInfo? application = m == null ? null
+: 
(ProviderInfo?)m.getExchange().getEndpoint().get(Application.class.getName());
+MapClass?, Object mapValues = CastUtils.cast(application == 
null ? null 
+: 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);
+initInstance(m, instance);
+return instance;
+}
 }
 
 protected void initInstance(Message m, Object instance) {



cxf git commit: [CXF-6121] Optimizing a bit SpringResourceFactory

2014-12-03 Thread sergeyb
Repository: cxf
Updated Branches:
  refs/heads/3.0.x-fixes ea800588a - 1cdac9254


[CXF-6121] Optimizing a bit SpringResourceFactory


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/1cdac925
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/1cdac925
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/1cdac925

Branch: refs/heads/3.0.x-fixes
Commit: 1cdac92540d5df49edf92876150fcb5bf873f49a
Parents: ea80058
Author: Sergey Beryozkin sberyoz...@talend.com
Authored: Wed Dec 3 17:01:00 2014 +
Committer: Sergey Beryozkin sberyoz...@talend.com
Committed: Wed Dec 3 17:02:41 2014 +

--
 .../cxf/jaxrs/spring/SpringResourceFactory.java | 28 ++--
 1 file changed, 20 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cxf/blob/1cdac925/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
--
diff --git 
a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
 
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
index 99f496c..826f619 100644
--- 
a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
+++ 
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceFactory.java
@@ -54,6 +54,7 @@ public class SpringResourceFactory implements 
ResourceProvider, ApplicationConte
 private boolean callPreDestroy = true;
 private String postConstructMethodName;
 private String preDestroyMethodName;
+private Object singletonInstance; 
 
 public SpringResourceFactory() {
 
@@ -78,21 +79,32 @@ public class SpringResourceFactory implements 
ResourceProvider, ApplicationConte
 isSingleton = ac.isSingleton(beanId);
 if (!isSingleton) {
 isPrototype = ac.isPrototype(beanId);
+} else {
+try {
+singletonInstance = ac.getBean(beanId);
+} catch (BeansException ex) {
+// ignore for now, can be to do with no default constructor 
available
+}
 }
+
 }
 
 /**
  * {@inheritDoc}
  */
 public Object getInstance(Message m) {
-ProviderInfo? application = m == null ? null
-: 
(ProviderInfo?)m.getExchange().getEndpoint().get(Application.class.getName());
-MapClass?, Object mapValues = CastUtils.cast(application == null ? 
null 
-: 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);
-initInstance(m, instance);
-return instance;
+if (singletonInstance != null) {
+return singletonInstance;
+} else {
+ProviderInfo? application = m == null ? null
+: 
(ProviderInfo?)m.getExchange().getEndpoint().get(Application.class.getName());
+MapClass?, Object mapValues = CastUtils.cast(application == 
null ? null 
+: 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);
+initInstance(m, instance);
+return instance;
+}
 }
 
 protected void initInstance(Message m, Object instance) {