From 92faaa0853f422e884596f6ec94f041aeb47abfa Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Fri, 22 Feb 2008 10:37:31 +0000 Subject: [PATCH] fix javadoc git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/branches@630147 13f79535-47bb-0310-9956-ffa450edef68 --- .../common/spring/BeansOfTypeFactoryBean.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/BeansOfTypeFactoryBean.java b/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/BeansOfTypeFactoryBean.java index ae0963459..e76cb4d36 100644 --- a/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/BeansOfTypeFactoryBean.java +++ b/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/BeansOfTypeFactoryBean.java @@ -23,12 +23,23 @@ import java.util.Iterator; import java.util.Map; +import org.springframework.beans.factory.BeanInitializationException; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.beans.factory.config.AbstractFactoryBean; /** - * XPathFunction to convert plexus property-name to Spring propertyName. + * A FactoryBean to port to Spring the plexus "get all components with role ..." feature. + *

+ * Plexus allows to define a requirement this way : + *

+ *   \/**
+ *    * @plexus.requirement role="org.apache.maven.archiva.policies.PreDownloadPolicy"
+ *    *\/
+ *   private Map prePolicies;
+ * 
+ * This FactoryBean generates the expected Map from a ListableBeanFactory, based on the role + * to be the FQCN of the component interface. * * @author Nicolas De Loof * @since 1.1 @@ -50,6 +61,12 @@ public void afterPropertiesSet() throws Exception { beansOfType = new HashMap(); + if ( !( getBeanFactory() instanceof ListableBeanFactory ) ) + { + String error = "A ListableBeanFactory bean factory is required to create a bean-of-types Map"; + logger.error( error ); + throw new BeanInitializationException( error ); + } Map beans = ((ListableBeanFactory) getBeanFactory()).getBeansOfType( type ); for ( Iterator iterator = beans.entrySet().iterator(); iterator.hasNext(); ) {