package fr.openwide.core.test.spring.notification.spring.config;

import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

import fr.openwide.core.spring.config.CoreConfigurer;
import fr.openwide.core.spring.config.CorePropertyPlaceholderConfigurer;
import fr.openwide.core.spring.config.spring.annotation.ApplicationConfigurerBeanFactoryPostProcessor;
import fr.openwide.core.spring.config.spring.annotation.ApplicationDescription;
import fr.openwide.core.spring.config.spring.annotation.ConfigurationLocations;

@Configuration
@ApplicationDescription(name = "TestNotification")
@ConfigurationLocations(locations = {"classpath:notification-test.properties", "classpath:notification-test-${user}.properties"})
@Import({ NotificationTestConfig.class })
public class TestConfig {

	@Bean(name = { "configurer" })
	public static CoreConfigurer configurer() {
		return new CoreConfigurer();
	}

	@Bean
	public static ApplicationConfigurerBeanFactoryPostProcessor applicationConfigurer() {
		return new ApplicationConfigurerBeanFactoryPostProcessor();
	}
	
	@Bean
	public static CorePropertyPlaceholderConfigurer environment(ConfigurableApplicationContext context) {
		return new CorePropertyPlaceholderConfigurer();
	}

}

@@ -683,16 +683,433 @@
 cations;
+%0Aimport fr.openwide.core.spring.property.dao.IImmutablePropertyDao;%0Aimport fr.openwide.core.spring.property.dao.IMutablePropertyDao;%0Aimport fr.openwide.core.spring.property.dao.ImmutablePropertyDaoImpl;%0Aimport fr.openwide.core.spring.property.dao.StubMutablePropertyDao;%0Aimport fr.openwide.core.spring.property.service.IConfigurablePropertyService;%0Aimport fr.openwide.core.spring.property.service.PropertyServiceImpl;
 %0A%0A@Confi
@@ -1403,31 +1403,24 @@
  %7D)%0A%09public 
-static 
 CoreConfigur
@@ -1471,16 +1471,17 @@
 r();%0A%09%7D%0A
+%09
 %0A%09@Bean%0A
@@ -1499,55 +1499,67 @@
 tic 
-ApplicationConfigurerBeanFactoryPostProcessor a
+CorePropertyPlaceholderConfigurer environment(ConfigurableA
 ppli
@@ -1567,24 +1567,28 @@
 ationCon
-figurer(
+text context
 ) %7B%0A%09%09re
@@ -1600,61 +1600,150 @@
 new 
-ApplicationConfigurerBeanFactoryPostProcessor
+CorePropertyPlaceholderConfigurer();%0A%09%7D%0A%09%0A%09@Bean%0A%09public IMutablePropertyDao mutablePropertyDao() %7B%0A%09%09return new StubMutablePropertyDao
 ();%0A%09%7D%0A
-%09
 %0A%09@B
@@ -1758,74 +1758,273 @@
 lic 
-static CorePropertyPlaceholderConfigurer environment(ConfigurableA
+IImmutablePropertyDao immutablePropertyDao() %7B%0A%09%09return new ImmutablePropertyDaoImpl();%0A%09%7D%0A%0A%09@Bean%0A%09public IConfigurablePropertyService propertyService() %7B%0A%09%09return new PropertyServiceImpl();%0A%09%7D%0A%0A%09@Bean%0A%09public static ApplicationConfigurerBeanFactoryPostProcessor a
 ppli
@@ -2028,36 +2028,32 @@
 plicationCon
-text context
+figurer(
 ) %7B%0A%09%09return
@@ -2061,47 +2061,59 @@
 new 
-CorePropertyPlaceholderConfigure
+ApplicationConfigurerBeanFactoryPostProcesso
 r();%0A%09%7D%0A
 %0A%7D%0A
@@ -2109,11 +2109,12 @@
 r();%0A%09%7D%0A
+%09
 %0A%7D%0A

Add more Spring beans for dependency resolution