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;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import com.jcraft.jsch.ChannelSftp;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
import org.springframework.expression.ExpressionParser;
|
||||
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||
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.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.SessionFactory;
|
||||
import org.springframework.integration.gateway.AnnotationGatewayProxyFactoryBean;
|
||||
import org.springframework.integration.sftp.gateway.SftpOutboundGateway;
|
||||
import org.springframework.integration.sftp.outbound.SftpMessageHandler;
|
||||
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 ru.spcex.clearing.dbf.exporter.config.settings.ExportDBFServiceSettings;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
import static org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway.Command.LS;
|
||||
|
||||
@Profile("!test")
|
||||
@Configuration
|
||||
public class SFTPConfig {
|
||||
protected Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
|
@ -60,7 +60,11 @@ public class SFTPConfig {
|
|||
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 {
|
||||
@Gateway(requestChannel = "toSftpChannel")
|
||||
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;
|
||||
|
||||
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 org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.spcex.clearing.dbf.exporter.config.SFTPConfig;
|
||||
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.Table;
|
||||
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.serialization.LogFormatter;
|
||||
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.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 и их запись в файлы
|
||||
*/
|
||||
|
|
@ -41,7 +45,7 @@ public class ExportFromHazelcast extends Stage implements InitializingBean {
|
|||
|
||||
public ExportFromHazelcast(ExportDBFServiceSettings settings,
|
||||
ImdgProvider imdgProvider,
|
||||
SFTPConfig.DbfGateway gateway,
|
||||
@Qualifier("dbfGateway") SFTPConfig.DbfGateway gateway,
|
||||
List<DFConverter> converters,
|
||||
Supplier<KafkaSender> kafkaSender) {
|
||||
this.settings = settings;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,17 @@
|
|||
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.annotation.Qualifier;
|
||||
import org.springframework.integration.sftp.session.SftpFileInfo;
|
||||
import org.springframework.stereotype.Component;
|
||||
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.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 файла
|
||||
*/
|
||||
|
|
@ -27,7 +31,8 @@ public class PrepareDBFFile extends Stage implements InitializingBean {
|
|||
public static String outDir;
|
||||
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.gateway = gateway;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,29 +1,29 @@
|
|||
package ru.spcex.clearing.dbf.importer.config;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import com.jcraft.jsch.ChannelSftp;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
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.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.SessionFactory;
|
||||
import org.springframework.integration.gateway.AnnotationGatewayProxyFactoryBean;
|
||||
import org.springframework.integration.sftp.gateway.SftpOutboundGateway;
|
||||
import org.springframework.integration.sftp.session.DefaultSftpSessionFactory;
|
||||
import org.springframework.messaging.MessageChannel;
|
||||
import org.springframework.messaging.MessageHandler;
|
||||
import ru.spcex.clearing.dbf.importer.config.settings.ImportDBFServiceSettings;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
import static org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway.Command.MGET;
|
||||
|
||||
@Profile("!test")
|
||||
@Configuration
|
||||
public class SFTPConfig {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
|
@ -45,7 +45,12 @@ public class SFTPConfig {
|
|||
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 {
|
||||
@Gateway(requestChannel = "listSftpChannel")
|
||||
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;
|
||||
|
||||
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.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
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.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")
|
||||
public class FileChecker {
|
||||
|
|
@ -23,7 +29,7 @@ public class FileChecker {
|
|||
private final Logger log = LoggerFactory.getLogger(this.getClass());
|
||||
private final SFTPConfig.DbfGateway gateway;
|
||||
|
||||
public FileChecker(SFTPConfig.DbfGateway gateway,
|
||||
public FileChecker(@Qualifier("dbfGateway") SFTPConfig.DbfGateway gateway,
|
||||
ImportDBFServiceSettings settings) {
|
||||
this.gateway = gateway;
|
||||
this.settings = settings;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package ru.spcex.clearing.swt.exporter.config;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import com.jcraft.jsch.ChannelSftp;
|
||||
import org.slf4j.Logger;
|
||||
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.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
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.dsl.IntegrationFlow;
|
||||
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.SessionFactory;
|
||||
import org.springframework.integration.gateway.AnnotationGatewayProxyFactoryBean;
|
||||
import org.springframework.integration.sftp.gateway.SftpOutboundGateway;
|
||||
import org.springframework.integration.sftp.outbound.SftpMessageHandler;
|
||||
import org.springframework.integration.sftp.session.DefaultSftpSessionFactory;
|
||||
|
|
@ -24,11 +28,7 @@ import org.springframework.messaging.MessageChannel;
|
|||
import org.springframework.messaging.MessageHandler;
|
||||
import ru.spcex.clearing.swt.exporter.config.settings.ExportSwtServiceSettings;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
import static org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway.Command.LS;
|
||||
|
||||
@Profile("!test")
|
||||
@Configuration
|
||||
@ConditionalOnProperty(value="export-swt-service.sftp-out.sftp-out-dir")
|
||||
public class SFTPConfig {
|
||||
|
|
@ -95,7 +95,12 @@ public class SFTPConfig {
|
|||
.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 {
|
||||
@Gateway(requestChannel = "toSftpChannel")
|
||||
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;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Comparator;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import com.jcraft.jsch.ChannelSftp;
|
||||
import org.slf4j.Logger;
|
||||
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.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
import org.springframework.integration.annotation.InboundChannelAdapter;
|
||||
import org.springframework.integration.annotation.ServiceActivator;
|
||||
import org.springframework.integration.core.MessageSource;
|
||||
|
|
@ -21,10 +25,7 @@ import org.springframework.messaging.MessageHandler;
|
|||
import org.springframework.scheduling.support.PeriodicTrigger;
|
||||
import ru.spcex.clearing.swt.importer.config.settings.ImportSWTServiceSettings;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Comparator;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Profile("!test")
|
||||
@Configuration
|
||||
@ConditionalOnProperty(value="import-swt-service.store.sftp-in.sftp-src-dir")
|
||||
public class SFTPConfig {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue