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 cec73efc2..dca027316 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 @@ -1,7 +1,10 @@ package ru.spcex.clearing.company.config; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Scope; +import ru.spcex.clearing.company.util.RequestHelper; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.IMessageResolver; @@ -18,4 +21,11 @@ public class BeanConfiguration { UserRoleVerification userRoleVerification(ImdgProvider imdg) { return new UserRoleVerification(imdg); } + + @Bean + @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) + public RequestHelper requestHelper(IMessageResolver messageResolver) { + return new RequestHelper(messageResolver); + } + } diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java index 00d9f92fa..0a85810af 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java @@ -23,7 +23,6 @@ import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.error.ValidationException; import ru.spcex.platform.utils.validation.IValidator; @@ -43,7 +42,7 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea @Autowired public CompanyInfoService(Consumer kafkaQueue, Producer kafkaProducer, ImdgProvider imdgProvider, CompanyService companyService, - IMessageResolver messageResolver, ValidationHelper validationHelper, + RequestHelper requestHelper, ValidationHelper validationHelper, UserRoleVerification userRoleVerification, @Qualifier("CompanyInfoUpdateRequestValidator") Function companyInfoUpdateRequestValidator) { @@ -52,8 +51,8 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); this.validationHelper = validationHelper; this.userRoleVerification = userRoleVerification; - this.requestHelper = new RequestHelper(log, messageResolver); this.companyInfoUpdateRequestValidator = companyInfoUpdateRequestValidator; + this.requestHelper = requestHelper.setLogger(log); } @Override diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java index ee8cef564..710d43e59 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java @@ -6,7 +6,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.CompanyRoleSet; import ru.spcex.clearing.company.error.CompanyErrors; @@ -26,7 +25,6 @@ import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.error.ValidationException; -import ru.spcex.platform.utils.validation.IValidator; import java.util.Map; @@ -49,7 +47,7 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing @Autowired public CompanyRoleSetService(Consumer kafkaQueue, Producer kafkaProducer, ImdgProvider imdgProvider, - IMessageResolver messageResolver, + RequestHelper requestHelper, UserRoleVerification userRoleVerification, ValidationHelper validationHelper // @Qualifier("CompanyRoleSetRequestValidator") @@ -58,12 +56,12 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing super(kafkaQueue, kafkaProducer); this.imdgProvider = imdgProvider; this.messageResolver = messageResolver; - this.requestHelper = new RequestHelper(log, messageResolver); this.companyRoleSetMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class); this.idSequence = imdgProvider.getImdgIdGenerator(); this.userRoleVerification = userRoleVerification; this.validationHelper = validationHelper; // this.companyDeleteRequestValidator = companyDeleteRequestValidator; + this.requestHelper = requestHelper.setLogger(log); } @Override diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java index 98ac9eb3b..4e1bfd5c0 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java @@ -21,7 +21,9 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.*; +import ru.spcex.platform.enumeration.CompanySymbol; +import ru.spcex.platform.enumeration.UserRole; +import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -58,7 +60,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { @Autowired public CompanyService(Consumer kafkaQueue, Producer kafkaProducer, ImdgProvider imdgProvider, - IMessageResolver messageResolver, + RequestHelper requestHelper, UserRoleVerification userRoleVerification, ValidationHelper validationHelper, @Qualifier("companyNewRequestValidator") @@ -74,8 +76,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { ) { super(kafkaQueue, kafkaProducer); this.imdgProvider = imdgProvider; - this.messageResolver = messageResolver; - this.requestHelper = new RequestHelper(log, messageResolver); + this.requestHelper = requestHelper.setLogger(log); this.companySymbolsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); this.idSequence = imdgProvider.getImdgIdGenerator(); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java index 3e9bc8ad5..a6609abbb 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java @@ -6,7 +6,6 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.platform.utils.enumeration.EnumMessage; -import ru.spcex.platform.utils.enumeration.IEnumId; import ru.spcex.platform.utils.enumeration.IErrorEnumId; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.error.ClearingBaseException; @@ -16,7 +15,7 @@ import java.util.Objects; /** * Упрощает обработку ошибок во время обработки реквестов. - * Передаёт регламинтированные ошибки из ClearingBaseException. + * Передаёт регламентированные ошибки из ClearingBaseException. * * Пример: * callback(CompanyNewRequest.class) @@ -24,9 +23,14 @@ import java.util.Objects; * .forDestination(Consts.DESTINATION_COMPANY_NEW, callbacks::put); */ public class RequestHelper { - protected final Logger log; + protected Logger log = null; protected final IMessageResolver messageResolver; + public RequestHelper(IMessageResolver messageResolver) { + Objects.requireNonNull(messageResolver); + this.messageResolver = messageResolver; + } + public RequestHelper(Logger log, IMessageResolver messageResolver) { Objects.requireNonNull(log); Objects.requireNonNull(messageResolver); @@ -44,12 +48,15 @@ public class RequestHelper { */ public > RequestInfoUpdate requestFunction(RequestCommand command, T userRequest) { try { - log.debug("{} request received, BaseRequest.id = {}", userRequest.getClass().getSimpleName(), userRequest.getId()); + if (log != null) + log.debug("{} request received, BaseRequest.id = {}", userRequest.getClass().getSimpleName(), userRequest.getId()); RequestInfoUpdate reply = command.command(userRequest); - log.trace("Reply on request {}: {}" , userRequest.getId(), reply); + if (log != null) + log.trace("Reply on request {}: {}" , userRequest.getId(), reply); return reply; } catch (ClearingBaseException expectedE) { - log.trace("{} return expected exception: {}", command, expectedE.toString()); + if (log != null) + log.trace("{} return expected exception: {}", command, expectedE.toString()); String message = expectedE.getEnumMsg() == null ? expectedE.getMessage() : messageResolver.resolve(expectedE.getEnumMsg()); @@ -58,7 +65,8 @@ public class RequestHelper { .setStatus(Status.Error) .setMessage(message); } catch (Exception unexpectedE) { - log.error("Error at {}: {} ", command, ExceptionUtils.getStackTrace(unexpectedE)); + if (log != null) + log.error("Error at {}: {} ", command, ExceptionUtils.getStackTrace(unexpectedE)); String message = messageResolver.resolve(new EnumMessage(CompanyErrors.GeneralError)); return new RequestInfoUpdate() .setId(userRequest.getId()) @@ -83,4 +91,9 @@ public class RequestHelper { public interface RequestCommand { RequestInfoUpdate command(T arg) throws ClearingBaseException; } + + public RequestHelper setLogger(Logger log) { + this.log = log; + return this; + } }