Author: dkulp
Date: Tue Dec 8 22:31:13 2009
New Revision: 888602
URL: http://svn.apache.org/viewvc?rev=888602&view=rev
Log:
Merged revisions 888570 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r888570 | dkulp | 2009-12-08 16:01:00 -0500 (Tue, 08 Dec 2009) | 2 lines
[CXF-2558] Fix jaxws:client objects not propertly being considered
singletons
........
Modified:
cxf/branches/2.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
cxf/branches/2.2.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java?rev=888602&r1=888601&r2=888602&view=diff
==============================================================================
---
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java
(original)
+++
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java
Tue Dec 8 22:31:13 2009
@@ -56,6 +56,8 @@
public static class JAXWSSpringClientProxyFactoryBean extends
JaxWsProxyFactoryBean
implements ApplicationContextAware, FactoryBean {
+ private Object obj;
+
public JAXWSSpringClientProxyFactoryBean() {
super();
}
@@ -70,14 +72,17 @@
setBus(bus);
}
}
- public Object getObject() throws Exception {
- return create();
+ public synchronized Object getObject() throws Exception {
+ if (obj == null) {
+ obj = create();
+ }
+ return obj;
}
public Class getObjectType() {
return this.getServiceClass();
}
public boolean isSingleton() {
- return false;
+ return true;
}
}
}
Modified:
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java?rev=888602&r1=888601&r2=888602&view=diff
==============================================================================
---
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
(original)
+++
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
Tue Dec 8 22:31:13 2009
@@ -309,7 +309,10 @@
assertNotNull(bean);
Greeter greeter = (Greeter) ctx.getBean("client1");
+ Greeter greeter2 = (Greeter) ctx.getBean("client1");
assertNotNull(greeter);
+ assertNotNull(greeter2);
+ assertSame(greeter, greeter2);
Client client = ClientProxy.getClient(greeter);
assertNotNull("expected ConduitSelector", client.getConduitSelector());
Modified:
cxf/branches/2.2.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java?rev=888602&r1=888601&r2=888602&view=diff
==============================================================================
---
cxf/branches/2.2.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
(original)
+++
cxf/branches/2.2.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
Tue Dec 8 22:31:13 2009
@@ -93,6 +93,8 @@
public static class SpringClientProxyFactoryBean extends
ClientProxyFactoryBean
implements ApplicationContextAware, FactoryBean {
+ private Object obj;
+
public SpringClientProxyFactoryBean() {
super();
}
@@ -107,14 +109,17 @@
setBus(bus);
}
}
- public Object getObject() throws Exception {
- return create();
+ public synchronized Object getObject() throws Exception {
+ if (obj == null) {
+ obj = create();
+ }
+ return obj;
}
public Class getObjectType() {
return this.getServiceClass();
}
public boolean isSingleton() {
- return false;
+ return true;
}
}
}