Skip to content

Commit 9adb01a

Browse files
committed
added PropertyPlaceholderConfigurer test
1 parent b3b4c7a commit 9adb01a

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

org.springframework.context/src/test/java/org/springframework/context/annotation/configuration/ConfigurationClassProcessingTests.java

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@
2525
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
2626
import org.springframework.beans.factory.annotation.Required;
2727
import org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor;
28+
import org.springframework.beans.factory.annotation.Value;
2829
import org.springframework.beans.factory.config.BeanDefinition;
2930
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
3031
import org.springframework.beans.factory.config.BeanPostProcessor;
3132
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
33+
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
3234
import org.springframework.beans.factory.parsing.BeanDefinitionParsingException;
3335
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
3436
import org.springframework.beans.factory.support.RootBeanDefinition;
@@ -41,6 +43,7 @@
4143
import org.springframework.context.annotation.Scope;
4244
import org.springframework.context.event.ContextRefreshedEvent;
4345
import org.springframework.context.support.GenericApplicationContext;
46+
import org.springframework.core.PriorityOrdered;
4447

4548
/**
4649
* Miscellaneous system tests covering {@link Bean} naming, aliases, scoping and error
@@ -133,15 +136,20 @@ public void configurationWithPrototypeScopedBeans() {
133136

134137
@Test
135138
public void configurationWithPostProcessor() {
136-
BeanFactory factory = new AnnotationConfigApplicationContext(ConfigWithPostProcessor.class);
139+
AnnotationConfigApplicationContext factory = new AnnotationConfigApplicationContext();
140+
factory.register(ConfigWithPostProcessor.class);
141+
RootBeanDefinition placeholderConfigurer = new RootBeanDefinition(PropertyPlaceholderConfigurer.class);
142+
placeholderConfigurer.getPropertyValues().add("properties", "myProp=myValue");
143+
factory.registerBeanDefinition("placeholderConfigurer", placeholderConfigurer);
144+
factory.refresh();
137145

138146
TestBean foo = factory.getBean("foo", TestBean.class);
139147
ITestBean bar = factory.getBean("bar", ITestBean.class);
140148
ITestBean baz = factory.getBean("baz", ITestBean.class);
141149

142-
assertEquals("foo-processed", foo.getName());
143-
assertEquals("bar-processed", bar.getName());
144-
assertEquals("baz-processed", baz.getName());
150+
assertEquals("foo-processed-myValue", foo.getName());
151+
assertEquals("bar-processed-myValue", bar.getName());
152+
assertEquals("baz-processed-myValue", baz.getName());
145153

146154
SpousyTestBean listener = factory.getBean("listenerTestBean", SpousyTestBean.class);
147155
assertTrue(listener.refreshed);
@@ -210,10 +218,13 @@ public TestBean baz() {
210218

211219
static class ConfigWithPostProcessor extends ConfigWithPrototypeBean {
212220

221+
@Value("${myProp}")
222+
private String myProp;
223+
213224
@Bean
214-
public BeanPostProcessor beanPostProcessor() {
215-
return new BeanPostProcessor() {
216-
String nameSuffix;
225+
public POBPP beanPostProcessor() {
226+
return new POBPP() {
227+
String nameSuffix = "-processed-" + myProp;
217228
public void setNameSuffix(String nameSuffix) {
218229
this.nameSuffix = nameSuffix;
219230
}
@@ -226,15 +237,18 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) {
226237
public Object postProcessAfterInitialization(Object bean, String beanName) {
227238
return bean;
228239
}
240+
public int getOrder() {
241+
return 0;
242+
}
229243
};
230244
}
231245

232-
@Bean
246+
//@Bean
233247
public BeanFactoryPostProcessor beanFactoryPostProcessor() {
234248
return new BeanFactoryPostProcessor() {
235249
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {
236250
BeanDefinition bd = beanFactory.getBeanDefinition("beanPostProcessor");
237-
bd.getPropertyValues().addPropertyValue("nameSuffix", "-processed");
251+
bd.getPropertyValues().addPropertyValue("nameSuffix", "-processed-" + myProp);
238252
}
239253
};
240254
}
@@ -246,6 +260,10 @@ public ITestBean listenerTestBean() {
246260
}
247261

248262

263+
public interface POBPP extends BeanPostProcessor {
264+
}
265+
266+
249267
private static class SpousyTestBean extends TestBean implements ApplicationListener<ContextRefreshedEvent> {
250268

251269
public boolean refreshed = false;

0 commit comments

Comments
 (0)