From 02d87d7c14d8e97cca9849e636b533cde3c60b00 Mon Sep 17 00:00:00 2001 From: yhampe Date: Fri, 6 Oct 2023 11:44:02 +0200 Subject: [PATCH 1/2] fixed errors on windows because of not closed input stream removed FileSystemBackedStorageService.java and started using import from storage-commons --- .../persistence-service-processor-v1/pom.xml | 1 + .../model/reducetext/RedTextPosition.java | 10 -- .../processor/service/DictionaryService.java | 13 +- .../download/DownloadPreparationService.java | 5 +- .../AbstractPersistenceServerServiceTest.java | 4 +- .../utils/FileSystemBackedStorageService.java | 132 ------------------ .../utils/FileSystemBackArchiverTest.java | 5 +- persistence-service-v1/pom.xml | 1 + 8 files changed, 18 insertions(+), 153 deletions(-) delete mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/FileSystemBackedStorageService.java diff --git a/persistence-service-v1/persistence-service-processor-v1/pom.xml b/persistence-service-v1/persistence-service-processor-v1/pom.xml index 9798bea13..c0bda2515 100644 --- a/persistence-service-v1/persistence-service-processor-v1/pom.xml +++ b/persistence-service-v1/persistence-service-processor-v1/pom.xml @@ -204,6 +204,7 @@ com.iqser.red.commons storage-commons + ${storage.commons.version} com.fasterxml.jackson.datatype diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/model/reducetext/RedTextPosition.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/model/reducetext/RedTextPosition.java index 9184b10cc..86637a090 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/model/reducetext/RedTextPosition.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/model/reducetext/RedTextPosition.java @@ -1,6 +1,5 @@ package com.iqser.red.service.persistence.management.v1.processor.migration.migrations.model.reducetext; -import com.dslplatform.json.JsonAttribute; import com.fasterxml.jackson.annotation.JsonAlias; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; @@ -31,24 +30,18 @@ public class RedTextPosition { @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private float YDirAdj; @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - @JsonAttribute private float heightDir; - @JsonAttribute @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private float widthDirAdj; // Moved To TextPositionSequence @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - @JsonAttribute private float pageHeight; @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - @JsonAttribute private float pageWidth; @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - @JsonAttribute private float dir; @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - @JsonAttribute private int rotation; // Removed values @@ -58,7 +51,6 @@ public class RedTextPosition { private float width; - @JsonAttribute() public float[] getPosition() { var pos = new float[4]; @@ -77,7 +69,6 @@ public class RedTextPosition { @JsonAlias("xdirAdj") - @JsonAttribute(alternativeNames = {"xdirAdj"}) @JsonProperty public void setXDirAdj(float XDirAdj) { @@ -90,7 +81,6 @@ public class RedTextPosition { @JsonAlias("ydirAdj") - @JsonAttribute(alternativeNames = {"ydirAdj"}) @JsonProperty public void setYDirAdj(float YDirAdj) {this.YDirAdj = YDirAdj;} diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java index 2233248d4..9b740aa56 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java @@ -25,7 +25,6 @@ import org.springframework.security.access.AccessDeniedException; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Service; -import com.amazonaws.util.StringUtils; import com.iqser.red.service.dictionarymerge.commons.CommonsDictionaryModel; import com.iqser.red.service.dictionarymerge.commons.DictionaryEntry; import com.iqser.red.service.dictionarymerge.commons.DictionaryEntryModel; @@ -273,19 +272,19 @@ public class DictionaryService { .stream() .filter(e -> !e.isDeleted()) .map(DictionaryEntry::getValue) - .sorted(Comparator.comparing(StringUtils::lowerCase)) + .sorted(Comparator.comparing(String::toLowerCase)) .collect(Collectors.toList())) .falsePositiveEntries(dictionaryForType.getFalsePositiveEntries() .stream() .filter(e -> !e.isDeleted()) .map(DictionaryEntry::getValue) - .sorted(Comparator.comparing(StringUtils::lowerCase)) + .sorted(Comparator.comparing(String::toLowerCase)) .collect(Collectors.toList())) .falseRecommendationEntries(dictionaryForType.getFalseRecommendationEntries() .stream() .filter(e -> !e.isDeleted()) .map(DictionaryEntry::getValue) - .sorted(Comparator.comparing(StringUtils::lowerCase)) + .sorted(Comparator.comparing(String::toLowerCase)) .collect(Collectors.toList())) .hexColor(dictionaryForType.getHexColor()) .recommendationHexColor(dictionaryForType.getRecommendationHexColor()) @@ -338,19 +337,19 @@ public class DictionaryService { .stream() .filter(e -> !e.isDeleted()) .map(DictionaryEntry::getValue) - .sorted(Comparator.comparing(StringUtils::lowerCase)) + .sorted(Comparator.comparing(String::toLowerCase)) .collect(Collectors.toList())) .falsePositiveEntries(cdm.getFalsePositives() .stream() .filter(e -> !e.isDeleted()) .map(DictionaryEntry::getValue) - .sorted(Comparator.comparing(StringUtils::lowerCase)) + .sorted(Comparator.comparing(String::toLowerCase)) .collect(Collectors.toList())) .falseRecommendationEntries(cdm.getFalseRecommendations() .stream() .filter(e -> !e.isDeleted()) .map(DictionaryEntry::getValue) - .sorted(Comparator.comparing(StringUtils::lowerCase)) + .sorted(Comparator.comparing(String::toLowerCase)) .collect(Collectors.toList())) .hexColor(entity.getHexColor()) .recommendationHexColor(entity.getRecommendationHexColor()) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java index 9ebe1ab82..59e2d9e6d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java @@ -380,10 +380,13 @@ public class DownloadPreparationService { } + @SneakyThrows private void storeZipFile(DownloadStatusEntity downloadStatus, FileSystemBackedArchiver fileSystemBackedArchiver) { long start = System.currentTimeMillis(); - fileManagementStorageService.storeObject(downloadStatus.getStorageId(), fileSystemBackedArchiver.toInputStream()); + try(var in = fileSystemBackedArchiver.toInputStream()) { + fileManagementStorageService.storeObject(downloadStatus.getStorageId(), in); + } log.info("Successfully stored zip for downloadId {}, took {}", downloadStatus.getStorageId(), System.currentTimeMillis() - start); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java index 2f97098fc..0463603d5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java @@ -1,5 +1,6 @@ package com.iqser.red.service.peristence.v1.server.integration.utils; +import com.iqser.red.commons.jackson.ObjectMapperFactory; import com.iqser.red.service.peristence.v1.server.Application; import com.iqser.red.service.peristence.v1.server.integration.client.ApplicationConfigClient; import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; @@ -23,6 +24,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog; import com.iqser.red.service.redaction.v1.model.DroolsSyntaxValidation; import com.iqser.red.storage.commons.service.StorageService; +import com.iqser.red.storage.commons.utils.FileSystemBackedStorageService; import com.knecon.fforesight.databasetenantcommons.providers.TenantCreatedListener; import com.knecon.fforesight.databasetenantcommons.providers.events.TenantCreatedEvent; import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; @@ -431,7 +433,7 @@ public abstract class AbstractPersistenceServerServiceTest { @Primary public StorageService inmemoryStorage() { - return new FileSystemBackedStorageService(); + return new FileSystemBackedStorageService(ObjectMapperFactory.create()); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/FileSystemBackedStorageService.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/FileSystemBackedStorageService.java deleted file mode 100644 index 0c9c61dd4..000000000 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/FileSystemBackedStorageService.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.iqser.red.service.peristence.v1.server.integration.utils; - -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.core.io.InputStreamResource; - -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; - -public class FileSystemBackedStorageService implements StorageService { - - private final Map dataMap = new HashMap<>(); - - - public FileSystemBackedStorageService() { - - } - - - @Override - @SneakyThrows - public void storeJSONObject(String tenantId, String objectId, T any) { - - File tempFile = File.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); - } - - - - @SneakyThrows - public void storeObject(String tenantId, String objectId, InputStream stream) { - - File tempFile = File.createTempFile("test", ".tmp"); - - try (var fileOutputStream = new FileOutputStream(tempFile)) { - IOUtils.copy(stream, fileOutputStream); - } - - dataMap.put(objectId, tempFile); - } - - - @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); - } - - - public List listPaths() { - - return new ArrayList<>(dataMap.keySet()); - } - - - public List listFilePaths() { - - return dataMap.values().stream().map(File::getAbsolutePath).collect(Collectors.toList()); - } - - - public void clearStorage() { - - this.dataMap.forEach((k, v) -> { - v.delete(); - }); - this.dataMap.clear(); - } - - @SneakyThrows - @Override - public InputStreamResource getObject(String tenantId, String objectId) { - - var res = dataMap.get(objectId); - if (res == null) { - throw new StorageObjectDoesNotExist(new RuntimeException()); - } - return new InputStreamResource(new FileInputStream(res)); - - } - -} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/utils/FileSystemBackArchiverTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/utils/FileSystemBackArchiverTest.java index cac42ce7f..bfc13d056 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/utils/FileSystemBackArchiverTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/utils/FileSystemBackArchiverTest.java @@ -44,8 +44,9 @@ public class FileSystemBackArchiverTest { var contentSize = fsba.getContentLength(); - try (FileOutputStream fos = new FileOutputStream(f)) { - IOUtils.copy(fsba.toInputStream(), fos); + try (FileOutputStream fos = new FileOutputStream(f); var in = fsba.toInputStream()) { + IOUtils.copy(in, fos); + log.info("File: {}", f.getAbsolutePath()); assertThat(f.length()).isEqualTo(contentSize); diff --git a/persistence-service-v1/pom.xml b/persistence-service-v1/pom.xml index afeaeb49d..e0282b76c 100755 --- a/persistence-service-v1/pom.xml +++ b/persistence-service-v1/pom.xml @@ -36,6 +36,7 @@ 4.29.0 4.13.0 3.10.0 + 2.45.0 -- 2.47.2 From 24af307fb7e61614e75485c7159b1728cd5867ac Mon Sep 17 00:00:00 2001 From: yhampe Date: Fri, 6 Oct 2023 11:56:50 +0200 Subject: [PATCH 2/2] added dependency to server pom --- .../persistence-service-server-v1/pom.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-server-v1/pom.xml b/persistence-service-v1/persistence-service-server-v1/pom.xml index 8cb35c186..e82f7af6f 100644 --- a/persistence-service-v1/persistence-service-server-v1/pom.xml +++ b/persistence-service-v1/persistence-service-server-v1/pom.xml @@ -23,7 +23,11 @@ persistence-service-processor-v1 ${project.version} - + + com.iqser.red.commons + storage-commons + ${storage.commons.version} + org.springframework.amqp -- 2.47.2