add storage module

This commit is contained in:
etreschenkov 2022-07-25 12:14:18 +03:00
parent 7f02c3b484
commit d4475c7dea
101 changed files with 265 additions and 161 deletions

8
.idea/.gitignore generated vendored Normal file
View file

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

22
.idea/compiler.xml generated Normal file
View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="db-scripts" />
<module name="frontendapi" />
<module name="clearing-classes" />
<module name="storage" />
<module name="clearing-dictionary" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="backend-api" target="11" />
<module name="classes" target="11" />
<module name="dictionary" target="11" />
</bytecodeTargetLevel>
</component>
</project>

12
.idea/encodings.xml generated Normal file
View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
<file url="file://$PROJECT_DIR$/clearing-parent/backend-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/clearing-parent/classes/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/clearing-parent/db-scripts/src/main/resources" charset="windows-1251" />
<file url="file://$PROJECT_DIR$/clearing-parent/dictionary/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/clearing-parent/storage/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/clearing-parent/storage/src/main/resources" charset="UTF-8" />
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

25
.idea/jarRepositories.xml generated Normal file
View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="mfd" />
<option name="name" value="mfd" />
<option name="url" value="http://git.mfd.msk:8888/repository/internal/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>

24
.idea/misc.xml generated Normal file
View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AnalysisProjectProfileManager">
<option name="PROJECT_PROFILE" />
<option name="USE_PROJECT_LEVEL_SETTINGS" value="false" />
<list size="0" />
</component>
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$/backend-api" />
<file type="web" url="file://$PROJECT_DIR$/clearing-parent/backend-api" />
</component>
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK" />
<component name="SuppressionsComponent">
<option name="suppComments" value="[]" />
</component>
</project>

10
.idea/runConfigurations.xml generated Normal file
View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
</set>
</option>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View file

@ -1,4 +0,0 @@
#Created by Apache Maven 3.6.3
groupId=ru.spcex.clearing
artifactId=clearing-classes
version=SPCEX-1.0.0.0

View file

@ -1,13 +0,0 @@
ru\clearing\classes\StaticData\Company\CompanyRoleSet.class
ru\clearing\classes\StaticData\Company\CompanySymbols.class
ru\clearing\common\interfaces\WithId.class
ru\clearing\classes\objects\BusinessObject.class
ru\clearing\classes\StaticData\Profile\CompanyInfo.class
ru\clearing\classes\StaticData\Profile\Contact.class
ru\clearing\classes\objects\ObjectBase.class
ru\clearing\classes\ConstSerializable.class
ru\clearing\classes\StaticData\Profile\ProfileDocument.class
ru\clearing\classes\objects\BusinessEvent.class
ru\clearing\classes\StaticData\Company\Company.class
ru\clearing\classes\StaticData\User\ClearingUser.class
ru\clearing\classes\StaticData\Company\CompanyUpdate.class

View file

@ -1,8 +0,0 @@
E:\MFD_GIT_REPO\clearing\clearing-classes\src\main\java\ru\clearing\classes\StaticData\User\ClearingUser.java
E:\MFD_GIT_REPO\clearing\clearing-classes\src\main\java\ru\clearing\classes\objects\ObjectBase.java
E:\MFD_GIT_REPO\clearing\clearing-classes\src\main\java\ru\clearing\classes\ConstSerializable.java
E:\MFD_GIT_REPO\clearing\clearing-classes\src\main\java\ru\clearing\classes\StaticData\Company\Company.java
E:\MFD_GIT_REPO\clearing\clearing-classes\src\main\java\ru\clearing\classes\objects\BusinessEvent.java
E:\MFD_GIT_REPO\clearing\clearing-classes\src\main\java\ru\clearing\classes\objects\BusinessObject.java
E:\MFD_GIT_REPO\clearing\clearing-classes\src\main\java\ru\clearing\classes\StaticData\Company\CompanyRoleSet.java
E:\MFD_GIT_REPO\clearing\clearing-classes\src\main\java\ru\clearing\common\interfaces\WithId.java

View file

@ -1,3 +0,0 @@
1.0.0
------------------------------
-

View file

