Closes #2211 domains are List instead of Set, because of sorting

This commit is contained in:
arolfes 2023-04-12 10:18:45 +02:00 committed by Alex
parent ea5c004c04
commit 54382bc8f5
4 changed files with 16 additions and 13 deletions

View File

@ -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<String> expectedDomains = Set.of("A", "B");
List<String> 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");

View File

@ -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<String> domains;
private final List<String> 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<String> getDomains() {
public List<String> getDomains() {
return domains;
}
@ -615,7 +616,7 @@ public class TaskanaConfiguration {
private final boolean securityEnabled;
@TaskanaProperty("taskana.domains")
private Set<String> domains = new HashSet<>();
private List<String> 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<String> domains) {
public Builder domains(List<String> 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 =

View File

@ -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

View File

@ -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<Set<String>> getDomains() {
public ResponseEntity<List<String>> getDomains() {
return ResponseEntity.ok(taskanaConfiguration.getDomains());
}