You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ni...@apache.org on 2010/08/17 16:17:08 UTC
svn commit: r986319 - in /cxf/branches/2.2.x-fixes: ./
rt/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java
rt/core/src/test/java/org/apache/cxf/configuration/spring/ConfigurerImplTest.java
Author: ningjiang
Date: Tue Aug 17 14:17:07 2010
New Revision: 986319
URL: http://svn.apache.org/viewvc?rev=986319&view=rev
Log:
Merged revisions 986308 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r986308 | ningjiang | 2010-08-17 21:52:27 +0800 (Tue, 17 Aug 2010) | 1 line
CXF-2948 Let the configure context can be used for extended instance
........
Modified:
cxf/branches/2.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java
cxf/branches/2.2.x-fixes/rt/core/src/test/java/org/apache/cxf/configuration/spring/ConfigurerImplTest.java
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
svn:mergeinfo = /cxf/trunk:986308
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java?rev=986319&r1=986318&r2=986319&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java (original)
+++ cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java Tue Aug 17 14:17:07 2010
@@ -162,18 +162,22 @@ public class ConfigurerImpl extends Bean
private void configureWithWildCard(String bn, Object beanInstance) {
if (!wildCardBeanDefinitions.isEmpty()) {
- String className = beanInstance.getClass().getName();
- List<MatcherHolder> matchers = wildCardBeanDefinitions.get(className);
- if (matchers != null) {
- for (MatcherHolder m : matchers) {
- synchronized (m.matcher) {
- m.matcher.reset(bn);
- if (m.matcher.matches()) {
- configureBean(m.wildCardId, beanInstance, false);
- return;
+ Class<?> clazz = beanInstance.getClass();
+ while (!Object.class.equals(clazz)) {
+ String className = clazz.getName();
+ List<MatcherHolder> matchers = wildCardBeanDefinitions.get(className);
+ if (matchers != null) {
+ for (MatcherHolder m : matchers) {
+ synchronized (m.matcher) {
+ m.matcher.reset(bn);
+ if (m.matcher.matches()) {
+ configureBean(m.wildCardId, beanInstance, false);
+ return;
+ }
}
}
}
+ clazz = clazz.getSuperclass();
}
}
}
Modified: cxf/branches/2.2.x-fixes/rt/core/src/test/java/org/apache/cxf/configuration/spring/ConfigurerImplTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/core/src/test/java/org/apache/cxf/configuration/spring/ConfigurerImplTest.java?rev=986319&r1=986318&r2=986319&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/core/src/test/java/org/apache/cxf/configuration/spring/ConfigurerImplTest.java (original)
+++ cxf/branches/2.2.x-fixes/rt/core/src/test/java/org/apache/cxf/configuration/spring/ConfigurerImplTest.java Tue Aug 17 14:17:07 2010
@@ -198,6 +198,24 @@ public class ConfigurerImplTest extends
}
@Test
+ public void testConfigureSimpleMatchingStarBeanIdWithChildInstance() {
+ SimpleBean sb = new ChildBean("simple2");
+ BusApplicationContext ac =
+ new BusApplicationContext("/org/apache/cxf/configuration/spring/test-beans.xml",
+ false);
+
+ ConfigurerImpl configurer = new ConfigurerImpl();
+ configurer.setApplicationContext(ac);
+ configurer.configureBean(sb);
+ assertTrue("Unexpected value for attribute booleanAttr",
+ !sb.getBooleanAttr());
+ assertEquals("Unexpected value for attribute integerAttr",
+ BigInteger.TEN, sb.getIntegerAttr());
+ assertEquals("Unexpected value for attribute stringAttr",
+ "StarHallo", sb.getStringAttr());
+ }
+
+ @Test
public void testGetBeanName() {
ConfigurerImpl configurer = new ConfigurerImpl();
Object beanInstance = new Configurable() {
@@ -236,7 +254,7 @@ public class ConfigurerImplTest extends
assertTrue("The conetxts' contains a wrong application context", contexts.contains(context2));
}
- final class SimpleBean implements Configurable {
+ class SimpleBean implements Configurable {
private String beanName;
@@ -398,4 +416,12 @@ public class ConfigurerImplTest extends
this.beanName = beanName;
}
}
+
+ class ChildBean extends SimpleBean {
+
+ public ChildBean(String bn) {
+ super(bn);
+ }
+
+ }
}