package nl.ipo.cds.etl.config;
import java.util.Properties;
import javax.inject.Inject;
import javax.inject.Named;
import nl.ipo.cds.attributemapping.operations.discover.OperationDiscoverer;
import nl.ipo.cds.attributemapping.operations.discover.annotation.AnnotationOperationDiscoverer;
import nl.ipo.cds.etl.attributemapping.AttributeMappingFactory;
import org.springframework.beans.factory.config.PropertiesFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
@Configuration
@ComponentScan (basePackageClasses = nl.ipo.cds.etl.operations.Package.class)
public class AttributeMapping {
@Bean
public OperationDiscoverer operationDiscoverer () {
return new AnnotationOperationDiscoverer ();
}
@Bean
@Inject
public AttributeMappingFactory attributeMappingFactory (final @Named("attributeMappingValidatorMessages") Properties messages) {
return new AttributeMappingFactory (messages);
}
@Configuration
public static class Messages {
@Bean
public PropertiesFactoryBean attributeMappingValidatorMessages () {
final PropertiesFactoryBean properties = new PropertiesFactoryBean ();
properties.setLocation (new ClassPathResource ("nl/ipo/cds/etl/attributemapping/validator.messages"));
return properties;
}
}
}