diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/MessagesConfig.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/MessagesConfig.java index 6e2ab3e55..d3bfcb871 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/MessagesConfig.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/MessagesConfig.java @@ -1,8 +1,11 @@ package ru.spcex.clearing.backendapi.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.platform.utils.enumeration.IMessageResolver; +import ru.spcex.platform.utils.enumeration.SpringPropertiesMessageResolver; import java.util.Locale; @@ -17,4 +20,9 @@ public class MessagesConfig { source.setDefaultLocale(Locale.ROOT); return source; } + + @Bean("errorResolver") + public IMessageResolver errorResolver(@Qualifier("validation-error-messages") ResourceBundleMessageSource messageBundle) { + return new SpringPropertiesMessageResolver(messageBundle); + } } diff --git a/platform-parent/platform-utils/pom.xml b/platform-parent/platform-utils/pom.xml index b9e306f5e..0578697fa 100644 --- a/platform-parent/platform-utils/pom.xml +++ b/platform-parent/platform-utils/pom.xml @@ -19,4 +19,12 @@ 17 + + + org.springframework + spring-context + provided + + + \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/errors/ErrorResolver.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/SpringPropertiesMessageResolver.java similarity index 50% rename from clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/errors/ErrorResolver.java rename to platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/SpringPropertiesMessageResolver.java index 4eda4e153..f086c0970 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/errors/ErrorResolver.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/SpringPropertiesMessageResolver.java @@ -1,24 +1,33 @@ -package ru.spcex.clearing.backendapi.errors; +package ru.spcex.platform.utils.enumeration; import org.springframework.context.support.ResourceBundleMessageSource; -import org.springframework.stereotype.Service; -import ru.spcex.platform.utils.enumeration.EnumMessage; -import ru.spcex.platform.utils.enumeration.IMessageResolver; import java.util.Locale; -@Service("errorResolver") -public class ErrorResolver implements IMessageResolver { +/** + * Если в зависимостях не будет spring-context, кинет NoClassDefFound + */ +public class SpringPropertiesMessageResolver implements IMessageResolver { private final ResourceBundleMessageSource errorMessages; + private Locale locale; - public ErrorResolver(ResourceBundleMessageSource errorMessages) { + public SpringPropertiesMessageResolver(ResourceBundleMessageSource errorMessages) { this.errorMessages = errorMessages; + this.locale = Locale.ENGLISH; + } + + public void setLocale(String locale) { + this.locale = new Locale(locale); + } + + public void setLocale(Locale locale) { + this.locale = locale; } @Override public String resolve(EnumMessage errorMessage) { Long id = errorMessage.getSubject().getId(); - String messageTemplate = errorMessages.getMessage(id.toString(), null, Locale.ENGLISH); + String messageTemplate = errorMessages.getMessage(id.toString(), null, locale); if (errorMessage.getArgs().length > 0) return String.format(messageTemplate, errorMessage.getArgs()); else {