From 12d6aa232ab6066e885093e4a70a8386fdf9902d Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 12 May 2009 16:13:36 +0000 Subject: [PATCH] added setMetadataReaderFactory method --- .../ConfigurationClassPostProcessor.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/org.springframework.context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java b/org.springframework.context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java index bd93db8671..9fa6a7fefc 100644 --- a/org.springframework.context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java +++ b/org.springframework.context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java @@ -85,6 +85,8 @@ public class ConfigurationClassPostProcessor implements BeanFactoryPostProcessor private MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(); + private boolean setMetadataReaderFactoryCalled = false; + /** * Set the {@link ProblemReporter} to use. @@ -96,9 +98,21 @@ public class ConfigurationClassPostProcessor implements BeanFactoryPostProcessor this.problemReporter = problemReporter; } + /** + * Set the {@link MetadataReaderFactory} to use. + *

Default is a {@link CachingMetadataReaderFactory} for the specified + * {@link #setBeanClassLoader bean class loader}. + */ + public void setMetadataReaderFactory(MetadataReaderFactory metadataReaderFactory) { + this.metadataReaderFactory = metadataReaderFactory; + this.setMetadataReaderFactoryCalled = true; + } + public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; - this.metadataReaderFactory = new CachingMetadataReaderFactory(beanClassLoader); + if (!this.setMetadataReaderFactoryCalled) { + this.metadataReaderFactory = new CachingMetadataReaderFactory(beanClassLoader); + } } public int getOrder() {