You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

149 lines
4.0 KiB

package com.bsmlab.dfx.agent.config;
import lombok.Data;
import java.util.List;
import java.util.Map;
@Data
public class AgentConfigDto {
private String description;
private String myHostId;
private String myHostName;
private int myListenPort;
private boolean sslEnabled;
private String keyStorePath;
private String keyStorePassword;
private String keyStoreAlias;
private String trustStorePath;
private String trustStorePassword;
private List<KnownAgent> knownAgentList;
private StatusChecker statusChecker;
private List<DataSourceConfig> dataSourceConfig;
private List<String> sqlMapperLocations;
private DropBoxConfig dropBoxConfig;
private PostmanConfig postmanConfig;
private LoggingConfig logging;
// ============================ INNER CLASSES ============================
@Data
public static class KnownAgent {
private String hostId;
private String hostName;
private int listenPort;
private boolean sslEnabled;
private List<String> dropBoxIdList;
private List<String> routingHostIdList;
}
@Data
public static class StatusChecker {
private String cron;
private String consoleHostName;
private int consoleListenPort;
private boolean consoleSslEnabled;
}
@Data
public static class DataSourceConfig {
private String dataSourceId;
private String driverClassName;
private String url;
private String username;
private String password;
private int initialSize;
private int minIdle;
private int maxIdle;
private int maxTotal;
private int maximumRowForTransaction;
}
@Data
public static class DropBoxConfig {
private String sentMessageStorageRoot;
private String receivedMessageStorageRoot;
private String processedMessageStorageRoot;
private String failureMessageStorageRoot;
private String manualMessageStorageRoot;
private List<DropBox> dropBoxList;
private int threadPoolSize;
private int retentionDaysOfProcessedMessage;
}
@Data
public static class DropBox {
private String dropBoxId;
private TaskType taskType;
private String dataSourceId;
private String sqlId;
private String saveDirectoryRoot;
private String description;
}
@Data
public static class PostmanConfig {
private int threadPoolSize;
private List<Postman> postmanList;
}
@Data
public static class Postman {
private String postmanId;
private TaskType taskType;
private PostmanAction action;
private PostmanMessage message;
private String recipientHostId;
private String recipientDropBoxId;
private String description;
}
@Data
public static class PostmanAction {
private ActionType type;
private String command;
private List<String> parametersKeyList;
private String cron;
}
@Data
public static class PostmanMessage {
private MessageType messageType;
private String dataSourceId;
private String sqlId;
private String watchDirectory;
private String metaDataDataSourceId;
private String metaDataSqlId;
private String metaDropBoxId;
private String postProcessingSqlId;
}
public static enum ActionType {
TRIGGER,
SCHEDULED
}
public static enum MessageType {
TRANSFER_DB_TO_DB,
TRANSFER_FILE;
}
public static enum TaskType {
DB_READ_THEN_SEND,
FILE_READ_THEN_SEND,
RECEIVE_DB_TO_DB_SAVE,
RECEIVE_FILE
}
@Data
public static class LoggingConfig {
private String logDirectory;
private String logFileName;
private String logName;
private int maxHistory;
private String logPattern;
private String rootLogLevel;
private List<Map<String, String>> packages;
}
}