mock sftp config for active.profile=test
This commit is contained in:
parent
b2015a9aa4
commit
6a4a7ec4e7
10 changed files with 172 additions and 52 deletions
|
|
@ -1,19 +1,23 @@
|
||||||
package ru.spcex.clearing.dbf.exporter.config;
|
package ru.spcex.clearing.dbf.exporter.config;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.List;
|
||||||
import com.jcraft.jsch.ChannelSftp;
|
import com.jcraft.jsch.ChannelSftp;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Profile;
|
||||||
import org.springframework.expression.ExpressionParser;
|
import org.springframework.expression.ExpressionParser;
|
||||||
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||||
import org.springframework.integration.annotation.Gateway;
|
import org.springframework.integration.annotation.Gateway;
|
||||||
import org.springframework.integration.annotation.MessagingGateway;
|
|
||||||
import org.springframework.integration.annotation.ServiceActivator;
|
import org.springframework.integration.annotation.ServiceActivator;
|
||||||
import org.springframework.integration.channel.DirectChannel;
|
import org.springframework.integration.channel.DirectChannel;
|
||||||
import org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway;
|
import org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway;
|
||||||
|
import static org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway.Command.LS;
|
||||||
import org.springframework.integration.file.remote.session.CachingSessionFactory;
|
import org.springframework.integration.file.remote.session.CachingSessionFactory;
|
||||||
import org.springframework.integration.file.remote.session.SessionFactory;
|
import org.springframework.integration.file.remote.session.SessionFactory;
|
||||||
|
import org.springframework.integration.gateway.AnnotationGatewayProxyFactoryBean;
|
||||||
import org.springframework.integration.sftp.gateway.SftpOutboundGateway;
|
import org.springframework.integration.sftp.gateway.SftpOutboundGateway;
|
||||||
import org.springframework.integration.sftp.outbound.SftpMessageHandler;
|
import org.springframework.integration.sftp.outbound.SftpMessageHandler;
|
||||||
import org.springframework.integration.sftp.session.DefaultSftpSessionFactory;
|
import org.springframework.integration.sftp.session.DefaultSftpSessionFactory;
|
||||||
|
|
@ -24,11 +28,7 @@ import org.springframework.messaging.handler.annotation.Header;
|
||||||
import org.springframework.messaging.handler.annotation.Payload;
|
import org.springframework.messaging.handler.annotation.Payload;
|
||||||
import ru.spcex.clearing.dbf.exporter.config.settings.ExportDBFServiceSettings;
|
import ru.spcex.clearing.dbf.exporter.config.settings.ExportDBFServiceSettings;
|
||||||
|
|
||||||
import java.io.File;
|
@Profile("!test")
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway.Command.LS;
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class SFTPConfig {
|
public class SFTPConfig {
|
||||||
protected Logger log = LoggerFactory.getLogger(getClass());
|
protected Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
@ -60,7 +60,11 @@ public class SFTPConfig {
|
||||||
return handler;
|
return handler;
|
||||||
}
|
}
|
||||||
|
|
||||||
@MessagingGateway
|
// https://stackoverflow.com/questions/53655208/profile-doesnt-work-with-messaging-gateway
|
||||||
|
@Bean("dbfGateway")
|
||||||
|
public AnnotationGatewayProxyFactoryBean dbfGateway() {
|
||||||
|
return new AnnotationGatewayProxyFactoryBean(DbfGateway.class);
|
||||||
|
}
|
||||||
public interface DbfGateway {
|
public interface DbfGateway {
|
||||||
@Gateway(requestChannel = "toSftpChannel")
|
@Gateway(requestChannel = "toSftpChannel")
|
||||||
void sendToSftp(@Payload File file, @Header("path") String path);
|
void sendToSftp(@Payload File file, @Header("path") String path);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
package ru.spcex.clearing.dbf.exporter.config;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Profile;
|
||||||
|
import org.springframework.integration.sftp.session.SftpFileInfo;
|
||||||
|
|
||||||
|
@Profile("test")
|
||||||
|
@Configuration
|
||||||
|
public class SFTPMockConfig {
|
||||||
|
@Bean("dbfGateway")
|
||||||
|
public SFTPConfig.DbfGateway dbfGateway(){
|
||||||
|
return new DGateway();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class DGateway implements SFTPConfig.DbfGateway{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendToSftp(File file, String path) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SftpFileInfo> listFiles(String dir) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,17 @@
|
||||||
package ru.spcex.clearing.dbf.exporter.logic.stages;
|
package ru.spcex.clearing.dbf.exporter.logic.stages;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.function.Supplier;
|
||||||
import com.linuxense.javadbf.DBFWriter;
|
import com.linuxense.javadbf.DBFWriter;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.spcex.clearing.dbf.exporter.config.SFTPConfig;
|
import ru.spcex.clearing.dbf.exporter.config.SFTPConfig;
|
||||||
import ru.spcex.clearing.dbf.exporter.config.settings.ExportDBFServiceSettings;
|
import ru.spcex.clearing.dbf.exporter.config.settings.ExportDBFServiceSettings;
|
||||||
|
|
@ -10,6 +20,8 @@ import ru.spcex.clearing.dbf.exporter.logic.data.ResultContainer;
|
||||||
import ru.spcex.clearing.dbf.exporter.logic.data.enums.StageResult;
|
import ru.spcex.clearing.dbf.exporter.logic.data.enums.StageResult;
|
||||||
import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table;
|
import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table;
|
||||||
import ru.spcex.clearing.dbf.exporter.services.converters.DFConverter;
|
import ru.spcex.clearing.dbf.exporter.services.converters.DFConverter;
|
||||||
|
import static ru.spcex.clearing.dbf.exporter.services.converters.DFConverter.ruCurrency;
|
||||||
|
import static ru.spcex.clearing.platform.messaging.domain.Consts.PAIR_SDF;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.PairSdfRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.PairSdfRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.serialization.LogFormatter;
|
import ru.spcex.clearing.platform.messaging.serialization.LogFormatter;
|
||||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||||
|
|
@ -18,14 +30,6 @@ import ru.spcex.platform.enumeration.CurrencyCode;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.nio.charset.Charset;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
import static ru.spcex.clearing.dbf.exporter.services.converters.DFConverter.ruCurrency;
|
|
||||||
import static ru.spcex.clearing.platform.messaging.domain.Consts.PAIR_SDF;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Выгрузка данных из мапы hazelcast и их запись в файлы
|
* Выгрузка данных из мапы hazelcast и их запись в файлы
|
||||||
*/
|
*/
|
||||||
|
|
@ -41,7 +45,7 @@ public class ExportFromHazelcast extends Stage implements InitializingBean {
|
||||||
|
|
||||||
public ExportFromHazelcast(ExportDBFServiceSettings settings,
|
public ExportFromHazelcast(ExportDBFServiceSettings settings,
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
SFTPConfig.DbfGateway gateway,
|
@Qualifier("dbfGateway") SFTPConfig.DbfGateway gateway,
|
||||||
List<DFConverter> converters,
|
List<DFConverter> converters,
|
||||||
Supplier<KafkaSender> kafkaSender) {
|
Supplier<KafkaSender> kafkaSender) {
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,17 @@
|
||||||
package ru.spcex.clearing.dbf.exporter.logic.stages;
|
package ru.spcex.clearing.dbf.exporter.logic.stages;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.integration.sftp.session.SftpFileInfo;
|
import org.springframework.integration.sftp.session.SftpFileInfo;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.spcex.clearing.dbf.exporter.config.SFTPConfig;
|
import ru.spcex.clearing.dbf.exporter.config.SFTPConfig;
|
||||||
|
|
@ -10,13 +21,6 @@ import ru.spcex.clearing.dbf.exporter.logic.data.enums.FilenameTemplate;
|
||||||
import ru.spcex.clearing.dbf.exporter.logic.data.enums.StageResult;
|
import ru.spcex.clearing.dbf.exporter.logic.data.enums.StageResult;
|
||||||
import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table;
|
import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Создание DBF файла
|
* Создание DBF файла
|
||||||
*/
|
*/
|
||||||
|
|
@ -27,7 +31,8 @@ public class PrepareDBFFile extends Stage implements InitializingBean {
|
||||||
public static String outDir;
|
public static String outDir;
|
||||||
private final SFTPConfig.DbfGateway gateway;
|
private final SFTPConfig.DbfGateway gateway;
|
||||||
|
|
||||||
public PrepareDBFFile(ExportDBFServiceSettings settings, SFTPConfig.DbfGateway gateway) {
|
public PrepareDBFFile(ExportDBFServiceSettings settings,
|
||||||
|
@Qualifier("dbfGateway") SFTPConfig.DbfGateway gateway) {
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
this.gateway = gateway;
|
this.gateway = gateway;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,29 +1,29 @@
|
||||||
package ru.spcex.clearing.dbf.importer.config;
|
package ru.spcex.clearing.dbf.importer.config;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.List;
|
||||||
import com.jcraft.jsch.ChannelSftp;
|
import com.jcraft.jsch.ChannelSftp;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Profile;
|
||||||
import org.springframework.integration.annotation.Gateway;
|
import org.springframework.integration.annotation.Gateway;
|
||||||
import org.springframework.integration.annotation.MessagingGateway;
|
|
||||||
import org.springframework.integration.annotation.ServiceActivator;
|
import org.springframework.integration.annotation.ServiceActivator;
|
||||||
import org.springframework.integration.channel.DirectChannel;
|
import org.springframework.integration.channel.DirectChannel;
|
||||||
import org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway;
|
import org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway;
|
||||||
|
import static org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway.Command.MGET;
|
||||||
import org.springframework.integration.file.remote.session.CachingSessionFactory;
|
import org.springframework.integration.file.remote.session.CachingSessionFactory;
|
||||||
import org.springframework.integration.file.remote.session.SessionFactory;
|
import org.springframework.integration.file.remote.session.SessionFactory;
|
||||||
|
import org.springframework.integration.gateway.AnnotationGatewayProxyFactoryBean;
|
||||||
import org.springframework.integration.sftp.gateway.SftpOutboundGateway;
|
import org.springframework.integration.sftp.gateway.SftpOutboundGateway;
|
||||||
import org.springframework.integration.sftp.session.DefaultSftpSessionFactory;
|
import org.springframework.integration.sftp.session.DefaultSftpSessionFactory;
|
||||||
import org.springframework.messaging.MessageChannel;
|
import org.springframework.messaging.MessageChannel;
|
||||||
import org.springframework.messaging.MessageHandler;
|
import org.springframework.messaging.MessageHandler;
|
||||||
import ru.spcex.clearing.dbf.importer.config.settings.ImportDBFServiceSettings;
|
import ru.spcex.clearing.dbf.importer.config.settings.ImportDBFServiceSettings;
|
||||||
|
|
||||||
import java.io.File;
|
@Profile("!test")
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway.Command.MGET;
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class SFTPConfig {
|
public class SFTPConfig {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
@ -45,7 +45,12 @@ public class SFTPConfig {
|
||||||
return new CachingSessionFactory<>(factory);
|
return new CachingSessionFactory<>(factory);
|
||||||
}
|
}
|
||||||
|
|
||||||
@MessagingGateway
|
// https://stackoverflow.com/questions/53655208/profile-doesnt-work-with-messaging-gateway
|
||||||
|
@Bean("dbfGateway")
|
||||||
|
public AnnotationGatewayProxyFactoryBean dbfGateway() {
|
||||||
|
return new AnnotationGatewayProxyFactoryBean(DbfGateway.class);
|
||||||
|
}
|
||||||
|
|
||||||
public interface DbfGateway {
|
public interface DbfGateway {
|
||||||
@Gateway(requestChannel = "listSftpChannel")
|
@Gateway(requestChannel = "listSftpChannel")
|
||||||
List<File> listFiles(String dir);
|
List<File> listFiles(String dir);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
package ru.spcex.clearing.dbf.importer.config;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Profile;
|
||||||
|
|
||||||
|
@Profile("test")
|
||||||
|
@Configuration
|
||||||
|
public class SFTPMockConfig {
|
||||||
|
@Bean("dbfGateway")
|
||||||
|
public SFTPConfig.DbfGateway dbfGateway(){
|
||||||
|
return new DGateway();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class DGateway implements SFTPConfig.DbfGateway{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<File> listFiles(String dir) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,21 +1,27 @@
|
||||||
package ru.spcex.clearing.dbf.importer.services;
|
package ru.spcex.clearing.dbf.importer.services;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import ru.spcex.clearing.dbf.importer.config.SFTPConfig;
|
|
||||||
import ru.spcex.clearing.dbf.importer.config.settings.ImportDBFServiceSettings;
|
|
||||||
import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable;
|
|
||||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.spcex.clearing.dbf.importer.config.SFTPConfig;
|
||||||
|
import ru.spcex.clearing.dbf.importer.config.settings.ImportDBFServiceSettings;
|
||||||
|
import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable;
|
||||||
|
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||||
|
|
||||||
@Service("fileChecker")
|
@Service("fileChecker")
|
||||||
public class FileChecker {
|
public class FileChecker {
|
||||||
|
|
@ -23,7 +29,7 @@ public class FileChecker {
|
||||||
private final Logger log = LoggerFactory.getLogger(this.getClass());
|
private final Logger log = LoggerFactory.getLogger(this.getClass());
|
||||||
private final SFTPConfig.DbfGateway gateway;
|
private final SFTPConfig.DbfGateway gateway;
|
||||||
|
|
||||||
public FileChecker(SFTPConfig.DbfGateway gateway,
|
public FileChecker(@Qualifier("dbfGateway") SFTPConfig.DbfGateway gateway,
|
||||||
ImportDBFServiceSettings settings) {
|
ImportDBFServiceSettings settings) {
|
||||||
this.gateway = gateway;
|
this.gateway = gateway;
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package ru.spcex.clearing.swt.exporter.config;
|
package ru.spcex.clearing.swt.exporter.config;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.List;
|
||||||
import com.jcraft.jsch.ChannelSftp;
|
import com.jcraft.jsch.ChannelSftp;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
@ -7,15 +9,17 @@ import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Profile;
|
||||||
import org.springframework.expression.common.LiteralExpression;
|
import org.springframework.expression.common.LiteralExpression;
|
||||||
import org.springframework.integration.annotation.Gateway;
|
import org.springframework.integration.annotation.Gateway;
|
||||||
import org.springframework.integration.annotation.MessagingGateway;
|
|
||||||
import org.springframework.integration.annotation.ServiceActivator;
|
import org.springframework.integration.annotation.ServiceActivator;
|
||||||
import org.springframework.integration.channel.DirectChannel;
|
import org.springframework.integration.channel.DirectChannel;
|
||||||
import org.springframework.integration.dsl.IntegrationFlow;
|
import org.springframework.integration.dsl.IntegrationFlow;
|
||||||
import org.springframework.integration.dsl.IntegrationFlows;
|
import org.springframework.integration.dsl.IntegrationFlows;
|
||||||
|
import static org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway.Command.LS;
|
||||||
import org.springframework.integration.file.remote.session.CachingSessionFactory;
|
import org.springframework.integration.file.remote.session.CachingSessionFactory;
|
||||||
import org.springframework.integration.file.remote.session.SessionFactory;
|
import org.springframework.integration.file.remote.session.SessionFactory;
|
||||||
|
import org.springframework.integration.gateway.AnnotationGatewayProxyFactoryBean;
|
||||||
import org.springframework.integration.sftp.gateway.SftpOutboundGateway;
|
import org.springframework.integration.sftp.gateway.SftpOutboundGateway;
|
||||||
import org.springframework.integration.sftp.outbound.SftpMessageHandler;
|
import org.springframework.integration.sftp.outbound.SftpMessageHandler;
|
||||||
import org.springframework.integration.sftp.session.DefaultSftpSessionFactory;
|
import org.springframework.integration.sftp.session.DefaultSftpSessionFactory;
|
||||||
|
|
@ -24,11 +28,7 @@ import org.springframework.messaging.MessageChannel;
|
||||||
import org.springframework.messaging.MessageHandler;
|
import org.springframework.messaging.MessageHandler;
|
||||||
import ru.spcex.clearing.swt.exporter.config.settings.ExportSwtServiceSettings;
|
import ru.spcex.clearing.swt.exporter.config.settings.ExportSwtServiceSettings;
|
||||||
|
|
||||||
import java.io.File;
|
@Profile("!test")
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway.Command.LS;
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@ConditionalOnProperty(value="export-swt-service.sftp-out.sftp-out-dir")
|
@ConditionalOnProperty(value="export-swt-service.sftp-out.sftp-out-dir")
|
||||||
public class SFTPConfig {
|
public class SFTPConfig {
|
||||||
|
|
@ -95,7 +95,12 @@ public class SFTPConfig {
|
||||||
.get();
|
.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@MessagingGateway(name = "notificationsSftpGateway")
|
// https://stackoverflow.com/questions/53655208/profile-doesnt-work-with-messaging-gateway
|
||||||
|
@Bean("notificationsSftpGateway")
|
||||||
|
public AnnotationGatewayProxyFactoryBean dbfGateway() {
|
||||||
|
return new AnnotationGatewayProxyFactoryBean(SftpGateway.class);
|
||||||
|
}
|
||||||
|
|
||||||
public interface SftpGateway {
|
public interface SftpGateway {
|
||||||
@Gateway(requestChannel = "toSftpChannel")
|
@Gateway(requestChannel = "toSftpChannel")
|
||||||
void sendToSftp(File file);
|
void sendToSftp(File file);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
package ru.spcex.clearing.swt.exporter.config;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Profile;
|
||||||
|
import org.springframework.integration.sftp.session.SftpFileInfo;
|
||||||
|
|
||||||
|
@Profile("test")
|
||||||
|
@Configuration
|
||||||
|
public class SFTPMockConfig {
|
||||||
|
@Bean("notificationsSftpGateway")
|
||||||
|
public SFTPConfig.SftpGateway dbfGateway(){
|
||||||
|
return new SftpGateway();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class SftpGateway implements SFTPConfig.SftpGateway{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendToSftp(File file) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SftpFileInfo> listFiles(String dir) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
package ru.spcex.clearing.swt.importer.config;
|
package ru.spcex.clearing.swt.importer.config;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import com.jcraft.jsch.ChannelSftp;
|
import com.jcraft.jsch.ChannelSftp;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
@ -7,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Profile;
|
||||||
import org.springframework.integration.annotation.InboundChannelAdapter;
|
import org.springframework.integration.annotation.InboundChannelAdapter;
|
||||||
import org.springframework.integration.annotation.ServiceActivator;
|
import org.springframework.integration.annotation.ServiceActivator;
|
||||||
import org.springframework.integration.core.MessageSource;
|
import org.springframework.integration.core.MessageSource;
|
||||||
|
|
@ -21,10 +25,7 @@ import org.springframework.messaging.MessageHandler;
|
||||||
import org.springframework.scheduling.support.PeriodicTrigger;
|
import org.springframework.scheduling.support.PeriodicTrigger;
|
||||||
import ru.spcex.clearing.swt.importer.config.settings.ImportSWTServiceSettings;
|
import ru.spcex.clearing.swt.importer.config.settings.ImportSWTServiceSettings;
|
||||||
|
|
||||||
import java.io.File;
|
@Profile("!test")
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@ConditionalOnProperty(value="import-swt-service.store.sftp-in.sftp-src-dir")
|
@ConditionalOnProperty(value="import-swt-service.store.sftp-in.sftp-src-dir")
|
||||||
public class SFTPConfig {
|
public class SFTPConfig {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue