diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/LimExportApplication.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/LimExportApplication.java index f2d29d17a..8e4e8b3a5 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/LimExportApplication.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/LimExportApplication.java @@ -11,7 +11,7 @@ public class LimExportApplication { SpringApplicationBuilder builder = new SpringApplicationBuilder(LimExportApplication.class); builder.run(args); } catch (Throwable e) { - LoggerFactory.getLogger(LimExportApplication.class).error("DBF-Loader start failed: {} -> {}", e.getClass().getSimpleName(), e.getMessage()); + LoggerFactory.getLogger(LimExportApplication.class).error("Lim-exporter start failed: {} -> {}", e.getClass().getSimpleName(), e.getMessage()); System.exit(-1); } } diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/ImdgConfig.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/ImdgConfig.java index 34ed1dcd9..cbe4d9c27 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/ImdgConfig.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/ImdgConfig.java @@ -1,6 +1,5 @@ package ru.spcex.clearing.lim.exporter.config; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -32,8 +31,7 @@ public class ImdgConfig { return createThreadPoolTaskExecutor(1, false); } - @Autowired - @Bean + @Bean("imdgProvider") public ImdgProvider imdgProvider( @Qualifier("taskExecutorHazelcastClientInitializer") ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer, @Qualifier("taskExecutorIdGeneratorAwaiter") ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter, diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimExporterConfig.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimExporterConfig.java index b81b8820f..e39a14163 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimExporterConfig.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimExporterConfig.java @@ -1,63 +1,11 @@ package ru.spcex.clearing.lim.exporter.config; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; -import ru.spcex.clearing.lim.exporter.config.settings.ExportLimServiceSettings; -import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; @Configuration @EnableConfigurationProperties @ComponentScan(basePackages = {"ru.spcex.clearing.lim.exporter"}) public class LimExporterConfig { - - @Bean("taskExecutorHazelcastClientInitializer") - public ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer() { - return createThreadPoolTaskExecutor(1, true); - } - - @Bean("taskExecutorIdGeneratorAwaiter") - public ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter() { - return createThreadPoolTaskExecutor(1, false); - } - - @Bean("imdgProvider") - public ImdgProvider imdgProvider(@Qualifier("taskExecutorHazelcastClientInitializer") ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer, - @Qualifier("taskExecutorIdGeneratorAwaiter") ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter, - ExportLimServiceSettings settings) { - HazelcastClientParams params = new HazelcastClientParams(); - params.setClusterMembers(settings.getHazelcast().getClusterMembers()); - params.setLogin(settings.getHazelcast().getLogin()); - params.setPassword(settings.getHazelcast().getPassword()); - return new HazelcastService(taskExecutorHazelcastClientInitializer, taskExecutorIdGeneratorAwaiter, params); - } - - @Bean("executor") - public ThreadPoolTaskExecutor executor(ExportLimServiceSettings settings) { - ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); - executor.setMaxPoolSize(settings.getCommon().getThreadsCount()); - executor.setCorePoolSize(settings.getCommon().getThreadsCount()); - executor.setThreadNamePrefix("dbf-exporter"); - executor.setWaitForTasksToCompleteOnShutdown(true); - executor.setAwaitTerminationSeconds(300); - executor.initialize(); - return executor; - } - - private static ThreadPoolTaskExecutor createThreadPoolTaskExecutor(int maxPoolSz, boolean waitForCompletion) { - ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor(); - if (maxPoolSz > 2) { - pool.setKeepAliveSeconds(60); - pool.setAllowCoreThreadTimeOut(true); - } - pool.setCorePoolSize(maxPoolSz); - pool.setWaitForTasksToCompleteOnShutdown(waitForCompletion); - return pool; - } - } diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/SFTPConfig.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/SFTPConfig.java index c6f9c1670..8880c5cf9 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/SFTPConfig.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/SFTPConfig.java @@ -7,10 +7,12 @@ import org.springframework.expression.common.LiteralExpression; import org.springframework.integration.annotation.Gateway; import org.springframework.integration.annotation.MessagingGateway; import org.springframework.integration.annotation.ServiceActivator; +import org.springframework.integration.channel.DirectChannel; import org.springframework.integration.file.remote.session.CachingSessionFactory; import org.springframework.integration.file.remote.session.SessionFactory; import org.springframework.integration.sftp.outbound.SftpMessageHandler; import org.springframework.integration.sftp.session.DefaultSftpSessionFactory; +import org.springframework.messaging.MessageChannel; import org.springframework.messaging.MessageHandler; import ru.spcex.clearing.lim.exporter.config.settings.ExportLimServiceSettings; @@ -40,7 +42,7 @@ public class SFTPConfig { if (message.getPayload() instanceof File) { return ((File) message.getPayload()).getName(); }else { - throw new IllegalArgumentException("File expected as payload."); + throw new IllegalArgumentException("File must expected as payload."); } }); return handler; @@ -51,4 +53,11 @@ public class SFTPConfig { @Gateway(requestChannel = "toSftpChannel") void sendToSftp(File file); } + + @Bean + public MessageChannel toSftpChannel(SessionFactory sessionFactory, ExportLimServiceSettings settings) { + DirectChannel dc = new DirectChannel(); + dc.subscribe(handler(sessionFactory, settings)); + return dc; + } }