TSK-987: Fix Spotbugs - Write to static field from instance method
This commit is contained in:
parent
1ddc5bbc95
commit
0d9ebe07c5
|
@ -1,5 +1,6 @@
|
|||
package pro.taskana.history;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.ServiceLoader;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -13,7 +14,7 @@ public final class HistoryEventProducer {
|
|||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(HistoryEventProducer.class);
|
||||
private static HistoryEventProducer singleton;
|
||||
private static boolean enabled = false;
|
||||
private boolean enabled = false;
|
||||
private ServiceLoader<TaskanaHistory> serviceLoader;
|
||||
|
||||
private HistoryEventProducer(TaskanaEngineConfiguration taskanaEngineConfiguration) {
|
||||
|
@ -37,7 +38,7 @@ public final class HistoryEventProducer {
|
|||
}
|
||||
|
||||
public static boolean isHistoryEnabled() {
|
||||
return enabled;
|
||||
return Objects.nonNull(singleton) && singleton.enabled;
|
||||
}
|
||||
|
||||
public void createEvent(TaskanaHistoryEvent event) {
|
||||
|
|
|
@ -21,8 +21,8 @@ public final class TaskRoutingManager {
|
|||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(TaskRoutingManager.class);
|
||||
private static TaskRoutingManager singleton;
|
||||
private static boolean enabled = false;
|
||||
private static List<TaskRoutingProvider> theTaskRoutingProviders = new ArrayList<>();
|
||||
private boolean enabled = false;
|
||||
private List<TaskRoutingProvider> theTaskRoutingProviders = new ArrayList<>();
|
||||
private ServiceLoader<TaskRoutingProvider> serviceLoader;
|
||||
|
||||
private TaskRoutingManager(TaskanaEngine taskanaEngine) {
|
||||
|
@ -48,7 +48,7 @@ public final class TaskRoutingManager {
|
|||
}
|
||||
|
||||
public static boolean isTaskRoutingEnabled() {
|
||||
return enabled;
|
||||
return Objects.nonNull(singleton) && singleton.enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -12,7 +12,7 @@ import java.time.LocalTime;
|
|||
import java.time.ZoneId;
|
||||
import java.util.List;
|
||||
import javax.sql.DataSource;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
|
@ -40,42 +40,38 @@ import pro.taskana.sampledata.SampleDataGenerator;
|
|||
*/
|
||||
class ClassificationServiceImplIntAutoCommitTest {
|
||||
|
||||
static int counter = 0;
|
||||
private DataSource dataSource;
|
||||
private ClassificationService classificationService;
|
||||
private TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
private TaskanaEngine taskanaEngine;
|
||||
private TaskanaEngineImpl taskanaEngineImpl;
|
||||
|
||||
@BeforeAll
|
||||
static void resetDb() {
|
||||
DataSource ds = TaskanaEngineTestConfiguration.getDataSource();
|
||||
String schemaName = TaskanaEngineTestConfiguration.getSchemaName();
|
||||
new SampleDataGenerator(ds, schemaName).dropDb();
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
void setup() throws SQLException {
|
||||
dataSource = TaskanaEngineTestConfiguration.getDataSource();
|
||||
|
||||
DataSource dataSource = TaskanaEngineTestConfiguration.getDataSource();
|
||||
String schemaName = TaskanaEngineTestConfiguration.getSchemaName();
|
||||
taskanaEngineConfiguration =
|
||||
TaskanaEngineConfiguration taskanaEngineConfiguration =
|
||||
new TaskanaEngineConfiguration(dataSource, false, false, schemaName);
|
||||
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
|
||||
TaskanaEngine taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
|
||||
classificationService = taskanaEngine.getClassificationService();
|
||||
taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
||||
TaskanaEngineImpl taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
||||
taskanaEngineImpl.setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT);
|
||||
new SampleDataGenerator(dataSource, schemaName).clearDb();
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void teardown() {
|
||||
DataSource dataSource = TaskanaEngineTestConfiguration.getDataSource();
|
||||
String schemaName = TaskanaEngineTestConfiguration.getSchemaName();
|
||||
new SampleDataGenerator(dataSource, schemaName).dropDb();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFindAllClassifications()
|
||||
throws ClassificationAlreadyExistException, NotAuthorizedException, DomainNotFoundException,
|
||||
InvalidArgumentException {
|
||||
Classification classification0 = this.createDummyClassificationWithUniqueKey("", "TASK");
|
||||
Classification classification0 = classificationService.newClassification("TEST1", "", "TASK");
|
||||
classificationService.createClassification(classification0);
|
||||
Classification classification1 = this.createDummyClassificationWithUniqueKey("", "TASK");
|
||||
Classification classification1 = classificationService.newClassification("TEST2", "", "TASK");
|
||||
classificationService.createClassification(classification1);
|
||||
Classification classification2 = this.createDummyClassificationWithUniqueKey("", "TASK");
|
||||
Classification classification2 = classificationService.newClassification("TEST3", "", "TASK");
|
||||
classification2.setParentId(classification0.getId());
|
||||
classificationService.createClassification(classification2);
|
||||
|
||||
|
@ -88,7 +84,8 @@ class ClassificationServiceImplIntAutoCommitTest {
|
|||
NotAuthorizedException, ConcurrencyException, DomainNotFoundException,
|
||||
InvalidArgumentException {
|
||||
final String description = "TEST SOMETHING";
|
||||
Classification classification = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "TASK");
|
||||
Classification classification =
|
||||
classificationService.newClassification("TEST434", "DOMAIN_A", "TASK");
|
||||
classification.setDescription("");
|
||||
classification = classificationService.createClassification(classification);
|
||||
classification.setDescription("TEST SOMETHING");
|
||||
|
@ -104,7 +101,8 @@ class ClassificationServiceImplIntAutoCommitTest {
|
|||
void testInsertClassification()
|
||||
throws NotAuthorizedException, ClassificationAlreadyExistException, InvalidArgumentException,
|
||||
DomainNotFoundException {
|
||||
Classification classification = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "TASK");
|
||||
Classification classification =
|
||||
classificationService.newClassification("TEST1333", "DOMAIN_A", "TASK");
|
||||
classificationService.createClassification(classification);
|
||||
|
||||
List<ClassificationSummary> list =
|
||||
|
@ -122,7 +120,8 @@ class ClassificationServiceImplIntAutoCommitTest {
|
|||
throws NotAuthorizedException, ClassificationAlreadyExistException,
|
||||
ClassificationNotFoundException, ConcurrencyException, DomainNotFoundException,
|
||||
InvalidArgumentException {
|
||||
Classification classification = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "TASK");
|
||||
Classification classification =
|
||||
classificationService.newClassification("TEST32451", "DOMAIN_A", "TASK");
|
||||
classification = classificationService.createClassification(classification);
|
||||
classification.setDescription("description");
|
||||
classification = classificationService.updateClassification(classification);
|
||||
|
@ -145,11 +144,12 @@ class ClassificationServiceImplIntAutoCommitTest {
|
|||
throws NotAuthorizedException, ClassificationAlreadyExistException,
|
||||
ClassificationNotFoundException, ConcurrencyException, DomainNotFoundException,
|
||||
InvalidArgumentException {
|
||||
Classification classification = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "TASK");
|
||||
Classification classification =
|
||||
classificationService.newClassification("TEST7771", "DOMAIN_A", "TASK");
|
||||
classification = classificationService.createClassification(classification);
|
||||
|
||||
Classification classification1 =
|
||||
this.createDummyClassificationWithUniqueKey("DOMAIN_A", "TASK");
|
||||
classificationService.newClassification("TEST1865", "DOMAIN_A", "TASK");
|
||||
classification1 = classificationService.createClassification(classification1);
|
||||
|
||||
classification1.setParentId(classification.getId());
|
||||
|
@ -190,11 +190,4 @@ class ClassificationServiceImplIntAutoCommitTest {
|
|||
LocalDateTime.of(LocalDate.now(), LocalTime.MAX).atZone(ZoneId.systemDefault()).toInstant();
|
||||
return new TimeInterval(begin, end);
|
||||
}
|
||||
|
||||
private Classification createDummyClassificationWithUniqueKey(String domain, String type) {
|
||||
Classification classification =
|
||||
classificationService.newClassification("TEST" + counter, domain, type);
|
||||
counter++;
|
||||
return classification;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,6 @@ import java.util.UUID;
|
|||
import javax.sql.DataSource;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
@ -69,22 +68,22 @@ import pro.taskana.security.WithAccessId;
|
|||
@ExtendWith(JaasExtension.class)
|
||||
class TaskServiceImplIntExplicitTest {
|
||||
|
||||
private static DataSource dataSource;
|
||||
private DataSource dataSource;
|
||||
|
||||
private static TaskServiceImpl taskServiceImpl;
|
||||
private TaskServiceImpl taskServiceImpl;
|
||||
|
||||
private static TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
private TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
|
||||
private static TaskanaEngine taskanaEngine;
|
||||
private TaskanaEngine taskanaEngine;
|
||||
|
||||
private static TaskanaEngineImpl taskanaEngineImpl;
|
||||
private TaskanaEngineImpl taskanaEngineImpl;
|
||||
|
||||
private static ClassificationService classificationService;
|
||||
private ClassificationService classificationService;
|
||||
|
||||
private static WorkbasketService workbasketService;
|
||||
private WorkbasketService workbasketService;
|
||||
|
||||
@BeforeAll
|
||||
static void setup() throws SQLException {
|
||||
@BeforeEach
|
||||
void setup() throws SQLException {
|
||||
String userHomeDirectory = System.getProperty("user.home");
|
||||
String propertiesFileName = userHomeDirectory + "/taskanaUnitTest.properties";
|
||||
|
||||
|
@ -108,10 +107,7 @@ class TaskServiceImplIntExplicitTest {
|
|||
DbSchemaCreator creator = new DbSchemaCreator(dataSource, connection.getSchema());
|
||||
creator.run();
|
||||
}
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
void resetDb() {
|
||||
String schemaName = TaskanaEngineTestConfiguration.getSchemaName();
|
||||
SampleDataGenerator sampleDataGenerator = new SampleDataGenerator(dataSource, schemaName);
|
||||
sampleDataGenerator.clearDb();
|
||||
|
@ -232,8 +228,9 @@ class TaskServiceImplIntExplicitTest {
|
|||
wb.setName("dummy-WB");
|
||||
wb.setType(WorkbasketType.PERSONAL);
|
||||
wb = workbasketService.createWorkbasket(wb);
|
||||
this.createWorkbasketWithSecurity(
|
||||
wb, CurrentUserContext.getUserid(), true, true, true, false);
|
||||
workbasketService.createWorkbasketAccessItem(
|
||||
this.createWorkbasketWithSecurity(
|
||||
wb, CurrentUserContext.getUserid(), true, true, true, false));
|
||||
Classification classification =
|
||||
classificationService.newClassification(
|
||||
UUID.randomUUID().toString(), wb.getDomain(), "t1"); // not persisted,
|
||||
|
@ -330,13 +327,15 @@ class TaskServiceImplIntExplicitTest {
|
|||
wb.setType(WorkbasketType.PERSONAL);
|
||||
Workbasket sourceWB = workbasketService.createWorkbasket(wb);
|
||||
|
||||
createWorkbasketWithSecurity(wb, wb.getOwner(), true, true, true, true);
|
||||
workbasketService.createWorkbasketAccessItem(
|
||||
createWorkbasketWithSecurity(wb, wb.getOwner(), true, true, true, true));
|
||||
connection.commit();
|
||||
Assertions.assertThrows(
|
||||
WorkbasketAccessItemAlreadyExistException.class,
|
||||
() ->
|
||||
createWorkbasketWithSecurity(
|
||||
sourceWB, sourceWB.getOwner(), false, false, false, false));
|
||||
workbasketService.createWorkbasketAccessItem(
|
||||
createWorkbasketWithSecurity(
|
||||
sourceWB, sourceWB.getOwner(), false, false, false, false)));
|
||||
connection.rollback();
|
||||
|
||||
// Destination Workbasket
|
||||
|
@ -347,8 +346,9 @@ class TaskServiceImplIntExplicitTest {
|
|||
wb.setType(WorkbasketType.TOPIC);
|
||||
|
||||
Workbasket destinationWB = workbasketService.createWorkbasket(wb);
|
||||
createWorkbasketWithSecurity(
|
||||
destinationWB, destinationWB.getOwner(), false, true, true, true);
|
||||
workbasketService.createWorkbasketAccessItem(
|
||||
createWorkbasketWithSecurity(
|
||||
destinationWB, destinationWB.getOwner(), false, true, true, true));
|
||||
|
||||
// Classification required for Task
|
||||
ClassificationImpl classification =
|
||||
|
@ -406,16 +406,16 @@ class TaskServiceImplIntExplicitTest {
|
|||
final String user = "User";
|
||||
|
||||
// Set up Security for this Test
|
||||
dataSource = TaskanaEngineTestConfiguration.getDataSource();
|
||||
taskanaEngineConfiguration =
|
||||
final DataSource dataSource = TaskanaEngineTestConfiguration.getDataSource();
|
||||
final TaskanaEngineConfiguration taskanaEngineConfiguration =
|
||||
new TaskanaEngineConfiguration(
|
||||
dataSource, false, true, TaskanaEngineTestConfiguration.getSchemaName());
|
||||
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
|
||||
taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
||||
final TaskanaEngine taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
|
||||
final TaskanaEngineImpl taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
||||
taskanaEngineImpl.setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT);
|
||||
taskServiceImpl = (TaskServiceImpl) taskanaEngine.getTaskService();
|
||||
classificationService = taskanaEngine.getClassificationService();
|
||||
workbasketService = taskanaEngine.getWorkbasketService();
|
||||
final TaskServiceImpl taskServiceImpl = (TaskServiceImpl) taskanaEngine.getTaskService();
|
||||
final ClassificationService classificationService = taskanaEngine.getClassificationService();
|
||||
final WorkbasketService workbasketService = taskanaEngine.getWorkbasketService();
|
||||
|
||||
ClassificationImpl classification =
|
||||
(ClassificationImpl) classificationService.newClassification("KEY", "DOMAIN_A", "TASK");
|
||||
|
@ -429,7 +429,8 @@ class TaskServiceImplIntExplicitTest {
|
|||
wb.setOwner(user);
|
||||
wb.setType(WorkbasketType.GROUP);
|
||||
WorkbasketImpl wbCreated = (WorkbasketImpl) workbasketService.createWorkbasket(wb);
|
||||
createWorkbasketWithSecurity(wbCreated, wbCreated.getOwner(), true, true, true, true);
|
||||
workbasketService.createWorkbasketAccessItem(
|
||||
createWorkbasketWithSecurity(wbCreated, wbCreated.getOwner(), true, true, true, true));
|
||||
|
||||
WorkbasketImpl wbNoAppend =
|
||||
(WorkbasketImpl) workbasketService.newWorkbasket("keyNoAppend", "DOMAIN_B");
|
||||
|
@ -440,8 +441,9 @@ class TaskServiceImplIntExplicitTest {
|
|||
wbNoAppend.setType(WorkbasketType.CLEARANCE);
|
||||
WorkbasketImpl wbNoAppendCreated =
|
||||
(WorkbasketImpl) workbasketService.createWorkbasket(wbNoAppend);
|
||||
createWorkbasketWithSecurity(
|
||||
wbNoAppendCreated, wbNoAppendCreated.getOwner(), true, true, false, true);
|
||||
workbasketService.createWorkbasketAccessItem(
|
||||
createWorkbasketWithSecurity(
|
||||
wbNoAppendCreated, wbNoAppendCreated.getOwner(), true, true, false, true));
|
||||
|
||||
WorkbasketImpl wbNoTransfer =
|
||||
(WorkbasketImpl) workbasketService.newWorkbasket("keyNoTransfer", "DOMAIN_A");
|
||||
|
@ -450,7 +452,9 @@ class TaskServiceImplIntExplicitTest {
|
|||
wbNoTransfer.setOwner(user);
|
||||
wbNoTransfer.setType(WorkbasketType.GROUP);
|
||||
wbNoTransfer = (WorkbasketImpl) workbasketService.createWorkbasket(wbNoTransfer);
|
||||
createWorkbasketWithSecurity(wbNoTransfer, wbNoTransfer.getOwner(), true, true, true, false);
|
||||
workbasketService.createWorkbasketAccessItem(
|
||||
createWorkbasketWithSecurity(
|
||||
wbNoTransfer, wbNoTransfer.getOwner(), true, true, true, false));
|
||||
|
||||
TaskImpl task = (TaskImpl) taskServiceImpl.newTask(wbCreated.getId());
|
||||
task.setName("Task Name");
|
||||
|
@ -520,21 +524,19 @@ class TaskServiceImplIntExplicitTest {
|
|||
return task;
|
||||
}
|
||||
|
||||
private void createWorkbasketWithSecurity(
|
||||
private WorkbasketAccessItem createWorkbasketWithSecurity(
|
||||
Workbasket wb,
|
||||
String accessId,
|
||||
boolean permOpen,
|
||||
boolean permRead,
|
||||
boolean permAppend,
|
||||
boolean permTransfer)
|
||||
throws InvalidArgumentException, NotAuthorizedException, WorkbasketNotFoundException,
|
||||
WorkbasketAccessItemAlreadyExistException {
|
||||
boolean permTransfer) {
|
||||
WorkbasketAccessItem accessItem =
|
||||
workbasketService.newWorkbasketAccessItem(wb.getId(), accessId);
|
||||
accessItem.setPermOpen(permOpen);
|
||||
accessItem.setPermRead(permRead);
|
||||
accessItem.setPermAppend(permAppend);
|
||||
accessItem.setPermTransfer(permTransfer);
|
||||
workbasketService.createWorkbasketAccessItem(accessItem);
|
||||
return accessItem;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,9 +22,9 @@ public class LdapCacheTestImpl implements LdapCache {
|
|||
* Dictionary is a {@link Map} collection that contains {@link AccessIdResource} as key (user) and
|
||||
* {@link List} as value (groups of which the user is a member) .
|
||||
*/
|
||||
private static Map<AccessIdResource, List<AccessIdResource>> users;
|
||||
private Map<AccessIdResource, List<AccessIdResource>> users;
|
||||
|
||||
private static List<AccessIdResource> accessIds =
|
||||
private List<AccessIdResource> accessIds =
|
||||
new ArrayList<>(
|
||||
Arrays.asList(
|
||||
new AccessIdResource("Martin, Rojas Miguel Angel", "user_1_1"),
|
||||
|
@ -298,7 +298,7 @@ public class LdapCacheTestImpl implements LdapCache {
|
|||
public List<AccessIdResource> findGroupsOfUser(
|
||||
String searchFor, int maxNumberOfReturnedAccessIds) {
|
||||
if (users == null) {
|
||||
addUsersToGroups();
|
||||
users = addUsersToGroups();
|
||||
}
|
||||
return findAcessIdResource(searchFor, maxNumberOfReturnedAccessIds, true);
|
||||
}
|
||||
|
@ -341,9 +341,9 @@ public class LdapCacheTestImpl implements LdapCache {
|
|||
return result;
|
||||
}
|
||||
|
||||
private void addUsersToGroups() {
|
||||
private Map<AccessIdResource, List<AccessIdResource>> addUsersToGroups() {
|
||||
List<AccessIdResource> groups = new ArrayList<>();
|
||||
users = new HashMap<>();
|
||||
Map<AccessIdResource, List<AccessIdResource>> users = new HashMap<>();
|
||||
|
||||
accessIds.forEach(
|
||||
item -> {
|
||||
|
@ -402,5 +402,6 @@ public class LdapCacheTestImpl implements LdapCache {
|
|||
}
|
||||
countUser = (countUser + 1) % 4;
|
||||
}
|
||||
return users;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,9 +20,9 @@ public class LdapCacheTestImpl implements LdapCache {
|
|||
* Dictionary is a {@link Map} collection that contains {@link AccessIdResource} as key (user) and
|
||||
* {@link List} as value (groups of which the user is a member) .
|
||||
*/
|
||||
private static Map<AccessIdResource, List<AccessIdResource>> users;
|
||||
private Map<AccessIdResource, List<AccessIdResource>> users;
|
||||
|
||||
private static List<AccessIdResource> accessIds =
|
||||
private List<AccessIdResource> accessIds =
|
||||
new ArrayList<>(
|
||||
Arrays.asList(
|
||||
new AccessIdResource("Martin, Rojas Miguel Angel", "user_1_1"),
|
||||
|
|
Loading…
Reference in New Issue