add distr

This commit is contained in:
etreshenkov 2022-08-02 16:28:07 +03:00
parent 4727045564
commit dc52048f7f
44 changed files with 181 additions and 102 deletions

View file

@ -4,8 +4,8 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>dbf-export</artifactId>
<name>dbf-export</name>
<artifactId>dbf-exporter</artifactId>
<name>dbf-exporter</name>
<description>DBF exporter for DBF files</description>
<version>SPCEX-1.0.0.0</version>
@ -60,7 +60,7 @@
<archive>
<manifest>
<!--<classpathPrefix>../lib/</classpathPrefix>-->
<mainClass>ru.spcex.clearing.dbf.export.DBFLoaderApplication</mainClass>
<mainClass>ru.spcex.clearing.dbf.exporter.DBFLoaderApplication</mainClass>
</manifest>
</archive>
</configuration>

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.export;
package ru.spcex.clearing.dbf.exporter;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.SpringBootApplication;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.export.config;
package ru.spcex.clearing.dbf.exporter.config;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.springframework.beans.factory.annotation.Qualifier;
@ -7,10 +7,10 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import ru.spcex.clearing.dbf.export.logic.stages.ExportFromDB;
import ru.spcex.clearing.dbf.export.logic.stages.PrepareDBFFiles;
import ru.spcex.clearing.dbf.export.logic.stages.Stage;
import ru.spcex.clearing.dbf.export.properties.AProperties;
import ru.spcex.clearing.dbf.exporter.logic.stages.ExportFromDB;
import ru.spcex.clearing.dbf.exporter.logic.stages.PrepareDBFFiles;
import ru.spcex.clearing.dbf.exporter.logic.stages.Stage;
import ru.spcex.clearing.dbf.exporter.properties.AProperties;
import javax.sql.DataSource;
import java.beans.PropertyVetoException;
@ -18,7 +18,7 @@ import java.util.LinkedList;
import java.util.List;
@Configuration
@ComponentScan(basePackages = {"ru.spcex.clearing.dbf.export"})
@ComponentScan(basePackages = {"ru.spcex.clearing.dbf.exporter"})
public class DBFExportConfig {
private final AProperties properties;
private final ApplicationContext context;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.export.exceptions;
package ru.spcex.clearing.dbf.exporter.exceptions;
public class ConfigException extends RuntimeException {
public ConfigException(String msg) { super(msg); }

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.export.logic.data;
package ru.spcex.clearing.dbf.exporter.logic.data;
/**
* Фильтр записей для экспорта

View file

@ -1,6 +1,6 @@
package ru.spcex.clearing.dbf.export.logic.data;
package ru.spcex.clearing.dbf.exporter.logic.data;
import ru.spcex.clearing.dbf.export.logic.data.enums.Table;
import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table;
import java.io.File;
import java.util.Map;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.export.logic.data.enums;
package ru.spcex.clearing.dbf.exporter.logic.data.enums;
import com.linuxense.javadbf.DBFDataType;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.export.logic.data.enums;
package ru.spcex.clearing.dbf.exporter.logic.data.enums;
public enum StageResult {
OK,

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.export.logic.data.enums;
package ru.spcex.clearing.dbf.exporter.logic.data.enums;
public enum Table {
DF_01("DF-01"),

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.export.logic.stages;
package ru.spcex.clearing.dbf.exporter.logic.stages;
import com.linuxense.javadbf.DBFDataType;
import com.linuxense.javadbf.DBFException;
@ -10,13 +10,13 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.JdbcUtils;
import org.springframework.jdbc.support.MetaDataAccessException;
import org.springframework.stereotype.Component;
import ru.spcex.clearing.dbf.export.exceptions.ConfigException;
import ru.spcex.clearing.dbf.export.logic.data.ISqlFilter;
import ru.spcex.clearing.dbf.export.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.export.logic.data.enums.ColumnType;
import ru.spcex.clearing.dbf.export.logic.data.enums.StageResult;
import ru.spcex.clearing.dbf.export.logic.data.enums.Table;
import ru.spcex.clearing.dbf.export.properties.AProperties;
import ru.spcex.clearing.dbf.exporter.exceptions.ConfigException;
import ru.spcex.clearing.dbf.exporter.logic.data.ISqlFilter;
import ru.spcex.clearing.dbf.exporter.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.exporter.logic.data.enums.ColumnType;
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.properties.AProperties;
import java.io.File;
import java.io.IOException;

View file

@ -1,12 +1,12 @@
package ru.spcex.clearing.dbf.export.logic.stages;
package ru.spcex.clearing.dbf.exporter.logic.stages;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import ru.spcex.clearing.dbf.export.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.export.logic.data.enums.StageResult;
import ru.spcex.clearing.dbf.export.logic.data.enums.Table;
import ru.spcex.clearing.dbf.export.properties.AProperties;
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.properties.AProperties;
import java.io.File;
import java.io.IOException;

View file

@ -1,9 +1,9 @@
package ru.spcex.clearing.dbf.export.logic.stages;
package ru.spcex.clearing.dbf.exporter.logic.stages;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.spcex.clearing.dbf.export.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.export.logic.data.enums.StageResult;
import ru.spcex.clearing.dbf.exporter.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.exporter.logic.data.enums.StageResult;
public abstract class Stage {
protected Logger log = LoggerFactory.getLogger(getClass());

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.export.properties;
package ru.spcex.clearing.dbf.exporter.properties;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;

View file

@ -1,15 +1,15 @@
package ru.spcex.clearing.dbf.export.services;
package ru.spcex.clearing.dbf.exporter.services;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import ru.spcex.clearing.dbf.export.logic.data.ISqlFilter;
import ru.spcex.clearing.dbf.export.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.export.logic.data.enums.StageResult;
import ru.spcex.clearing.dbf.export.logic.data.enums.Table;
import ru.spcex.clearing.dbf.export.logic.stages.Stage;
import ru.spcex.clearing.dbf.export.properties.AProperties;
import ru.spcex.clearing.dbf.exporter.logic.data.ISqlFilter;
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.logic.stages.Stage;
import ru.spcex.clearing.dbf.exporter.properties.AProperties;
import java.util.Arrays;
import java.util.HashMap;

View file

@ -5,8 +5,8 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>dbf-loader</artifactId>
<name>dbf-loader</name>
<artifactId>dbf-importer</artifactId>
<name>dbf-importer</name>
<description>DBF loader for DBF files</description>
<version>SPCEX-1.0.0.0</version>
@ -61,7 +61,7 @@
<archive>
<manifest>
<!--<classpathPrefix>../lib/</classpathPrefix>-->
<mainClass>ru.spcex.clearing.dbf.loader.DBFLoaderApplication</mainClass>
<mainClass>ru.spcex.clearing.dbf.importer.DBFLoaderApplication</mainClass>
</manifest>
</archive>
</configuration>

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.loader;
package ru.spcex.clearing.dbf.importer;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.SpringBootApplication;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.loader.config;
package ru.spcex.clearing.dbf.importer.config;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.springframework.beans.factory.annotation.Qualifier;
@ -7,10 +7,10 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import ru.spcex.clearing.dbf.loader.logic.stages.ImportToDB;
import ru.spcex.clearing.dbf.loader.logic.stages.Stage;
import ru.spcex.clearing.dbf.loader.logic.stages.ValidateFields;
import ru.spcex.clearing.dbf.loader.properties.AProperties;
import ru.spcex.clearing.dbf.importer.logic.stages.ImportToDB;
import ru.spcex.clearing.dbf.importer.logic.stages.Stage;
import ru.spcex.clearing.dbf.importer.logic.stages.ValidateFields;
import ru.spcex.clearing.dbf.importer.properties.AProperties;
import javax.sql.DataSource;
import java.beans.PropertyVetoException;
@ -18,7 +18,7 @@ import java.util.LinkedList;
import java.util.List;
@Configuration
@ComponentScan(basePackages = {"ru.spcex.clearing.dbf.loader"})
@ComponentScan(basePackages = {"ru.spcex.clearing.dbf.importer"})
public class DBFLoaderConfig {
private final AProperties properties;
private final ApplicationContext context;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.loader.exceptions;
package ru.spcex.clearing.dbf.importer.exceptions;
public class ConfigException extends RuntimeException {
public ConfigException(String msg) { super(msg); }

View file

@ -1,6 +1,6 @@
package ru.spcex.clearing.dbf.loader.logic.data;
package ru.spcex.clearing.dbf.importer.logic.data;
import ru.spcex.clearing.dbf.loader.logic.data.enums.ColumnType;
import ru.spcex.clearing.dbf.importer.logic.data.enums.ColumnType;
public class ColumnStructureDBF {
private String name;

View file

@ -1,6 +1,6 @@
package ru.spcex.clearing.dbf.loader.logic.data;
package ru.spcex.clearing.dbf.importer.logic.data;
import ru.spcex.clearing.dbf.loader.logic.data.enums.Table;
import ru.spcex.clearing.dbf.importer.logic.data.enums.Table;
import java.util.HashMap;
import java.util.Map;

View file

@ -1,6 +1,6 @@
package ru.spcex.clearing.dbf.loader.logic.data;
package ru.spcex.clearing.dbf.importer.logic.data;
import ru.spcex.clearing.dbf.loader.logic.data.enums.Table;
import ru.spcex.clearing.dbf.importer.logic.data.enums.Table;
/**
* Контейнер для передачи результата между стадиями

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.loader.logic.data;
package ru.spcex.clearing.dbf.importer.logic.data;
import java.util.HashMap;
import java.util.Map;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.loader.logic.data.enums;
package ru.spcex.clearing.dbf.importer.logic.data.enums;
import com.linuxense.javadbf.DBFDataType;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.loader.logic.data.enums;
package ru.spcex.clearing.dbf.importer.logic.data.enums;
public enum StageResult {
OK,

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.loader.logic.data.enums;
package ru.spcex.clearing.dbf.importer.logic.data.enums;
public enum Table {
DF_01("DF-01"),

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.loader.logic.stages;
package ru.spcex.clearing.dbf.importer.logic.stages;
import com.linuxense.javadbf.DBFField;
import com.linuxense.javadbf.DBFReader;
@ -6,11 +6,11 @@ import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.spcex.clearing.dbf.loader.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.loader.logic.data.enums.ColumnType;
import ru.spcex.clearing.dbf.loader.logic.data.enums.StageResult;
import ru.spcex.clearing.dbf.loader.logic.data.enums.Table;
import ru.spcex.clearing.dbf.loader.properties.AProperties;
import ru.spcex.clearing.dbf.importer.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.importer.logic.data.enums.ColumnType;
import ru.spcex.clearing.dbf.importer.logic.data.enums.StageResult;
import ru.spcex.clearing.dbf.importer.logic.data.enums.Table;
import ru.spcex.clearing.dbf.importer.properties.AProperties;
import java.io.ByteArrayInputStream;
import java.io.IOException;

View file

@ -1,9 +1,9 @@
package ru.spcex.clearing.dbf.loader.logic.stages;
package ru.spcex.clearing.dbf.importer.logic.stages;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.spcex.clearing.dbf.loader.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.loader.logic.data.enums.StageResult;
import ru.spcex.clearing.dbf.importer.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.importer.logic.data.enums.StageResult;
public abstract class Stage {
protected Logger log = LoggerFactory.getLogger(getClass());

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.loader.logic.stages;
package ru.spcex.clearing.dbf.importer.logic.stages;
import com.linuxense.javadbf.DBFDataType;
import com.linuxense.javadbf.DBFField;
@ -9,15 +9,15 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.JdbcUtils;
import org.springframework.jdbc.support.MetaDataAccessException;
import org.springframework.stereotype.Component;
import ru.spcex.clearing.dbf.loader.exceptions.ConfigException;
import ru.spcex.clearing.dbf.loader.logic.data.ColumnStructureDBF;
import ru.spcex.clearing.dbf.loader.logic.data.DBStructureDBF;
import ru.spcex.clearing.dbf.loader.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.loader.logic.data.TableStructureDBF;
import ru.spcex.clearing.dbf.loader.logic.data.enums.ColumnType;
import ru.spcex.clearing.dbf.loader.logic.data.enums.StageResult;
import ru.spcex.clearing.dbf.loader.logic.data.enums.Table;
import ru.spcex.clearing.dbf.loader.properties.AProperties;
import ru.spcex.clearing.dbf.importer.exceptions.ConfigException;
import ru.spcex.clearing.dbf.importer.logic.data.ColumnStructureDBF;
import ru.spcex.clearing.dbf.importer.logic.data.DBStructureDBF;
import ru.spcex.clearing.dbf.importer.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.importer.logic.data.TableStructureDBF;
import ru.spcex.clearing.dbf.importer.logic.data.enums.ColumnType;
import ru.spcex.clearing.dbf.importer.logic.data.enums.StageResult;
import ru.spcex.clearing.dbf.importer.logic.data.enums.Table;
import ru.spcex.clearing.dbf.importer.properties.AProperties;
import java.io.ByteArrayInputStream;
import java.io.IOException;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.loader.properties;
package ru.spcex.clearing.dbf.importer.properties;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;

View file

@ -1,13 +1,13 @@
package ru.spcex.clearing.dbf.loader.services;
package ru.spcex.clearing.dbf.importer.services;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import ru.spcex.clearing.dbf.loader.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.loader.logic.data.enums.StageResult;
import ru.spcex.clearing.dbf.loader.logic.stages.Stage;
import ru.spcex.clearing.dbf.loader.properties.AProperties;
import ru.spcex.clearing.dbf.importer.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.importer.logic.data.enums.StageResult;
import ru.spcex.clearing.dbf.importer.logic.stages.Stage;
import ru.spcex.clearing.dbf.importer.properties.AProperties;
import java.util.Arrays;
import java.util.List;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.dbf.loader.services;
package ru.spcex.clearing.dbf.importer.services;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -6,9 +6,9 @@ import org.springframework.beans.factory.InitializingBean;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import ru.spcex.clearing.dbf.loader.exceptions.ConfigException;
import ru.spcex.clearing.dbf.loader.logic.data.enums.Table;
import ru.spcex.clearing.dbf.loader.properties.AProperties;
import ru.spcex.clearing.dbf.importer.exceptions.ConfigException;
import ru.spcex.clearing.dbf.importer.logic.data.enums.Table;
import ru.spcex.clearing.dbf.importer.properties.AProperties;
import java.io.File;
import java.io.IOException;

View file

@ -1,8 +1,8 @@
package ru.spcex.clearing.dbf.loader.services;
package ru.spcex.clearing.dbf.importer.services;
import org.springframework.stereotype.Service;
import ru.spcex.clearing.dbf.loader.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.loader.logic.data.enums.Table;
import ru.spcex.clearing.dbf.importer.logic.data.ResultContainer;
import ru.spcex.clearing.dbf.importer.logic.data.enums.Table;
import java.util.LinkedList;
import java.util.List;

View file

@ -21,8 +21,8 @@
<module>backend-api</module>
<module>storage</module>
<module>db-scripts</module>
<module>dbf-loader</module>
<module>dbf-export</module>
<module>dbf-importer</module>
<module>dbf-exporter</module>
</modules>
<properties>

View file

@ -30,14 +30,10 @@ RUN set -eux; \
tar -xf /tmp/bellsoft-jdk.tar.gz --strip-components=1; \
rm -rf /tmp/bellsoft-jdk.tar.gz;
RUN /opt/java/bellsoft-jdk/bin/java --version
ENV JAVA_HOME=/opt/java/bellsoft-jdk/ \
PATH="/opt/java/bellsoft-jdk/bin:$PATH"
RUN java --version
#
ADD backend-api.jar /deployments/backend-api.jar
USER root
RUN mkdir ./logs
ENV JAVA_APP_JAR=backend-api.jar
ENTRYPOINT java -jar /deployments/backend-api.jar

View file

@ -0,0 +1,2 @@
docker build -t backend-api ../backend-api/
docker run -p 8090:8080 backend-api:latest

View file

@ -0,0 +1,2 @@
docker build -t dbf-exporter ../dbf-exporter/
docker run -p 8090:8080 dbf-exporter:latest

View file

@ -0,0 +1,2 @@
docker build -t dbf-importer ../dbf-importer/
docker run -p 8090:8080 dbf-importer:latest

View file

@ -0,0 +1,39 @@
FROM debian:stable-20220125
###############################################################################################################################################
# Global system deps
###############################################################################################################################################
RUN apt update \
&& apt install apt-file -y \
&& apt upgrade -y
RUN apt install -y \
wget \
tzdata \
curl \
ca-certificates
###############################################################################################################################################
# Java
###############################################################################################################################################
ENV JAVA_VERSION jdk17.0.4+8
RUN set -eux; \
ESUM='637a742591f75447eaab1f23942db038d411686f'; \
BINARY_URL='https://download.bell-sw.com/java/17.0.4+8/bellsoft-jdk17.0.4+8-linux-amd64.tar.gz'; \
curl -LfsSo /tmp/bellsoft-jdk.tar.gz ${BINARY_URL}; \
mkdir -p /opt/java/bellsoft-jdk; \
cd /opt/java/bellsoft-jdk; \
tar -xf /tmp/bellsoft-jdk.tar.gz --strip-components=1; \
rm -rf /tmp/bellsoft-jdk.tar.gz;
ENV JAVA_HOME=/opt/java/bellsoft-jdk/ \
PATH="/opt/java/bellsoft-jdk/bin:$PATH"
#
ADD dbf-exporter.jar /deployments/dbf-exporter.jar
USER root
RUN mkdir ./logs
ENTRYPOINT java -jar /deployments/dbf-exporter.jar

View file

@ -0,0 +1,39 @@
FROM debian:stable-20220125
###############################################################################################################################################
# Global system deps
###############################################################################################################################################
RUN apt update \
&& apt install apt-file -y \
&& apt upgrade -y
RUN apt install -y \
wget \
tzdata \
curl \
ca-certificates
###############################################################################################################################################
# Java
###############################################################################################################################################
ENV JAVA_VERSION jdk17.0.4+8
RUN set -eux; \
ESUM='637a742591f75447eaab1f23942db038d411686f'; \
BINARY_URL='https://download.bell-sw.com/java/17.0.4+8/bellsoft-jdk17.0.4+8-linux-amd64.tar.gz'; \
curl -LfsSo /tmp/bellsoft-jdk.tar.gz ${BINARY_URL}; \
mkdir -p /opt/java/bellsoft-jdk; \
cd /opt/java/bellsoft-jdk; \
tar -xf /tmp/bellsoft-jdk.tar.gz --strip-components=1; \
rm -rf /tmp/bellsoft-jdk.tar.gz;
ENV JAVA_HOME=/opt/java/bellsoft-jdk/ \
PATH="/opt/java/bellsoft-jdk/bin:$PATH"
#
ADD dbf-importer.jar /deployments/dbf-importer.jar
USER root
RUN mkdir ./logs
ENTRYPOINT java -jar /deployments/dbf-importer.jar

View file

@ -1 +0,0 @@
docker build -t backend-api ../backend-api/