diff --git a/search-service-v1/search-service-server-v1/build.gradle.kts b/search-service-v1/search-service-server-v1/build.gradle.kts index 0694109..906d213 100644 --- a/search-service-v1/search-service-server-v1/build.gradle.kts +++ b/search-service-v1/search-service-server-v1/build.gradle.kts @@ -22,7 +22,7 @@ configurations { val springBootStarterVersion = "3.1.5" dependencies { - api("com.knecon.fforesight:tenant-commons:0.21.0") + api("com.knecon.fforesight:tenant-commons:0.28.0") api("com.knecon.fforesight:tracing-commons:0.5.0") api("com.knecon.fforesight:lifecycle-commons:0.6.0") api("com.google.guava:guava:31.1-jre") diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/MessagingConfiguration.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/configuration/MessagingConfiguration.java similarity index 72% rename from search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/MessagingConfiguration.java rename to search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/configuration/MessagingConfiguration.java index a9212fb..c7ecbfe 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/MessagingConfiguration.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/configuration/MessagingConfiguration.java @@ -1,7 +1,8 @@ -package com.iqser.red.service.search.v1.server.queue; +package com.iqser.red.service.search.v1.server.configuration; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.DirectExchange; import org.springframework.amqp.core.Queue; import org.springframework.amqp.core.QueueBuilder; import org.springframework.amqp.core.TopicExchange; @@ -16,11 +17,13 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class MessagingConfiguration { - public static final String INDEXING_QUEUE = "indexingQueue"; - public static final String INDEXING_DQL = "indexingDQL"; + public static final String INDEXING_QUEUE_PREFIX = "indexing_queue"; + public static final String INDEXING_EXCHANGE = "indexing_exchange"; + public static final String INDEXING_DLQ = "indexing_dlq"; - public static final String DELETE_FROM_INDEX_QUEUE = "deleteFromIndexQueue"; - public static final String DELETE_FROM_INDEX_DLQ = "deleteFromIndexDLQ"; + public static final String DELETE_FROM_INDEX_QUEUE_PREFIX = "delete_from_index_queue"; + public static final String DELETE_FROM_INDEX_EXCHANGE = "delete_from_index_exchange"; + public static final String DELETE_FROM_INDEX_DLQ = "delete_from_index_dlq"; public static final String X_ERROR_INFO_HEADER = "x-error-message"; public static final String X_ERROR_INFO_TIMESTAMP_HEADER = "x-error-message-timestamp"; @@ -37,43 +40,23 @@ public class MessagingConfiguration { @Bean - public Binding tenantExchangeDeleteBinding(@Qualifier("tenantUserManagementTenantDeleteQueue") Queue tenantUserManagementTenantDeleteQueue, - @Qualifier("tenantExchange") TopicExchange tenantExchange) { + public DirectExchange indexingExchange() { - return BindingBuilder.bind(tenantUserManagementTenantDeleteQueue).to(tenantExchange).with("tenant.delete"); + return new DirectExchange(INDEXING_EXCHANGE); } @Bean - public Binding tenantExchangeUpdatedBinding(@Qualifier("tenantUserManagementTenantUpdatedQueue") Queue tenantUserManagementTenantUpdatedQueue, - @Qualifier("tenantExchange") TopicExchange tenantExchange) { + public Queue indexingDLQ() { - return BindingBuilder.bind(tenantUserManagementTenantUpdatedQueue).to(tenantExchange).with("tenant.updated"); + return QueueBuilder.durable(INDEXING_DLQ).build(); } @Bean - public Queue indexingQueue() { + public DirectExchange deleteFromIndexExchange() { - return QueueBuilder.durable(INDEXING_QUEUE).withArgument("x-dead-letter-exchange", "").withArgument("x-dead-letter-routing-key", INDEXING_DQL).maxPriority(2).build(); - } - - - @Bean - public Queue indexingDeadLetterQueue() { - - return QueueBuilder.durable(INDEXING_DQL).build(); - } - - - @Bean - public Queue deleteFromIndexQueue() { - - return QueueBuilder.durable(DELETE_FROM_INDEX_QUEUE) - .withArgument("x-dead-letter-exchange", "") - .withArgument("x-dead-letter-routing-key", DELETE_FROM_INDEX_DLQ) - .maxPriority(2) - .build(); + return new DirectExchange(DELETE_FROM_INDEX_EXCHANGE); } @@ -83,13 +66,12 @@ public class MessagingConfiguration { return QueueBuilder.durable(DELETE_FROM_INDEX_DLQ).build(); } - // Tentant Delete Event Queue + @Bean + public Binding tenantExchangeDeleteBinding(@Qualifier("tenantUserManagementTenantDeleteQueue") Queue tenantUserManagementTenantDeleteQueue, + @Qualifier("tenantExchange") TopicExchange tenantExchange) { - @Bean(name = "tenantExchange") - TopicExchange tenantExchange(@Value("${fforesight.tenant-exchange.name}") String tenantExchangeName) { - - return new TopicExchange(tenantExchangeName); + return BindingBuilder.bind(tenantUserManagementTenantDeleteQueue).to(tenantExchange).with("tenant.delete"); } @@ -110,6 +92,14 @@ public class MessagingConfiguration { } + @Bean + public Binding tenantExchangeUpdatedBinding(@Qualifier("tenantUserManagementTenantUpdatedQueue") Queue tenantUserManagementTenantUpdatedQueue, + @Qualifier("tenantExchange") TopicExchange tenantExchange) { + + return BindingBuilder.bind(tenantUserManagementTenantUpdatedQueue).to(tenantExchange).with("tenant.updated"); + } + + @Bean("tenantUserManagementTenantUpdatedQueue") public Queue tenantUpdatedQueue() { diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/configuration/TenantMessagingConfigurationImpl.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/configuration/TenantMessagingConfigurationImpl.java new file mode 100644 index 0000000..0a37fa7 --- /dev/null +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/configuration/TenantMessagingConfigurationImpl.java @@ -0,0 +1,11 @@ +package com.iqser.red.service.search.v1.server.configuration; + +import org.springframework.context.annotation.Configuration; + +import com.knecon.fforesight.tenantcommons.queue.TenantMessagingConfiguration; + +@Configuration +public class TenantMessagingConfigurationImpl extends TenantMessagingConfiguration { + + +} diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java index cbea39a..7242edb 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java @@ -1,14 +1,12 @@ package com.iqser.red.service.search.v1.server.queue; -import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.DELETE_FROM_INDEX_DLQ; -import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.DELETE_FROM_INDEX_QUEUE; -import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.INDEXING_DQL; -import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.INDEXING_QUEUE; -import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.X_ERROR_INFO_HEADER; -import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.X_ERROR_INFO_TIMESTAMP_HEADER; +import static com.iqser.red.service.search.v1.server.configuration.MessagingConfiguration.DELETE_FROM_INDEX_DLQ; +import static com.iqser.red.service.search.v1.server.configuration.MessagingConfiguration.INDEXING_DLQ; +import static com.iqser.red.service.search.v1.server.configuration.MessagingConfiguration.INDEXING_EXCHANGE; +import static com.iqser.red.service.search.v1.server.configuration.MessagingConfiguration.X_ERROR_INFO_HEADER; +import static com.iqser.red.service.search.v1.server.configuration.MessagingConfiguration.X_ERROR_INFO_TIMESTAMP_HEADER; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.List; @@ -20,7 +18,6 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Service; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileErrorInfo; @@ -38,6 +35,7 @@ import com.iqser.red.service.search.v1.server.service.IndexDeleteService; import com.iqser.red.service.search.v1.server.service.IndexDocumentConverterService; import com.iqser.red.service.search.v1.server.service.IndexInformationService; import com.iqser.red.service.search.v1.server.service.TextStorageService; +import com.knecon.fforesight.tenantcommons.TenantContext; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -48,6 +46,9 @@ import lombok.extern.slf4j.Slf4j; @RequiredArgsConstructor public class IndexingMessageReceiver { + public static final String INDEXING_LISTENER_ID = "indexing-listener"; + public static final String DELETE_FROM_INDEX_LISTENER_ID = "delete-from-index-listener"; + private final ObjectMapper objectMapper; private final TextStorageService textStorageService; private final FileStatusClient fileStatusClient; @@ -65,7 +66,7 @@ public class IndexingMessageReceiver { @SneakyThrows @RabbitHandler - @RabbitListener(queues = INDEXING_QUEUE) + @RabbitListener(id = INDEXING_LISTENER_ID) public void receiveIndexingRequest(Message message) { var indexRequest = objectMapper.readValue(message.getBody(), IndexMessage.class); @@ -73,8 +74,8 @@ public class IndexingMessageReceiver { // This prevents from endless retries oom errors. if (message.getMessageProperties().isRedelivered()) { throw new AmqpRejectAndDontRequeueException(String.format("Error during last processing of request with dossierId: %s and fileId: %s, do not retry.", - indexRequest.getDossierId(), - indexRequest.getFileId())); + indexRequest.getDossierId(), + indexRequest.getFileId())); } try { @@ -105,12 +106,11 @@ public class IndexingMessageReceiver { fileStatus = fileStatusClient.getFileStatus(indexRequest.getDossierId(), indexRequest.getFileId()); dossier = dossierClient.getDossierById(indexRequest.getDossierId(), true, true); - if(documentUpdateService.documentExists(indexRequest.getFileId())) { - var indexUpdateDocument = indexDocumentConverterService.convertUpdateDocument(fileStatus.getAssignee(), - dossier.getSoftDeletedTime() != null, - dossier.getArchivedTime() != null, - fileStatus.getWorkflowStatus().name(), - fileStatus.getFileAttributes()); + if(documentUpdateService.documentExists(indexRequest.getFileId())) {var indexUpdateDocument = indexDocumentConverterService.convertUpdateDocument(fileStatus.getAssignee(), + dossier.getSoftDeletedTime() != null, + dossier.getArchivedTime() != null, + fileStatus.getWorkflowStatus().name(), + fileStatus.getFileAttributes()); documentUpdateService.updateDocument(indexRequest.getFileId(), indexUpdateDocument); log.info("Successfully updated {}", indexRequest); @@ -133,7 +133,7 @@ public class IndexingMessageReceiver { @RabbitHandler - @RabbitListener(queues = INDEXING_DQL) + @RabbitListener(queues = INDEXING_DLQ) public void receiveIndexingRequestDQL(Message in) throws IOException { var indexRequest = objectMapper.readValue(in.getBody(), IndexMessage.class); @@ -142,13 +142,15 @@ public class IndexingMessageReceiver { String errorMessage = errorLog + in.getMessageProperties().getHeader(X_ERROR_INFO_HEADER); OffsetDateTime timestamp = in.getMessageProperties().getHeader(X_ERROR_INFO_TIMESTAMP_HEADER); timestamp = timestamp != null ? timestamp : OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS); - fileStatusProcessingUpdateClient.indexingFailed(indexRequest.getDossierId(), indexRequest.getFileId(), new FileErrorInfo(errorMessage, INDEXING_DQL, "search-service", timestamp)); + fileStatusProcessingUpdateClient.indexingFailed(indexRequest.getDossierId(), + indexRequest.getFileId(), + new FileErrorInfo(errorMessage, INDEXING_DLQ, "search-service", timestamp)); } @RabbitHandler - @RabbitListener(queues = DELETE_FROM_INDEX_QUEUE) + @RabbitListener(id = DELETE_FROM_INDEX_LISTENER_ID) public void receiveDeleteDocumentRequest(Message in) throws IOException { var indexRequest = objectMapper.readValue(in.getBody(), IndexMessage.class); @@ -177,7 +179,9 @@ public class IndexingMessageReceiver { String errorMessage = errorLog + in.getMessageProperties().getHeader(X_ERROR_INFO_HEADER); OffsetDateTime timestamp = in.getMessageProperties().getHeader(X_ERROR_INFO_TIMESTAMP_HEADER); timestamp = timestamp != null ? timestamp : OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS); - fileStatusProcessingUpdateClient.indexingFailed(indexRequest.getDossierId(), indexRequest.getFileId(), new FileErrorInfo(errorMessage, INDEXING_DQL, "search-service", timestamp)); + fileStatusProcessingUpdateClient.indexingFailed(indexRequest.getDossierId(), + indexRequest.getFileId(), + new FileErrorInfo(errorMessage, INDEXING_DLQ, "search-service", timestamp)); } @@ -188,15 +192,15 @@ public class IndexingMessageReceiver { Text text = textStorageService.getText(dossier.getId(), file.getId()); var indexDocument = indexDocumentConverterService.convert(dossier.getDossierTemplateId(), - dossier.getId(), - file.getId(), - file.getFilename(), - text, - file.getAssignee(), - dossier.getSoftDeletedTime() != null, - dossier.getArchivedTime() != null, - file.getWorkflowStatus(), - file.getFileAttributes()); + dossier.getId(), + file.getId(), + file.getFilename(), + text, + file.getAssignee(), + dossier.getSoftDeletedTime() != null, + dossier.getArchivedTime() != null, + file.getWorkflowStatus(), + file.getFileAttributes()); documentIndexService.indexDocument(indexDocument); fileStatusProcessingUpdateClient.indexingSuccessful(dossier.getId(), file.getId()); @@ -219,12 +223,13 @@ public class IndexingMessageReceiver { for (FileModel file : files) { log.info("Will add dossier {} file {} to index queue", dossierId, file.getId()); - rabbitTemplate.convertAndSend(INDEXING_QUEUE, - IndexMessage.builder().messageType(IndexMessageType.INSERT).dossierId(dossierId).fileId(file.getId()).build(), - message -> { - message.getMessageProperties().setPriority(99); - return message; - }); + rabbitTemplate.convertAndSend(INDEXING_EXCHANGE, + TenantContext.getTenantId(), + IndexMessage.builder().messageType(IndexMessageType.INSERT).dossierId(dossierId).fileId(file.getId()).build(), + message -> { + message.getMessageProperties().setPriority(99); + return message; + }); } } diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/TenantExchangeMessageReceiverImpl.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/TenantExchangeMessageReceiverImpl.java new file mode 100644 index 0000000..e690ee9 --- /dev/null +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/TenantExchangeMessageReceiverImpl.java @@ -0,0 +1,74 @@ +package com.iqser.red.service.search.v1.server.queue; + +import static com.iqser.red.service.search.v1.server.configuration.MessagingConfiguration.*; + +import java.util.Map; +import java.util.Set; + +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Service; + +import com.knecon.fforesight.tenantcommons.TenantProvider; +import com.knecon.fforesight.tenantcommons.model.TenantCreatedEvent; +import com.knecon.fforesight.tenantcommons.model.TenantQueueConfiguration; +import com.knecon.fforesight.tenantcommons.model.TenantResponse; +import com.knecon.fforesight.tenantcommons.queue.RabbitQueueFromExchangeService; +import com.knecon.fforesight.tenantcommons.queue.TenantExchangeMessageReceiver; + +@Service +public class TenantExchangeMessageReceiverImpl extends TenantExchangeMessageReceiver { + + public TenantExchangeMessageReceiverImpl(RabbitQueueFromExchangeService rabbitQueueService, TenantProvider tenantProvider) { + + super(rabbitQueueService, tenantProvider); + } + + + @Override + protected Set getTenantQueueConfigs() { + + return Set.of(TenantQueueConfiguration.builder() + .listenerId(IndexingMessageReceiver.INDEXING_LISTENER_ID) + .exchangeName(INDEXING_EXCHANGE) + .queuePrefix(INDEXING_QUEUE_PREFIX) + .dlqName(INDEXING_DLQ) + .arguments(Map.of("x-max-priority", 2)) + .build(), + TenantQueueConfiguration.builder() + .listenerId(IndexingMessageReceiver.DELETE_FROM_INDEX_LISTENER_ID) + .exchangeName(DELETE_FROM_INDEX_EXCHANGE) + .queuePrefix(DELETE_FROM_INDEX_QUEUE_PREFIX) + .dlqName(DELETE_FROM_INDEX_DLQ) + .arguments(Map.of("x-max-priority", 2)) + .build()); + } + + + @EventListener(ApplicationReadyEvent.class) + public void onApplicationReady() { + + System.out.println("application ready invoked"); + super.initializeQueues(); + } + + + @RabbitHandler + @RabbitListener(queues = "#{tenantMessagingConfigurationImpl.getTenantCreatedQueueName()}") + public void reactToTenantCreation(TenantCreatedEvent tenantCreatedEvent) { + + super.reactToTenantCreation(tenantCreatedEvent); + } + + + @RabbitHandler + @RabbitListener(queues = "#{tenantMessagingConfigurationImpl.getTenantDeletedQueueName()}") + public void reactToTenantDeletion(TenantResponse tenantResponse) { + + super.reactToTenantDeletion(tenantResponse); + + } + +} diff --git a/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/AbstractElasticsearchIntegrationTest.java b/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/AbstractElasticsearchIntegrationTest.java index f2315a7..6fb4cfd 100644 --- a/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/AbstractElasticsearchIntegrationTest.java +++ b/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/AbstractElasticsearchIntegrationTest.java @@ -6,6 +6,8 @@ import java.util.Set; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.amqp.rabbit.core.RabbitAdmin; +import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; @@ -52,6 +54,12 @@ public abstract class AbstractElasticsearchIntegrationTest { @MockBean private TenantsClient tenantsClient; + @MockBean + private RabbitAdmin rabbitAdmin; + + @MockBean + private RabbitListenerEndpointRegistry rabbitListenerEndpointRegistry; + private static int port; @@ -60,15 +68,15 @@ public abstract class AbstractElasticsearchIntegrationTest { TenantContext.setTenantId("redaction"); when(tenantsClient.getTenant("redaction")).thenReturn(TenantResponse.builder() - .searchConnection(SearchConnection.builder() - .hosts(Set.of("localhost")) - .port(port) - .scheme("http") - .numberOfShards("1") - .numberOfReplicas("5") - .indexPrefix("indexprefix") - .build()) - .build()); + .searchConnection(SearchConnection.builder() + .hosts(Set.of("localhost")) + .port(port) + .scheme("http") + .numberOfShards("1") + .numberOfReplicas("5") + .indexPrefix("indexprefix") + .build()) + .build()); } diff --git a/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/ElasticsearchTest.java b/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/ElasticsearchTest.java index 20cede7..dacdbe1 100644 --- a/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/ElasticsearchTest.java +++ b/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/ElasticsearchTest.java @@ -7,7 +7,9 @@ import java.util.List; import java.util.Map; import org.junit.jupiter.api.Test; +import org.springframework.amqp.rabbit.core.RabbitAdmin; import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.core.io.ClassPathResource; diff --git a/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/MetricsIntegrationTest.java b/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/MetricsIntegrationTest.java index 83e040c..f4a1728 100644 --- a/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/MetricsIntegrationTest.java +++ b/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/MetricsIntegrationTest.java @@ -3,7 +3,9 @@ package com.iqser.red.service.search.v1.server.service; import static org.mockito.Mockito.when; import org.junit.jupiter.api.Test; +import org.springframework.amqp.rabbit.core.RabbitAdmin; import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.core.io.ClassPathResource; diff --git a/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/OpensearchTest.java b/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/OpensearchTest.java index c51a31b..9ee5236 100644 --- a/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/OpensearchTest.java +++ b/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/OpensearchTest.java @@ -7,7 +7,9 @@ import java.util.List; import java.util.Map; import org.junit.jupiter.api.Test; +import org.springframework.amqp.rabbit.core.RabbitAdmin; import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.core.io.ClassPathResource; @@ -54,6 +56,12 @@ public class OpensearchTest extends AbstractOpensearchIntegrationTest { @MockBean private RabbitTemplate rabbitTemplate; + @MockBean + private RabbitAdmin rabbitAdmin; + + @MockBean + private RabbitListenerEndpointRegistry rabbitListenerEndpointRegistry; + @MockBean private IndexDeleteService indexDeleteService; diff --git a/search-service-v1/search-service-server-v1/src/test/resources/application.yml b/search-service-v1/search-service-server-v1/src/test/resources/application.yml index 316a912..f0cb119 100644 --- a/search-service-v1/search-service-server-v1/src/test/resources/application.yml +++ b/search-service-v1/search-service-server-v1/src/test/resources/application.yml @@ -32,3 +32,5 @@ persistence-service.url: 'http://mock.url' server: port: 19547 + +POD_NAME: search-service \ No newline at end of file