TSK-1886: add MASTER_DOMAIN into the SharedConstants class

This commit is contained in:
ryzheboka 2022-05-31 15:34:50 +02:00 committed by Elena Mokeeva
parent 39ee689851
commit 1b9794d34a
13 changed files with 75 additions and 45 deletions

View File

@ -3,6 +3,7 @@ package acceptance.classification.create;
import static java.util.Objects.nonNull;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
import java.time.Instant;
import java.util.Arrays;
@ -43,7 +44,8 @@ class CreateClassificationAccTest {
@WithAccessId(user = "businessadmin")
@Test
void should_OnlyCreateOneClassification_When_CreatingMasterClassification() throws Exception {
Classification classification = classificationService.newClassification("Key0", "", "TASK");
Classification classification =
classificationService.newClassification("Key0", MASTER_DOMAIN, "TASK");
classification = classificationService.createClassification(classification);
@ -62,7 +64,7 @@ class CreateClassificationAccTest {
ClassificationImpl expectedMasterClassification =
(ClassificationImpl) classification.copy("Key1");
expectedMasterClassification.setDomain("");
expectedMasterClassification.setDomain(MASTER_DOMAIN);
List<ClassificationSummary> classifications =
classificationService.createClassificationQuery().keyIn("Key1").list();
@ -81,7 +83,7 @@ class CreateClassificationAccTest {
Classification masterClassification =
DefaultTestEntities.defaultTestClassification()
.key("Key2")
.domain("")
.domain(MASTER_DOMAIN)
.type("TASK")
.buildAndStore(classificationService);
@ -222,7 +224,7 @@ class CreateClassificationAccTest {
@Test
void should_ThrowException_TryingToCreateClassificationWithInvalidParentKey() {
Classification classification =
classificationService.newClassification("KeyErrCreation", "", "TASK");
classificationService.newClassification("KeyErrCreation", MASTER_DOMAIN, "TASK");
classification.setParentKey("UNKNOWN_KEY");
assertThatThrownBy(() -> classificationService.createClassification(classification))
@ -233,7 +235,8 @@ class CreateClassificationAccTest {
@WithAccessId(user = "businessadmin")
@Test
void should_ThrowException_TryingToCreateClassificationWithInvalidParentId() {
Classification classification = classificationService.newClassification("KeyErr", "", "TASK");
Classification classification =
classificationService.newClassification("KeyErr", MASTER_DOMAIN, "TASK");
classification.setParentId("UNKNOWN_ID");
assertThatThrownBy(() -> classificationService.createClassification(classification))
@ -245,7 +248,8 @@ class CreateClassificationAccTest {
@Test
void should_ThrowException_TryingToCreateClassificationWithExplicitId() {
ClassificationImpl classification =
(ClassificationImpl) classificationService.newClassification("KeyErrCreation", "", "TASK");
(ClassificationImpl)
classificationService.newClassification("KeyErrCreation", MASTER_DOMAIN, "TASK");
classification.setId("EXPLICIT ID");
assertThatThrownBy(() -> classificationService.createClassification(classification))
@ -258,7 +262,7 @@ class CreateClassificationAccTest {
@TestTemplate
void should_ThrowException_When_UserRoleIsNotAdminOrBusinessAdmin(WithAccessId accessId) {
Classification classification =
classificationService.newClassification("KeyErrCreation", "", "TASK");
classificationService.newClassification("KeyErrCreation", MASTER_DOMAIN, "TASK");
MismatchedRoleException expectedException =
new MismatchedRoleException(accessId.user(), TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
@ -291,7 +295,8 @@ class CreateClassificationAccTest {
@Test
void should_SetDefaultServiceLevel_When_TryingToCreateClassificationWithEmptyServiceLevel()
throws Exception {
Classification classification = classificationService.newClassification("Key5", "", "TASK");
Classification classification =
classificationService.newClassification("Key5", MASTER_DOMAIN, "TASK");
classification.setServiceLevel("");
classification = classificationService.createClassification(classification);
@ -302,7 +307,8 @@ class CreateClassificationAccTest {
@WithAccessId(user = "businessadmin")
@Test
void should_SetDefaultValues_When_CreatingClassificationWithoutSpecificValues() throws Exception {
Classification classification = classificationService.newClassification("Key6", "", "TASK");
Classification classification =
classificationService.newClassification("Key6", MASTER_DOMAIN, "TASK");
classification = classificationService.createClassification(classification);
assertThat(classification.getServiceLevel()).isEqualTo("P0D");

View File

@ -1,5 +1,7 @@
package pro.taskana.classification.internal;
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
import java.sql.SQLException;
import java.sql.SQLIntegrityConstraintViolationException;
import java.time.Duration;
@ -75,7 +77,7 @@ public class ClassificationServiceImpl implements ClassificationService {
taskanaEngine.openConnection();
result = classificationMapper.findByKeyAndDomain(key, domain);
if (result == null) {
result = classificationMapper.findByKeyAndDomain(key, "");
result = classificationMapper.findByKeyAndDomain(key, MASTER_DOMAIN);
if (result == null) {
throw new ClassificationNotFoundException(key, domain);
}
@ -115,12 +117,12 @@ public class ClassificationServiceImpl implements ClassificationService {
throw new ClassificationNotFoundException(classificationId);
}
if (classification.getDomain().equals("")) {
if (classification.getDomain().equals(MASTER_DOMAIN)) {
// master mode - delete all associated classifications in every domain.
List<ClassificationSummary> classificationsInDomain =
createClassificationQuery().keyIn(classification.getKey()).list();
for (ClassificationSummary classificationInDomain : classificationsInDomain) {
if (!"".equals(classificationInDomain.getDomain())) {
if (!MASTER_DOMAIN.equals(classificationInDomain.getDomain())) {
deleteClassification(classificationInDomain.getId());
}
}
@ -138,7 +140,7 @@ public class ClassificationServiceImpl implements ClassificationService {
if (historyEventManager.isEnabled()) {
String details =
ObjectAttributeChangeDetector.determineChangesInAttributes(
classification, newClassification("", "", ""));
classification, newClassification("", MASTER_DOMAIN, ""));
historyEventManager.createEvent(
new ClassificationDeletedEvent(
@ -182,7 +184,7 @@ public class ClassificationServiceImpl implements ClassificationService {
InvalidArgumentException, MalformedServiceLevelException {
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
if (!taskanaEngine.domainExists(classification.getDomain())
&& !"".equals(classification.getDomain())) {
&& !MASTER_DOMAIN.equals(classification.getDomain())) {
throw new DomainNotFoundException(classification.getDomain());
}
ClassificationImpl classificationImpl;
@ -207,7 +209,7 @@ public class ClassificationServiceImpl implements ClassificationService {
if (historyEventManager.isEnabled()) {
String details =
ObjectAttributeChangeDetector.determineChangesInAttributes(
newClassification("", "", ""), classificationImpl);
newClassification("", MASTER_DOMAIN, ""), classificationImpl);
historyEventManager.createEvent(
new ClassificationCreatedEvent(
@ -359,17 +361,17 @@ public class ClassificationServiceImpl implements ClassificationService {
}
private void addClassificationToMasterDomain(ClassificationImpl classification) {
if (!Objects.equals(classification.getDomain(), "")) {
if (!Objects.equals(classification.getDomain(), MASTER_DOMAIN)) {
ClassificationImpl masterClassification = classification.copy(classification.getKey());
masterClassification.setId(
IdGenerator.generateWithPrefix(IdGenerator.ID_PREFIX_CLASSIFICATION));
masterClassification.setParentKey(classification.getParentKey());
masterClassification.setDomain("");
masterClassification.setDomain(MASTER_DOMAIN);
masterClassification.setIsValidInDomain(false);
try {
if (classification.getParentKey() != null && !classification.getParentKey().isEmpty()) {
masterClassification.setParentId(
getClassification(classification.getParentKey(), "").getId());
getClassification(classification.getParentKey(), MASTER_DOMAIN).getId());
}
this.getClassification(masterClassification.getKey(), masterClassification.getDomain());
throw new ClassificationAlreadyExistException(masterClassification);

View File

@ -0,0 +1,5 @@
package pro.taskana.common.api;
public class SharedConstants {
public static String MASTER_DOMAIN = "";
}

View File

@ -1,5 +1,7 @@
package pro.taskana.workbasket.internal;
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
@ -157,7 +159,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
if (historyEventManager.isEnabled()) {
String details =
ObjectAttributeChangeDetector.determineChangesInAttributes(
newWorkbasket("", ""), newWorkbasket);
newWorkbasket("", MASTER_DOMAIN), newWorkbasket);
historyEventManager.createEvent(
new WorkbasketCreatedEvent(
@ -818,7 +820,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
String details =
ObjectAttributeChangeDetector.determineChangesInAttributes(
workbasketToDelete, newWorkbasket("", ""));
workbasketToDelete, newWorkbasket("", MASTER_DOMAIN));
historyEventManager.createEvent(
new WorkbasketDeletedEvent(

View File

@ -1,5 +1,7 @@
package acceptance;
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
import java.time.Duration;
import java.time.Instant;
import java.util.ArrayList;
@ -35,7 +37,7 @@ public class CreateTaskModelHelper {
task.setExternalId(id);
task.setName(name);
task.setWorkbasketKey(workbasketKey);
task.setDomain("");
task.setDomain(MASTER_DOMAIN);
task.setAttachments(new ArrayList<>());
Instant now = Instant.now().minus(Duration.ofMinutes(1L));
task.setReceived(now);

View File

@ -2,6 +2,7 @@ package acceptance.classification.delete;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
import acceptance.AbstractAccTest;
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
@ -63,7 +64,8 @@ class DeleteClassificationAccTest extends AbstractAccTest {
@WithAccessId(user = "businessadmin")
@Test
void testThrowExeptionIfDeleteMasterClassificationWithExistingTasks() {
ThrowingCallable call = () -> classificationService.deleteClassification("L1050", "");
ThrowingCallable call =
() -> classificationService.deleteClassification("L1050", MASTER_DOMAIN);
assertThatThrownBy(call).isInstanceOf(ClassificationInUseException.class);
}
@ -71,7 +73,7 @@ class DeleteClassificationAccTest extends AbstractAccTest {
@Test
void testDeleteMasterClassification() throws Exception {
classificationService.deleteClassification("L3060", "");
classificationService.deleteClassification("L3060", MASTER_DOMAIN);
ThrowingCallable call = () -> classificationService.getClassification("L3060", "DOMAIN_A");
assertThatThrownBy(call).isInstanceOf(ClassificationNotFoundException.class);
}
@ -79,7 +81,8 @@ class DeleteClassificationAccTest extends AbstractAccTest {
@WithAccessId(user = "businessadmin")
@Test
void testDeleteMasterClassificationWithExistingAttachment() {
ThrowingCallable call = () -> classificationService.deleteClassification("L12010", "");
ThrowingCallable call =
() -> classificationService.deleteClassification("L12010", MASTER_DOMAIN);
assertThatThrownBy(call).isInstanceOf(ClassificationInUseException.class);
}
@ -93,10 +96,11 @@ class DeleteClassificationAccTest extends AbstractAccTest {
Classification rollback = classificationService.getClassification("L11010", "DOMAIN_A");
assertThat(rollback.getDomain()).isEqualTo("DOMAIN_A");
call = () -> classificationService.deleteClassification("L11010", "");
call = () -> classificationService.deleteClassification("L11010", MASTER_DOMAIN);
assertThatThrownBy(call).isInstanceOf(ClassificationInUseException.class);
Classification rollbackMaster = classificationService.getClassification("L11010", "");
Classification rollbackMaster =
classificationService.getClassification("L11010", MASTER_DOMAIN);
Classification rollbackA = classificationService.getClassification("L11010", "DOMAIN_A");
assertThat(rollbackA.getKey()).isEqualTo(rollbackMaster.getKey());
assertThat(rollbackA.getDomain()).isNotEqualTo(rollbackMaster.getDomain());
@ -106,7 +110,9 @@ class DeleteClassificationAccTest extends AbstractAccTest {
@Test
void testThrowClassificationNotFoundIfClassificationNotExists() {
ThrowingCallable call =
() -> classificationService.deleteClassification("not existing classification key", "");
() ->
classificationService.deleteClassification(
"not existing classification key", MASTER_DOMAIN);
assertThatThrownBy(call).isInstanceOf(ClassificationNotFoundException.class);
}

View File

@ -10,6 +10,7 @@ import static pro.taskana.classification.api.ClassificationCustomField.CUSTOM_5;
import static pro.taskana.classification.api.ClassificationCustomField.CUSTOM_6;
import static pro.taskana.classification.api.ClassificationCustomField.CUSTOM_7;
import static pro.taskana.classification.api.ClassificationCustomField.CUSTOM_8;
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
import acceptance.AbstractAccTest;
import java.util.List;
@ -121,7 +122,7 @@ class GetClassificationAccTest extends AbstractAccTest {
@Test
void testGetClassificationByNullKeyFails() {
ThrowingCallable call = () -> classificationService.getClassification(null, "");
ThrowingCallable call = () -> classificationService.getClassification(null, MASTER_DOMAIN);
assertThatThrownBy(call).isInstanceOf(ClassificationNotFoundException.class);
}
@ -142,7 +143,8 @@ class GetClassificationAccTest extends AbstractAccTest {
@Test
void testGetOneClassificationForMasterDomain() throws Exception {
Classification classification = classificationService.getClassification("L10000", "");
Classification classification =
classificationService.getClassification("L10000", MASTER_DOMAIN);
assertThat(classification).isNotNull();
assertThat(classification.getDomain()).isEmpty();
assertThat(classification.getPriority()).isEqualTo(999L);

View File

@ -16,6 +16,7 @@ import static pro.taskana.classification.api.ClassificationQueryColumnName.TYPE;
import static pro.taskana.classification.api.ClassificationQueryColumnName.VALID_IN_DOMAIN;
import static pro.taskana.common.api.BaseQuery.SortDirection.ASCENDING;
import static pro.taskana.common.api.BaseQuery.SortDirection.DESCENDING;
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
import acceptance.AbstractAccTest;
import java.text.Collator;
@ -62,17 +63,23 @@ class QueryClassificationAccTest extends AbstractAccTest {
assertThat(columnValueList).hasSize(2);
columnValueList =
classificationService.createClassificationQuery().domainIn("").listValues(TYPE, null);
classificationService
.createClassificationQuery()
.domainIn(MASTER_DOMAIN)
.listValues(TYPE, null);
assertThat(columnValueList).hasSize(2);
columnValueList =
classificationService.createClassificationQuery().domainIn("").listValues(CREATED, null);
classificationService
.createClassificationQuery()
.domainIn(MASTER_DOMAIN)
.listValues(CREATED, null);
assertThat(columnValueList).hasSize(1);
columnValueList =
classificationService
.createClassificationQuery()
.domainIn("")
.domainIn(MASTER_DOMAIN)
.validInDomainEquals(false)
.listValues(VALID_IN_DOMAIN, null);
assertThat(columnValueList).hasSize(1); // all are false in ""
@ -96,7 +103,7 @@ class QueryClassificationAccTest extends AbstractAccTest {
classificationService
.createClassificationQuery()
.keyIn("L10000")
.domainIn("DOMAIN_A", "DOMAIN_B", "")
.domainIn("DOMAIN_A", "DOMAIN_B", MASTER_DOMAIN)
.list();
assertThat(classifications).hasSize(2);

View File

@ -1,6 +1,7 @@
package acceptance.persistence;
import static org.assertj.core.api.Assertions.assertThat;
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
import acceptance.AbstractAccTest;
import java.time.Duration;
@ -116,7 +117,8 @@ class UpdateObjectsUseUtcTimeStampsAccTest extends AbstractAccTest {
ClassificationService classificationService = taskanaEngine.getClassificationService();
final long amountOfClassificationsBefore =
classificationService.createClassificationQuery().count();
Classification classification = classificationService.newClassification("Key0", "", "TASK");
Classification classification =
classificationService.newClassification("Key0", MASTER_DOMAIN, "TASK");
classification.setIsValidInDomain(true);
classification.setServiceLevel("P1D");
classification = classificationService.createClassification(classification);

View File

@ -1,35 +1,28 @@
# SLF4J's SimpleLogger configuration file
# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err.
# Default logging detail level for all instances of SimpleLogger.
# Must be one of ("trace", "debug", "info", "warn", or "error").
# If not specified, defaults to "info".
org.slf4j.simpleLogger.defaultLogLevel=info
# Logging detail level for a SimpleLogger instance named "xxxxx".
# Must be one of ("trace", "debug", "info", "warn", or "error").
# If not specified, the default logging detail level is used.
org.slf4j.simpleLogger.log.pro.taskana=info
org.slf4j.simpleLogger.log.org.apache.ibatis=info
# Set to true if you want the current date and time to be included in output messages.
# Default is false, and will output the number of milliseconds elapsed since startup.
org.slf4j.simpleLogger.showDateTime=true
# The date and time format to be used in the output messages.
# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat.
# If the format is not specified or is invalid, the default format is used.
# The default format is yyyy-MM-dd HH:mm:ss:SSS Z.
org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z
# Set to true if you want to output the current thread name.
# Defaults to true.
org.slf4j.simpleLogger.showThreadName=true
# Set to true if you want the Logger instance name to be included in output messages.
# Defaults to true.
#org.slf4j.simpleLogger.showLogName=true
# Set to true if you want the last component of the name to be included in output messages.
# Defaults to false.
org.slf4j.simpleLogger.showShortLogName=false

View File

@ -1,5 +1,6 @@
package pro.taskana.classification.rest;
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
import static pro.taskana.common.internal.util.CheckedConsumer.wrap;
import com.fasterxml.jackson.annotation.JsonProperty;
@ -143,7 +144,7 @@ public class ClassificationQueryFilterParameter
this.key = key;
this.category = category;
if (domain != null && domain.length == 0) {
this.domain = new String[] {""};
this.domain = new String[] {MASTER_DOMAIN};
} else {
this.domain = domain;
}

View File

@ -2,6 +2,7 @@ package pro.taskana.classification.rest;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
import static pro.taskana.common.test.rest.RestHelper.TEMPLATE;
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
@ -51,7 +52,7 @@ class ClassificationControllerIntTest {
assertThat(response.getBody()).isNotNull();
assertThat(response.getBody().getContent())
.extracting(ClassificationSummaryRepresentationModel::getDomain)
.containsOnly("");
.containsOnly(MASTER_DOMAIN);
}
@Test
@ -318,7 +319,7 @@ class ClassificationControllerIntTest {
for (ClassificationSummaryRepresentationModel classification :
response.getBody().getContent()) {
if ("NEW_CLASS_P2".equals(classification.getKey())
&& "".equals(classification.getDomain())
&& MASTER_DOMAIN.equals(classification.getDomain())
&& "T2100".equals(classification.getParentKey())) {
foundClassificationCreated = true;
break;

View File

@ -3,6 +3,7 @@ package pro.taskana.classification.rest;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
import static pro.taskana.common.test.rest.RestHelper.TEMPLATE;
import com.fasterxml.jackson.databind.ObjectMapper;
@ -200,7 +201,7 @@ class ClassificationDefinitionControllerIntTest {
@Test
void should_ThrowError_When_ImportModifiesTypeOfExistingClassification() throws Exception {
ClassificationRepresentationModel classification =
getClassificationWithKeyAndDomain("T6310", "");
getClassificationWithKeyAndDomain("T6310", MASTER_DOMAIN);
classification.setType("DOCUMENT");
ClassificationCollectionRepresentationModel clList =
new ClassificationCollectionRepresentationModel(List.of(classification));