@ -3,16 +3,17 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>frontendapi</artifactId>
<artifactId>backend-api</artifactId>
<name>Clearing Frontend API</name>
<description>Clearing frontend API module</description>
<packaging>war</packaging>
<parent>
<artifactId>clearing</artifactId>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-1.0.0.0</version>
</parent>
<properties>
@ -25,7 +26,7 @@
</dependency>
</dependencies>
<build>
<finalName>frontendapi</finalName>
<finalName>backend-api</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>

View file

@ -4,14 +4,14 @@
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>clearing-classes</artifactId>
<artifactId>classes</artifactId>
<name>Clearing classes</name>
<description>Clearing classes module</description>
<packaging>jar</packaging>
<parent>
<artifactId>clearing</artifactId>
<groupId>ru.spcex.clearing</groupId>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-1.0.0.0</version>
</parent>
@ -21,14 +21,7 @@
</properties>
<dependencies>
<!-- <dependency>-->
<!-- <groupId>com.moex.platform</groupId>-->
<!-- <artifactId>platform-common</artifactId>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>com.moex.platform</groupId>-->
<!-- <artifactId>platform-errors</artifactId>-->
<!-- </dependency>-->
</dependencies>
<build>

View file

@ -1,9 +1,7 @@
package ru.clearing.classes.StaticData.Company;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.StaticData.Profile.CompanyInfo;
import ru.clearing.classes.objects.BusinessEvent;
import ru.clearing.classes.objects.BusinessObject;
/**
* DB: COMPANY_UPDATE

View file

@ -1,7 +1,6 @@
package ru.clearing.classes.StaticData.Profile;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessObject;
import ru.clearing.classes.objects.ObjectBase;
/**

View file

@ -7,12 +7,11 @@
<artifactId>db-scripts</artifactId>
<name>db-scripts</name>
<description>db-scripts for PostgreSQL</description>
<packaging>jar</packaging>
<version>1.0.0</version>
<version>SPCEX-1.0.0.0</version>
<parent>
<artifactId>clearing</artifactId>
<groupId>ru.spcex.clearing</groupId>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-1.0.0.0</version>
</parent>

View file

@ -4,15 +4,15 @@
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>clearing-dictionary</artifactId>
<name>PLATFORM dictionary</name>
<description>PLATFORM dictionary</description>
<artifactId>dictionary</artifactId>
<name>Clearing dictionary</name>
<description>Clearing dictionary</description>
<packaging>jar</packaging>
<version>SPCEX-1.0.0.0</version>
<parent>
<artifactId>clearing</artifactId>
<groupId>ru.spcex.clearing</groupId>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-1.0.0.0</version>
</parent>

33
clearing-parent/pom.xml Normal file
View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>clearing-parent</artifactId>
<name>_parent_clearing</name>
<description>Clearing parent module</description>
<packaging>pom</packaging>
<version>SPCEX-1.0.0.0</version>
<parent>
<artifactId>clearing</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-1.0.0.0</version>
</parent>
<modules>
<module>dictionary</module>
<module>classes</module>
<module>backend-api</module>
<module>storage</module>
<module>db-scripts</module>
</modules>
<properties>
</properties>
<dependencyManagement>
</dependencyManagement>
</project>

View file

@ -2,14 +2,19 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>clearing</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-1.0.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<modelVersion>4.0.0</modelVersion>
<artifactId>storage</artifactId>
<name>Clearing storage</name>
<description>Clearing storage module</description>
<packaging>jar</packaging>
<version>SPCEX-1.0.0.0</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-1.0.0.0</version>
</parent>
<properties>
<maven.compiler.source>11</maven.compiler.source>
@ -27,13 +32,13 @@
</dependency>
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-classes</artifactId>
<artifactId>classes</artifactId>
<version>SPCEX-1.0.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-dictionary</artifactId>
<artifactId>dictionary</artifactId>
<version>SPCEX-1.0.0.0</version>
<scope>compile</scope>
</dependency>

View file

@ -2,11 +2,7 @@ package ru.spcex.clearing.storage.base;
import org.springframework.jdbc.core.JdbcTemplate;
import ru.clearing.classes.objects.BusinessEvent;
import ru.clearing.classes.objects.BusinessObject;
import ru.spcex.clearing.storage.utils.TimeUtil;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;

View file

@ -1,12 +1,12 @@
package ru.spcex.clearing.storage.base;
import com.hazelcast.core.MapLoader;
import ru.clearing.platform.dictionary.Dictionary;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.dao.support.DataAccessUtils;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import ru.clearing.platform.dictionary.Dictionary;
import java.sql.ResultSet;
import java.sql.SQLException;

View file

@ -3,21 +3,13 @@ package ru.spcex.clearing.storage.base;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.MapLoaderLifecycleSupport;
import com.hazelcast.core.MapStore;
//import com.opencsv.CSVWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.lang.NonNull;
import ru.clearing.classes.objects.ObjectBase;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import java.util.function.Supplier;
/**
* MapStore записывающий изменения в файл

View file

@ -1,6 +1,5 @@
package ru.spcex.clearing.storage.businessevent;
import org.springframework.dao.support.DataAccessUtils;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;

View file

@ -2,7 +2,6 @@ package ru.spcex.clearing.storage.config;
import com.hazelcast.config.*;
import com.hazelcast.core.HazelcastInstance;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.hazelcast.HazelcastInstanceFactory;
import org.springframework.context.annotation.Bean;

View file

@ -1,19 +1,19 @@
package ru.spcex.clearing.storage.error;
public class ModuleInitializeException extends RuntimeException {
public ModuleInitializeException() {
}
public ModuleInitializeException(String message) {
super(message);
}
public ModuleInitializeException(String message, Throwable cause) {
super(message, cause);
}
public ModuleInitializeException(Throwable cause) {
super(cause);
}
}
package ru.spcex.clearing.storage.error;
public class ModuleInitializeException extends RuntimeException {
public ModuleInitializeException() {
}
public ModuleInitializeException(String message) {
super(message);
}
public ModuleInitializeException(String message, Throwable cause) {
super(message, cause);
}
public ModuleInitializeException(Throwable cause) {
super(cause);
}
}

View file

@ -2,7 +2,6 @@ package ru.spcex.clearing.storage.object;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.StaticData.Company.Company;
import ru.clearing.classes.StaticData.Company.CompanyRoleSet;
import ru.spcex.clearing.storage.base.ObjectBaseMapStore;
import ru.spcex.clearing.storage.utils.DbUtilsHelper;

View file

@ -2,7 +2,6 @@ package ru.spcex.clearing.storage.object;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.StaticData.Company.CompanyRoleSet;
import ru.clearing.classes.StaticData.Company.CompanySymbols;
import ru.spcex.clearing.storage.base.ObjectBaseMapStore;
import ru.spcex.clearing.storage.utils.DbUtilsHelper;

View file

@ -1,19 +1,14 @@
package ru.spcex.clearing.storage.services;
import com.hazelcast.aggregation.Aggregators;
import com.hazelcast.config.MapStoreConfig;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.IAtomicLong;
import com.hazelcast.core.IMap;
import com.hazelcast.core.IdGenerator;
import com.hazelcast.projection.Projections;
import com.hazelcast.query.Predicates;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import ru.clearing.classes.objects.BusinessObject;
@ -21,14 +16,11 @@ import ru.spcex.clearing.storage.base.DictionaryMapStore;
import ru.spcex.clearing.storage.base.SimpleObjectMapStore;
import ru.spcex.clearing.storage.utils.IMDGDistributedNames;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public abstract class AbstractHazelcastLifecycleSupport implements InitializingBean, DisposableBean {
/**

View file

@ -2,7 +2,6 @@ package ru.spcex.clearing.storage.utils;
import javax.sql.DataSource;
import java.nio.file.Paths;
public class DbDefaultConfig {
public static DataSource getEmbeddedDatabase(String embeddedFilePath) {

View file

@ -1,30 +1,30 @@
package ru.spcex.clearing.storage.utils;
//fixme перенести в новый модуль IMDGDistributedNames
public final class IMDGDistributedNames {
private IMDGDistributedNames() {
}
public static final String Map_Company = "Map_Company";
public static final String Map_CompanyUpdate = "Map_CompanyUpdate";
public static final String Map_CompanyRoleSet = "Map_CompanyRoleSet";
public static final String Map_CompanySymbols = "Map_CompanySymbols";
// public static final String Map_CompanyInfo = "Map_CompanyInfo"; интегрировано в Map_Company
public static final String Map_Contact = "Map_Contact";
public static final String Map_ProfileDocument = "Map_ProfileDocument";
public static final String Map_AllowedDictionary = "Map_AllowedDictionary";
public static final String Map_ClearingMemberCategoryDictionary = "Map_ClearingMemberCategoryDictionary";
public static final String Map_CompanyRoleDictionary = "Map_CompanyRoleDictionary";
public static final String Map_CompanySymbolDictionary = "Map_CompanySymbolDictionary";
public static final String Map_ContactTypeDictionary = "Map_ContactTypeDictionary";
public static final String Map_CorporationSoleTypeDictionary = "Map_CorporationSoleTypeDictionary";
public static final String Map_CountryCodeDictionary = "Map_CountryCodeDictionary";
public static final String Map_DocumentTypeDictionary = "Map_DocumentTypeDictionary";
public static final String Map_LegalKindDictionary = "Map_LegalKindDictionary";
public static final String Map_OrganizationTypeDictionary = "Map_OrganizationTypeDictionary";
public static final String Map_WorkflowStatusDictionary = "Map_WorkflowStatusDictionary";
public static final String MAP_SEQUENCE_NAME = "MAP_SEQUENCE_NAME"; // todo вынести idGenerator отдельно и завернуть в метод, чтобы не напрямую обращаться.
}
package ru.spcex.clearing.storage.utils;
//fixme перенести в новый модуль IMDGDistributedNames
public final class IMDGDistributedNames {
private IMDGDistributedNames() {
}
public static final String Map_Company = "Map_Company";
public static final String Map_CompanyUpdate = "Map_CompanyUpdate";
public static final String Map_CompanyRoleSet = "Map_CompanyRoleSet";
public static final String Map_CompanySymbols = "Map_CompanySymbols";
// public static final String Map_CompanyInfo = "Map_CompanyInfo"; интегрировано в Map_Company
public static final String Map_Contact = "Map_Contact";
public static final String Map_ProfileDocument = "Map_ProfileDocument";
public static final String Map_AllowedDictionary = "Map_AllowedDictionary";
public static final String Map_ClearingMemberCategoryDictionary = "Map_ClearingMemberCategoryDictionary";
public static final String Map_CompanyRoleDictionary = "Map_CompanyRoleDictionary";
public static final String Map_CompanySymbolDictionary = "Map_CompanySymbolDictionary";
public static final String Map_ContactTypeDictionary = "Map_ContactTypeDictionary";
public static final String Map_CorporationSoleTypeDictionary = "Map_CorporationSoleTypeDictionary";
public static final String Map_CountryCodeDictionary = "Map_CountryCodeDictionary";
public static final String Map_DocumentTypeDictionary = "Map_DocumentTypeDictionary";
public static final String Map_LegalKindDictionary = "Map_LegalKindDictionary";
public static final String Map_OrganizationTypeDictionary = "Map_OrganizationTypeDictionary";
public static final String Map_WorkflowStatusDictionary = "Map_WorkflowStatusDictionary";
public static final String MAP_SEQUENCE_NAME = "MAP_SEQUENCE_NAME"; // todo вынести idGenerator отдельно и завернуть в метод, чтобы не напрямую обращаться.
}

12
db-scripts/.gitignore vendored
View file

@ -1,12 +0,0 @@
*.iml
target
lib
.idea
*.log
temp
otc.logs_IS_UNDEFINED
.gitconfig
dependency-reduced-pom.xml
*/otc-test/src/test/resources/dataForDb/*.sql
**/out
preview

22
platform-parent/pom.xml Normal file
View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>platform-parent</artifactId>
<name>_parent_platform</name>
<description>PLATFORM parent</description>
<packaging>pom</packaging>
<version>1.0.0</version>
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing</artifactId>
<version>SPCEX-1.0.0.0</version>
</parent>
<modules>
</modules>
</project>

Some files were not shown because too many files have changed in this diff Show more