From 4dc77552f8c2a17b94adf5134d20ac44fde04499 Mon Sep 17 00:00:00 2001
From: Tobias Bruns <kontakt@tobias-bruns.de>
Date: Thu, 27 Mar 2025 15:32:38 +0100
Subject: [PATCH 1/7] OZG-7846 add test for form query

---
 .../VorgangHeaderRepositoryImplITCase.java    | 26 +++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangHeaderRepositoryImplITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangHeaderRepositoryImplITCase.java
index 98b94887d..e425348c4 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangHeaderRepositoryImplITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangHeaderRepositoryImplITCase.java
@@ -45,6 +45,7 @@ import de.ozgcloud.vorgang.clientattribute.ClientAttributeTestFactory;
 import de.ozgcloud.vorgang.clientattribute.ClientAttributesMap;
 import de.ozgcloud.vorgang.clientattribute.ClientAttributesMapTestFactory;
 import de.ozgcloud.vorgang.common.db.CriteriaUtil;
+import de.ozgcloud.vorgang.common.operator.OperatorTestFactory;
 import de.ozgcloud.vorgang.vorgang.Vorgang.Status;
 
 @DataITCase
@@ -166,6 +167,31 @@ class VorgangHeaderRepositoryImplITCase {
 			}
 		}
 
