diff --git a/layoutparser-service/layoutparser-service-server/build.gradle.kts b/layoutparser-service/layoutparser-service-server/build.gradle.kts index e215645..2ff77ea 100644 --- a/layoutparser-service/layoutparser-service-server/build.gradle.kts +++ b/layoutparser-service/layoutparser-service-server/build.gradle.kts @@ -19,8 +19,8 @@ dependencies { implementation(project(":layoutparser-service-processor")) implementation(project(":layoutparser-service-internal-api")) - implementation("com.iqser.red.commons:storage-commons:2.40.0") - implementation("com.knecon.fforesight:tenant-commons:0.10.0") + implementation("com.iqser.red.commons:storage-commons:2.45.0") + implementation("com.knecon.fforesight:tenant-commons:0.14.0") implementation("org.springframework.boot:spring-boot-starter-actuator:3.1.3") implementation("com.amazonaws:aws-java-sdk-s3:1.12.536") implementation("org.springframework.boot:spring-boot-starter-amqp:3.1.3") diff --git a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/model/TextPositionSequenceTest.java b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/model/TextPositionSequenceTest.java index f3a8491..0922e4b 100644 --- a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/model/TextPositionSequenceTest.java +++ b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/model/TextPositionSequenceTest.java @@ -27,14 +27,14 @@ public class TextPositionSequenceTest { + " \"pageWidth\": 600\n" // + "}"; - private final ObjectSerializer objectSerializer = new ObjectSerializer(new ObjectMapper(), new StorageProperties()); + private final ObjectSerializer objectSerializer = new ObjectSerializer(new ObjectMapper()); @Test @SneakyThrows public void testDeserializationWithJackson() { - TextPositionSequence textPositionSequence = objectSerializer.deserializeWithJackson(new ByteArrayInputStream(TEXT_POSITION_SEQUENCE_AS_JSON.getBytes(StandardCharsets.UTF_8)), + TextPositionSequence textPositionSequence = objectSerializer.deserialize(new ByteArrayInputStream(TEXT_POSITION_SEQUENCE_AS_JSON.getBytes(StandardCharsets.UTF_8)), TextPositionSequence.class); assertPropertiesAfterJsonDeserialization(textPositionSequence); diff --git a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/utils/AbstractTest.java b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/utils/AbstractTest.java index 0f02ad7..3740351 100644 --- a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/utils/AbstractTest.java +++ b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/utils/AbstractTest.java @@ -1,8 +1,15 @@ package com.knecon.fforesight.service.layoutparser.server.utils; -import java.io.InputStream; -import java.util.Optional; - +import com.iqser.red.commons.jackson.ObjectMapperFactory; +import com.iqser.red.storage.commons.service.StorageService; +import com.iqser.red.storage.commons.utils.FileSystemBackedStorageService; +import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingRequest; +import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingType; +import com.knecon.fforesight.service.layoutparser.processor.LayoutParsingStorageService; +import com.knecon.fforesight.service.layoutparser.server.Application; +import com.knecon.fforesight.tenantcommons.TenantContext; +import com.knecon.fforesight.tenantcommons.TenantsClient; +import lombok.SneakyThrows; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.extension.ExtendWith; @@ -12,21 +19,12 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.*; import org.springframework.core.io.ClassPathResource; import org.springframework.test.context.junit.jupiter.SpringExtension; -import com.iqser.red.storage.commons.service.StorageService; -import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingRequest; -import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingType; -import com.knecon.fforesight.service.layoutparser.processor.LayoutParsingStorageService; -import com.knecon.fforesight.service.layoutparser.server.Application; -import com.knecon.fforesight.tenantcommons.TenantContext; -import com.knecon.fforesight.tenantcommons.TenantsClient; - -import lombok.SneakyThrows; +import java.io.InputStream; +import java.util.Optional; @ExtendWith(SpringExtension.class) @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @@ -157,6 +155,14 @@ public abstract class AbstractTest { @ComponentScan("com.knecon.fforesight.service.layoutparser") public static class TestConfiguration { + + @Bean + @Primary + public StorageService inmemoryStorage() { + + return new FileSystemBackedStorageService(ObjectMapperFactory.create()); + } + } } diff --git a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/utils/FileSystemBackedStorageService.java b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/utils/FileSystemBackedStorageService.java deleted file mode 100644 index 674dbea..0000000 --- a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/utils/FileSystemBackedStorageService.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.knecon.fforesight.service.layoutparser.server.utils; - -import static java.io.File.createTempFile; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import org.apache.commons.io.IOUtils; -import org.springframework.stereotype.Service; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.iqser.red.commons.jackson.ObjectMapperFactory; -import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; -import com.iqser.red.storage.commons.service.StorageService; - -import lombok.SneakyThrows; - -@Service -public class FileSystemBackedStorageService implements StorageService { - - private final Map dataMap = new HashMap<>(); - - - public FileSystemBackedStorageService() { - - } - - - @SneakyThrows - @Override - public void downloadTo(String tenantId, String objectId, File destinationFile) { - - var res = dataMap.get(objectId); - if (res == null) { - throw new StorageObjectDoesNotExist(new RuntimeException()); - } - - IOUtils.copy(new FileInputStream(res), new FileOutputStream(destinationFile)); - } - - - @Override - public void deleteObject(String tenantId, String objectId) { - - dataMap.remove(objectId); - } - - - @Override - public boolean objectExists(String tenantId, String objectId) { - - return dataMap.containsKey(objectId); - } - - - @Override - @SneakyThrows - public void storeJSONObject(String tenantId, String objectId, T any) { - - File tempFile = createTempFile("test", ".tmp"); - getMapper().writeValue(new FileOutputStream(tempFile), any); - dataMap.put(objectId, tempFile); - } - - - private ObjectMapper getMapper() { - - return ObjectMapperFactory.create(); - } - - - @Override - @SneakyThrows - public T readJSONObject(String tenantId, String objectId, Class clazz) { - - if (dataMap.get(objectId) == null || !dataMap.get(objectId).exists()) { - throw new StorageObjectDoesNotExist("Stored object not found"); - } - return getMapper().readValue(new FileInputStream(dataMap.get(objectId)), clazz); - } - - - public List listPaths() { - - return new ArrayList<>(dataMap.keySet()); - } - - - public List listFilePaths() { - - return dataMap.values().stream().map(File::getAbsolutePath).collect(Collectors.toList()); - } - - - @Override - @SneakyThrows - public void storeObject(String tenantId, String objectId, InputStream stream) { - - File tempFile = createTempFile("test", ".tmp"); - - try (var fileOutputStream = new FileOutputStream(tempFile)) { - IOUtils.copy(stream, fileOutputStream); - } - - dataMap.put(objectId, tempFile); - } - - - public void clearStorage() { - - this.dataMap.forEach((k, v) -> { - v.delete(); - }); - this.dataMap.clear(); - } - -}