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 7344bece2..487371723 100644 --- a/lib/taskana-core-test/src/test/java/acceptance/TaskanaConfigurationTest.java +++ b/lib/taskana-core-test/src/test/java/acceptance/TaskanaConfigurationTest.java @@ -92,7 +92,7 @@ class TaskanaConfigurationTest { // general configuration assertThat(configuration.isSecurityEnabled()).isTrue(); - assertThat(configuration.getDomains()).isEqualTo(Collections.emptySet()); + assertThat(configuration.getDomains()).isEqualTo(Collections.emptyList()); assertThat(configuration.isEnforceServiceLevel()).isTrue(); // authentication configuration assertThat(configuration.getRoleMap()) @@ -234,7 +234,7 @@ class TaskanaConfigurationTest { boolean expectedUseManagedTransactions = false; String expectedSchemaName = "TASKANA"; boolean expectedSecurityEnabled = false; - Set expectedDomains = Set.of("A", "B"); + List expectedDomains = List.of("A", "B"); boolean expectedEnforceServiceLevel = false; // authentication configuration @@ -430,7 +430,7 @@ class TaskanaConfigurationTest { TaskanaConfiguration configuration = new Builder(TestContainerExtension.createDataSourceForH2(), false, "TASKANA", false) // general configuration - .domains(Set.of("A", "B")) + .domains(List.of("A", "B")) .enforceServiceLevel(false) // authentication configuration .roleMap(Map.of(TaskanaRole.ADMIN, Set.of("admin"))) @@ -978,7 +978,7 @@ class TaskanaConfigurationTest { void should_MakeDomainUpperCase() { TaskanaConfiguration configuration = new Builder(TestContainerExtension.createDataSourceForH2(), false, "TASKANA") - .domains(Set.of("a", "b")) + .domains(List.of("a", "b")) .build(); assertThat(configuration.getDomains()).containsExactlyInAnyOrder("A", "B"); 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 2dbb21a2e..63130b464 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/TaskanaConfiguration.java +++ b/lib/taskana-core/src/main/java/pro/taskana/TaskanaConfiguration.java @@ -12,6 +12,7 @@ import java.time.Duration; import java.time.Instant; import java.time.LocalTime; import java.time.ZoneId; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -57,7 +58,7 @@ public class TaskanaConfiguration { private final String schemaName; private final boolean securityEnabled; - private final Set domains; + private final List domains; private final boolean enforceServiceLevel; // endregion @@ -132,7 +133,7 @@ public class TaskanaConfiguration { this.useManagedTransactions = builder.useManagedTransactions; this.schemaName = builder.schemaName; this.securityEnabled = builder.securityEnabled; - this.domains = Collections.unmodifiableSet(builder.domains); + this.domains = Collections.unmodifiableList(builder.domains); this.enforceServiceLevel = builder.enforceServiceLevel; // authentication configuration this.roleMap = @@ -239,7 +240,7 @@ public class TaskanaConfiguration { return securityEnabled; } - public Set getDomains() { + public List getDomains() { return domains; } @@ -615,7 +616,7 @@ public class TaskanaConfiguration { private final boolean securityEnabled; @TaskanaProperty("taskana.domains") - private Set domains = new HashSet<>(); + private List domains = new ArrayList<>(); @TaskanaProperty("taskana.servicelevel.validation.enforce") private boolean enforceServiceLevel = true; @@ -904,7 +905,7 @@ public class TaskanaConfiguration { // region general configuration - public Builder domains(Set domains) { + public Builder domains(List domains) { this.domains = domains; return this; } @@ -1139,6 +1140,7 @@ public class TaskanaConfiguration { private void addMasterDomain() { // Master Domain is treat as empty string // it must be always added to the configuration + // add the master domain always at the end of the list if (!this.domains.contains(MASTER_DOMAIN)) { this.domains.add(MASTER_DOMAIN); } @@ -1167,7 +1169,7 @@ public class TaskanaConfiguration { } private void adjustConfiguration() { - domains = domains.stream().map(String::toUpperCase).collect(Collectors.toSet()); + domains = domains.stream().map(String::toUpperCase).collect(Collectors.toList()); classificationTypes = classificationTypes.stream().map(String::toUpperCase).collect(Collectors.toSet()); classificationCategoriesByType = 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 e47a76e0b..2bf40cd36 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 @@ -3,8 +3,8 @@ package pro.taskana.testapi; import static org.assertj.core.api.Assertions.assertThat; import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN; +import java.util.List; import java.util.OptionalInt; -import java.util.Set; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; @@ -48,7 +48,7 @@ class TaskanaInitializationExtensionTest { @Override public TaskanaConfiguration.Builder modify(TaskanaConfiguration.Builder builder) { - return builder.domains(Set.of("A", "B")); + return builder.domains(List.of("A", "B")); } @Test diff --git a/rest/taskana-rest-spring/src/main/java/pro/taskana/common/rest/TaskanaEngineController.java b/rest/taskana-rest-spring/src/main/java/pro/taskana/common/rest/TaskanaEngineController.java index 8dbb2d176..9cf927674 100644 --- a/rest/taskana-rest-spring/src/main/java/pro/taskana/common/rest/TaskanaEngineController.java +++ b/rest/taskana-rest-spring/src/main/java/pro/taskana/common/rest/TaskanaEngineController.java @@ -1,5 +1,6 @@ package pro.taskana.common.rest; +import java.util.List; import java.util.Map; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; @@ -48,7 +49,7 @@ public class TaskanaEngineController { */ @GetMapping(path = RestEndpoints.URL_DOMAIN) @Transactional(readOnly = true, rollbackFor = Exception.class) - public ResponseEntity> getDomains() { + public ResponseEntity> getDomains() { return ResponseEntity.ok(taskanaConfiguration.getDomains()); }