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