From ea5c004c04e19ee6921f83e2fe152bce1cb27720 Mon Sep 17 00:00:00 2001 From: arolfes Date: Wed, 12 Apr 2023 09:22:43 +0200 Subject: [PATCH] Closes #2211 add master domain always to configured domains --- .../acceptance/TaskanaConfigurationTest.java | 4 +++- .../java/pro/taskana/TaskanaConfiguration.java | 17 +++++++++++++---- .../acceptance/config/TaskanaConfigAccTest.java | 4 +++- .../TaskanaInitializationExtensionTest.java | 10 ++++++---- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/lib/taskana-core-test/src/test/java/acceptance/TaskanaConfigurationTest.java b/lib/taskana-core-test/src/test/java/acceptance/TaskanaConfigurationTest.java index 082909692..7344bece2 100644 --- a/lib/taskana-core-test/src/test/java/acceptance/TaskanaConfigurationTest.java +++ b/lib/taskana-core-test/src/test/java/acceptance/TaskanaConfigurationTest.java @@ -4,6 +4,7 @@ import static java.util.function.Predicate.not; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN; import java.lang.reflect.Field; import java.lang.reflect.Method; @@ -155,7 +156,8 @@ class TaskanaConfigurationTest { verifyConfigurationValuesDifferFromDefaultConfiguration(configuration); // general configuration - assertThat(configuration.getDomains()).isEqualTo(Set.of("DOMAIN_A", "DOMAIN_B")); + assertThat(configuration.getDomains()) + .isEqualTo(List.of("DOMAIN_A", "DOMAIN_B", MASTER_DOMAIN)); assertThat(configuration.isEnforceServiceLevel()).isFalse(); // authentication configuration assertThat(configuration.getRoleMap()) diff --git a/lib/taskana-core/src/main/java/pro/taskana/TaskanaConfiguration.java b/lib/taskana-core/src/main/java/pro/taskana/TaskanaConfiguration.java index 9b2055670..2dbb21a2e 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/TaskanaConfiguration.java +++ b/lib/taskana-core/src/main/java/pro/taskana/TaskanaConfiguration.java @@ -1,5 +1,7 @@ package pro.taskana; +import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN; + import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; @@ -890,12 +892,11 @@ public class TaskanaConfiguration { throw new SystemException("separator file can't be null or empty"); } - if (LOGGER.isDebugEnabled()) { - LOGGER.debug( - "Reading taskana configuration from {} with separator {}", propertiesFile, separator); - } + LOGGER.debug( + "Reading taskana configuration from {} with separator {}", propertiesFile, separator); properties = loadProperties(propertiesFile); configureAnnotatedFields(separator, properties); + addMasterDomain(); return this; } @@ -1135,6 +1136,14 @@ public class TaskanaConfiguration { // endregion + private void addMasterDomain() { + // Master Domain is treat as empty string + // it must be always added to the configuration + if (!this.domains.contains(MASTER_DOMAIN)) { + this.domains.add(MASTER_DOMAIN); + } + } + private void configureAnnotatedFields(String separator, Map props) { final List fields = ReflectionUtil.retrieveAllFields(getClass()); for (Field field : fields) { diff --git a/lib/taskana-core/src/test/java/acceptance/config/TaskanaConfigAccTest.java b/lib/taskana-core/src/test/java/acceptance/config/TaskanaConfigAccTest.java index a5e422097..808632a2b 100644 --- a/lib/taskana-core/src/test/java/acceptance/config/TaskanaConfigAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/config/TaskanaConfigAccTest.java @@ -1,6 +1,7 @@ package acceptance.config; import static org.assertj.core.api.Assertions.assertThat; +import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -34,7 +35,8 @@ class TaskanaConfigAccTest { @Test void should_ConfigureDomains_For_DefaultPropertiesFile() { - assertThat(taskanaConfiguration.getDomains()).containsExactlyInAnyOrder("DOMAIN_A", "DOMAIN_B"); + assertThat(taskanaConfiguration.getDomains()) + .containsExactlyInAnyOrder("DOMAIN_A", "DOMAIN_B", MASTER_DOMAIN); } @Test diff --git a/lib/taskana-test-api/src/test/java/pro/taskana/testapi/TaskanaInitializationExtensionTest.java b/lib/taskana-test-api/src/test/java/pro/taskana/testapi/TaskanaInitializationExtensionTest.java index d49ad97a1..e47a76e0b 100644 --- a/lib/taskana-test-api/src/test/java/pro/taskana/testapi/TaskanaInitializationExtensionTest.java +++ b/lib/taskana-test-api/src/test/java/pro/taskana/testapi/TaskanaInitializationExtensionTest.java @@ -1,6 +1,7 @@ package pro.taskana.testapi; import static org.assertj.core.api.Assertions.assertThat; +import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN; import java.util.OptionalInt; import java.util.Set; @@ -22,7 +23,8 @@ class TaskanaInitializationExtensionTest { @Test void should_UseDefaultTaskanaEngine_When_TestIsCreated() { - assertThat(taskanaConfiguration.getDomains()).containsExactlyInAnyOrder("DOMAIN_A", "DOMAIN_B"); + assertThat(taskanaConfiguration.getDomains()) + .containsExactlyInAnyOrder("DOMAIN_A", "DOMAIN_B", MASTER_DOMAIN); } @Nested @@ -77,7 +79,7 @@ class TaskanaInitializationExtensionTest { @Test void should_UseDefaultTaskanaEngine_When_NestedClassDoesNotImplementModifier() { assertThat(taskanaConfiguration.getDomains()) - .containsExactlyInAnyOrder("DOMAIN_A", "DOMAIN_B"); + .containsExactlyInAnyOrder("DOMAIN_A", "DOMAIN_B", MASTER_DOMAIN); } } @@ -107,7 +109,7 @@ class TaskanaInitializationExtensionTest { @Test void should_UseDefaultTaskanaEngine_When_NestedClassDoesNotImplementModifier() { assertThat(taskanaConfiguration.getDomains()) - .containsExactlyInAnyOrder("DOMAIN_A", "DOMAIN_B"); + .containsExactlyInAnyOrder("DOMAIN_A", "DOMAIN_B", MASTER_DOMAIN); } class DummyPriorityServiceProvider implements PriorityServiceProvider { @@ -150,7 +152,7 @@ class TaskanaInitializationExtensionTest { @Test void should_UseDefaultTaskanaEngine_When_NestedClassDoesNotImplementModifier() { assertThat(taskanaConfiguration.getDomains()) - .containsExactlyInAnyOrder("DOMAIN_A", "DOMAIN_B"); + .containsExactlyInAnyOrder("DOMAIN_A", "DOMAIN_B", MASTER_DOMAIN); } class DummyPriorityServiceProvider implements PriorityServiceProvider {