package nl.ipo.cds.admin.config; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.Executor; import javax.inject.Inject; import nl.idgis.commons.jobexecutor.Job; import nl.idgis.commons.jobexecutor.JobLogger; import nl.ipo.cds.admin.ba.attributemapping.FeatureTypeCache; import nl.ipo.cds.admin.ba.controller.DownloadServiceLink; import nl.ipo.cds.admin.ba.controller.DownloadServiceLinkList; import nl.ipo.cds.attributemapping.operations.discover.PropertyBeanIntrospector; import nl.ipo.cds.etl.config.AttributeMapping; import nl.ipo.cds.etl.config.FeatureProcessors; import nl.ipo.cds.etl.config.FileCacheConfiguration; import nl.ipo.cds.etl.config.Filtering; import nl.ipo.cds.etl.config.Harvester; import nl.ipo.cds.etl.config.Messages; import nl.ipo.cds.etl.config.ScriptExecutorConfiguration; import nl.ipo.cds.etl.config.ThemeConfiguration; import nl.ipo.cds.etl.process.HarvesterFactory; import nl.ipo.cds.etl.process.config.Processes; import nl.ipo.cds.etl.theme.ThemeDiscoverer; import nl.ipo.cds.etl.util.BlockingExecutor; import nl.ipo.cds.executor.ConfigDir; import nl.ipo.cds.metadata.config.MetadataManagerConfiguration; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.ImportResource; @Configuration @ImportResource (value = { "classpath:nl/ipo/cds/admin/admin-applicationContext.xml", "classpath:nl/ipo/cds/admin/admin-securityContext.xml", "classpath:nl/ipo/cds/dao/dataSource-applicationContext.xml", "classpath:nl/ipo/cds/dao/dao-applicationContext.xml", "classpath:nl/ipo/cds/dao/metadata/dao-applicationContext.xml", "classpath:nl/ipo/cds/nagios/nagios-status-client.xml", "classpath:nl/ipo/cds/etl/reporting/geom/geometry-applicationContext.xml" }) @Import (value = { AttributeMapping.class, Filtering.class, Harvester.class, ThemeConfiguration.class, FeatureProcessors.class, Processes.class, FileCacheConfiguration.class, Messages.class, ScriptExecutorConfiguration.class, MetadataManagerConfiguration.class }) public class AdminConfig { @Bean public JobLogger stringLogger () { return new JobLogger() { @Override public void logString(Job job, String key, LogLevel logLevel, String message) { } @Override public void logString(Job job, String key, LogLevel logLevel, String message, Map<String, Object> context) { } }; } @Bean public ConfigDir configDir (final @Value("file:${CONFIGDIR}") String configDirPath) { return new ConfigDir (configDirPath); } @Bean public Executor executer (final @Value("${numberOfThreads}") int numberOfThreads) { return new BlockingExecutor (numberOfThreads); } @Bean public DownloadServiceLinkList downloadLinkList (final @Value("${dllink.text}") String[] dlLinkText, final @Value("${dllink.ref}") String[] dlLinkRef) { DownloadServiceLinkList dlLinkList = new DownloadServiceLinkList(); DownloadServiceLink dlLink = null; if (dlLinkText != null && dlLinkRef != null){ int len = Math.min(dlLinkText.length, dlLinkRef.length); for (int i = 0; i < len; i++) { dlLink = new DownloadServiceLink(dlLinkText[i], dlLinkRef[i]); System.out.println("@Link " + dlLink.getText() + " --> " +dlLink.getRef()+ ""); dlLinkList.addLink(dlLink); } } return dlLinkList; } @Bean public PropertyBeanIntrospector propertyBeanIntrospector () { return new PropertyBeanIntrospector (); } @Bean @Inject public FeatureTypeCache featureTypeCache (final HarvesterFactory harvesterFactory, final ThemeDiscoverer themeDiscoverer) { return new FeatureTypeCache (harvesterFactory, themeDiscoverer); } }