diff --git a/src/main/java/org/folio/inventory/DataImportConsumerVerticle.java b/src/main/java/org/folio/inventory/DataImportConsumerVerticle.java index 4e6df5b7d..4419b4c54 100644 --- a/src/main/java/org/folio/inventory/DataImportConsumerVerticle.java +++ b/src/main/java/org/folio/inventory/DataImportConsumerVerticle.java @@ -34,7 +34,6 @@ import org.apache.logging.log4j.Logger; import org.folio.DataImportEventTypes; import org.folio.inventory.consortium.cache.ConsortiumDataCache; -import org.folio.inventory.dataimport.cache.ProfileSnapshotCache; import org.folio.inventory.dataimport.consumers.DataImportKafkaHandler; import org.folio.inventory.dataimport.util.ConsumerWrapperUtil; import org.folio.inventory.support.KafkaConsumerVerticle; diff --git a/src/main/java/org/folio/inventory/support/KafkaConsumerVerticle.java b/src/main/java/org/folio/inventory/support/KafkaConsumerVerticle.java index 04857b402..dad4234a5 100644 --- a/src/main/java/org/folio/inventory/support/KafkaConsumerVerticle.java +++ b/src/main/java/org/folio/inventory/support/KafkaConsumerVerticle.java @@ -1,7 +1,6 @@ package org.folio.inventory.support; import static java.lang.Integer.parseInt; -import static java.lang.Long.*; import static java.lang.String.format; import static java.lang.String.join; import static java.lang.System.getProperty; @@ -39,15 +38,13 @@ public abstract class KafkaConsumerVerticle extends AbstractVerticle { private static final String MAX_DISTRIBUTION_NUMBER_TEMPLATE = "inventory.kafka.%s.maxDistributionNumber"; private static final String MAX_DISTRIBUTION_NUMBER_DEFAULT = "100"; private static final String CACHE_EXPIRATION_DEFAULT = "3600"; - private static final String METADATA_EXPIRATION_TIME = "inventory.mapping-metadata-cache.expiration.time.seconds"; private static final String PROFILE_SNAPSHOT_CACHE_EXPIRATION_TIME = "inventory.profile-snapshot-cache.expiration.time.seconds"; private final List> consumerWrappers = new ArrayList<>(); + private ProfileSnapshotCache profileSnapshotCache; private KafkaConfig kafkaConfig; private JsonObject config; private HttpClient httpClient; private Storage storage; - private MappingMetadataCache mappingMetadataCache; - private ProfileSnapshotCache profileSnapshotCache; @Override public void stop(Promise stopPromise) { @@ -108,11 +105,7 @@ protected Storage getStorage() { } protected MappingMetadataCache getMappingMetadataCache() { - if (isNull(mappingMetadataCache)) { - var mappingMetadataExpirationTime = getCacheEnvVariable(METADATA_EXPIRATION_TIME); - mappingMetadataCache = new MappingMetadataCache(vertx, getHttpClient(), parseLong(mappingMetadataExpirationTime)); - } - return mappingMetadataCache; + return MappingMetadataCache.getInstance(vertx, getHttpClient()); } protected ProfileSnapshotCache getProfileSnapshotCache() { diff --git a/src/test/java/org/folio/inventory/dataimport/cache/MappingMetadataCacheTest.java b/src/test/java/org/folio/inventory/dataimport/cache/MappingMetadataCacheTest.java index 2a21a5277..d4a897617 100644 --- a/src/test/java/org/folio/inventory/dataimport/cache/MappingMetadataCacheTest.java +++ b/src/test/java/org/folio/inventory/dataimport/cache/MappingMetadataCacheTest.java @@ -5,7 +5,6 @@ import java.util.Optional; import java.util.UUID; -import io.vertx.core.json.JsonObject; import org.folio.inventory.common.Context; import org.folio.inventory.dataimport.handlers.matching.util.EventHandlingUtil; import org.folio.MappingMetadataDto; @@ -33,6 +32,7 @@ public class MappingMetadataCacheTest { private static final String TENANT_ID = "diku"; private static final String MAPPING_METADATA_URL = "/mapping-metadata"; + private static final String MARC_BIB_RECORD_TYPE = "marc-bib"; private final Vertx vertx = Vertx.vertx(); diff --git a/src/test/java/org/folio/inventory/dataimport/consumers/MarcBibInstanceHridSetKafkaHandlerTest.java b/src/test/java/org/folio/inventory/dataimport/consumers/MarcBibInstanceHridSetKafkaHandlerTest.java index 902fa2411..faed10c4f 100644 --- a/src/test/java/org/folio/inventory/dataimport/consumers/MarcBibInstanceHridSetKafkaHandlerTest.java +++ b/src/test/java/org/folio/inventory/dataimport/consumers/MarcBibInstanceHridSetKafkaHandlerTest.java @@ -38,7 +38,6 @@ import static org.folio.Record.RecordType.MARC_BIB; import static org.folio.inventory.dataimport.consumers.MarcHoldingsRecordHridSetKafkaHandler.JOB_EXECUTION_ID_KEY; -import static org.folio.inventory.dataimport.util.MappingConstants.MARC_BIB_RECORD_FORMAT; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; @@ -111,7 +110,7 @@ public void shouldReturnSucceededFutureWithObtainedRecordKey(TestContext context // given Async async = context.async(); Map payload = new HashMap<>(); - payload.put(MARC_BIB_RECORD_FORMAT, Json.encode(record)); + payload.put("MARC_BIB", Json.encode(record)); payload.put(JOB_EXECUTION_ID_KEY, UUID.randomUUID().toString()); Event event = new Event().withId("01").withEventPayload(Json.encode(payload)); @@ -155,7 +154,7 @@ public void shouldReturnFailedIfOLErrorExist(TestContext context) { // given Async async = context.async(); Map payload = new HashMap<>(); - payload.put(MARC_BIB_RECORD_FORMAT, Json.encode(record)); + payload.put("MARC_BIB", Json.encode(record)); payload.put(JOB_EXECUTION_ID_KEY, UUID.randomUUID().toString()); payload.put("CURRENT_RETRY_NUMBER", "1"); diff --git a/src/test/java/org/folio/inventory/eventhandlers/UpdateInstanceQuickMarcEventHandlerTest.java b/src/test/java/org/folio/inventory/eventhandlers/UpdateInstanceQuickMarcEventHandlerTest.java index a2b32951c..f8917c449 100644 --- a/src/test/java/org/folio/inventory/eventhandlers/UpdateInstanceQuickMarcEventHandlerTest.java +++ b/src/test/java/org/folio/inventory/eventhandlers/UpdateInstanceQuickMarcEventHandlerTest.java @@ -1,6 +1,5 @@ package org.folio.inventory.eventhandlers; -import static org.folio.inventory.dataimport.util.MappingConstants.MARC_BIB_RECORD_FORMAT; import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; @@ -108,8 +107,8 @@ record = new JsonObject(TestUtil.readFileFromPath(RECORD_PATH)); @Test public void shouldProcessEvent() { HashMap eventPayload = new HashMap<>(); - eventPayload.put("RECORD_TYPE", MARC_BIB_RECORD_FORMAT); - eventPayload.put(MARC_BIB_RECORD_FORMAT, record.encode()); + eventPayload.put("RECORD_TYPE", "MARC_BIB"); + eventPayload.put("MARC_BIB", record.encode()); eventPayload.put("MAPPING_RULES", mappingRules.encode()); eventPayload.put("MAPPING_PARAMS", new JsonObject().encode()); eventPayload.put("RELATED_RECORD_VERSION", INSTANCE_VERSION); @@ -142,8 +141,8 @@ public void shouldProcessEvent() { @Test public void shouldCompleteExceptionallyOnOLNumberExceeded() { HashMap eventPayload = new HashMap<>(); - eventPayload.put("RECORD_TYPE", MARC_BIB_RECORD_FORMAT); - eventPayload.put(MARC_BIB_RECORD_FORMAT, record.encode()); + eventPayload.put("RECORD_TYPE", "MARC_BIB"); + eventPayload.put("MARC_BIB", record.encode()); eventPayload.put("MAPPING_RULES", mappingRules.encode()); eventPayload.put("MAPPING_PARAMS", new JsonObject().encode()); eventPayload.put("RELATED_RECORD_VERSION", INSTANCE_VERSION); @@ -166,8 +165,8 @@ public void shouldAddPrecedingAndSucceedingTitlesFromIncomingRecord() throws IOE record.getParsedRecord().withContent(PARSED_CONTENT_WITH_PRECEDING_SUCCEEDING_TITLES); HashMap eventPayload = new HashMap<>(); - eventPayload.put("RECORD_TYPE", MARC_BIB_RECORD_FORMAT); - eventPayload.put(MARC_BIB_RECORD_FORMAT, Json.encode(record)); + eventPayload.put("RECORD_TYPE", "MARC_BIB"); + eventPayload.put("MARC_BIB", Json.encode(record)); eventPayload.put("MAPPING_RULES", mappingRules.encode()); eventPayload.put("MAPPING_PARAMS", new JsonObject().encode()); eventPayload.put("RELATED_RECORD_VERSION", INSTANCE_VERSION); @@ -192,8 +191,8 @@ public void shouldAddPrecedingAndSucceedingTitlesFromIncomingRecord() throws IOE @Test public void shouldCompleteExceptionally_whenRecordIsEmpty() { HashMap eventPayload = new HashMap<>(); - eventPayload.put("RECORD_TYPE", MARC_BIB_RECORD_FORMAT); - eventPayload.put(MARC_BIB_RECORD_FORMAT, ""); + eventPayload.put("RECORD_TYPE", "MARC_BIB"); + eventPayload.put("MARC_BIB", ""); eventPayload.put("MAPPING_RULES", mappingRules.encode()); eventPayload.put("MAPPING_PARAMS", new JsonObject().encode()); @@ -212,8 +211,8 @@ public void shouldSendError() { }).when(instanceRecordCollection).update(any(), any(), any()); HashMap eventPayload = new HashMap<>(); - eventPayload.put("RECORD_TYPE", MARC_BIB_RECORD_FORMAT); - eventPayload.put(MARC_BIB_RECORD_FORMAT, record.encode()); + eventPayload.put("RECORD_TYPE", "MARC_BIB"); + eventPayload.put("MARC_BIB", record.encode()); eventPayload.put("MAPPING_RULES", mappingRules.encode()); eventPayload.put("MAPPING_PARAMS", new JsonObject().encode()); diff --git a/src/test/java/org/folio/inventory/quickmarc/consumers/QuickMarcKafkaHandlerTest.java b/src/test/java/org/folio/inventory/quickmarc/consumers/QuickMarcKafkaHandlerTest.java index eaee1a6dc..d4a87ac2c 100644 --- a/src/test/java/org/folio/inventory/quickmarc/consumers/QuickMarcKafkaHandlerTest.java +++ b/src/test/java/org/folio/inventory/quickmarc/consumers/QuickMarcKafkaHandlerTest.java @@ -2,34 +2,16 @@ import static net.mguenther.kafka.junit.EmbeddedKafkaCluster.provisionWith; import static net.mguenther.kafka.junit.EmbeddedKafkaClusterConfig.defaultClusterConfig; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - -import static org.folio.inventory.dataimport.util.MappingConstants.MARC_BIB_RECORD_FORMAT; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.when; - import static org.folio.inventory.dataimport.handlers.QMEventTypes.QM_ERROR; import static org.folio.inventory.dataimport.handlers.QMEventTypes.QM_INVENTORY_AUTHORITY_UPDATED; import static org.folio.inventory.dataimport.handlers.QMEventTypes.QM_INVENTORY_HOLDINGS_UPDATED; import static org.folio.inventory.dataimport.handlers.QMEventTypes.QM_INVENTORY_INSTANCE_UPDATED; import static org.folio.kafka.KafkaTopicNameHelper.formatTopicName; import static org.folio.kafka.KafkaTopicNameHelper.getDefaultNameSpace; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.TimeUnit; -import java.util.function.Consumer; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.when; import io.vertx.core.Future; import io.vertx.core.Vertx; @@ -40,14 +22,17 @@ import io.vertx.ext.unit.junit.VertxUnitRunner; import io.vertx.kafka.client.consumer.KafkaConsumerRecord; import io.vertx.kafka.client.producer.KafkaHeader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; import net.mguenther.kafka.junit.EmbeddedKafkaCluster; import net.mguenther.kafka.junit.ObserveKeyValues; -import org.folio.inventory.domain.HoldingsRecordsSourceCollection; -import org.folio.inventory.services.HoldingsCollectionService; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - import org.folio.Authority; import org.folio.HoldingsRecord; import org.folio.HoldingsType; @@ -59,8 +44,10 @@ import org.folio.inventory.dataimport.handlers.actions.PrecedingSucceedingTitlesHelper; import org.folio.inventory.domain.AuthorityRecordCollection; import org.folio.inventory.domain.HoldingsRecordCollection; +import org.folio.inventory.domain.HoldingsRecordsSourceCollection; import org.folio.inventory.domain.instances.Instance; import org.folio.inventory.domain.instances.InstanceCollection; +import org.folio.inventory.services.HoldingsCollectionService; import org.folio.inventory.storage.Storage; import org.folio.inventory.support.http.client.OkapiHttpClient; import org.folio.inventory.support.http.client.Response; @@ -70,6 +57,14 @@ import org.folio.rest.jaxrs.model.Event; import org.folio.rest.jaxrs.model.ParsedRecordDto; import org.folio.rest.jaxrs.model.Record; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; @RunWith(VertxUnitRunner.class) public class QuickMarcKafkaHandlerTest { @@ -231,8 +226,8 @@ public void shouldSendInstanceUpdatedEvent(TestContext context) throws Interrupt // given Async async = context.async(); Map payload = new HashMap<>(); - payload.put("RECORD_TYPE", MARC_BIB_RECORD_FORMAT); - payload.put(MARC_BIB_RECORD_FORMAT, Json.encode(bibRecord)); + payload.put("RECORD_TYPE", "MARC_BIB"); + payload.put("MARC_BIB", Json.encode(bibRecord)); payload.put("MAPPING_RULES", bibMappingRules.encode()); payload.put("MAPPING_PARAMS", new JsonObject().encode()); payload.put("PARSED_RECORD_DTO", Json.encode(new ParsedRecordDto() @@ -424,7 +419,7 @@ public void shouldSendErrorEventWhenPayloadHasNoMarcRecord(TestContext context) // given Async async = context.async(); Map payload = new HashMap<>(); - payload.put("RECORD_TYPE", MARC_BIB_RECORD_FORMAT); + payload.put("RECORD_TYPE", "MARC_BIB"); payload.put("MAPPING_RULES", bibMappingRules.encode()); payload.put("MAPPING_PARAMS", new JsonObject().encode());