From 271e293969fd50acf4a45d46ebf79f64849ae77c Mon Sep 17 00:00:00 2001
From: Mustapha Zorgati <15628173+mustaphazorgati@users.noreply.github.com>
Date: Thu, 18 Jul 2019 12:10:45 +0200
Subject: [PATCH] TSK-865: seperated taskanaEngine in two engines (internal +
external)
---
.../main/java/pro/taskana/TaskanaEngine.java | 57 +++++++
.../taskana/history/HistoryEventProducer.java | 34 ++---
...AbstractWorkbasketAccessItemQueryImpl.java | 8 +-
.../impl/CategoryReportBuilderImpl.java | 4 +-
.../taskana/impl/ClassificationQueryImpl.java | 14 +-
.../impl/ClassificationReportBuilderImpl.java | 6 +-
.../impl/ClassificationServiceImpl.java | 23 ++-
.../CustomFieldValueReportBuilderImpl.java | 4 +-
.../java/pro/taskana/impl/JobServiceImpl.java | 9 +-
.../impl/ObjectReferenceQueryImpl.java | 6 +-
.../taskana/impl/TaskMonitorServiceImpl.java | 19 +--
.../java/pro/taskana/impl/TaskQueryImpl.java | 44 +++---
.../pro/taskana/impl/TaskServiceImpl.java | 114 ++++++++------
.../impl/TaskStatusReportBuilderImpl.java | 8 +-
.../pro/taskana/impl/TaskanaEngineImpl.java | 142 +++++++++---------
.../impl/TimeIntervalReportBuilderImpl.java | 15 +-
.../impl/TimestampReportBuilderImpl.java | 4 +-
.../impl/WorkbasketAccessItemQueryImpl.java | 9 +-
.../pro/taskana/impl/WorkbasketQueryImpl.java | 12 +-
.../impl/WorkbasketReportBuilderImpl.java | 6 +-
.../taskana/impl/WorkbasketServiceImpl.java | 58 +++----
.../history/TaskEventProducerTest.java | 7 +-
.../acceptance/task/CreateTaskAccTest.java | 18 ++-
.../acceptance/task/QueryTasksAccTest.java | 21 ++-
.../impl/CategoryReportBuilderImplTest.java | 60 +++++---
.../impl/ClassificationQueryImplTest.java | 17 +--
.../ClassificationReportBuilderImplTest.java | 87 ++++++-----
.../impl/ClassificationServiceImplTest.java | 49 +-----
...CustomFieldValueReportBuilderImplTest.java | 47 +++---
.../impl/ObjectReferenceQueryImplTest.java | 3 +-
.../pro/taskana/impl/TaskQueryImplTest.java | 23 ++-
.../pro/taskana/impl/TaskServiceImplTest.java | 43 +++---
.../impl/TaskStatusReportBuilderImplTest.java | 32 ++--
.../impl/TaskanaEngineProxyForTest.java | 14 +-
.../WorkbasketAccessItemQueryImplTest.java | 17 +--
.../taskana/impl/WorkbasketQueryImplTest.java | 16 +-
.../impl/WorkbasketReportBuilderImplTest.java | 80 +++++-----
.../impl/WorkbasketServiceImplTest.java | 59 ++++----
...orkbasketServiceImplIntAutocommitTest.java | 11 +-
39 files changed, 635 insertions(+), 565 deletions(-)
diff --git a/lib/taskana-core/src/main/java/pro/taskana/TaskanaEngine.java b/lib/taskana-core/src/main/java/pro/taskana/TaskanaEngine.java
index b9cae36a0..91fb36cf5 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/TaskanaEngine.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/TaskanaEngine.java
@@ -2,8 +2,11 @@ package pro.taskana;
import java.sql.SQLException;
+import org.apache.ibatis.session.SqlSession;
+
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.NotAuthorizedException;
+import pro.taskana.history.HistoryEventProducer;
/**
* The TaskanaEngine represents an overall set of all needed services.
@@ -52,6 +55,12 @@ public interface TaskanaEngine {
*/
TaskanaEngineConfiguration getConfiguration();
+ /**
+ * The HistoryEventProducer events and emits them to the registered history service providers.
+ * @return The HistoryEventProducer
+ */
+ HistoryEventProducer getHistoryEventProducer();
+
/**
* sets the connection management mode for taskana.
*
@@ -112,4 +121,52 @@ public interface TaskanaEngine {
EXPLICIT
}
+ /**
+ * FOR INTERNAL USE ONLY.
+ *
+ * Contains all actions which are necessary within taskana.
+ */
+ interface Internal {
+
+ /**
+ * Opens the connection to the database. Has to be called at the begin of each Api call that accesses the database
+ */
+ void openConnection();
+
+ /**
+ * Returns the database connection into the pool. In the case of nested calls, simply pops the latest session from
+ * the session stack. Closes the connection if the session stack is empty. In mode AUTOCOMMIT commits before the
+ * connection is closed. To be called at the end of each Api call that accesses the database
+ */
+ void returnConnection();
+
+ /**
+ * Initializes the SqlSessionManager.
+ */
+ void initSqlSession();
+
+ /**
+ * Returns true if the given domain does exist in the configuration.
+ *
+ * @param domain
+ * the domain specified in the configuration
+ * @return true
if the domain exists
+ */
+ boolean domainExists(String domain);
+
+ /**
+ * retrieve the SqlSession used by taskana.
+ *
+ * @return the myBatis SqlSession object used by taskana
+ */
+ SqlSession getSqlSession();
+
+ /**
+ * Retrieve TaskanaEngine.
+ * @return The nested TaskanaEngine.
+ */
+ TaskanaEngine getEngine();
+
+ }
+
}
diff --git a/lib/taskana-core/src/main/java/pro/taskana/history/HistoryEventProducer.java b/lib/taskana-core/src/main/java/pro/taskana/history/HistoryEventProducer.java
index 757cc8044..2b7dad0e8 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/history/HistoryEventProducer.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/history/HistoryEventProducer.java
@@ -1,6 +1,5 @@
package pro.taskana.history;
-import java.util.Iterator;
import java.util.ServiceLoader;
import org.slf4j.Logger;
@@ -16,12 +15,22 @@ import pro.taskana.history.api.TaskanaHistoryEvent;
public final class HistoryEventProducer {
private static final Logger LOGGER = LoggerFactory.getLogger(HistoryEventProducer.class);
-
- TaskanaEngineConfiguration taskanaEngineConfiguration;
private static HistoryEventProducer emitterInstance;
private ServiceLoader serviceLoader;
private boolean enabled = false;
+ private HistoryEventProducer(TaskanaEngineConfiguration taskanaEngineConfiguration) {
+ serviceLoader = ServiceLoader.load(TaskanaHistory.class);
+ for (TaskanaHistory history : serviceLoader) {
+ history.initialize(taskanaEngineConfiguration);
+ LOGGER.info("Registered history provider: {}", history.getClass().getName());
+ enabled = true;
+ }
+ if (!enabled) {
+ LOGGER.info("No history provider found. Running without history.");
+ }
+ }
+
public static synchronized HistoryEventProducer getInstance(TaskanaEngineConfiguration taskanaEngineConfiguration) {
if (emitterInstance == null) {
emitterInstance = new HistoryEventProducer(taskanaEngineConfiguration);
@@ -39,23 +48,6 @@ public final class HistoryEventProducer {
public void createEvent(TaskanaHistoryEvent event) {
LOGGER.debug("Sending event to history service providers: {}", event);
- serviceLoader.forEach(historyProvider -> {
- historyProvider.create(event);
- });
- }
-
- private HistoryEventProducer(TaskanaEngineConfiguration taskanaEngineConfiguration) {
- this.taskanaEngineConfiguration = taskanaEngineConfiguration;
- serviceLoader = ServiceLoader.load(TaskanaHistory.class);
- Iterator serviceIterator = serviceLoader.iterator();
- while (serviceIterator.hasNext()) {
- TaskanaHistory history = serviceIterator.next();
- history.initialize(taskanaEngineConfiguration);
- LOGGER.info("Registered history provider: {}", history.getClass().getName());
- enabled = true;
- }
- if (!enabled) {
- LOGGER.info("No history provider found. Running without history.");
- }
+ serviceLoader.forEach(historyProvider -> historyProvider.create(event));
}
}
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/AbstractWorkbasketAccessItemQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/AbstractWorkbasketAccessItemQueryImpl.java
index 5b03cd090..01889bb7c 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/AbstractWorkbasketAccessItemQueryImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/AbstractWorkbasketAccessItemQueryImpl.java
@@ -33,12 +33,12 @@ abstract class AbstractWorkbasketAccessItemQueryImpl orderBy;
private List orderColumns;
- AbstractWorkbasketAccessItemQueryImpl(TaskanaEngine taskanaEngine) {
- this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
+ AbstractWorkbasketAccessItemQueryImpl(TaskanaEngine.Internal taskanaEngine) {
+ this.taskanaEngine = taskanaEngine;
orderBy = new ArrayList<>();
orderColumns = new ArrayList<>();
}
@@ -96,7 +96,7 @@ abstract class AbstractWorkbasketAccessItemQueryImpl orderBy;
private List orderColumns;
- ClassificationQueryImpl(TaskanaEngine taskanaEngine) {
- this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
+ ClassificationQueryImpl(TaskanaEngine.Internal taskanaEngine) {
+ this.taskanaEngine = taskanaEngine;
this.orderBy = new ArrayList<>();
this.orderColumns = new ArrayList<>();
}
@@ -241,7 +241,8 @@ public class ClassificationQueryImpl implements ClassificationQuery {
}
@Override
- public ClassificationQuery customAttributeLike(String number, String... customLike) throws InvalidArgumentException {
+ public ClassificationQuery customAttributeLike(String number, String... customLike)
+ throws InvalidArgumentException {
int num = 0;
try {
num = Integer.parseInt(number);
@@ -334,7 +335,8 @@ public class ClassificationQueryImpl implements ClassificationQuery {
}
@Override
- public ClassificationQuery orderByCustomAttribute(String number, SortDirection sortDirection) throws InvalidArgumentException {
+ public ClassificationQuery orderByCustomAttribute(String number, SortDirection sortDirection)
+ throws InvalidArgumentException {
int num = 0;
try {
num = Integer.parseInt(number);
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationReportBuilderImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationReportBuilderImpl.java
index 0a13e94d1..d910047e1 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationReportBuilderImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationReportBuilderImpl.java
@@ -26,7 +26,7 @@ public class ClassificationReportBuilderImpl
private static final Logger LOGGER = LoggerFactory.getLogger(ClassificationReport.Builder.class);
- ClassificationReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
+ ClassificationReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
super(taskanaEngine, taskMonitorMapper);
}
@@ -43,7 +43,7 @@ public class ClassificationReportBuilderImpl
@Override
public ClassificationReport buildReport() throws InvalidArgumentException, NotAuthorizedException {
LOGGER.debug("entry to buildReport(), this = {}", this);
- this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
+ this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
try {
this.taskanaEngine.openConnection();
ClassificationReport report = new ClassificationReport(this.columnHeaders);
@@ -62,7 +62,7 @@ public class ClassificationReportBuilderImpl
@Override
public DetailedClassificationReport buildDetailedReport() throws InvalidArgumentException, NotAuthorizedException {
LOGGER.debug("entry to buildDetailedReport(), this = {}", this);
- this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
+ this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
try {
this.taskanaEngine.openConnection();
DetailedClassificationReport report = new DetailedClassificationReport(this.columnHeaders);
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationServiceImpl.java
index 0bd218cb2..1210ab960 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationServiceImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationServiceImpl.java
@@ -43,12 +43,11 @@ public class ClassificationServiceImpl implements ClassificationService {
private static final Logger LOGGER = LoggerFactory.getLogger(ClassificationServiceImpl.class);
private ClassificationMapper classificationMapper;
private TaskMapper taskMapper;
- private TaskanaEngineImpl taskanaEngine;
+ private TaskanaEngine.Internal taskanaEngine;
- ClassificationServiceImpl(TaskanaEngine taskanaEngine, ClassificationMapper classificationMapper,
+ ClassificationServiceImpl(TaskanaEngine.Internal taskanaEngine, ClassificationMapper classificationMapper,
TaskMapper taskMapper) {
- super();
- this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
+ this.taskanaEngine = taskanaEngine;
this.classificationMapper = classificationMapper;
this.taskMapper = taskMapper;
}
@@ -79,7 +78,7 @@ public class ClassificationServiceImpl implements ClassificationService {
throws ClassificationAlreadyExistException, NotAuthorizedException,
DomainNotFoundException, InvalidArgumentException {
LOGGER.debug("entry to createClassification(classification = {})", classification);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
if (!taskanaEngine.domainExists(classification.getDomain()) && !"".equals(classification.getDomain())) {
throw new DomainNotFoundException(classification.getDomain(),
"Domain " + classification.getDomain() + " does not exist in the configuration.");
@@ -183,7 +182,7 @@ public class ClassificationServiceImpl implements ClassificationService {
public Classification updateClassification(Classification classification)
throws NotAuthorizedException, ConcurrencyException, ClassificationNotFoundException, InvalidArgumentException {
LOGGER.debug("entry to updateClassification(Classification = {})", classification);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
ClassificationImpl classificationImpl = null;
try {
taskanaEngine.openConnection();
@@ -256,13 +255,13 @@ public class ClassificationServiceImpl implements ClassificationService {
}
if (classification.getType() != null
- && !taskanaEngine.getConfiguration().getClassificationTypes().contains(classification.getType())) {
+ && !taskanaEngine.getEngine().getConfiguration().getClassificationTypes().contains(classification.getType())) {
throw new InvalidArgumentException("Given classification type " + classification.getType()
+ " is not valid according to the configuration.");
}
if (classification.getCategory() != null
- && !taskanaEngine.getConfiguration()
+ && !taskanaEngine.getEngine().getConfiguration()
.getClassificationCategoriesByType(classification.getType())
.contains(classification.getCategory())) {
throw new InvalidArgumentException(
@@ -355,7 +354,7 @@ public class ClassificationServiceImpl implements ClassificationService {
public void deleteClassification(String classificationKey, String domain)
throws ClassificationInUseException, ClassificationNotFoundException, NotAuthorizedException {
LOGGER.debug("entry to deleteClassification(key = {}, domain = {})", classificationKey, domain);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
try {
taskanaEngine.openConnection();
Classification classification = this.classificationMapper.findByKeyAndDomain(classificationKey, domain);
@@ -374,7 +373,7 @@ public class ClassificationServiceImpl implements ClassificationService {
public void deleteClassification(String classificationId)
throws ClassificationInUseException, ClassificationNotFoundException, NotAuthorizedException {
LOGGER.debug("entry to deleteClassification(id = {})", classificationId);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
try {
taskanaEngine.openConnection();
Classification classification = this.classificationMapper.findById(classificationId);
@@ -460,7 +459,7 @@ public class ClassificationServiceImpl implements ClassificationService {
*/
private void updateCategoryOnAssociatedTasks(ClassificationImpl classificationImpl,
Classification oldClassification) {
- List taskSummaries = taskanaEngine.getTaskService()
+ List taskSummaries = taskanaEngine.getEngine().getTaskService()
.createTaskQuery()
.classificationIdIn(oldClassification.getId())
.list();
@@ -515,7 +514,7 @@ public class ClassificationServiceImpl implements ClassificationService {
ScheduledJob job = new ScheduledJob();
job.setArguments(args);
job.setType(ScheduledJob.Type.CLASSIFICATIONCHANGEDJOB);
- taskanaEngine.getJobService().createJob(job);
+ taskanaEngine.getEngine().getJobService().createJob(job);
}
}
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/CustomFieldValueReportBuilderImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/CustomFieldValueReportBuilderImpl.java
index f0b819dbd..291dc0f4a 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/CustomFieldValueReportBuilderImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/CustomFieldValueReportBuilderImpl.java
@@ -27,7 +27,7 @@ public class CustomFieldValueReportBuilderImpl
private CustomField customField;
- CustomFieldValueReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper,
+ CustomFieldValueReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper,
CustomField customField) {
super(taskanaEngine, taskMonitorMapper);
this.customField = customField;
@@ -47,7 +47,7 @@ public class CustomFieldValueReportBuilderImpl
public CustomFieldValueReport buildReport()
throws InvalidArgumentException, NotAuthorizedException {
LOGGER.debug("entry to buildReport(customField = {}), this = {}", this.customField, this);
- this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR);
+ this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR);
try {
this.taskanaEngine.openConnection();
CustomFieldValueReport report = new CustomFieldValueReport(this.columnHeaders);
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/JobServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/JobServiceImpl.java
index 21d397fd6..49c167363 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/JobServiceImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/JobServiceImpl.java
@@ -21,11 +21,10 @@ public class JobServiceImpl implements JobService {
private static final Logger LOGGER = LoggerFactory.getLogger(JobServiceImpl.class);
private JobMapper jobMapper;
- private TaskanaEngineImpl taskanaEngineImpl;
+ private TaskanaEngine.Internal taskanaEngineImpl;
- public JobServiceImpl(TaskanaEngine taskanaEngine, JobMapper jobMapper) {
- super();
- this.taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
+ public JobServiceImpl(TaskanaEngine.Internal taskanaEngine, JobMapper jobMapper) {
+ this.taskanaEngineImpl = taskanaEngine;
this.jobMapper = jobMapper;
}
@@ -94,7 +93,7 @@ public class JobServiceImpl implements JobService {
if (job.getDue() == null) {
job.setDue(Instant.now());
}
- job.setRetryCount(taskanaEngineImpl.getConfiguration().getMaxNumberOfJobRetries());
+ job.setRetryCount(taskanaEngineImpl.getEngine().getConfiguration().getMaxNumberOfJobRetries());
LOGGER.debug("Job after initialization: {}", job);
return job;
}
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/ObjectReferenceQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/ObjectReferenceQueryImpl.java
index f555a5b21..21140f033 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/ObjectReferenceQueryImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/ObjectReferenceQueryImpl.java
@@ -27,7 +27,7 @@ public class ObjectReferenceQueryImpl implements ObjectReferenceQuery {
private static final String LINK_TO_COUNTER = "pro.taskana.mappings.QueryMapper.countQueryObjectReferences";
private static final String LINK_TO_VALUEMAPPER = "pro.taskana.mappings.QueryMapper.queryObjectReferenceColumnValues";
private static final Logger LOGGER = LoggerFactory.getLogger(ObjectReferenceQueryImpl.class);
- private TaskanaEngineImpl taskanaEngine;
+ private TaskanaEngine.Internal taskanaEngine;
private ObjectReferenceQueryColumnName columnName;
private String[] company;
private String[] system;
@@ -36,8 +36,8 @@ public class ObjectReferenceQueryImpl implements ObjectReferenceQuery {
private String[] value;
private List orderBy;
- ObjectReferenceQueryImpl(TaskanaEngine taskanaEngine) {
- this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
+ ObjectReferenceQueryImpl(TaskanaEngine.Internal taskanaEngine) {
+ this.taskanaEngine = taskanaEngine;
this.orderBy = new ArrayList<>();
}
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskMonitorServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskMonitorServiceImpl.java
index 0fe02d019..f2945a098 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskMonitorServiceImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskMonitorServiceImpl.java
@@ -2,6 +2,7 @@ package pro.taskana.impl;
import pro.taskana.CustomField;
import pro.taskana.TaskMonitorService;
+import pro.taskana.TaskanaEngine;
import pro.taskana.mappings.TaskMonitorMapper;
import pro.taskana.report.CategoryReport;
import pro.taskana.report.ClassificationReport;
@@ -15,43 +16,43 @@ import pro.taskana.report.WorkbasketReport;
*/
public class TaskMonitorServiceImpl implements TaskMonitorService {
- private TaskanaEngineImpl taskanaEngineImpl;
+ private TaskanaEngine.Internal taskanaEngine;
private TaskMonitorMapper taskMonitorMapper;
- TaskMonitorServiceImpl(TaskanaEngineImpl taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
+ TaskMonitorServiceImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
super();
- this.taskanaEngineImpl = taskanaEngine;
+ this.taskanaEngine = taskanaEngine;
this.taskMonitorMapper = taskMonitorMapper;
}
@Override
public WorkbasketReport.Builder createWorkbasketReportBuilder() {
- return new WorkbasketReportBuilderImpl(taskanaEngineImpl, taskMonitorMapper);
+ return new WorkbasketReportBuilderImpl(taskanaEngine, taskMonitorMapper);
}
@Override
public CategoryReport.Builder createCategoryReportBuilder() {
- return new CategoryReportBuilderImpl(taskanaEngineImpl, taskMonitorMapper);
+ return new CategoryReportBuilderImpl(taskanaEngine, taskMonitorMapper);
}
@Override
public ClassificationReport.Builder createClassificationReportBuilder() {
- return new ClassificationReportBuilderImpl(taskanaEngineImpl, taskMonitorMapper);
+ return new ClassificationReportBuilderImpl(taskanaEngine, taskMonitorMapper);
}
@Override
public CustomFieldValueReport.Builder createCustomFieldValueReportBuilder(CustomField customField) {
- return new CustomFieldValueReportBuilderImpl(taskanaEngineImpl, taskMonitorMapper, customField);
+ return new CustomFieldValueReportBuilderImpl(taskanaEngine, taskMonitorMapper, customField);
}
@Override
public TaskStatusReport.Builder createTaskStatusReportBuilder() {
- return new TaskStatusReportBuilderImpl(taskanaEngineImpl, taskMonitorMapper);
+ return new TaskStatusReportBuilderImpl(taskanaEngine, taskMonitorMapper);
}
@Override
public TimestampReport.Builder createTimestampReportBuilder() {
- return new TimestampReportBuilderImpl(taskanaEngineImpl, taskMonitorMapper);
+ return new TimestampReportBuilderImpl(taskanaEngine, taskMonitorMapper);
}
}
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java
index bcee8cf90..edaa7dcb6 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java
@@ -41,7 +41,7 @@ public class TaskQueryImpl implements TaskQuery {
private static final String TIME_INTERVAL = "TimeInterval ";
private static final String IS_INVALID = " is invalid.";
private static final Logger LOGGER = LoggerFactory.getLogger(TaskQueryImpl.class);
- private TaskanaEngineImpl taskanaEngine;
+ private TaskanaEngine.Internal taskanaEngine;
private TaskServiceImpl taskService;
private TaskQueryColumnName columnName;
private String[] nameIn;
@@ -146,9 +146,9 @@ public class TaskQueryImpl implements TaskQuery {
private boolean addClassificationNameToSelectClauseForOrdering = false;
private boolean addAttachmentClassificationNameToSelectClauseForOrdering = false;
- TaskQueryImpl(TaskanaEngine taskanaEngine) {
- this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
- this.taskService = (TaskServiceImpl) taskanaEngine.getTaskService();
+ TaskQueryImpl(TaskanaEngine.Internal taskanaEngine) {
+ this.taskanaEngine = taskanaEngine;
+ this.taskService = (TaskServiceImpl) taskanaEngine.getEngine().getTaskService();
this.orderBy = new ArrayList<>();
this.orderColumns = new ArrayList<>();
this.filterByAccessIdIn = true;
@@ -178,7 +178,6 @@ public class TaskQueryImpl implements TaskQuery {
return this;
}
-
@Override
public TaskQuery nameLike(String... names) {
this.nameLike = toUpperCopy(names);
@@ -698,23 +697,23 @@ public class TaskQueryImpl implements TaskQuery {
public TaskQuery orderByClassificationName(SortDirection sortDirection) {
joinWithClassifications = true;
addClassificationNameToSelectClauseForOrdering = true;
- return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
+ return this.taskanaEngine.getSqlSession().getConfiguration().getDatabaseId().equals("db2")
? addOrderCriteria("CNAME", sortDirection)
- : addOrderCriteria("c.NAME", sortDirection);
+ : addOrderCriteria("c.NAME", sortDirection);
}
@Override
public TaskQuery orderByAttachmentClassificationName(SortDirection sortDirection) {
joinWithAttachments = true;
addAttachmentClassificationNameToSelectClauseForOrdering = true;
- return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
+ return this.taskanaEngine.getSqlSession().getConfiguration().getDatabaseId().equals("db2")
? addOrderCriteria("ACNAME", sortDirection)
- : addOrderCriteria("ac.NAME", sortDirection);
+ : addOrderCriteria("ac.NAME", sortDirection);
}
@Override
public TaskQuery orderByClassificationKey(SortDirection sortDirection) {
- return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
+ return this.taskanaEngine.getSqlSession().getConfiguration().getDatabaseId().equals("db2")
? addOrderCriteria("TCLASSIFICATION_KEY", sortDirection)
: addOrderCriteria("t.CLASSIFICATION_KEY", sortDirection);
}
@@ -803,7 +802,7 @@ public class TaskQueryImpl implements TaskQuery {
public TaskQuery orderByAttachmentClassificationKey(SortDirection sortDirection) {
joinWithAttachments = true;
addAttachmentColumnsToSelectClauseForOrdering = true;
- return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
+ return this.taskanaEngine.getSqlSession().getConfiguration().getDatabaseId().equals("db2")
? addOrderCriteria("ACLASSIFICATION_KEY", sortDirection)
: addOrderCriteria("a.CLASSIFICATION_KEY", sortDirection);
}
@@ -812,7 +811,7 @@ public class TaskQueryImpl implements TaskQuery {
public TaskQuery orderByAttachmentClassificationId(SortDirection sortDirection) {
joinWithAttachments = true;
addAttachmentColumnsToSelectClauseForOrdering = true;
- return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
+ return this.taskanaEngine.getSqlSession().getConfiguration().getDatabaseId().equals("db2")
? addOrderCriteria("ACLASSIFICATION_ID", sortDirection)
: addOrderCriteria("a.CLASSIFICATION_ID", sortDirection);
}
@@ -976,19 +975,21 @@ public class TaskQueryImpl implements TaskQuery {
}
public String getLinkToMapperScript() {
- return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
+ return this.taskanaEngine
+ .getSqlSession()
+ .getConfiguration().getDatabaseId().equals("db2")
? LINK_TO_MAPPER_DB2
: LINK_TO_MAPPER;
}
public String getLinkToCounterTaskScript() {
- return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
+ return this.taskanaEngine.getSqlSession().getConfiguration().getDatabaseId().equals("db2")
? LINK_TO_COUNTER_DB2
: LINK_TO_COUNTER;
}
private void setupAccessIds() {
- if (taskanaEngine.isUserInRole(TaskanaRole.ADMIN) || !filterByAccessIdIn) {
+ if (taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN) || !filterByAccessIdIn) {
this.accessIdIn = null;
} else if (this.accessIdIn == null) {
String[] accessIds = new String[0];
@@ -1154,7 +1155,7 @@ public class TaskQueryImpl implements TaskQuery {
}
private void checkOpenAndReadPermissionForSpecifiedWorkbaskets() {
- if (taskanaEngine.isUserInRole(TaskanaRole.ADMIN)) {
+ if (taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN)) {
LOGGER.debug("Skipping permissions check since user is in role ADMIN.");
return;
}
@@ -1178,7 +1179,7 @@ public class TaskQueryImpl implements TaskQuery {
private void checkOpenAndReadPermissionById(String workbasketId) throws NotAuthorizedException {
try {
- taskanaEngine.getWorkbasketService().checkAuthorization(workbasketId,
+ taskanaEngine.getEngine().getWorkbasketService().checkAuthorization(workbasketId,
WorkbasketPermission.OPEN, WorkbasketPermission.READ);
} catch (WorkbasketNotFoundException e) {
LOGGER.warn("The workbasket with the ID '" + workbasketId + "' does not exist.", e);
@@ -1187,7 +1188,7 @@ public class TaskQueryImpl implements TaskQuery {
private void checkOpenAndReadPermissionByKeyDomain(KeyDomain keyDomain) throws NotAuthorizedException {
try {
- taskanaEngine.getWorkbasketService().checkAuthorization(keyDomain.getKey(),
+ taskanaEngine.getEngine().getWorkbasketService().checkAuthorization(keyDomain.getKey(),
keyDomain.getDomain(), WorkbasketPermission.OPEN, WorkbasketPermission.READ);
} catch (WorkbasketNotFoundException e) {
LOGGER.warn("The workbasket with the KEY '" + keyDomain.getKey() + "' and DOMAIN '"
@@ -1195,10 +1196,6 @@ public class TaskQueryImpl implements TaskQuery {
}
}
- public TaskanaEngineImpl getTaskanaEngine() {
- return taskanaEngine;
- }
-
public String[] getTaskIds() {
return taskIds;
}
@@ -1634,7 +1631,8 @@ public class TaskQueryImpl implements TaskQuery {
return addClassificationNameToSelectClauseForOrdering;
}
- public void setAddClassificationNameToSelectClauseForOrdering(boolean addClassificationNameToSelectClauseForOrdering) {
+ public void setAddClassificationNameToSelectClauseForOrdering(
+ boolean addClassificationNameToSelectClauseForOrdering) {
this.addClassificationNameToSelectClauseForOrdering = addClassificationNameToSelectClauseForOrdering;
}
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskServiceImpl.java
index 04524824d..dbb79c3ad 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskServiceImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskServiceImpl.java
@@ -11,6 +11,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
+import java.util.stream.IntStream;
import org.apache.ibatis.exceptions.PersistenceException;
import org.slf4j.Logger;
@@ -19,6 +20,7 @@ import org.slf4j.LoggerFactory;
import pro.taskana.Attachment;
import pro.taskana.BulkOperationResults;
import pro.taskana.Classification;
+import pro.taskana.ClassificationService;
import pro.taskana.ClassificationSummary;
import pro.taskana.ObjectReference;
import pro.taskana.Task;
@@ -79,17 +81,17 @@ public class TaskServiceImpl implements TaskService {
private static final String ID_PREFIX_BUSINESS_PROCESS = "BPI";
private static final String MUST_NOT_BE_EMPTY = " must not be empty";
private static final Duration MAX_DURATION = Duration.ofSeconds(Long.MAX_VALUE, 999_999_999);
- private static final Set ALLOWED_KEYS = new HashSet<>(
- Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"));
+ private static final Set ALLOWED_KEYS =
+ IntStream.rangeClosed(1, 16).mapToObj(String::valueOf).collect(Collectors.toSet());
private DaysToWorkingDaysConverter converter;
- private TaskanaEngineImpl taskanaEngine;
+ private TaskanaEngine.Internal taskanaEngine;
private WorkbasketService workbasketService;
- private ClassificationServiceImpl classificationService;
+ private ClassificationService classificationService;
private TaskMapper taskMapper;
private AttachmentMapper attachmentMapper;
private HistoryEventProducer historyEventProducer;
- TaskServiceImpl(TaskanaEngine taskanaEngine, TaskMapper taskMapper,
+ TaskServiceImpl(TaskanaEngine.Internal taskanaEngine, TaskMapper taskMapper,
AttachmentMapper attachmentMapper) {
super();
try {
@@ -98,12 +100,12 @@ public class TaskServiceImpl implements TaskService {
} catch (InvalidArgumentException e) {
throw new SystemException("Internal error. Cannot initialize DaysToWorkingDaysConverter", e.getCause());
}
- this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
+ this.taskanaEngine = taskanaEngine;
this.taskMapper = taskMapper;
- this.workbasketService = taskanaEngine.getWorkbasketService();
+ this.workbasketService = taskanaEngine.getEngine().getWorkbasketService();
this.attachmentMapper = attachmentMapper;
- this.classificationService = (ClassificationServiceImpl) taskanaEngine.getClassificationService();
- this.historyEventProducer = ((TaskanaEngineImpl) taskanaEngine).getHistoryEventProducer();
+ this.classificationService = taskanaEngine.getEngine().getClassificationService();
+ this.historyEventProducer = taskanaEngine.getEngine().getHistoryEventProducer();
}
@Override
@@ -237,7 +239,8 @@ public class TaskServiceImpl implements TaskService {
if (msg != null
&& (msg.contains("violation") || msg.contains("violates"))
&& msg.contains("external_id")) {
- throw new TaskAlreadyExistException("Task with external id " + task.getExternalId() + " already exists");
+ throw new TaskAlreadyExistException(
+ "Task with external id " + task.getExternalId() + " already exists");
} else {
throw e;
}
@@ -280,7 +283,8 @@ public class TaskServiceImpl implements TaskService {
List classifications;
classifications = findClassificationForTaskImplAndAttachments(resultTask, attachmentImpls);
- List attachments = addClassificationSummariesToAttachments(attachmentImpls, classifications);
+ List attachments = addClassificationSummariesToAttachments(attachmentImpls,
+ classifications);
resultTask.setAttachments(attachments);
String classificationId = resultTask.getClassificationSummary().getId();
@@ -413,7 +417,8 @@ public class TaskServiceImpl implements TaskService {
try {
taskanaEngine.openConnection();
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to transferTasks(targetWbId = {}, taskIds = {})", destinationWorkbasketId, LoggerUtils.listToString(taskIds));
+ LOGGER.debug("entry to transferTasks(targetWbId = {}, taskIds = {})", destinationWorkbasketId,
+ LoggerUtils.listToString(taskIds));
}
// Check pre-conditions with trowing Exceptions
@@ -426,7 +431,8 @@ public class TaskServiceImpl implements TaskService {
return transferTasks(taskIds, destinationWorkbasket);
} finally {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("exit from transferTasks(targetWbKey = {}, taskIds = {})", destinationWorkbasketId, LoggerUtils.listToString(taskIds));
+ LOGGER.debug("exit from transferTasks(targetWbKey = {}, taskIds = {})", destinationWorkbasketId,
+ LoggerUtils.listToString(taskIds));
}
taskanaEngine.returnConnection();
@@ -440,7 +446,8 @@ public class TaskServiceImpl implements TaskService {
try {
taskanaEngine.openConnection();
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to transferTasks(targetWbKey = {}, domain = {}, taskIds = {})", destinationWorkbasketKey,
+ LOGGER.debug("entry to transferTasks(targetWbKey = {}, domain = {}, taskIds = {})",
+ destinationWorkbasketKey,
destinationWorkbasketDomain, LoggerUtils.listToString(taskIds));
}
@@ -455,7 +462,8 @@ public class TaskServiceImpl implements TaskService {
return transferTasks(taskIds, destinationWorkbasket);
} finally {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("exit from transferTasks(targetWbKey = {}, targetWbDomain = {}, destination taskIds = {})", destinationWorkbasketKey,
+ LOGGER.debug("exit from transferTasks(targetWbKey = {}, targetWbDomain = {}, destination taskIds = {})",
+ destinationWorkbasketKey,
destinationWorkbasketDomain, LoggerUtils.listToString(taskIds));
}
@@ -609,7 +617,8 @@ public class TaskServiceImpl implements TaskService {
changedTasks = taskSummaries.stream().map(TaskSummary::getTaskId).collect(Collectors.toList());
taskMapper.updateTasks(changedTasks, updated, fieldSelector);
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("updateTasks() updated the following tasks: {} ", LoggerUtils.listToString(changedTasks));
+ LOGGER.debug("updateTasks() updated the following tasks: {} ",
+ LoggerUtils.listToString(changedTasks));
}
} else {
@@ -645,7 +654,8 @@ public class TaskServiceImpl implements TaskService {
changedTasks = taskSummaries.stream().map(TaskSummary::getTaskId).collect(Collectors.toList());
taskMapper.updateTasks(changedTasks, updatedTask, fieldSelector);
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("updateTasks() updated the following tasks: {} ", LoggerUtils.listToString(changedTasks));
+ LOGGER.debug("updateTasks() updated the following tasks: {} ",
+ LoggerUtils.listToString(changedTasks));
}
} else {
@@ -697,7 +707,7 @@ public class TaskServiceImpl implements TaskService {
task.setTransferred(false);
String creator = CurrentUserContext.getUserid();
- if (taskanaEngine.getConfiguration().isSecurityEnabled() && creator == null) {
+ if (taskanaEngine.getEngine().getConfiguration().isSecurityEnabled() && creator == null) {
throw new SystemException(
"TaskanaSecurity is enabled, but the current UserId is NULL while creating a Task.");
}
@@ -747,7 +757,7 @@ public class TaskServiceImpl implements TaskService {
}
- if (task.getName() == null && classification != null) {
+ if (task.getName() == null && classification != null) {
task.setName(classification.getName());
}
@@ -761,7 +771,8 @@ public class TaskServiceImpl implements TaskService {
Workbasket destinationWorkbasket)
throws InvalidArgumentException, WorkbasketNotFoundException, NotAuthorizedException {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to transferTasks(taskIdsToBeTransferred = {}, destinationWorkbasket = {})", LoggerUtils.listToString(taskIdsToBeTransferred), destinationWorkbasket);
+ LOGGER.debug("entry to transferTasks(taskIdsToBeTransferred = {}, destinationWorkbasket = {})",
+ LoggerUtils.listToString(taskIdsToBeTransferred), destinationWorkbasket);
}
workbasketService.checkAuthorization(destinationWorkbasket.getId(), WorkbasketPermission.APPEND);
@@ -795,7 +806,8 @@ public class TaskServiceImpl implements TaskService {
private void removeNonExistingTasksFromTaskIdList(List taskIds,
BulkOperationResults bulkLog) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to removeNonExistingTasksFromTaskIdList(targetWbId = {}, taskIds = {})", taskIds, bulkLog);
+ LOGGER.debug("entry to removeNonExistingTasksFromTaskIdList(targetWbId = {}, taskIds = {})", taskIds,
+ bulkLog);
}
Iterator taskIdIterator = taskIds.iterator();
@@ -813,7 +825,8 @@ public class TaskServiceImpl implements TaskService {
private void checkIfTransferConditionsAreFulfilled(List taskIds, List taskSummaries,
BulkOperationResults bulkLog) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to checkIfTransferConditionsAreFulfilled(taskIds = {}, taskSummaries = {}, bulkLog = {})",
+ LOGGER.debug(
+ "entry to checkIfTransferConditionsAreFulfilled(taskIds = {}, taskSummaries = {}, bulkLog = {})",
LoggerUtils.listToString(taskIds), LoggerUtils.listToString(taskSummaries), bulkLog);
}
@@ -837,8 +850,10 @@ public class TaskServiceImpl implements TaskService {
private void checkIfTasksMatchTransferCriteria(List taskIds, List taskSummaries,
List sourceWorkbaskets, BulkOperationResults bulkLog) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to checkIfTasksMatchTransferCriteria(taskIds = {}, taskSummaries = {}, sourceWorkbaskets = {}, bulkLog = {})",
- LoggerUtils.listToString(taskIds), LoggerUtils.listToString(taskSummaries), LoggerUtils.listToString(sourceWorkbaskets), bulkLog);
+ LOGGER.debug(
+ "entry to checkIfTasksMatchTransferCriteria(taskIds = {}, taskSummaries = {}, sourceWorkbaskets = {}, bulkLog = {})",
+ LoggerUtils.listToString(taskIds), LoggerUtils.listToString(taskSummaries),
+ LoggerUtils.listToString(sourceWorkbaskets), bulkLog);
}
Iterator taskIdIterator = taskIds.iterator();
@@ -935,7 +950,8 @@ public class TaskServiceImpl implements TaskService {
private void updateTasksToBeCompleted(List taskIds,
List taskSummaries) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to updateTasksToBeCompleted(taskIds = {}, taskSummaries = {})", LoggerUtils.listToString(taskIds), LoggerUtils.listToString(taskSummaries));
+ LOGGER.debug("entry to updateTasksToBeCompleted(taskIds = {}, taskSummaries = {})",
+ LoggerUtils.listToString(taskIds), LoggerUtils.listToString(taskSummaries));
}
if (!taskIds.isEmpty() && !taskSummaries.isEmpty()) {
@@ -985,7 +1001,8 @@ public class TaskServiceImpl implements TaskService {
private void addClassificationSummariesToTaskSummaries(List tasks,
List classifications) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to addClassificationSummariesToTaskSummaries(tasks = {}, classifications = {})", LoggerUtils.listToString(tasks), LoggerUtils.listToString(classifications));
+ LOGGER.debug("entry to addClassificationSummariesToTaskSummaries(tasks = {}, classifications = {})",
+ LoggerUtils.listToString(tasks), LoggerUtils.listToString(classifications));
}
if (tasks == null || tasks.isEmpty()) {
@@ -1096,8 +1113,10 @@ public class TaskServiceImpl implements TaskService {
private void addAttachmentSummariesToTaskSummaries(List taskSummaries,
List attachmentSummaries, List classifications) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to addAttachmentSummariesToTaskSummaries(taskSummaries = {}, attachmentSummaries = {}, classifications = {})",
- LoggerUtils.listToString(taskSummaries), LoggerUtils.listToString(attachmentSummaries), LoggerUtils.listToString(classifications));
+ LOGGER.debug(
+ "entry to addAttachmentSummariesToTaskSummaries(taskSummaries = {}, attachmentSummaries = {}, classifications = {})",
+ LoggerUtils.listToString(taskSummaries), LoggerUtils.listToString(attachmentSummaries),
+ LoggerUtils.listToString(classifications));
}
if (taskSummaries == null || taskSummaries.isEmpty()) {
@@ -1181,7 +1200,8 @@ public class TaskServiceImpl implements TaskService {
private TaskImpl initUpdatedTask(Map customFieldsToUpdate, CustomPropertySelector fieldSelector)
throws InvalidArgumentException {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to initUpdatedTask(customFieldsToUpdate = {}, fieldSelector = {})", LoggerUtils.mapToString(customFieldsToUpdate), fieldSelector);
+ LOGGER.debug("entry to initUpdatedTask(customFieldsToUpdate = {}, fieldSelector = {})",
+ LoggerUtils.mapToString(customFieldsToUpdate), fieldSelector);
}
TaskImpl newTask = new TaskImpl();
@@ -1201,7 +1221,8 @@ public class TaskServiceImpl implements TaskService {
private void validateCustomFields(Map customFieldsToUpdate) throws InvalidArgumentException {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to validateCustomFields(customFieldsToUpdate = {}, taskIds = {})", LoggerUtils.mapToString(customFieldsToUpdate));
+ LOGGER.debug("entry to validateCustomFields(customFieldsToUpdate = {}, taskIds = {})",
+ LoggerUtils.mapToString(customFieldsToUpdate));
}
if (customFieldsToUpdate == null || customFieldsToUpdate.isEmpty()) {
@@ -1296,9 +1317,8 @@ public class TaskServiceImpl implements TaskService {
} else {
ClassificationSummary classificationSummary = attachment.getClassificationSummary();
if (classificationSummary != null) {
- PrioDurationHolder newPrioDuraton = getNewPrioDuration(actualPrioDuration,
+ actualPrioDuration = getNewPrioDuration(actualPrioDuration,
classificationSummary.getPriority(), classificationSummary.getServiceLevel());
- actualPrioDuration = newPrioDuraton;
}
}
return actualPrioDuration;
@@ -1405,7 +1425,8 @@ public class TaskServiceImpl implements TaskService {
private PrioDurationHolder handleAttachmentsOnTaskUpdate(TaskImpl oldTaskImpl, TaskImpl newTaskImpl)
throws AttachmentPersistenceException {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to handleAttachmentsOnTaskUpdate(oldTaskImpl = {}, newTaskImpl = {})", oldTaskImpl, newTaskImpl);
+ LOGGER.debug("entry to handleAttachmentsOnTaskUpdate(oldTaskImpl = {}, newTaskImpl = {})", oldTaskImpl,
+ newTaskImpl);
}
PrioDurationHolder prioDuration = new PrioDurationHolder(MAX_DURATION, Integer.MIN_VALUE);
@@ -1415,7 +1436,8 @@ public class TaskServiceImpl implements TaskService {
while (i.hasNext()) {
Attachment attachment = i.next();
if (attachment != null) {
- prioDuration = handlePrioDurationOfOneAttachmentOnTaskUpdate(oldTaskImpl, newTaskImpl, prioDuration, attachment);
+ prioDuration = handlePrioDurationOfOneAttachmentOnTaskUpdate(oldTaskImpl, newTaskImpl, prioDuration,
+ attachment);
} else {
i.remove();
}
@@ -1433,7 +1455,8 @@ public class TaskServiceImpl implements TaskService {
private void deleteAttachmentOnTaskUpdate(TaskImpl oldTaskImpl, TaskImpl newTaskImpl) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to deleteAttachmentOnTaskUpdate(oldTaskImpl = {}, newTaskImpl = {})", oldTaskImpl, newTaskImpl);
+ LOGGER.debug("entry to deleteAttachmentOnTaskUpdate(oldTaskImpl = {}, newTaskImpl = {})", oldTaskImpl,
+ newTaskImpl);
}
for (Attachment oldAttachment : oldTaskImpl.getAttachments()) {
@@ -1491,7 +1514,7 @@ public class TaskServiceImpl implements TaskService {
ClassificationSummary classification = attachment.getClassificationSummary();
if (classification != null) {
- prioDuration = getNewPrioDuration(prioDuration,
+ prioDuration = getNewPrioDuration(prioDuration,
classification.getPriority(), classification.getServiceLevel());
}
@@ -1556,11 +1579,12 @@ public class TaskServiceImpl implements TaskService {
LOGGER.debug("exit from handleAttachmentsOnClassificationUpdate(), returning {}", prioDuration);
return prioDuration;
- }
+ }
private PrioDurationHolder getNewPrioDuration(PrioDurationHolder prioDurationHolder, int prioFromClassification,
String serviceLevelFromClassification) {
- LOGGER.debug("entry to getNewPrioDuration(prioDurationHolder = {}, prioFromClassification = {}, serviceLevelFromClassification = {})",
+ LOGGER.debug(
+ "entry to getNewPrioDuration(prioDurationHolder = {}, prioFromClassification = {}, serviceLevelFromClassification = {})",
prioDurationHolder, prioFromClassification, serviceLevelFromClassification);
Duration minDuration = prioDurationHolder.getDuration();
int maxPrio = prioDurationHolder.getPrio();
@@ -1832,7 +1856,7 @@ public class TaskServiceImpl implements TaskService {
private void deleteTask(String taskId, boolean forceDelete)
throws TaskNotFoundException, InvalidStateException, NotAuthorizedException {
LOGGER.debug("entry to deleteTask(taskId = {} , forceDelete = {})", taskId, forceDelete);
- taskanaEngine.checkRoleMembership(TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.ADMIN);
TaskImpl task = null;
try {
taskanaEngine.openConnection();
@@ -1877,7 +1901,8 @@ public class TaskServiceImpl implements TaskService {
List augmentTaskSummariesByContainedSummaries(List taskSummaries) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("entry to augmentTaskSummariesByContainedSummaries(taskSummaries= {})", LoggerUtils.listToString(taskSummaries));
+ LOGGER.debug("entry to augmentTaskSummariesByContainedSummaries(taskSummaries= {})",
+ LoggerUtils.listToString(taskSummaries));
}
List result = new ArrayList<>();
@@ -1909,6 +1934,7 @@ public class TaskServiceImpl implements TaskService {
* @author bbr
*/
static class PrioDurationHolder {
+
private Duration duration;
private int prio;
@@ -1923,14 +1949,14 @@ public class TaskServiceImpl implements TaskService {
return duration;
}
- public int getPrio() {
- return prio;
- }
-
public void setDuration(Duration duration) {
this.duration = duration;
}
+ public int getPrio() {
+ return prio;
+ }
+
public void setPrio(int prio) {
this.prio = prio;
}
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskStatusReportBuilderImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskStatusReportBuilderImpl.java
index 292d64ea8..1054b71c5 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskStatusReportBuilderImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskStatusReportBuilderImpl.java
@@ -19,13 +19,13 @@ import pro.taskana.report.TaskStatusReport;
public class TaskStatusReportBuilderImpl implements TaskStatusReport.Builder {
private static final Logger LOGGER = LoggerFactory.getLogger(TaskStatusReportBuilderImpl.class);
- private TaskanaEngineImpl taskanaEngine;
+ private TaskanaEngine.Internal taskanaEngine;
private TaskMonitorMapper taskMonitorMapper;
private List domains;
private List states;
- TaskStatusReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
- this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
+ TaskStatusReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
+ this.taskanaEngine = taskanaEngine;
this.taskMonitorMapper = taskMonitorMapper;
}
@@ -44,7 +44,7 @@ public class TaskStatusReportBuilderImpl implements TaskStatusReport.Builder {
@Override
public TaskStatusReport buildReport() throws NotAuthorizedException {
LOGGER.debug("entry to buildReport(), this = {}", this);
- this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
+ this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
try {
this.taskanaEngine.openConnection();
List tasks = this.taskMonitorMapper.getTasksCountByState(this.domains, this.states);
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskanaEngineImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskanaEngineImpl.java
index 692fb1727..f5dc04bd3 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskanaEngineImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskanaEngineImpl.java
@@ -63,12 +63,14 @@ public class TaskanaEngineImpl implements TaskanaEngine {
protected ConnectionManagementMode mode = ConnectionManagementMode.PARTICIPATE;
protected java.sql.Connection connection = null;
protected HistoryEventProducer historyEventProducer;
+ private Internal internal;
protected TaskanaEngineImpl(TaskanaEngineConfiguration taskanaEngineConfiguration) {
this.taskanaEngineConfiguration = taskanaEngineConfiguration;
createTransactionFactory(taskanaEngineConfiguration.getUseManagedTransactions());
this.sessionManager = createSqlSessionManager();
this.historyEventProducer = HistoryEventProducer.getInstance(taskanaEngineConfiguration);
+ this.internal = new Internal();
}
public static TaskanaEngine createTaskanaEngine(TaskanaEngineConfiguration taskanaEngineConfiguration) {
@@ -130,21 +132,21 @@ public class TaskanaEngineImpl implements TaskanaEngine {
@Override
public TaskService getTaskService() {
SqlSession session = this.sessionManager;
- return new TaskServiceImpl(this, session.getMapper(TaskMapper.class),
+ return new TaskServiceImpl(internal, session.getMapper(TaskMapper.class),
session.getMapper(AttachmentMapper.class));
}
@Override
public TaskMonitorService getTaskMonitorService() {
SqlSession session = this.sessionManager;
- return new TaskMonitorServiceImpl(this,
+ return new TaskMonitorServiceImpl(internal,
session.getMapper(TaskMonitorMapper.class));
}
@Override
public WorkbasketService getWorkbasketService() {
SqlSession session = this.sessionManager;
- return new WorkbasketServiceImpl(this,
+ return new WorkbasketServiceImpl(internal,
session.getMapper(WorkbasketMapper.class),
session.getMapper(DistributionTargetMapper.class),
session.getMapper(WorkbasketAccessMapper.class));
@@ -153,14 +155,14 @@ public class TaskanaEngineImpl implements TaskanaEngine {
@Override
public ClassificationService getClassificationService() {
SqlSession session = this.sessionManager;
- return new ClassificationServiceImpl(this, session.getMapper(ClassificationMapper.class),
+ return new ClassificationServiceImpl(internal, session.getMapper(ClassificationMapper.class),
session.getMapper(TaskMapper.class));
}
@Override
public JobService getJobService() {
SqlSession session = this.sessionManager;
- return new JobServiceImpl(this, session.getMapper(JobMapper.class));
+ return new JobServiceImpl(internal, session.getMapper(JobMapper.class));
}
@Override
@@ -168,8 +170,9 @@ public class TaskanaEngineImpl implements TaskanaEngine {
return this.taskanaEngineConfiguration;
}
+ @Override
public HistoryEventProducer getHistoryEventProducer() {
- return this.historyEventProducer;
+ return historyEventProducer;
}
/**
@@ -233,65 +236,6 @@ public class TaskanaEngineImpl implements TaskanaEngine {
}
}
- /**
- * Open the connection to the database. to be called at the begin of each Api call that accesses the database
- */
- void openConnection() {
- initSqlSession();
- try {
- this.sessionManager.getConnection().setSchema(taskanaEngineConfiguration.getSchemaName());
- } catch (SQLException e) {
- throw new SystemException(
- "Method openConnection() could not open a connection to the database. No schema has been created.",
- e.getCause());
- }
- if (mode != ConnectionManagementMode.EXPLICIT) {
- pushSessionToStack(this.sessionManager);
- }
- }
-
- /**
- * Initializes the SqlSessionManager.
- */
- void initSqlSession() {
- if (mode == ConnectionManagementMode.EXPLICIT && this.connection == null) {
- throw new ConnectionNotSetException();
- } else if (mode != ConnectionManagementMode.EXPLICIT && !this.sessionManager.isManagedSessionStarted()) {
- this.sessionManager.startManagedSession();
- }
- }
-
- /**
- * Returns the database connection into the pool. In the case of nested calls, simply pops the latest session from
- * the session stack. Closes the connection if the session stack is empty. In mode AUTOCOMMIT commits before the
- * connection is closed. To be called at the end of each Api call that accesses the database
- */
- void returnConnection() {
- if (this.mode != ConnectionManagementMode.EXPLICIT) {
- popSessionFromStack();
- if (getSessionStack().isEmpty()
- && this.sessionManager != null && this.sessionManager.isManagedSessionStarted()) {
- if (this.mode == ConnectionManagementMode.AUTOCOMMIT) {
- try {
- this.sessionManager.commit();
- } catch (Exception e) {
- throw new AutocommitFailedException(e.getCause());
- }
- }
- this.sessionManager.close();
- }
- }
- }
-
- /**
- * retrieve the SqlSession used by taskana.
- *
- * @return the myBatis SqlSession object used by taskana
- */
- SqlSession getSqlSession() {
- return this.sessionManager;
- }
-
/**
* Checks whether current user is member of any of the specified roles.
*
@@ -402,14 +346,66 @@ public class TaskanaEngineImpl implements TaskanaEngine {
}
/**
- * Returns true if the given domain does exist in the configuration.
- *
- * @param domain
- * the domain specified in the configuration
- * @return true
if the domain exists
+ * Internal Engine for internal operations.
*/
- public boolean domainExists(String domain) {
- return getConfiguration().getDomains().contains(domain);
- }
+ private class Internal implements TaskanaEngine.Internal {
+ @Override
+ public void openConnection() {
+ initSqlSession();
+ try {
+ sessionManager.getConnection().setSchema(taskanaEngineConfiguration.getSchemaName());
+ } catch (SQLException e) {
+ throw new SystemException(
+ "Method openConnection() could not open a connection to the database. No schema has been created.",
+ e.getCause());
+ }
+ if (mode != ConnectionManagementMode.EXPLICIT) {
+ pushSessionToStack(sessionManager);
+ }
+ }
+
+ @Override
+ public void initSqlSession() {
+ if (mode == ConnectionManagementMode.EXPLICIT && connection == null) {
+ throw new ConnectionNotSetException();
+ } else if (mode != ConnectionManagementMode.EXPLICIT && !sessionManager.isManagedSessionStarted()) {
+ sessionManager.startManagedSession();
+ }
+ }
+
+ @Override
+ public void returnConnection() {
+ if (mode != ConnectionManagementMode.EXPLICIT) {
+ popSessionFromStack();
+ if (getSessionStack().isEmpty()
+ && sessionManager != null && sessionManager.isManagedSessionStarted()) {
+ if (mode == ConnectionManagementMode.AUTOCOMMIT) {
+ try {
+ sessionManager.commit();
+ } catch (Exception e) {
+ throw new AutocommitFailedException(e.getCause());
+ }
+ }
+ sessionManager.close();
+ }
+ }
+ }
+
+ @Override
+ public boolean domainExists(String domain) {
+ return getConfiguration().getDomains().contains(domain);
+ }
+
+ @Override
+ public SqlSession getSqlSession() {
+ return sessionManager;
+ }
+
+ @Override
+ public TaskanaEngine getEngine() {
+ return TaskanaEngineImpl.this;
+ }
+
+ }
}
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TimeIntervalReportBuilderImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TimeIntervalReportBuilderImpl.java
index b72aa1479..71e8a7d1d 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/TimeIntervalReportBuilderImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TimeIntervalReportBuilderImpl.java
@@ -33,7 +33,7 @@ abstract class TimeIntervalReportBuilderImpl columnHeaders;
protected boolean inWorkingDays;
@@ -45,8 +45,8 @@ abstract class TimeIntervalReportBuilderImpl excludedClassificationIds;
protected Map customAttributeFilter;
- TimeIntervalReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
- this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
+ TimeIntervalReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
+ this.taskanaEngine = taskanaEngine;
this.taskMonitorMapper = taskMonitorMapper;
this.columnHeaders = Collections.emptyList();
configureDaysToWorkingDaysConverter();
@@ -113,7 +113,7 @@ abstract class TimeIntervalReportBuilderImpl convertWorkingDaysToDays(List selectedItems,
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TimestampReportBuilderImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TimestampReportBuilderImpl.java
index b3fec2ff1..5b5a1675e 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/TimestampReportBuilderImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TimestampReportBuilderImpl.java
@@ -31,7 +31,7 @@ public class TimestampReportBuilderImpl extends
private static final Logger LOGGER = LoggerFactory.getLogger(TimestampReport.Builder.class);
private List status = Arrays.asList(Timestamp.CREATED, Timestamp.COMPLETED);
- TimestampReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
+ TimestampReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
super(taskanaEngine, taskMonitorMapper);
}
@@ -65,7 +65,7 @@ public class TimestampReportBuilderImpl extends
@Override
public TimestampReport buildReport() throws NotAuthorizedException, InvalidArgumentException {
LOGGER.debug("entry to buildDetailedReport(), this = {}", this);
- this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
+ this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
try {
this.taskanaEngine.openConnection();
TimestampReport report = new TimestampReport(this.columnHeaders);
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketAccessItemQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketAccessItemQueryImpl.java
index ee006719f..2627a04ba 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketAccessItemQueryImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketAccessItemQueryImpl.java
@@ -33,12 +33,12 @@ public class WorkbasketAccessItemQueryImpl implements WorkbasketAccessItemQuery
private String[] workbasketKeyLike;
private String[] idIn;
- private TaskanaEngineImpl taskanaEngine;
+ private TaskanaEngine.Internal taskanaEngine;
private List orderBy;
private List orderColumns;
- WorkbasketAccessItemQueryImpl(TaskanaEngine taskanaEngine) {
- this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
+ WorkbasketAccessItemQueryImpl(TaskanaEngine.Internal taskanaEngine) {
+ this.taskanaEngine = taskanaEngine;
orderBy = new ArrayList<>();
orderColumns = new ArrayList<>();
}
@@ -197,7 +197,8 @@ public class WorkbasketAccessItemQueryImpl implements WorkbasketAccessItemQuery
}
private WorkbasketAccessItemQuery addOrderCriteria(String colName, SortDirection sortDirection) {
- String orderByDirection = " " + (sortDirection == null ? SortDirection.ASCENDING.toString() : sortDirection.toString());
+ String orderByDirection =
+ " " + (sortDirection == null ? SortDirection.ASCENDING.toString() : sortDirection.toString());
orderBy.add(colName + orderByDirection);
orderColumns.add(colName);
return this;
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketQueryImpl.java
index 13b6416f2..17d4141f5 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketQueryImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketQueryImpl.java
@@ -70,7 +70,7 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
private String[] orgLevel4Like;
private boolean markedForDeletion;
- private TaskanaEngineImpl taskanaEngine;
+ private TaskanaEngine.Internal taskanaEngine;
private List orderBy;
private List orderColumns;
private boolean joinWithAccessList;
@@ -78,8 +78,8 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
private boolean usedToAugmentTasks;
private boolean callerRolesAndAccessIdsAlreadyHandled;
- WorkbasketQueryImpl(TaskanaEngine taskanaEngine) {
- this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
+ WorkbasketQueryImpl(TaskanaEngine.Internal taskanaEngine) {
+ this.taskanaEngine = taskanaEngine;
this.orderBy = new ArrayList<>();
this.orderColumns = new ArrayList<>();
this.callerRolesAndAccessIdsAlreadyHandled = false;
@@ -354,7 +354,7 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
@Override
public WorkbasketQuery accessIdsHavePermission(WorkbasketPermission permission, String... accessIds)
throws InvalidArgumentException, NotAuthorizedException {
- taskanaEngine.checkRoleMembership(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN);
// Checking pre-conditions
if (permission == null) {
throw new InvalidArgumentException("Permission can´t be null.");
@@ -670,10 +670,10 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
// (f,t) -> cannot happen, cannot be matched to meaningful query
joinWithAccessList = true;
checkReadPermission = true;
- if (taskanaEngine.isUserInRole(TaskanaRole.ADMIN) && accessId == null) {
+ if (taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN) && accessId == null) {
checkReadPermission = false;
joinWithAccessList = false;
- } else if (taskanaEngine.isUserInRole(TaskanaRole.BUSINESS_ADMIN) && !usedToAugmentTasks) {
+ } else if (taskanaEngine.getEngine().isUserInRole(TaskanaRole.BUSINESS_ADMIN) && !usedToAugmentTasks) {
checkReadPermission = false;
if (accessId == null && permission == null) {
joinWithAccessList = false;
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketReportBuilderImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketReportBuilderImpl.java
index 2de498f7d..dbbccad9f 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketReportBuilderImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketReportBuilderImpl.java
@@ -26,7 +26,7 @@ public class WorkbasketReportBuilderImpl
private static final Logger LOGGER = LoggerFactory.getLogger(WorkbasketReportBuilderImpl.class);
private List combinedClassificationFilter;
- WorkbasketReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
+ WorkbasketReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
super(taskanaEngine, taskMonitorMapper);
}
@@ -43,7 +43,7 @@ public class WorkbasketReportBuilderImpl
@Override
public WorkbasketReport buildReport() throws InvalidArgumentException, NotAuthorizedException {
LOGGER.debug("entry to buildReport(), this = {}", this);
- this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
+ this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
try {
this.taskanaEngine.openConnection();
WorkbasketReport report = new WorkbasketReport(this.columnHeaders);
@@ -62,7 +62,7 @@ public class WorkbasketReportBuilderImpl
@Override
public WorkbasketReport buildPlannedDateBasedReport() throws NotAuthorizedException, InvalidArgumentException {
LOGGER.debug("entry to buildPlannedDateReport(), this = {}", this);
- this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
+ this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
try {
this.taskanaEngine.openConnection();
WorkbasketReport report = new WorkbasketReport(this.columnHeaders);
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketServiceImpl.java
index 9dc7d8786..693b9038c 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketServiceImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketServiceImpl.java
@@ -43,14 +43,14 @@ public class WorkbasketServiceImpl implements WorkbasketService {
private static final Logger LOGGER = LoggerFactory.getLogger(WorkbasketServiceImpl.class);
private static final String ID_PREFIX_WORKBASKET = "WBI";
private static final String ID_PREFIX_WORKBASKET_AUTHORIZATION = "WAI";
- private TaskanaEngineImpl taskanaEngine;
+ private TaskanaEngine.Internal taskanaEngine;
private WorkbasketMapper workbasketMapper;
private DistributionTargetMapper distributionTargetMapper;
private WorkbasketAccessMapper workbasketAccessMapper;
- WorkbasketServiceImpl(TaskanaEngine taskanaEngine, WorkbasketMapper workbasketMapper,
+ WorkbasketServiceImpl(TaskanaEngine.Internal taskanaEngine, WorkbasketMapper workbasketMapper,
DistributionTargetMapper distributionTargetMapper, WorkbasketAccessMapper workbasketAccessMapper) {
- this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
+ this.taskanaEngine = taskanaEngine;
this.workbasketMapper = workbasketMapper;
this.distributionTargetMapper = distributionTargetMapper;
this.workbasketAccessMapper = workbasketAccessMapper;
@@ -68,7 +68,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
throw new WorkbasketNotFoundException(workbasketId,
"Workbasket with id " + workbasketId + " was not found.");
}
- if (!taskanaEngine.isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
+ if (!taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
this.checkAuthorization(workbasketId, WorkbasketPermission.READ);
}
return result;
@@ -90,7 +90,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
throw new WorkbasketNotFoundException(workbasketKey, domain,
"Workbasket with key " + workbasketKey + " and domain " + domain + " was not found.");
}
- if (!taskanaEngine.isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
+ if (!taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
this.checkAuthorization(workbasketKey, domain, WorkbasketPermission.READ);
}
return result;
@@ -104,8 +104,8 @@ public class WorkbasketServiceImpl implements WorkbasketService {
public Workbasket createWorkbasket(Workbasket newWorkbasket)
throws InvalidWorkbasketException, NotAuthorizedException, WorkbasketAlreadyExistException,
DomainNotFoundException {
- LOGGER.debug("entry to createWorkbasket(workbasket)", newWorkbasket);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ LOGGER.debug("entry to createtWorkbasket(workbasket)", newWorkbasket);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
WorkbasketImpl workbasket = (WorkbasketImpl) newWorkbasket;
try {
@@ -137,7 +137,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
public Workbasket updateWorkbasket(Workbasket workbasketToUpdate)
throws NotAuthorizedException {
LOGGER.debug("entry to updateWorkbasket(workbasket)", workbasketToUpdate);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
WorkbasketImpl workbasket = (WorkbasketImpl) workbasketToUpdate;
try {
@@ -168,7 +168,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
public WorkbasketAccessItem createWorkbasketAccessItem(WorkbasketAccessItem workbasketAccessItem)
throws InvalidArgumentException, NotAuthorizedException, WorkbasketNotFoundException {
LOGGER.debug("entry to createWorkbasketAccessItemn(workbasketAccessItem = {})", workbasketAccessItem);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
WorkbasketAccessItemImpl accessItem = (WorkbasketAccessItemImpl) workbasketAccessItem;
try {
taskanaEngine.openConnection();
@@ -199,7 +199,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
public void setWorkbasketAccessItems(String workbasketId, List wbAccessItems)
throws InvalidArgumentException, NotAuthorizedException {
LOGGER.debug("entry to setWorkbasketAccessItems(workbasketAccessItems = {})", wbAccessItems.toString());
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
List newItems = new ArrayList<>();
try {
taskanaEngine.openConnection();
@@ -240,7 +240,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
@Override
public void deleteWorkbasketAccessItem(String accessItemId) throws NotAuthorizedException {
LOGGER.debug("entry to deleteWorkbasketAccessItem(id = {})", accessItemId);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
try {
taskanaEngine.openConnection();
workbasketAccessMapper.delete(accessItemId);
@@ -254,7 +254,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
@Override
public void deleteWorkbasketAccessItemsForAccessId(String accessId) throws NotAuthorizedException {
LOGGER.debug("entry to deleteWorkbasketAccessItemsForAccessId(accessId = {})", accessId);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
try {
taskanaEngine.openConnection();
workbasketAccessMapper.deleteAccessItemsForAccessId(accessId);
@@ -350,12 +350,12 @@ public class WorkbasketServiceImpl implements WorkbasketService {
private boolean skipAuthorizationCheck() {
// Skip permission check is security is not enabled
- if (!taskanaEngine.getConfiguration().isSecurityEnabled()) {
+ if (!taskanaEngine.getEngine().getConfiguration().isSecurityEnabled()) {
LOGGER.debug("Skipping permissions check since security is disabled.");
return true;
}
- if (taskanaEngine.isUserInRole(TaskanaRole.ADMIN)) {
+ if (taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN)) {
LOGGER.debug("Skipping permissions check since user is in role ADMIN.");
return true;
}
@@ -367,7 +367,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
public WorkbasketAccessItem updateWorkbasketAccessItem(WorkbasketAccessItem workbasketAccessItem)
throws InvalidArgumentException, NotAuthorizedException {
LOGGER.debug("entry to updateWorkbasketAccessItem(workbasketAccessItem = {}", workbasketAccessItem);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
WorkbasketAccessItemImpl accessItem = (WorkbasketAccessItemImpl) workbasketAccessItem;
try {
taskanaEngine.openConnection();
@@ -394,7 +394,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
@Override
public List getWorkbasketAccessItems(String workbasketId) throws NotAuthorizedException {
LOGGER.debug("entry to getWorkbasketAccessItems(workbasketId = {})", workbasketId);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
List result = new ArrayList<>();
try {
taskanaEngine.openConnection();
@@ -521,7 +521,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
taskanaEngine.openConnection();
// check that source workbasket exists
getWorkbasket(workbasketId);
- if (!taskanaEngine.isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
+ if (!taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
checkAuthorization(workbasketId, WorkbasketPermission.READ);
}
List distributionTargets = workbasketMapper
@@ -547,7 +547,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
taskanaEngine.openConnection();
// check that source workbasket exists
Workbasket workbasket = getWorkbasket(workbasketKey, domain);
- if (!taskanaEngine.isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
+ if (!taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
checkAuthorization(workbasket.getId(), WorkbasketPermission.READ);
}
List distributionTargets = workbasketMapper
@@ -574,7 +574,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
taskanaEngine.openConnection();
// check that source workbasket exists
getWorkbasket(workbasketId);
- if (!taskanaEngine.isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
+ if (!taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
checkAuthorization(workbasketId, WorkbasketPermission.READ);
}
List distributionSources = workbasketMapper
@@ -600,7 +600,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
taskanaEngine.openConnection();
// check that source workbasket exists
Workbasket workbasket = getWorkbasket(workbasketKey, domain);
- if (!taskanaEngine.isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
+ if (!taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
checkAuthorization(workbasket.getId(), WorkbasketPermission.READ);
}
List distributionSources = workbasketMapper
@@ -625,7 +625,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
sourceWorkbasketId,
LoggerUtils.listToString(targetWorkbasketIds));
}
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
try {
taskanaEngine.openConnection();
// check existence of source workbasket
@@ -660,7 +660,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
throws NotAuthorizedException, WorkbasketNotFoundException {
LOGGER.debug("entry to addDistributionTarget(sourceWorkbasketId = {}, targetWorkbasketId = {})",
sourceWorkbasketId, targetWorkbasketId);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
try {
taskanaEngine.openConnection();
// check existence of source workbasket
@@ -693,7 +693,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
throws NotAuthorizedException {
LOGGER.debug("entry to removeDistributionTarget(sourceWorkbasketId = {}, targetWorkbasketId = {})",
sourceWorkbasketId, targetWorkbasketId);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
try {
taskanaEngine.openConnection();
// don't check existence of source / target workbasket to enable cleanup even if the db is corrupted
@@ -729,7 +729,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
public boolean deleteWorkbasket(String workbasketId)
throws NotAuthorizedException, WorkbasketNotFoundException, WorkbasketInUseException, InvalidArgumentException {
LOGGER.debug("entry to deleteWorkbasket(workbasketId = {})", workbasketId);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
try {
taskanaEngine.openConnection();
@@ -740,7 +740,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
// check if the workbasket does exist and is empty (Task)
this.getWorkbasket(workbasketId);
- long numTasksNotCompletedInWorkbasket = taskanaEngine.getTaskService()
+ long numTasksNotCompletedInWorkbasket = taskanaEngine.getEngine().getTaskService()
.createTaskQuery()
.workbasketIdIn(workbasketId)
.stateNotIn(
@@ -752,7 +752,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
"Workbasket " + workbasketId + " contains non-completed tasks and can´t be marked for deletion.");
}
- long numTasksInWorkbasket = taskanaEngine.getTaskService()
+ long numTasksInWorkbasket = taskanaEngine.getEngine().getTaskService()
.createTaskQuery()
.workbasketIdIn(workbasketId)
.count();
@@ -774,7 +774,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
private void markWorkbasketForDeletion(String workbasketId)
throws NotAuthorizedException, InvalidArgumentException {
LOGGER.debug("entry to markWorkbasketForDeletion(workbasketId = {})", workbasketId);
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
try {
taskanaEngine.openConnection();
@@ -797,7 +797,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
LOGGER.debug("entry to deleteWorkbaskets(workbasketId = {})", LoggerUtils.listToString(workbasketsIds));
}
- taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
try {
taskanaEngine.openConnection();
@@ -834,7 +834,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
@Override
public WorkbasketAccessItemQuery createWorkbasketAccessItemQuery() throws NotAuthorizedException {
- taskanaEngine.checkRoleMembership(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN);
+ taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN);
return new WorkbasketAccessItemQueryImpl(this.taskanaEngine);
}
diff --git a/lib/taskana-core/src/test/java/acceptance/history/TaskEventProducerTest.java b/lib/taskana-core/src/test/java/acceptance/history/TaskEventProducerTest.java
index c23982f39..4571874c7 100644
--- a/lib/taskana-core/src/test/java/acceptance/history/TaskEventProducerTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/history/TaskEventProducerTest.java
@@ -1,12 +1,11 @@
package acceptance.history;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import org.junit.Test;
import acceptance.AbstractAccTest;
import pro.taskana.history.HistoryEventProducer;
-import pro.taskana.impl.TaskanaEngineImpl;
/**
* Acceptance test for historyEventProducer class.
@@ -15,7 +14,7 @@ public class TaskEventProducerTest extends AbstractAccTest {
@Test
public void testHistoryEventProducerIsNotEnabled() {
- HistoryEventProducer historyEventProducer = ((TaskanaEngineImpl) taskanaEngine).getHistoryEventProducer();
- assertEquals(false, historyEventProducer.isEnabled());
+ HistoryEventProducer historyEventProducer = taskanaEngine.getHistoryEventProducer();
+ assertFalse(historyEventProducer.isEnabled());
}
}
diff --git a/lib/taskana-core/src/test/java/acceptance/task/CreateTaskAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/CreateTaskAccTest.java
index 977e81263..97c512b4b 100644
--- a/lib/taskana-core/src/test/java/acceptance/task/CreateTaskAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/task/CreateTaskAccTest.java
@@ -33,7 +33,6 @@ import pro.taskana.exceptions.TaskAlreadyExistException;
import pro.taskana.exceptions.TaskNotFoundException;
import pro.taskana.exceptions.WorkbasketNotFoundException;
import pro.taskana.impl.DaysToWorkingDaysConverter;
-import pro.taskana.impl.TaskanaEngineImpl;
import pro.taskana.impl.TaskanaEngineProxyForTest;
import pro.taskana.impl.report.header.TimeIntervalColumnHeader;
import pro.taskana.mappings.AttachmentMapper;
@@ -63,7 +62,8 @@ public class CreateTaskAccTest extends AbstractAccTest {
TaskService taskService = taskanaEngine.getTaskService();
Task newTask = taskService.newTask("USER_1_1", "DOMAIN_A");
newTask.setClassificationKey("T2100");
- ObjectReference objectReference = createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", "1234567");
+ ObjectReference objectReference = createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR",
+ "1234567");
newTask.setPrimaryObjRef(objectReference);
newTask.setOwner("user_1_1");
Task createdTask = taskService.createTask(newTask);
@@ -90,7 +90,7 @@ public class CreateTaskAccTest extends AbstractAccTest {
@WithAccessId(
userName = "user_1_1",
- groupNames = { "group_1" })
+ groupNames = {"group_1"})
@Test
public void testCreateTaskWithPlanned()
throws NotAuthorizedException, InvalidArgumentException,
@@ -108,7 +108,7 @@ public class CreateTaskAccTest extends AbstractAccTest {
assertNotNull(createdTask.getCreated());
assertNotNull(createdTask.getPlanned());
assertEquals(createdTask.getCreated().plus(2, ChronoUnit.HOURS).truncatedTo(ChronoUnit.SECONDS),
- createdTask.getPlanned().truncatedTo(ChronoUnit.SECONDS));
+ createdTask.getPlanned().truncatedTo(ChronoUnit.SECONDS));
}
@WithAccessId(
@@ -157,7 +157,8 @@ public class CreateTaskAccTest extends AbstractAccTest {
@Test
public void testCreateSimpleTaskWithCustomAttributes()
throws NotAuthorizedException, InvalidArgumentException, ClassificationNotFoundException,
- WorkbasketNotFoundException, TaskAlreadyExistException, TaskNotFoundException {
+ WorkbasketNotFoundException, TaskAlreadyExistException, TaskNotFoundException, NoSuchFieldException,
+ IllegalAccessException {
TaskService taskService = taskanaEngine.getTaskService();
Task newTask = taskService.newTask("USER_1_1", "DOMAIN_A");
@@ -183,7 +184,7 @@ public class CreateTaskAccTest extends AbstractAccTest {
assertEquals(false, createdTask.isRead());
assertEquals(false, createdTask.isTransferred());
// verify that the database content is as expected
- TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest((TaskanaEngineImpl) taskanaEngine);
+ TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest(taskanaEngine);
try {
SqlSession session = engineProxy.getSqlSession();
Configuration config = session.getConfiguration();
@@ -224,7 +225,8 @@ public class CreateTaskAccTest extends AbstractAccTest {
@Test
public void testCreateExternalTaskWithAttachment()
throws NotAuthorizedException, InvalidArgumentException, ClassificationNotFoundException,
- WorkbasketNotFoundException, TaskAlreadyExistException, TaskNotFoundException {
+ WorkbasketNotFoundException, TaskAlreadyExistException, TaskNotFoundException, NoSuchFieldException,
+ IllegalAccessException {
TaskService taskService = taskanaEngine.getTaskService();
Task newTask = taskService.newTask("USER_1_1", "DOMAIN_A");
@@ -240,7 +242,7 @@ public class CreateTaskAccTest extends AbstractAccTest {
assertThat(createdTask.getCreator(), equalTo(CurrentUserContext.getUserid()));
// verify that the database content is as expected
- TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest((TaskanaEngineImpl) taskanaEngine);
+ TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest(taskanaEngine);
try {
SqlSession session = engineProxy.getSqlSession();
AttachmentMapper mapper = session.getMapper(AttachmentMapper.class);
diff --git a/lib/taskana-core/src/test/java/acceptance/task/QueryTasksAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/QueryTasksAccTest.java
index 96ae99b5e..446e75751 100644
--- a/lib/taskana-core/src/test/java/acceptance/task/QueryTasksAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/task/QueryTasksAccTest.java
@@ -5,13 +5,12 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
-
+import static pro.taskana.TaskQueryColumnName.A_CHANNEL;
+import static pro.taskana.TaskQueryColumnName.A_CLASSIFICATION_ID;
+import static pro.taskana.TaskQueryColumnName.A_REF_VALUE;
+import static pro.taskana.TaskQueryColumnName.CLASSIFICATION_KEY;
import static pro.taskana.TaskQueryColumnName.OWNER;
import static pro.taskana.TaskQueryColumnName.STATE;
-import static pro.taskana.TaskQueryColumnName.A_CHANNEL;
-import static pro.taskana.TaskQueryColumnName.A_REF_VALUE;
-import static pro.taskana.TaskQueryColumnName.A_CLASSIFICATION_ID;
-import static pro.taskana.TaskQueryColumnName.CLASSIFICATION_KEY;
import java.util.ArrayList;
import java.util.List;
@@ -43,7 +42,6 @@ import pro.taskana.exceptions.TaskAlreadyExistException;
import pro.taskana.exceptions.TaskNotFoundException;
import pro.taskana.exceptions.WorkbasketNotFoundException;
import pro.taskana.impl.TaskImpl;
-import pro.taskana.impl.TaskanaEngineImpl;
import pro.taskana.impl.TaskanaEngineProxyForTest;
import pro.taskana.mappings.TaskTestMapper;
import pro.taskana.security.JAASRunner;
@@ -63,8 +61,8 @@ public class QueryTasksAccTest extends AbstractAccTest {
}
@WithAccessId(
- userName = "teamlead_1",
- groupNames = {"admin"})
+ userName = "teamlead_1",
+ groupNames = {"admin"})
@Test
public void testQueryTaskValuesForEveryColumn() {
TaskService taskService = taskanaEngine.getTaskService();
@@ -281,7 +279,7 @@ public class QueryTasksAccTest extends AbstractAccTest {
.count();
long countAllIds = taskService.createTaskQuery().count();
assertEquals(countAllIds, countAllExternalIds);
- }
+ }
@WithAccessId(
userName = "teamlead_1",
@@ -824,7 +822,7 @@ public class QueryTasksAccTest extends AbstractAccTest {
@Test
public void testQueryTaskByCustomAttributes()
throws NotAuthorizedException, InvalidArgumentException, ClassificationNotFoundException,
- WorkbasketNotFoundException, TaskAlreadyExistException {
+ WorkbasketNotFoundException, TaskAlreadyExistException, NoSuchFieldException, IllegalAccessException {
TaskService taskService = taskanaEngine.getTaskService();
Task newTask = taskService.newTask("USER_1_1", "DOMAIN_A");
@@ -836,7 +834,7 @@ public class QueryTasksAccTest extends AbstractAccTest {
assertNotNull(createdTask);
// query the task by custom attributes
- TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest((TaskanaEngineImpl) taskanaEngine);
+ TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest(taskanaEngine);
try {
SqlSession session = engineProxy.getSqlSession();
Configuration config = session.getConfiguration();
@@ -1526,5 +1524,4 @@ public class QueryTasksAccTest extends AbstractAccTest {
assertThat(result2.size(), equalTo(10));
}
-
}
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/CategoryReportBuilderImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/CategoryReportBuilderImplTest.java
index 6f1ea837d..02fa42f03 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/CategoryReportBuilderImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/CategoryReportBuilderImplTest.java
@@ -21,12 +21,12 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
-import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.CustomField;
import pro.taskana.TaskState;
+import pro.taskana.TaskanaEngine;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
@@ -45,7 +45,10 @@ public class CategoryReportBuilderImplTest {
private TaskMonitorServiceImpl cut;
@Mock
- private TaskanaEngineImpl taskanaEngineImplMock;
+ private TaskanaEngine.Internal taskanaEngineInternalMock;
+
+ @Mock
+ private TaskanaEngine taskanaEngineMock;
@Mock
private TaskanaEngineConfiguration taskanaEngineConfiguration;
@@ -56,9 +59,8 @@ public class CategoryReportBuilderImplTest {
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
- Mockito.doNothing().when(taskanaEngineImplMock).openConnection();
- Mockito.doNothing().when(taskanaEngineImplMock).returnConnection();
- when(taskanaEngineImplMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
+ when(taskanaEngineMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
+ when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
when(taskanaEngineConfiguration.isGermanPublicHolidaysEnabled()).thenReturn(true);
when(taskanaEngineConfiguration.getCustomHolidays()).thenReturn(null);
}
@@ -92,15 +94,17 @@ public class CategoryReportBuilderImplTest {
.customAttributeFilterIn(customAttributeFilter)
.buildReport();
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1)).getTaskCountOfCategories(any(), any(), any(), any(), any(), any(),
any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(actualResult.getRow("EXTERN").getTotalValue(), 1);
@@ -142,15 +146,17 @@ public class CategoryReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.buildReport();
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1)).getTaskCountOfCategories(any(), any(), any(), any(), any(), any(),
any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(actualResult.getRow("EXTERN").getTotalValue(), 1);
@@ -194,15 +200,17 @@ public class CategoryReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listTaskIdsForSelectedItems(selectedItems);
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1))
.getTaskIdsForSelectedItems(any(), any(), any(), any(), any(), any(), any(), any(), any(), eq(false));
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(expectedResult, actualResult);
@@ -253,15 +261,17 @@ public class CategoryReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1))
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(expectedResult, actualResult);
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationQueryImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationQueryImplTest.java
index 04ec8043b..8fb9ddc86 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationQueryImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationQueryImplTest.java
@@ -8,13 +8,14 @@ import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Assert;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.ClassificationSummary;
+import pro.taskana.TaskanaEngine;
/**
* Test for ClassificationQueryImpl.
@@ -24,22 +25,18 @@ import pro.taskana.ClassificationSummary;
@RunWith(MockitoJUnitRunner.class)
public class ClassificationQueryImplTest {
+ @InjectMocks
private ClassificationQueryImpl classificationQueryImpl;
@Mock
- private TaskanaEngineImpl taskanaEngine;
+ private TaskanaEngine.Internal taskanaEngineInternal;
@Mock
private SqlSession sqlSession;
- @Before
- public void setup() {
- classificationQueryImpl = new ClassificationQueryImpl(taskanaEngine);
- }
-
@Test
public void should_ReturnList_when_BuilderIsUsed() {
- when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
+ when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectList(any(), any())).thenReturn(new ArrayList<>());
List result = classificationQueryImpl.nameIn("test", "asd", "blubber")
@@ -52,7 +49,7 @@ public class ClassificationQueryImplTest {
@Test
public void should_ReturnListWithOffset_when_BuilderIsUsed() {
- when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
+ when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectList(any(), any(), any())).thenReturn(new ArrayList<>());
List result = classificationQueryImpl.nameIn("test", "asd", "blubber")
@@ -65,7 +62,7 @@ public class ClassificationQueryImplTest {
@Test
public void should_ReturnOneItem_when_BuilderIsUsed() {
- when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
+ when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectOne(any(), any())).thenReturn(new ClassificationSummaryImpl());
ClassificationSummary result = classificationQueryImpl.nameIn("test", "asd", "blubber")
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationReportBuilderImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationReportBuilderImplTest.java
index b89ecad19..e8025cb7f 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationReportBuilderImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationReportBuilderImplTest.java
@@ -21,12 +21,12 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
-import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.CustomField;
import pro.taskana.TaskState;
+import pro.taskana.TaskanaEngine;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
@@ -48,7 +48,10 @@ public class ClassificationReportBuilderImplTest {
private TaskMonitorServiceImpl cut;
@Mock
- private TaskanaEngineImpl taskanaEngineImplMock;
+ private TaskanaEngine.Internal taskanaEngineInternalMock;
+
+ @Mock
+ private TaskanaEngine taskanaEngineMock;
@Mock
private TaskanaEngineConfiguration taskanaEngineConfiguration;
@@ -59,9 +62,8 @@ public class ClassificationReportBuilderImplTest {
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
- Mockito.doNothing().when(taskanaEngineImplMock).openConnection();
- Mockito.doNothing().when(taskanaEngineImplMock).returnConnection();
- when(taskanaEngineImplMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
+ when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
+ when(taskanaEngineMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
when(taskanaEngineConfiguration.isGermanPublicHolidaysEnabled()).thenReturn(true);
when(taskanaEngineConfiguration.getCustomHolidays()).thenReturn(null);
}
@@ -95,15 +97,17 @@ public class ClassificationReportBuilderImplTest {
.customAttributeFilterIn(customAttributeFilter)
.buildReport();
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1)).getTaskCountOfClassifications(any(), any(), any(), any(), any(), any(),
any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(
@@ -146,15 +150,18 @@ public class ClassificationReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.buildReport();
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
+
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1)).getTaskCountOfClassifications(any(), any(), any(), any(), any(), any(),
any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(
@@ -194,16 +201,18 @@ public class ClassificationReportBuilderImplTest {
.customAttributeFilterIn(customAttributeFilter)
.buildDetailedReport();
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1)).getTaskCountOfDetailedClassifications(any(), any(), any(), any(), any(),
any(),
any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
FoldableRow line = actualResult.getRow("CLI:000000000000000000000000000000000001");
assertNotNull(actualResult);
@@ -247,16 +256,18 @@ public class ClassificationReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.buildDetailedReport();
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1)).getTaskCountOfDetailedClassifications(any(), any(), any(), any(), any(),
any(),
any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
FoldableRow line = actualResult.getRow("CLI:000000000000000000000000000000000001");
assertNotNull(actualResult);
@@ -303,15 +314,17 @@ public class ClassificationReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listTaskIdsForSelectedItems(selectedItems);
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1))
.getTaskIdsForSelectedItems(any(), any(), any(), any(), any(), any(), any(), any(), any(), eq(false));
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(expectedResult, actualResult);
@@ -364,15 +377,17 @@ public class ClassificationReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1))
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(expectedResult, actualResult);
@@ -382,7 +397,7 @@ public class ClassificationReportBuilderImplTest {
public void testListCustomAttributeValuesForCustomAttributeNameIsEmptyResult()
throws NotAuthorizedException {
List result = cut.createClassificationReportBuilder()
- .workbasketIdIn(Arrays.asList("DieGibtsGarantiertNed"))
+ .workbasketIdIn(Collections.singletonList("DieGibtsGarantiertNed"))
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_10);
assertNotNull(result);
}
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationServiceImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationServiceImplTest.java
index af2922805..703292e50 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationServiceImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationServiceImplTest.java
@@ -2,13 +2,9 @@ package pro.taskana.impl;
import static junit.framework.TestCase.assertEquals;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
-import java.util.List;
-
-import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -18,14 +14,12 @@ import org.mockito.Spy;
import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.Classification;
-import pro.taskana.JobService;
+import pro.taskana.TaskanaEngine;
import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
-import pro.taskana.jobs.ScheduledJob;
import pro.taskana.mappings.ClassificationMapper;
-import pro.taskana.mappings.JobMapper;
/**
* Unit Test for ClassificationServiceImpl.
@@ -41,24 +35,22 @@ public class ClassificationServiceImplTest {
@Mock
private ClassificationMapper classificationMapperMock;
@Mock
- private TaskanaEngineImpl taskanaEngineImplMock;
+ private TaskanaEngine taskanaEngineMock;
+ @Mock
+ private TaskanaEngine.Internal taskanaEngineInternalMock;
@Mock
private ClassificationQueryImpl classificationQueryImplMock;
- @Mock
- private SqlSession sqlSessionMock;
- @Mock
- private JobService jobServiceMock;
@Before
public void setup() {
- doNothing().when(taskanaEngineImplMock).openConnection();
- doNothing().when(taskanaEngineImplMock).returnConnection();
+ when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
}
@Test
public void testCreateClassificationQuery() {
cutSpy.createClassificationQuery();
- verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
+ verifyNoMoreInteractions(classificationMapperMock, taskanaEngineInternalMock, taskanaEngineMock,
+ classificationQueryImplMock);
}
@Test(expected = InvalidArgumentException.class)
@@ -67,7 +59,7 @@ public class ClassificationServiceImplTest {
NotAuthorizedException, ClassificationAlreadyExistException {
try {
Classification classification = createDummyClassification();
- when(taskanaEngineImplMock.domainExists(any())).thenReturn(true);
+ when(taskanaEngineInternalMock.domainExists(any())).thenReturn(true);
cutSpy.createClassification(classification);
} catch (InvalidArgumentException e) {
assertEquals(e.getMessage(), "ClassificationId should be null on creation");
@@ -93,29 +85,4 @@ public class ClassificationServiceImplTest {
return classificationImpl;
}
- /**
- * This is the mock of a jobRunner.
- */
- private class JobRunnerMock implements JobMapper {
-
- @Override
- public void insertJob(ScheduledJob job) {
-
- }
-
- @Override
- public List findJobsToRun() {
- return null;
- }
-
- @Override
- public void update(ScheduledJob job) {
-
- }
-
- @Override
- public void delete(ScheduledJob job) {
-
- }
- }
}
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/CustomFieldValueReportBuilderImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/CustomFieldValueReportBuilderImplTest.java
index 1668296de..4c4507e8f 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/CustomFieldValueReportBuilderImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/CustomFieldValueReportBuilderImplTest.java
@@ -20,12 +20,12 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
-import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.CustomField;
import pro.taskana.TaskState;
+import pro.taskana.TaskanaEngine;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
@@ -44,7 +44,10 @@ public class CustomFieldValueReportBuilderImplTest {
private TaskMonitorServiceImpl cut;
@Mock
- private TaskanaEngineImpl taskanaEngineImplMock;
+ private TaskanaEngine.Internal taskanaEngineInternalMock;
+
+ @Mock
+ private TaskanaEngine taskanaEngineMock;
@Mock
private TaskanaEngineConfiguration taskanaEngineConfiguration;
@@ -55,9 +58,8 @@ public class CustomFieldValueReportBuilderImplTest {
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
- Mockito.doNothing().when(taskanaEngineImplMock).openConnection();
- Mockito.doNothing().when(taskanaEngineImplMock).returnConnection();
- when(taskanaEngineImplMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
+ when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
+ when(taskanaEngineMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
when(taskanaEngineConfiguration.isGermanPublicHolidaysEnabled()).thenReturn(true);
when(taskanaEngineConfiguration.getCustomHolidays()).thenReturn(null);
}
@@ -92,16 +94,18 @@ public class CustomFieldValueReportBuilderImplTest {
.customAttributeFilterIn(customAttributeFilter)
.buildReport();
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1)).getTaskCountOfCustomFieldValues(any(), any(), any(), any(), any(),
any(), any(),
any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(actualResult.getRow("Geschaeftsstelle A").getTotalValue(), 1);
@@ -143,15 +147,17 @@ public class CustomFieldValueReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.buildReport();
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1))
.getTaskCountOfCustomFieldValues(any(), any(), any(), any(), any(), any(), any(), any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(actualResult.getRow("Geschaeftsstelle A").getTotalValue(), 1);
@@ -195,15 +201,16 @@ public class CustomFieldValueReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1))
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock, taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(expectedResult, actualResult);
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/ObjectReferenceQueryImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/ObjectReferenceQueryImplTest.java
index 498fc34c0..c1f6ab9e1 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/ObjectReferenceQueryImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/ObjectReferenceQueryImplTest.java
@@ -15,6 +15,7 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.ObjectReference;
+import pro.taskana.TaskanaEngine;
/**
* Test for ObjectReferenceQueryImpl.
@@ -27,7 +28,7 @@ public class ObjectReferenceQueryImplTest {
ObjectReferenceQueryImpl objectReferenceQueryImpl;
@Mock
- TaskanaEngineImpl taskanaEngine;
+ TaskanaEngine.Internal taskanaEngine;
@Mock
SqlSession sqlSession;
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/TaskQueryImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/TaskQueryImplTest.java
index 7c693eb5f..4bd6b3041 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/TaskQueryImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/TaskQueryImplTest.java
@@ -8,17 +8,16 @@ import java.util.List;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
-import org.apache.ibatis.session.SqlSessionManager;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.TaskState;
import pro.taskana.TaskSummary;
+import pro.taskana.TaskanaEngine;
/**
* Test for TaskQueryImpl.
@@ -28,34 +27,32 @@ import pro.taskana.TaskSummary;
@RunWith(MockitoJUnitRunner.class)
public class TaskQueryImplTest {
- @Mock
- ClassificationServiceImpl classificationService;
@Mock
TaskServiceImpl taskServiceMock;
- @InjectMocks
+
private TaskQueryImpl taskQueryImpl;
@Mock
- private TaskanaEngineImpl taskanaEngine;
+ private TaskanaEngine.Internal taskanaEngineInternal;
+ @Mock
+ private TaskanaEngine taskanaEngine;
@Mock
private SqlSession sqlSession;
- @Mock
- private SqlSessionManager sqlSessionManager;
@Before
public void setup() {
+ when(taskanaEngineInternal.getEngine()).thenReturn(taskanaEngine);
when(taskanaEngine.getTaskService()).thenReturn(taskServiceMock);
Configuration configuration = new org.apache.ibatis.session.Configuration();
configuration.setDatabaseId("h2");
- this.taskanaEngine.sessionManager = sqlSessionManager;
- when(taskanaEngine.sessionManager.getConfiguration()).thenReturn(configuration);
+ when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
+ when(sqlSession.getConfiguration()).thenReturn(configuration);
- taskQueryImpl = new TaskQueryImpl(taskanaEngine);
+ taskQueryImpl = new TaskQueryImpl(taskanaEngineInternal);
}
@Test
public void should_ReturnList_when_BuilderIsUsed() {
- when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectList(any(), any())).thenReturn(new ArrayList<>());
List intermediate = new ArrayList<>();
intermediate.add(new TaskSummaryImpl());
@@ -70,7 +67,6 @@ public class TaskQueryImplTest {
@Test
public void should_ReturnListWithOffset_when_BuilderIsUsed() {
- when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectList(any(), any(), any())).thenReturn(new ArrayList<>());
List intermediate = new ArrayList<>();
intermediate.add(new TaskSummaryImpl());
@@ -85,7 +81,6 @@ public class TaskQueryImplTest {
@Test
public void should_ReturnOneItem_when_BuilderIsUsed() {
- when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectOne(any(), any())).thenReturn(new TaskSummaryImpl());
List intermediate = new ArrayList<>();
intermediate.add(new TaskSummaryImpl());
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/TaskServiceImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/TaskServiceImplTest.java
index 930235ee7..eb49c51ac 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/TaskServiceImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/TaskServiceImplTest.java
@@ -5,7 +5,6 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertThat;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -15,11 +14,11 @@ import static org.mockito.Mockito.when;
import java.time.Duration;
import java.time.Instant;
import java.util.ArrayList;
+
import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
@@ -27,12 +26,12 @@ import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
-import pro.taskana.Attachment;
import pro.taskana.Classification;
import pro.taskana.ObjectReference;
import pro.taskana.Task;
import pro.taskana.TaskState;
import pro.taskana.TaskSummary;
+import pro.taskana.TaskanaEngine;
import pro.taskana.Workbasket;
import pro.taskana.WorkbasketPermission;
import pro.taskana.WorkbasketService;
@@ -56,14 +55,16 @@ import pro.taskana.security.CurrentUserContext;
@PowerMockIgnore("javax.management.*")
public class TaskServiceImplTest {
- @InjectMocks
private TaskServiceImpl cut;
@Mock
private TaskanaEngineConfiguration taskanaEngineConfigurationMock;
@Mock
- private TaskanaEngineImpl taskanaEngineMock;
+ private TaskanaEngine.Internal taskanaEngineInternalMock;
+
+ @Mock
+ private TaskanaEngine taskanaEngineMock;
@Mock
private TaskMapper taskMapperMock;
@@ -83,24 +84,16 @@ public class TaskServiceImplTest {
@Mock
private ClassificationQueryImpl classificationQueryImplMock;
- @Mock
- private WorkbasketQueryImpl workbasketQueryImplMock;
-
@Mock
private SqlSession sqlSessionMock;
@Before
- public void setup() throws WorkbasketNotFoundException {
+ public void setup() {
MockitoAnnotations.initMocks(this);
+ when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
when(taskanaEngineMock.getWorkbasketService()).thenReturn(workbasketServiceMock);
when(taskanaEngineMock.getClassificationService()).thenReturn(classificationServiceImplMock);
- try {
- Mockito.doNothing().when(workbasketServiceMock).checkAuthorization(any(), any());
- } catch (NotAuthorizedException e) {
- e.printStackTrace();
- }
- Mockito.doNothing().when(taskanaEngineMock).openConnection();
- Mockito.doNothing().when(taskanaEngineMock).returnConnection();
+ cut = new TaskServiceImpl(taskanaEngineInternalMock, taskMapperMock, attachmentMapperMock);
}
@Test
@@ -118,25 +111,24 @@ public class TaskServiceImplTest {
when(taskanaEngineMock.getConfiguration()).thenReturn(taskanaEngineConfigurationMock);
when(taskanaEngineConfigurationMock.isSecurityEnabled()).thenReturn(false);
doReturn(task).when(cutSpy).getTask(task.getId());
- doNothing().when(taskMapperMock).update(any());
- doNothing().when(workbasketServiceMock).checkAuthorization(destinationWorkbasket.getId(),
- WorkbasketPermission.APPEND);
- doNothing().when(workbasketServiceMock).checkAuthorization(sourceWorkbasket.getId(),
- WorkbasketPermission.TRANSFER);
Task actualTask = cutSpy.transfer(task.getId(), destinationWorkbasket.getId());
- verify(taskanaEngineMock, times(1)).openConnection();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
verify(workbasketServiceMock, times(1)).checkAuthorization(destinationWorkbasket.getId(),
WorkbasketPermission.APPEND);
verify(workbasketServiceMock, times(1)).checkAuthorization(sourceWorkbasket.getId(),
WorkbasketPermission.TRANSFER);
verify(workbasketServiceMock, times(1)).getWorkbasket(destinationWorkbasket.getId());
verify(taskMapperMock, times(1)).update(any());
- verify(taskanaEngineMock, times(1)).returnConnection();
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
+ verify(taskanaEngineMock).getHistoryEventProducer();
+ verify(taskanaEngineMock).getWorkbasketService();
+ verify(taskanaEngineMock).getClassificationService();
verifyNoMoreInteractions(attachmentMapperMock, taskanaEngineConfigurationMock, taskanaEngineMock,
- taskMapperMock, objectReferenceMapperMock, workbasketServiceMock, sqlSessionMock,
- classificationQueryImplMock);
+ taskanaEngineInternalMock, taskMapperMock, objectReferenceMapperMock, workbasketServiceMock,
+ sqlSessionMock, classificationQueryImplMock);
assertThat(actualTask.isRead(), equalTo(false));
assertThat(actualTask.getState(), equalTo(TaskState.READY));
@@ -148,7 +140,6 @@ public class TaskServiceImplTest {
public void testTaskSummaryEqualsHashCode() throws InterruptedException {
Classification classification = createDummyClassification();
Workbasket wb = createWorkbasket("WB-ID", "WB-Key");
- Attachment attachment = JunitHelper.createDefaultAttachment();
ObjectReference objectReference = JunitHelper.createDefaultObjRef();
TaskImpl taskBefore = createUnitTestTask("ID", "taskName", wb.getKey(), classification);
taskBefore.setPrimaryObjRef(objectReference);
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/TaskStatusReportBuilderImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/TaskStatusReportBuilderImplTest.java
index beca4a9f8..4db186edc 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/TaskStatusReportBuilderImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/TaskStatusReportBuilderImplTest.java
@@ -5,6 +5,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.powermock.api.mockito.PowerMockito.when;
import java.util.Arrays;
@@ -17,12 +18,12 @@ import org.junit.runner.RunWith;
import org.mockito.InOrder;
import org.mockito.InjectMocks;
import org.mockito.Mock;
-import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.TaskState;
-import pro.taskana.configuration.TaskanaEngineConfiguration;
+import pro.taskana.TaskanaEngine;
+import pro.taskana.TaskanaRole;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.impl.report.item.TaskQueryItem;
@@ -39,10 +40,10 @@ public class TaskStatusReportBuilderImplTest {
private TaskMonitorServiceImpl cut;
@Mock
- private TaskanaEngineImpl taskanaEngineImplMock;
+ private TaskanaEngine.Internal taskanaEngineInternalMock;
@Mock
- private TaskanaEngineConfiguration taskanaEngineConfiguration;
+ private TaskanaEngine taskanaEngineMock;
@Mock
private TaskMonitorMapper taskMonitorMapperMock;
@@ -50,8 +51,7 @@ public class TaskStatusReportBuilderImplTest {
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
- Mockito.doNothing().when(taskanaEngineImplMock).openConnection();
- Mockito.doNothing().when(taskanaEngineImplMock).returnConnection();
+ when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
}
@Test
@@ -72,10 +72,14 @@ public class TaskStatusReportBuilderImplTest {
TaskStatusReport report = cut.createTaskStatusReportBuilder().buildReport();
// then
- InOrder inOrder = inOrder(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineImplMock);
- inOrder.verify(taskanaEngineImplMock).openConnection();
+ InOrder inOrder = inOrder(taskanaEngineMock, taskanaEngineInternalMock, taskMonitorMapperMock);
+ inOrder.verify(taskanaEngineInternalMock).getEngine();
+ inOrder.verify(taskanaEngineMock).checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
+ inOrder.verify(taskanaEngineInternalMock).openConnection();
inOrder.verify(taskMonitorMapperMock).getTasksCountByState(eq(null), eq(null));
- inOrder.verify(taskanaEngineImplMock).returnConnection();
+ inOrder.verify(taskanaEngineInternalMock).returnConnection();
+ inOrder.verifyNoMoreInteractions();
+ verifyNoMoreInteractions(taskanaEngineMock, taskanaEngineInternalMock, taskMonitorMapperMock);
assertNotNull(report);
assertEquals(1, report.rowSize());
@@ -103,10 +107,14 @@ public class TaskStatusReportBuilderImplTest {
TaskStatusReport report = cut.createTaskStatusReportBuilder().stateIn(Collections.emptyList()).buildReport();
// then
- InOrder inOrder = inOrder(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineImplMock);
- inOrder.verify(taskanaEngineImplMock).openConnection();
+ InOrder inOrder = inOrder(taskanaEngineMock, taskMonitorMapperMock, taskanaEngineInternalMock);
+ inOrder.verify(taskanaEngineInternalMock).getEngine();
+ inOrder.verify(taskanaEngineMock).checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
+ inOrder.verify(taskanaEngineInternalMock).openConnection();
inOrder.verify(taskMonitorMapperMock).getTasksCountByState(eq(null), eq(Collections.emptyList()));
- inOrder.verify(taskanaEngineImplMock).returnConnection();
+ inOrder.verify(taskanaEngineInternalMock).returnConnection();
+ inOrder.verifyNoMoreInteractions();
+ verifyNoMoreInteractions(taskanaEngineMock, taskMonitorMapperMock, taskanaEngineInternalMock);
assertNotNull(report);
assertEquals(1, report.rowSize());
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/TaskanaEngineProxyForTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/TaskanaEngineProxyForTest.java
index 18bd10ee0..d037cd95c 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/TaskanaEngineProxyForTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/TaskanaEngineProxyForTest.java
@@ -1,7 +1,11 @@
package pro.taskana.impl;
+import java.lang.reflect.Field;
+
import org.apache.ibatis.session.SqlSession;
+import pro.taskana.TaskanaEngine;
+
/**
* Utility class to enable unit tests to access mappers directly.
*
@@ -9,14 +13,16 @@ import org.apache.ibatis.session.SqlSession;
*/
public class TaskanaEngineProxyForTest {
- TaskanaEngineImpl engine;
+ TaskanaEngine.Internal engine;
- public TaskanaEngineProxyForTest(TaskanaEngineImpl taskanaEngine) {
- engine = taskanaEngine;
+ public TaskanaEngineProxyForTest(TaskanaEngine taskanaEngine) throws NoSuchFieldException, IllegalAccessException {
+ Field internal = TaskanaEngineImpl.class.getDeclaredField("internal");
+ internal.setAccessible(true);
+ engine = (TaskanaEngine.Internal) internal.get(taskanaEngine);
}
public SqlSession getSqlSession() {
- return engine.sessionManager;
+ return engine.getSqlSession();
}
public void openConnection() {
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketAccessItemQueryImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketAccessItemQueryImplTest.java
index 99d43be10..d0ab9bf01 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketAccessItemQueryImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketAccessItemQueryImplTest.java
@@ -8,12 +8,13 @@ import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Assert;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
+import pro.taskana.TaskanaEngine;
import pro.taskana.WorkbasketAccessItem;
/**
@@ -24,22 +25,18 @@ import pro.taskana.WorkbasketAccessItem;
@RunWith(MockitoJUnitRunner.class)
public class WorkbasketAccessItemQueryImplTest {
+ @InjectMocks
private WorkbasketAccessItemQueryImpl workbasketAccessItemQueryImpl;
@Mock
- private TaskanaEngineImpl taskanaEngine;
+ private TaskanaEngine.Internal taskanaEngineInternal;
@Mock
private SqlSession sqlSession;
- @Before
- public void setup() {
- workbasketAccessItemQueryImpl = new WorkbasketAccessItemQueryImpl(taskanaEngine);
- }
-
@Test
public void should_ReturnList_when_BuilderIsUsed() {
- when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
+ when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectList(any(), any())).thenReturn(new ArrayList<>());
List result = workbasketAccessItemQueryImpl.accessIdIn("test", "asd")
@@ -49,7 +46,7 @@ public class WorkbasketAccessItemQueryImplTest {
@Test
public void should_ReturnListWithOffset_when_BuilderIsUsed() {
- when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
+ when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectList(any(), any(), any())).thenReturn(new ArrayList<>());
List result = workbasketAccessItemQueryImpl.accessIdIn("test", "asd")
@@ -59,7 +56,7 @@ public class WorkbasketAccessItemQueryImplTest {
@Test
public void should_ReturnOneItem_when_BuilderIsUsed() {
- when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
+ when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectOne(any(), any())).thenReturn(new WorkbasketAccessItemImpl());
WorkbasketAccessItem result = workbasketAccessItemQueryImpl.accessIdIn("test", "asd")
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketQueryImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketQueryImplTest.java
index d2ed9a823..6d8bc096b 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketQueryImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketQueryImplTest.java
@@ -11,9 +11,11 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
+import pro.taskana.TaskanaEngine;
import pro.taskana.WorkbasketSummary;
/**
@@ -24,22 +26,26 @@ import pro.taskana.WorkbasketSummary;
@RunWith(MockitoJUnitRunner.class)
public class WorkbasketQueryImplTest {
+ @InjectMocks
private WorkbasketQueryImpl workbasketQueryImpl;
@Mock
- private TaskanaEngineImpl taskanaEngine;
+ private TaskanaEngine.Internal taskanaEngineInternal;
+
+ @Mock
+ private TaskanaEngine taskanaEngine;
@Mock
private SqlSession sqlSession;
@Before
public void setup() {
- workbasketQueryImpl = new WorkbasketQueryImpl(taskanaEngine);
+ when(taskanaEngineInternal.getEngine()).thenReturn(taskanaEngine);
}
@Test
public void should_ReturnList_when_BuilderIsUsed() {
- when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
+ when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectList(any(), any())).thenReturn(new ArrayList<>());
List result = workbasketQueryImpl
@@ -51,7 +57,7 @@ public class WorkbasketQueryImplTest {
@Test
public void should_ReturnListWithOffset_when_BuilderIsUsed() {
- when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
+ when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectList(any(), any(), any())).thenReturn(new ArrayList<>());
List result = workbasketQueryImpl
@@ -63,7 +69,7 @@ public class WorkbasketQueryImplTest {
@Test
public void should_ReturnOneItem_when_BuilderIsUsed() {
- when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
+ when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectOne(any(), any())).thenReturn(new WorkbasketSummaryImpl());
WorkbasketSummary result = workbasketQueryImpl
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketReportBuilderImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketReportBuilderImplTest.java
index 0787366d4..78c3b02de 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketReportBuilderImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketReportBuilderImplTest.java
@@ -21,12 +21,12 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
-import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.CustomField;
import pro.taskana.TaskState;
+import pro.taskana.TaskanaEngine;
import pro.taskana.TaskanaRole;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.InvalidArgumentException;
@@ -47,7 +47,10 @@ public class WorkbasketReportBuilderImplTest {
private TaskMonitorServiceImpl cut;
@Mock
- private TaskanaEngineImpl taskanaEngineImplMock;
+ private TaskanaEngine.Internal taskanaEngineInternalMock;
+
+ @Mock
+ private TaskanaEngine taskanaEngineMock;
@Mock
private TaskanaEngineConfiguration taskanaEngineConfiguration;
@@ -58,9 +61,8 @@ public class WorkbasketReportBuilderImplTest {
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
- Mockito.doNothing().when(taskanaEngineImplMock).openConnection();
- Mockito.doNothing().when(taskanaEngineImplMock).returnConnection();
- when(taskanaEngineImplMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
+ when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
+ when(taskanaEngineMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
when(taskanaEngineConfiguration.isGermanPublicHolidaysEnabled()).thenReturn(true);
when(taskanaEngineConfiguration.getCustomHolidays()).thenReturn(null);
}
@@ -76,8 +78,8 @@ public class WorkbasketReportBuilderImplTest {
List excludedClassificationIds = Collections.singletonList("L20000");
Map customAttributeFilter = new HashMap<>();
customAttributeFilter.put(CustomField.CUSTOM_1, "Geschaeftsstelle A");
- List combinedClassificationFilter = Arrays
- .asList(new CombinedClassificationFilter("CLI:000000000000000000000000000000000003",
+ List combinedClassificationFilter = Collections.singletonList(
+ new CombinedClassificationFilter("CLI:000000000000000000000000000000000003",
"CLI:000000000000000000000000000000000008"));
List expectedResult = new ArrayList<>();
@@ -100,16 +102,18 @@ public class WorkbasketReportBuilderImplTest {
.combinedClassificationFilterIn(combinedClassificationFilter)
.buildReport();
- verify(taskanaEngineImplMock, times(1))
+ verify(taskanaEngineInternalMock, times(1))
.openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1)).getTaskCountOfWorkbaskets(any(), any(), any(), any(),
any(), any(), any(), any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(
@@ -128,8 +132,8 @@ public class WorkbasketReportBuilderImplTest {
List excludedClassificationIds = Collections.singletonList("L20000");
Map customAttributeFilter = new HashMap<>();
customAttributeFilter.put(CustomField.CUSTOM_1, "Geschaeftsstelle A");
- List combinedClassificationFilter = Arrays
- .asList(new CombinedClassificationFilter("CLI:000000000000000000000000000000000003",
+ List combinedClassificationFilter = Collections.singletonList(
+ new CombinedClassificationFilter("CLI:000000000000000000000000000000000003",
"CLI:000000000000000000000000000000000008"));
List columnHeaders = Collections.singletonList(
new TimeIntervalColumnHeader(0, 0));
@@ -156,15 +160,17 @@ public class WorkbasketReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.buildReport();
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1)).getTaskCountOfWorkbaskets(any(), any(), any(), any(), any(), any(),
any(), any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(
@@ -209,15 +215,17 @@ public class WorkbasketReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listTaskIdsForSelectedItems(selectedItems);
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1))
.getTaskIdsForSelectedItems(any(), any(), any(), any(), any(), any(), any(), any(), any(), eq(false));
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(expectedResult, actualResult);
@@ -269,15 +277,17 @@ public class WorkbasketReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
- verify(taskanaEngineImplMock, times(1)).openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1))
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(expectedResult, actualResult);
@@ -327,10 +337,11 @@ public class WorkbasketReportBuilderImplTest {
.combinedClassificationFilterIn(combinedClassificationFilter)
.buildPlannedDateBasedReport();
- verify(taskanaEngineImplMock, times(1))
+ verify(taskanaEngineInternalMock, times(1))
.openConnection();
- verify(taskanaEngineImplMock, times(1)).checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
- verify(taskanaEngineImplMock, times(2)).getConfiguration();
+ verify(taskanaEngineMock, times(1)).checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
+ verify(taskanaEngineMock, times(2)).getConfiguration();
+ verify(taskanaEngineInternalMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(taskMonitorMapperMock, times(1)).getTaskCountOfWorkbasketsBasedOnPlannedDate(
@@ -342,8 +353,9 @@ public class WorkbasketReportBuilderImplTest {
excludedClassificationIds,
customAttributeFilter,
combinedClassificationFilter);
- verify(taskanaEngineImplMock, times(1)).returnConnection();
- verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
+ verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
+ taskanaEngineConfiguration);
assertNotNull(actualResult);
assertEquals(
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketServiceImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketServiceImplTest.java
index 9ee27c7fd..feb7e911f 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketServiceImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketServiceImplTest.java
@@ -5,7 +5,6 @@ import static org.hamcrest.core.IsNot.not;
import static org.hamcrest.core.StringStartsWith.startsWith;
import static org.junit.Assert.assertThat;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.times;
@@ -17,20 +16,19 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
import org.mockito.Spy;
import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.TaskQuery;
import pro.taskana.TaskService;
import pro.taskana.TaskSummary;
+import pro.taskana.TaskanaEngine;
import pro.taskana.Workbasket;
import pro.taskana.WorkbasketType;
import pro.taskana.configuration.TaskanaEngineConfiguration;
@@ -42,7 +40,6 @@ import pro.taskana.exceptions.WorkbasketAlreadyExistException;
import pro.taskana.exceptions.WorkbasketInUseException;
import pro.taskana.exceptions.WorkbasketNotFoundException;
import pro.taskana.mappings.DistributionTargetMapper;
-import pro.taskana.mappings.TaskMapper;
import pro.taskana.mappings.WorkbasketAccessMapper;
import pro.taskana.mappings.WorkbasketMapper;
@@ -61,12 +58,6 @@ public class WorkbasketServiceImplTest {
@Mock
private WorkbasketMapper workbasketMapperMock;
- @Mock
- private TaskMapper taskMapperMock;
-
- @Mock
- private SqlSession sqlSessionMock;
-
@Mock
private DistributionTargetMapper distributionTargetMapperMock;
@@ -80,14 +71,17 @@ public class WorkbasketServiceImplTest {
private TaskQuery taskQueryMock;
@Mock
- private TaskanaEngineImpl taskanaEngineImplMock;
+ private TaskanaEngine taskanaEngine;
+
+ @Mock
+ private TaskanaEngine.Internal taskanaEngineInternalMock;
@Mock
private TaskanaEngineConfiguration taskanaEngineConfigurationMock;
@Before
public void setup() {
- MockitoAnnotations.initMocks(this);
+ when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngine);
}
@Test
@@ -96,26 +90,26 @@ public class WorkbasketServiceImplTest {
WorkbasketAlreadyExistException, DomainNotFoundException {
final int distTargetAmount = 2;
WorkbasketImpl expectedWb = createTestWorkbasket(null, "Key-1");
- doNothing().when(workbasketMapperMock).insert(expectedWb);
doReturn(expectedWb).when(cutSpy).getWorkbasket(any());
- when(taskanaEngineImplMock.domainExists(any())).thenReturn(true);
+ when(taskanaEngineInternalMock.domainExists(any())).thenReturn(true);
Workbasket actualWb = cutSpy.createWorkbasket(expectedWb);
cutSpy.setDistributionTargets(expectedWb.getId(), createTestDistributionTargets(distTargetAmount));
- verify(taskanaEngineImplMock, times(4)).openConnection();
+ verify(taskanaEngineInternalMock, times(4)).openConnection();
verify(workbasketMapperMock, times(3)).insert(any());
verify(cutSpy, times(distTargetAmount + 1)).getWorkbasket(any());
verify(distributionTargetMapperMock, times(1)).deleteAllDistributionTargetsBySourceId(any());
verify(distributionTargetMapperMock, times(distTargetAmount)).insert(any(), any());
verify(workbasketMapperMock, times(3)).findByKeyAndDomain(any(), any());
verify(workbasketMapperMock, times(1)).update(any());
- verify(taskanaEngineImplMock, times(4)).returnConnection();
- verify(taskanaEngineImplMock, times(4)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(3)).domainExists(any());
+ verify(taskanaEngineInternalMock, times(4)).returnConnection();
+ verify(taskanaEngine, times(4)).checkRoleMembership(any());
+ verify(taskanaEngineInternalMock, times(4)).getEngine();
+ verify(taskanaEngineInternalMock, times(3)).domainExists(any());
verifyNoMoreInteractions(taskQueryMock, taskServiceMock, workbasketMapperMock, workbasketAccessMapperMock,
distributionTargetMapperMock,
- taskanaEngineImplMock, taskanaEngineConfigurationMock);
+ taskanaEngineInternalMock, taskanaEngine, taskanaEngineConfigurationMock);
assertThat(actualWb.getId(), not(equalTo(null)));
assertThat(actualWb.getId(), startsWith("WBI"));
assertThat(actualWb.getCreated(), not(equalTo(null)));
@@ -127,8 +121,7 @@ public class WorkbasketServiceImplTest {
throws WorkbasketNotFoundException, NotAuthorizedException, InvalidWorkbasketException,
WorkbasketAlreadyExistException, DomainNotFoundException {
WorkbasketImpl expectedWb = createTestWorkbasket("ID-1", "Key-1");
- doNothing().when(workbasketMapperMock).insert(expectedWb);
- when(taskanaEngineImplMock.domainExists(any())).thenReturn(true);
+ when(taskanaEngineInternalMock.domainExists(any())).thenReturn(true);
try {
cutSpy.createWorkbasket(expectedWb);
@@ -138,17 +131,18 @@ public class WorkbasketServiceImplTest {
doThrow(WorkbasketNotFoundException.class).when(cutSpy).getDistributionTargets(expectedWb.getId()).get(0);
} catch (WorkbasketNotFoundException e) {
- verify(taskanaEngineImplMock, times(3)).openConnection();
+ verify(taskanaEngineInternalMock, times(3)).openConnection();
verify(workbasketMapperMock, times(1)).insert(expectedWb);
verify(workbasketMapperMock, times(1)).findById(any());
verify(workbasketMapperMock, times(1)).findByKeyAndDomain(any(), any());
verify(cutSpy, times(1)).getWorkbasket(any());
- verify(taskanaEngineImplMock, times(3)).returnConnection();
- verify(taskanaEngineImplMock, times(2)).checkRoleMembership(any());
- verify(taskanaEngineImplMock, times(1)).domainExists(any());
+ verify(taskanaEngineInternalMock, times(3)).returnConnection();
+ verify(taskanaEngine, times(2)).checkRoleMembership(any());
+ verify(taskanaEngineInternalMock, times(2)).getEngine();
+ verify(taskanaEngineInternalMock, times(1)).domainExists(any());
verifyNoMoreInteractions(taskQueryMock, taskServiceMock, workbasketMapperMock, workbasketAccessMapperMock,
distributionTargetMapperMock,
- taskanaEngineImplMock, taskanaEngineConfigurationMock);
+ taskanaEngineInternalMock, taskanaEngine, taskanaEngineConfigurationMock);
throw e;
}
}
@@ -159,19 +153,18 @@ public class WorkbasketServiceImplTest {
public void testCreateWorkbasket_NotCreated()
throws Exception {
WorkbasketImpl expectedWb = createTestWorkbasket(null, "Key-1");
- doNothing().when(workbasketMapperMock).insert(expectedWb);
when(workbasketMapperMock.findById(any())).thenThrow(WorkbasketNotFoundException.class);
try {
cutSpy.createWorkbasket(expectedWb);
} catch (Exception e) {
- verify(taskanaEngineImplMock, times(1)).openConnection();
+ verify(taskanaEngineInternalMock, times(1)).openConnection();
verify(workbasketMapperMock, times(1)).insert(expectedWb);
verify(workbasketMapperMock, times(1)).findById(expectedWb.getId());
- verify(taskanaEngineImplMock, times(1)).returnConnection();
+ verify(taskanaEngineInternalMock, times(1)).returnConnection();
verifyNoMoreInteractions(taskQueryMock, taskServiceMock, workbasketMapperMock, workbasketAccessMapperMock,
distributionTargetMapperMock,
- taskanaEngineImplMock, taskanaEngineConfigurationMock);
+ taskanaEngineInternalMock, taskanaEngineConfigurationMock);
throw e;
}
}
@@ -185,13 +178,13 @@ public class WorkbasketServiceImplTest {
try {
cutSpy.deleteWorkbasket(wb.getId());
} catch (WorkbasketNotFoundException e) {
- verify(taskanaEngineImplMock, times(2)).openConnection();
+ verify(taskanaEngineInternalMock, times(2)).openConnection();
verify(cutSpy, times(1)).getWorkbasket(wb.getId());
- verify(taskanaEngineImplMock, times(0)).getTaskService();
+ verify(taskanaEngine, times(0)).getTaskService();
verify(taskServiceMock, times(0)).createTaskQuery();
verify(taskQueryMock, times(0)).workbasketIdIn(wb.getId());
verify(taskQueryMock, times(0)).count();
- verify(taskanaEngineImplMock, times(2)).returnConnection();
+ verify(taskanaEngineInternalMock, times(2)).returnConnection();
verifyNoMoreInteractions(taskQueryMock, taskServiceMock, workbasketAccessMapperMock,
distributionTargetMapperMock, taskanaEngineConfigurationMock);
throw e;
diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/WorkbasketServiceImplIntAutocommitTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/WorkbasketServiceImplIntAutocommitTest.java
index dfd031411..a591bdd10 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/WorkbasketServiceImplIntAutocommitTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/WorkbasketServiceImplIntAutocommitTest.java
@@ -35,7 +35,6 @@ import pro.taskana.exceptions.InvalidWorkbasketException;
import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.exceptions.WorkbasketAlreadyExistException;
import pro.taskana.exceptions.WorkbasketNotFoundException;
-import pro.taskana.impl.TaskanaEngineImpl;
import pro.taskana.impl.TaskanaEngineProxyForTest;
import pro.taskana.impl.WorkbasketImpl;
import pro.taskana.impl.configuration.DBCleaner;
@@ -54,12 +53,9 @@ import pro.taskana.security.WithAccessId;
public class WorkbasketServiceImplIntAutocommitTest {
private static final int SLEEP_TIME = 100;
- private static final int THREE = 3;
- static int counter = 0;
private DataSource dataSource;
private TaskanaEngineConfiguration taskanaEngineConfiguration;
private TaskanaEngine taskanaEngine;
- private TaskanaEngineImpl taskanaEngineImpl;
private WorkbasketService workBasketService;
private Instant now;
@@ -76,8 +72,7 @@ public class WorkbasketServiceImplIntAutocommitTest {
taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false,
TaskanaEngineConfigurationTest.getSchemaName());
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
- taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
- taskanaEngineImpl.setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT);
+ taskanaEngine.setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT);
workBasketService = taskanaEngine.getWorkbasketService();
DBCleaner cleaner = new DBCleaner();
cleaner.clearDb(dataSource, false);
@@ -187,11 +182,11 @@ public class WorkbasketServiceImplIntAutocommitTest {
}
private void updateModifiedTimestamps(Workbasket basket2, Workbasket basket3, Workbasket basket4,
- Workbasket basket1) {
+ Workbasket basket1) throws NoSuchFieldException, IllegalAccessException {
// created and modified timestamps are set by WorkbasketServiceImpl to 'now' when the workbasket is created
// in order to create timestamps distict from the current time, we must use the mapper directly to bypass
// WorkbasketServiceImpl
- TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest(taskanaEngineImpl);
+ TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest(taskanaEngine);
SqlSession session = engineProxy.getSqlSession();
WorkbasketMapper mapper = session.getMapper(WorkbasketMapper.class);