diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/BeanConfiguration.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/BeanConfiguration.java
index 9a7793082..c219ed4c1 100644
--- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/BeanConfiguration.java
+++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/BeanConfiguration.java
@@ -9,13 +9,13 @@ import ru.spcex.clearing.util.security.UserRoleVerification;
import ru.spcex.platform.enumeration.UserRole;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
-import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
+import ru.spcex.clearing.util.services.IMDGMessageResolver;
@Configuration
public class BeanConfiguration {
@Bean
- public IMessageResolver messageResolver() {
- return new SimpleMessageResolver();
+ public IMessageResolver messageResolver(ImdgProvider imdgProvider) {
+ return new IMDGMessageResolver(imdgProvider);
}
@Bean
diff --git a/clearing-parent/balance-service/pom.xml b/clearing-parent/balance-service/pom.xml
index f4d1145bb..9f1706733 100644
--- a/clearing-parent/balance-service/pom.xml
+++ b/clearing-parent/balance-service/pom.xml
@@ -24,6 +24,10 @@
ru.spcex.platform
platform-imdg-api-hazelcast-impl
+
+ ru.spcex.clearing
+ clearing-validation
+
ru.spcex.clearing
classes
diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/MessagesConfig.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/MessagesConfig.java
index 1b8fea101..19cefe06e 100644
--- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/MessagesConfig.java
+++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/MessagesConfig.java
@@ -1,30 +1,16 @@
package ru.spcex.clearing.balance.config;
-import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.context.support.ResourceBundleMessageSource;
+import ru.spcex.clearing.util.services.IMDGMessageResolver;
+import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
-import ru.spcex.platform.utils.enumeration.SpringPropertiesMessageResolver;
-
-import java.util.Locale;
@Configuration
public class MessagesConfig {
- @Bean("validation-error-messages")
- public ResourceBundleMessageSource messages() {
- ResourceBundleMessageSource source = new ResourceBundleMessageSource();
- source.setBasenames("messages/error");
- source.setUseCodeAsDefaultMessage(true);
- source.setDefaultEncoding("utf8");
- source.setDefaultLocale(Locale.ROOT);
- return source;
- }
@Bean
- public IMessageResolver errorResolver(@Qualifier("validation-error-messages") ResourceBundleMessageSource messageBundle) {
- SpringPropertiesMessageResolver resolver = new SpringPropertiesMessageResolver(messageBundle);
- resolver.setLocale("ru");
- return resolver;
+ public IMessageResolver errorResolver(ImdgProvider imdgProvider) {
+ return new IMDGMessageResolver(imdgProvider);
}
}
diff --git a/clearing-parent/balance-service/src/main/resources/messages/error.properties b/clearing-parent/balance-service/src/main/resources/messages/error.properties
deleted file mode 100644
index 3f2dc2393..000000000
--- a/clearing-parent/balance-service/src/main/resources/messages/error.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-5211=Company not found
-5213=Currency not found
diff --git a/clearing-parent/balance-service/src/main/resources/messages/error_ru.properties b/clearing-parent/balance-service/src/main/resources/messages/error_ru.properties
deleted file mode 100644
index 1820f1d6e..000000000
--- a/clearing-parent/balance-service/src/main/resources/messages/error_ru.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-5211=Компания не найдена
-5213=Валюта не найдена
\ No newline at end of file
diff --git a/clearing-parent/clearing-service/pom.xml b/clearing-parent/clearing-service/pom.xml
index 5728c07ef..fe421bfb5 100644
--- a/clearing-parent/clearing-service/pom.xml
+++ b/clearing-parent/clearing-service/pom.xml
@@ -25,6 +25,10 @@
ru.spcex.platform
platform-imdg-api-hazelcast-impl
+
+ ru.spcex.clearing
+ clearing-validation
+
ru.spcex.clearing
classes
diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/MessageResolverConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/MessageResolverConfig.java
index 6ef39cec8..cf3d8356a 100644
--- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/MessageResolverConfig.java
+++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/MessageResolverConfig.java
@@ -3,12 +3,13 @@ package ru.spcex.clearing.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
-import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
+import ru.spcex.clearing.util.services.IMDGMessageResolver;
+import ru.spcex.platform.imdg.api.ImdgProvider;
@Configuration
public class MessageResolverConfig {
@Bean
- public IMessageResolver messageResolver() {
- return new SimpleMessageResolver();
+ public IMessageResolver messageResolver(ImdgProvider imdgProvider) {
+ return new IMDGMessageResolver(imdgProvider);
}
}
diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java
new file mode 100644
index 000000000..97dfbf8cf
--- /dev/null
+++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java
@@ -0,0 +1,37 @@
+package ru.spcex.clearing.util.services;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import ru.clearing.platform.dictionary.ErrorCodeDictionary;
+import ru.spcex.clearing.imdg.IMDGDistributedNames;
+import ru.spcex.platform.imdg.api.Imdg;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+import ru.spcex.platform.utils.enumeration.EnumMessage;
+import ru.spcex.platform.utils.enumeration.IMessageResolver;
+
+import java.util.Arrays;
+
+/**
+ * Использует ErrorCodeDictionary для расшифровки текста кодов ошибок.
+ */
+public class IMDGMessageResolver implements IMessageResolver {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+ protected final Imdg errorCodeDictionaryIMDG;
+
+ public IMDGMessageResolver(ImdgProvider imdgProvider) {
+ this.errorCodeDictionaryIMDG = imdgProvider.getImdg(IMDGDistributedNames.Map_ErrorCodeDictionary, ErrorCodeDictionary.class);
+ }
+
+ @Override
+ public String resolve(EnumMessage errorMessage) {
+ if (errorMessage == null) return "null";
+
+ ErrorCodeDictionary errorDictionary = errorCodeDictionaryIMDG.getSingleObjectByID(errorMessage.getSubject().getId());
+ if (errorDictionary == null) {
+ log.warn("ERROR_CODE_DICTIONARY not found fo id={}", errorMessage.getSubject().getId());
+ return String.format("(%d) args %s", errorMessage.getSubject().getId(), Arrays.toString(errorMessage.getArgs()));
+ }
+ String textTemplate = errorDictionary.getName();
+ return String.format(textTemplate, errorMessage.getArgs());
+ }
+}
diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java
index d0189af7a..d6248d708 100644
--- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java
+++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java
@@ -10,13 +10,13 @@ import ru.spcex.clearing.util.security.UserRoleVerification;
import ru.spcex.platform.enumeration.UserRole;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
-import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
+import ru.spcex.clearing.util.services.IMDGMessageResolver;
@Configuration
public class BeanConfiguration {
@Bean
- public IMessageResolver messageResolver() {
- return new SimpleMessageResolver();
+ public IMessageResolver messageResolver(ImdgProvider imdgProvider) {
+ return new IMDGMessageResolver(imdgProvider);
}
@Bean
diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/ErrorResolverConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/ErrorResolverConfig.java
index c64e7c10e..f9de0dbfb 100644
--- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/ErrorResolverConfig.java
+++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/ErrorResolverConfig.java
@@ -3,12 +3,13 @@ package ru.spcex.clearing.scheduler.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
-import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
+import ru.spcex.clearing.util.services.IMDGMessageResolver;
+import ru.spcex.platform.imdg.api.ImdgProvider;
@Configuration
public class ErrorResolverConfig {
@Bean
- public IMessageResolver messageResolver() {
- return new SimpleMessageResolver();
+ public IMessageResolver messageResolver(ImdgProvider imdgProvider) {
+ return new IMDGMessageResolver(imdgProvider);
}
}
diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ErrorResolverConfig.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ErrorResolverConfig.java
index 38d1bdd66..327fe9182 100644
--- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ErrorResolverConfig.java
+++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ErrorResolverConfig.java
@@ -3,12 +3,13 @@ package ru.spcex.clearing.securities.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
-import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
+import ru.spcex.clearing.util.services.IMDGMessageResolver;
+import ru.spcex.platform.imdg.api.ImdgProvider;
@Configuration
public class ErrorResolverConfig {
@Bean
- public IMessageResolver messageResolver() {
- return new SimpleMessageResolver();
+ public IMessageResolver messageResolver(ImdgProvider imdgProvider) {
+ return new IMDGMessageResolver(imdgProvider);
}
}
diff --git a/clearing-parent/trade-importer/pom.xml b/clearing-parent/trade-importer/pom.xml
index 7ea41af25..fec21cae1 100644
--- a/clearing-parent/trade-importer/pom.xml
+++ b/clearing-parent/trade-importer/pom.xml
@@ -62,6 +62,10 @@
ru.spcex.platform
platform-imdg-api-hazelcast-impl
+
+ ru.spcex.clearing
+ clearing-validation
+
ru.spcex.platform
platform-enum
diff --git a/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/config/ErrorResolverConfig.java b/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/config/ErrorResolverConfig.java
index 8c838d4ed..12ed6d5dc 100644
--- a/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/config/ErrorResolverConfig.java
+++ b/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/config/ErrorResolverConfig.java
@@ -3,12 +3,13 @@ package ru.spcex.clearing.trade.importer.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
-import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
+import ru.spcex.clearing.util.services.IMDGMessageResolver;
+import ru.spcex.platform.imdg.api.ImdgProvider;
@Configuration
public class ErrorResolverConfig {
@Bean
- public IMessageResolver messageResolver() {
- return new SimpleMessageResolver();
+ public IMessageResolver messageResolver(ImdgProvider imdgProvider) {
+ return new IMDGMessageResolver(imdgProvider);
}
}