diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/archivierung/ArchiveEventListener.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/archivierung/ArchiveEventListener.java index a9f8f1597ecea5baf104af9ec71cd9df88ed9157..1525b91fcbe26e08c3b1464869a5e23b8f380f41 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/archivierung/ArchiveEventListener.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/archivierung/ArchiveEventListener.java @@ -46,10 +46,10 @@ import de.ozgcloud.command.VorgangLockedEvent; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; -@Component() +@Component @RequiredArgsConstructor @Log4j2 -class ArchiveEventListener { +public class ArchiveEventListener { static final int MAXIMUM_CHECKS_FOR_PENDING_COMMANDS = 3; static final int WAIT_INTERVAL = 30 * 1000; @@ -57,10 +57,10 @@ class ArchiveEventListener { private static final String ERROR_MESSAGE_TEMPLATE = "Error on executing %s Command (id: %s)."; static final String ARCHIVE_VORGANG_ORDER = "ARCHIVE_VORGANG"; - private static final String IS_ARCHIVE_VORGANG_EVENT = "{T(de.ozgcloud.archive.vorgang.ArchiveEventListener).IS_ARCHIVE_VORGANG_COMMAND.test(event.getSource())}"; + private static final String IS_ARCHIVE_VORGANG_EVENT = "{T(de.ozgcloud.archive.archivierung.ArchiveEventListener).IS_ARCHIVE_VORGANG_COMMAND.test(event.getSource())}"; public static final Predicate<Command> IS_ARCHIVE_VORGANG_COMMAND = command -> ARCHIVE_VORGANG_ORDER.equals(command.getOrder()); - private static final String IS_LOCKED_BY_ARCHIVE_MANAGER_EVENT = "{T(de.ozgcloud.archive.vorgang.ArchiveEventListener)." + private static final String IS_LOCKED_BY_ARCHIVE_MANAGER_EVENT = "{T(de.ozgcloud.archive.archivierung.ArchiveEventListener)." + "IS_LOCK_BY_ARCHIVE_MANAGER_COMMAND.test(event.getCommand())}"; public static final Predicate<Command> IS_LOCK_BY_ARCHIVE_MANAGER_COMMAND = command -> CallContextUser.ARCHIVE_MANAGER_CLIENT_NAME .equals(command.getCreatedByClientName()); diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/archivierung/ArchiveService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/archivierung/ArchiveService.java index 63fca7efddfabb6dd7e6e108b5b6abc8aea1084e..dc45d255352044fa6b333ff08bc590851cb88274 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/archivierung/ArchiveService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/archivierung/ArchiveService.java @@ -1,3 +1,26 @@ +/* + * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den + * Ministerpräsidenten des Landes Schleswig-Holstein + * Staatskanzlei + * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung + * + * Lizenziert unter der EUPL, Version 1.2 oder - sobald + * diese von der Europäischen Kommission genehmigt wurden - + * Folgeversionen der EUPL ("Lizenz"); + * Sie dürfen dieses Werk ausschließlich gemäß + * dieser Lizenz nutzen. + * Eine Kopie der Lizenz finden Sie hier: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Sofern nicht durch anwendbare Rechtsvorschriften + * gefordert oder in schriftlicher Form vereinbart, wird + * die unter der Lizenz verbreitete Software "so wie sie + * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - + * ausdrücklich oder stillschweigend - verbreitet. + * Die sprachspezifischen Genehmigungen und Beschränkungen + * unter der Lizenz sind dem Lizenztext zu entnehmen. + */ package de.ozgcloud.archive.archivierung; import java.io.File; diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/xta/XtaConfiguration.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/xta/XtaConfiguration.java index 8ffe47ae143539920df0c69ab94c4d151e92e339..6126927c98b25edead404097d17a1c9d7eca965c 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/xta/XtaConfiguration.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/xta/XtaConfiguration.java @@ -40,7 +40,7 @@ class XtaConfiguration { .msgBoxServiceUrl(xtaProperties.getMsgBoxServiceUrl()) .clientCertKeystore(buildKeystore(xtaProperties.getKeyStore())) .trustStore(buildKeystore(xtaProperties.getTrustStore())) - .maxListItems(xtaProperties.getMaxListItems()) + .maxListItems(xtaProperties.getMaxLoadedMessages()) .clientIdentifiers(xtaProperties.getClientIdentifiers()) .build(); } diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/xta/XtaProperties.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/xta/XtaProperties.java index e1b051b98114510b95e5c0afe1207940dd301874..cc1882f2b59991063f2e33abf1f1707d31e3ea15 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/xta/XtaProperties.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/xta/XtaProperties.java @@ -35,11 +35,11 @@ public class XtaProperties { */ private String managementServiceUrl; /* - * Maximum number of Messages loaded from message box. + * Maximum number of messages loaded from message box. */ - private int maxListItems = 50; + private int maxLoadedMessages = 50; /* - * Reference to client certifiaction key store. + * Reference to client certification key store. */ private XtaClientKeyStore keyStore; /* @@ -47,7 +47,7 @@ public class XtaProperties { */ private XtaClientKeyStore trustStore; /* - * Client identifiers used to identify cleint at XTA adapter. + * Client identifiers used to identify client at XTA adapter. */ private List<XtaIdentifier> clientIdentifiers; /* diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/ArchiveEventListenerITCase.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/ArchiveEventListenerITCase.java index cffcb269ead361bc2637320cc9831cb7c232563b..121c50c0f22613bce9ecb97ce1ab1b2a560076c9 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/ArchiveEventListenerITCase.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/ArchiveEventListenerITCase.java @@ -23,6 +23,7 @@ */ package de.ozgcloud.archive.archivierung; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import org.junit.jupiter.api.Nested; @@ -31,6 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.context.ApplicationEventPublisher; +import de.ozgcloud.archive.common.callcontext.CallContextUser; import de.ozgcloud.command.Command; import de.ozgcloud.command.CommandCreatedEventTestFactory; import de.ozgcloud.command.CommandTestFactory; @@ -68,4 +70,30 @@ class ArchiveEventListenerITCase { verifyNoInteractions(eventListener); } } + + @Nested + class TestOnVorgangLockedEvent { + + private static final Command COMMAND = CommandTestFactory.createBuilder() + .createdByClientName(CallContextUser.ARCHIVE_MANAGER_CLIENT_NAME) + .build(); + + @Test + void shouldReactOnOrder() { + var event = VorgangLockedEventTestFactory.withCommand(COMMAND); + doNothing().when(eventListener).onVorgangLockedEvent(any()); + + publisher.publishEvent(event); + + verify(eventListener).onVorgangLockedEvent(event); + } + + @Test + void shouldNotReactOnOtherOrder() { + publisher + .publishEvent(VorgangLockedEventTestFactory.withCommand(CommandTestFactory.createBuilder().createdByClientName("OTHER").build())); + + verifyNoInteractions(eventListener); + } + } } \ No newline at end of file diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/VorgangLockedEventTestFactory.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/VorgangLockedEventTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..7fb4dc2005d62f7699d1d6c26ca2e41800df4afc --- /dev/null +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/VorgangLockedEventTestFactory.java @@ -0,0 +1,12 @@ +package de.ozgcloud.archive.archivierung; + +import de.ozgcloud.command.Command; +import de.ozgcloud.command.VorgangLockedEvent; + +public class VorgangLockedEventTestFactory { + + public static VorgangLockedEvent withCommand(Command command) { + return new VorgangLockedEvent(command); + } + +} diff --git a/pom.xml b/pom.xml index 0dab886bda9ecfa1081cf140e871707faac97992..2f8e05ec7188ed7f0f76945c904d73eb489ab225 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <vorgang-manager.version>2.18.0</vorgang-manager.version> <nachrichten-manager.version>2.15.0</nachrichten-manager.version> - <api-lib.version>0.16.0-PR-38-SNAPSHOT</api-lib.version> + <api-lib.version>0.16.0-SNAPSHOT</api-lib.version> <find-and-replace-maven-plugin.version>1.2.0</find-and-replace-maven-plugin.version> <protoc-jar-plugin.version>3.11.4</protoc-jar-plugin.version> <ozgcloud-common.version>4.7.0</ozgcloud-common.version>