+		@Nested
+		class TestQueryForForm {
+			@BeforeEach
+			void initData() {
+				mongoOperations.save(VorgangTestFactory.create());
+			}
+
+			@Test
+			void shouldReturnTotalForForm() {
+				var query = FindVorgangRequestTestFactory.createBuilder()
+						.findVorgangQuery(FindVorgangQuery.builder()
+								.operator(OperatorTestFactory.createEqualOperatorBuilder()
+										.fieldPath("eingangs.header.formEngineName").operand(VorgangTestFactory.FORM_ENGINE_NAME).build())
+								.logicalOperator(FindVorgangQuery.LogicalOperator.AND).nestedQuery(
+										FindVorgangQuery.builder().operator(OperatorTestFactory.createEqualOperatorBuilder()
+												.fieldPath("eingangs.header.formId").operand(EingangHeaderTestFactory.FORM_ID).build()).build())
+								.build())
+						.build();
+
+				var result = repositoryImpl.findAll(query);
+
+				assertThat(result.getContent()).hasSize(1);
+			}
+		}
+
 		@Nested
 		class TestWithHasNextWiedervorlageFristFilter {
 
-- 
GitLab


From 54e83d48cea824e83f657923ff5838312678ea33 Mon Sep 17 00:00:00 2001
From: Tobias Bruns <kontakt@tobias-bruns.de>
Date: Wed, 2 Apr 2025 11:37:05 +0200
Subject: [PATCH 2/7] always check indexe

---
 .../vorgang/common/migration/M010_CreateIndexesInVorgang.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/common/migration/M010_CreateIndexesInVorgang.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/common/migration/M010_CreateIndexesInVorgang.java
index 172953ca2..45cf7dcd9 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/common/migration/M010_CreateIndexesInVorgang.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/common/migration/M010_CreateIndexesInVorgang.java
@@ -32,7 +32,7 @@ import io.mongock.api.annotations.ChangeUnit;
 import io.mongock.api.annotations.Execution;
 import io.mongock.api.annotations.RollbackExecution;
 
-@ChangeUnit(id = "2024-06-12 17:00:00 OZG-5661", order = "M010", author = "ebardin")
+@ChangeUnit(id = "2024-06-12 17:00:00 OZG-5661", order = "M010", author = "ebardin", runAlways = true)
 public class M010_CreateIndexesInVorgang { // NOSONAR
 
 	static final String COLLECTION_NAME = "vorgang";
-- 
GitLab


From f6dcd1e2eeb9f5507d6250a9fc4b45d21d6f711e Mon Sep 17 00:00:00 2001
From: Tobias Bruns <kontakt@tobias-bruns.de>
Date: Fri, 4 Apr 2025 09:13:28 +0200
Subject: [PATCH 3/7] OZG-8057 use nachrichtenmanager without osiv2

---
 vorgang-manager-server/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vorgang-manager-server/pom.xml b/vorgang-manager-server/pom.xml
index ac683e22c..fe0223614 100644
--- a/vorgang-manager-server/pom.xml
+++ b/vorgang-manager-server/pom.xml
@@ -54,7 +54,7 @@
 		<common-lib.version>4.12.0</common-lib.version>
 		<user-manager-interface.version>2.12.0</user-manager-interface.version>
 		<processor-manager.version>0.5.0</processor-manager.version>
-		<nachrichten-manager.version>2.19.0</nachrichten-manager.version>
+		<nachrichten-manager.version>2.20.0-OZG-8057_fix_access_prometheus-SNAPSHOT</nachrichten-manager.version>
 		<api-lib.version>0.16.0</api-lib.version>
 		<notification-manager.version>2.15.0</notification-manager.version>
 		<collaboration-manager.version>0.7.0</collaboration-manager.version>
-- 
GitLab


From 8de88cf6d0d3f60638537959fd73895826641d81 Mon Sep 17 00:00:00 2001
From: Tobias Bruns <kontakt@tobias-bruns.de>
Date: Fri, 4 Apr 2025 09:14:01 +0200
Subject: [PATCH 4/7] remvoe deprecated prometheus settings

---
 vorgang-manager-server/src/main/resources/application.yml | 2 --
 1 file changed, 2 deletions(-)

diff --git a/vorgang-manager-server/src/main/resources/application.yml b/vorgang-manager-server/src/main/resources/application.yml
index db37a3d59..015e7be74 100644
--- a/vorgang-manager-server/src/main/resources/application.yml
+++ b/vorgang-manager-server/src/main/resources/application.yml
@@ -69,8 +69,6 @@ management:
           - readinessState
           - mongo
       probes.enabled: true
-    prometheus:
-      enabled: true
   endpoints:
     web:
       exposure:
-- 
GitLab


From a365d21258c785508144a7ae9ea3e936a89f7e6e Mon Sep 17 00:00:00 2001
From: Tobias Bruns <kontakt@tobias-bruns.de>
Date: Fri, 4 Apr 2025 09:44:26 +0200
Subject: [PATCH 5/7] add timing metric for loading vorgangs

---
 vorgang-manager-base/pom.xml                              | 5 +++++
 .../ozgcloud/vorgang/VorgangManagerServerApplication.java | 8 ++++++++
 .../de/ozgcloud/vorgang/vorgang/VorgangHeaderService.java | 2 ++
 3 files changed, 15 insertions(+)

diff --git a/vorgang-manager-base/pom.xml b/vorgang-manager-base/pom.xml
index 25afbf64a..1f00b9076 100644
--- a/vorgang-manager-base/pom.xml
+++ b/vorgang-manager-base/pom.xml
@@ -60,6 +60,11 @@
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-validation</artifactId>
 		</dependency>
+		
+		<dependency>
+			<groupId>io.micrometer</groupId>
+			<artifactId>micrometer-core</artifactId>
+		</dependency>
 
 		<!-- TEST -->
 		<dependency>
diff --git a/vorgang-manager-base/src/main/java/de/ozgcloud/vorgang/VorgangManagerServerApplication.java b/vorgang-manager-base/src/main/java/de/ozgcloud/vorgang/VorgangManagerServerApplication.java
index 484b85638..8f5044126 100644
--- a/vorgang-manager-base/src/main/java/de/ozgcloud/vorgang/VorgangManagerServerApplication.java
+++ b/vorgang-manager-base/src/main/java/de/ozgcloud/vorgang/VorgangManagerServerApplication.java
@@ -42,6 +42,9 @@ import org.springframework.security.authentication.AuthenticationTrustResolver;
 import org.springframework.security.authentication.AuthenticationTrustResolverImpl;
 import org.springframework.security.concurrent.DelegatingSecurityContextRunnable;
 
+import io.micrometer.core.aop.TimedAspect;
+import io.micrometer.core.instrument.MeterRegistry;
+
 @SpringBootApplication(scanBasePackages = { "de.ozgcloud" })
 @EnableAsync(proxyTargetClass = true)
 @EnableScheduling
@@ -83,4 +86,9 @@ public class VorgangManagerServerApplication {
 		return eventMulticaster;
 	}
 
+	@Bean
+	TimedAspect timedAspect(MeterRegistry registry) {
+		return new TimedAspect(registry);
+	}
+
 }
\ No newline at end of file
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangHeaderService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangHeaderService.java
index b2d141da3..67364ff25 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangHeaderService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangHeaderService.java
@@ -34,6 +34,7 @@ import org.springframework.stereotype.Service;
 
 import de.ozgcloud.common.errorhandling.TechnicalException;
 import de.ozgcloud.vorgang.common.search.SearchService;
+import io.micrometer.core.annotation.Timed;
 
 @Service
 class VorgangHeaderService {
@@ -47,6 +48,7 @@ class VorgangHeaderService {
 	@Autowired(required = false)
 	private SearchService searchService;
 
+	@Timed("findAllVorgangs")
 	public Page<VorgangHeader> findAll(FindVorgangRequest request) {
 		if (nonNull(searchService) && nonNull(request.getSearchBy())) {
 			return removeUnpermitted(searchService.find(request));
-- 
GitLab


From 498ed9b47ad452f1d9e7f62c52e02b4ade04ee4b Mon Sep 17 00:00:00 2001
From: Tobias Bruns <kontakt@tobias-bruns.de>
Date: Thu, 10 Apr 2025 09:15:03 +0200
Subject: [PATCH 6/7] add metric

---
 .../vorgang/VorgangHeaderRepositoryImpl.java  | 24 ++++++++++---------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangHeaderRepositoryImpl.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangHeaderRepositoryImpl.java
index d1d32bd8f..9cb442e29 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangHeaderRepositoryImpl.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangHeaderRepositoryImpl.java
@@ -49,6 +49,7 @@ import org.springframework.data.mongodb.core.query.Query;
 
 import de.ozgcloud.vorgang.common.db.CriteriaUtil;
 import de.ozgcloud.vorgang.vorgang.FindVorgangRequest.OrderCriteria;
+import io.micrometer.core.annotation.Timed;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.log4j.Log4j2;
 
@@ -60,6 +61,7 @@ class VorgangHeaderRepositoryImpl implements CustomVorgangHeaderRepository {
 	@Autowired
 	private QueryCriteriaBuilder queryCriteriaBuilder;
 
+	@Timed("vorgang_repo_findAll")
 	@Override
 	public Page<VorgangHeader> findAll(FindVorgangRequest request) {
 		return checkAndExecuteRequest(request, buildFilterQuery(request.getFilterBy()));
@@ -179,17 +181,17 @@ class VorgangHeaderRepositoryImpl implements CustomVorgangHeaderRepository {
 
 		Aggregation build(OrderCriteria orderBy) {
 			switch (orderBy) {
-			case EA_PRIORITY:
-				return buildSortedByEAPriority();
-			case PRIORITY:
-				return buildSortedByPriority();
-			case CREATED_AT_DESC:
-				return buildSortedByCreatedAtDesc();
-			case NEXT_WIEDERVORLAGE_FRIST:
-				return buildSortedNextWiedervorlageFrist();
-			default:
-				LOG.warn("Unkown order by expression '{}'. Using default order.", orderBy);
-				return buildSortedByPriority();
+				case EA_PRIORITY:
+					return buildSortedByEAPriority();
+				case PRIORITY:
+					return buildSortedByPriority();
+				case CREATED_AT_DESC:
+					return buildSortedByCreatedAtDesc();
+				case NEXT_WIEDERVORLAGE_FRIST:
+					return buildSortedNextWiedervorlageFrist();
+				default:
+					LOG.warn("Unkown order by expression '{}'. Using default order.", orderBy);
+					return buildSortedByPriority();
 			}
 		}
 
-- 
GitLab


From 7b01a5835a330f5822762c72fe3c5bed3329a207 Mon Sep 17 00:00:00 2001
From: Tobias Bruns <kontakt@tobias-bruns.de>
Date: Thu, 10 Apr 2025 09:46:39 +0200
Subject: [PATCH 7/7] use last build nachrichten-manager

---
 vorgang-manager-server/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vorgang-manager-server/pom.xml b/vorgang-manager-server/pom.xml
index 4190328b9..8ed27a33d 100644
--- a/vorgang-manager-server/pom.xml
+++ b/vorgang-manager-server/pom.xml
@@ -54,7 +54,7 @@
 		<common-lib.version>4.13.0-SNAPSHOT</common-lib.version>
 		<user-manager-interface.version>2.12.0</user-manager-interface.version>
 		<processor-manager.version>0.5.0</processor-manager.version>
-		<nachrichten-manager.version>2.20.0-OZG-8057_fix_access_prometheus-SNAPSHOT</nachrichten-manager.version>
+		<nachrichten-manager.version>2.20.0-SNAPSHOT</nachrichten-manager.version>
 		<api-lib.version>0.16.0</api-lib.version>
 		<notification-manager.version>2.15.0</notification-manager.version>
 		<collaboration-manager.version>0.7.0</collaboration-manager.version>
-- 
GitLab