Author: gseitz
Date: Tue May 25 22:41:23 2010
New Revision: 948230
URL: http://svn.apache.org/viewvc?rev=948230&view=rev
Log:
Applied WICKET-2771
Modified:
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
Modified:
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java?rev=948230&r1=948229&r2=948230&view=diff
==============================================================================
---
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
(original)
+++
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
Tue May 25 22:41:23 2010
@@ -31,6 +31,7 @@ import org.apache.wicket.util.lang.Gener
import org.apache.wicket.util.string.Strings;
import org.springframework.beans.factory.BeanFactoryUtils;
import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
@@ -181,7 +182,7 @@ public class AnnotProxyFieldValueFactory
List<String> names = new
ArrayList<String>(Arrays.asList(BeanFactoryUtils
.beanNamesForTypeIncludingAncestors(ctx,
clazz)));
- // filter out beans that are not condidates for autowiring
+ // filter out beans that are not candidates for autowiring
Iterator<String> it = names.iterator();
while (it.hasNext())
{
@@ -201,6 +202,21 @@ public class AnnotProxyFieldValueFactory
}
else if (names.size() > 1)
{
+ if (ctx instanceof AbstractApplicationContext)
+ {
+ for (String name : names)
+ {
+ BeanDefinition beanDef =
((AbstractApplicationContext)ctx).getBeanFactory()
+
.getBeanDefinition(name);
+ if (beanDef instanceof
AbstractBeanDefinition)
+ {
+ if
(((AbstractBeanDefinition)beanDef).isPrimary())
+ {
+ return name;
+ }
+ }
+ }
+ }
StringBuilder msg = new StringBuilder();
msg.append("more then one bean of type [");
msg.append(clazz.getName());