diff --git a/persistence-service-v1/persistence-service-processor-v1/pom.xml b/persistence-service-v1/persistence-service-processor-v1/pom.xml index c0bda2515..95c095dc3 100644 --- a/persistence-service-v1/persistence-service-processor-v1/pom.xml +++ b/persistence-service-v1/persistence-service-processor-v1/pom.xml @@ -19,7 +19,7 @@ 0.5.0 0.18.0 0.6.0 - 0.4.0 + 0.12.0 diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java index 879d295e0..65513a13d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java @@ -25,6 +25,8 @@ import java.util.stream.Collectors; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; +import org.apache.commons.compress.compressors.FileNameUtil; +import org.apache.commons.compress.utils.FileNameUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -215,10 +217,17 @@ public class DossierTemplateImportService { FileAttributesGeneralConfiguration fileAttributesGeneralConfiguration = objectMapper.readValue(bytes, FileAttributesGeneralConfiguration.class); importTemplateResult.setFileAttributesGeneralConfiguration(fileAttributesGeneralConfiguration); } else if (ze.getName().contains(ExportFilename.RULES.getFilename())) { - String rules = objectMapper.readValue(bytes, String.class); - importTemplateResult.setRuleSet(rules); + if(ze.getName().endsWith(".txt")) { + String rules = objectMapper.readValue(new String(bytes), String.class); + importTemplateResult.setRuleSet(rules); + }else if(ze.getName().endsWith(".drl")) { + String rules = new String(bytes); + importTemplateResult.setRuleSet(rules); + } else { + throw new BadRequestException("File is not in TXT or DRL format. "+ FileNameUtils.getExtension(ze.getName()) +" format is not supported."); + } } else if (ze.getName().contains(ExportFilename.COMPONENT_RULES.getFilename())) { - String rules = objectMapper.readValue(bytes, String.class); + String rules = objectMapper.readValue(new String(bytes), String.class); importTemplateResult.setComponentRuleSet(rules); } else if (ze.getName().contains(ExportFilename.DOSSIER_TYPE.getFilename())) { Type type = objectMapper.readValue(bytes, Type.class); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/export/DossierTemplateExportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/export/DossierTemplateExportService.java index 8d446586e..7e732520e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/export/DossierTemplateExportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/export/DossierTemplateExportService.java @@ -6,9 +6,12 @@ import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; +import java.nio.charset.StandardCharsets; import java.util.List; +import java.util.Locale; import java.util.stream.Collectors; +import org.apache.commons.text.StringEscapeUtils; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Service; @@ -55,6 +58,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import com.iqser.red.service.persistence.service.v1.api.shared.model.download.DownloadStatusValue; import jakarta.transaction.Transactional; +import liquibase.util.StringUtil; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -66,6 +70,7 @@ public class DossierTemplateExportService { private static final String JSON_EXT = ".json"; private static final String TXT_EXT = ".txt"; + private static final String RULE_EXT = ".drl"; private final DossierTemplatePersistenceService dossierTemplatePersistenceService; private final DownloadStatusPersistenceService downloadStatusPersistenceService; private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; @@ -173,8 +178,8 @@ public class DossierTemplateExportService { // add rule set var ruleSet = rulesPersistenceService.getRules(dossierTemplateId, RuleFileType.ENTITY); fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, - getFilename(ExportFilename.RULES, TXT_EXT), - objectMapper.writeValueAsBytes(ruleSet.getValue()))); + getFilename(ExportFilename.RULES, RULE_EXT), + ruleSet.getValue().getBytes(StandardCharsets.UTF_8))); // add component rule set try { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java index d35a78cff..3bf948eb5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java @@ -47,7 +47,7 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT @Disabled public void testLocalDossierTemplateImport() { - var importDir = new File("/Users/timobejan/work/dossier-templates-v2/dev"); + var importDir = new File("C:\\Users\\YannikHampe\\Downloads\\testing\\"); assertThat(importDir).isNotNull(); assertThat(importDir.exists()).isTrue(); diff --git a/publish-custom-docker-img.sh b/publish-custom-docker-img.sh index d5ff0a524..4f282415d 100755 --- a/publish-custom-docker-img.sh +++ b/publish-custom-docker-img.sh @@ -17,7 +17,7 @@ GIT_BRANCH=$(git symbolic-ref --short HEAD) # Get the first 5 characters of the commit hash GIT_COMMIT_HASH=$(git rev-parse --short=5 HEAD) # Create the image tag by combining branch and commit hash -IMAGE_TAG="${USER}-${GIT_BRANCH}-${GIT_COMMIT_HASH}" +IMAGE_TAG="${GIT_BRANCH}-${GIT_COMMIT_HASH}" IMAGE_NAME="$NEXUS_REPO/$IMAGE_NAME:$IMAGE_TAG" echo "Building docker image: {$IMAGE_NAME}"