diff --git a/lib/taskana-cdi-example/src/main/java/pro/taskana/ExampleBootstrap.java b/lib/taskana-cdi-example/src/main/java/pro/taskana/ExampleBootstrap.java
index 5ffb39b88..aab5a13de 100644
--- a/lib/taskana-cdi-example/src/main/java/pro/taskana/ExampleBootstrap.java
+++ b/lib/taskana-cdi-example/src/main/java/pro/taskana/ExampleBootstrap.java
@@ -8,9 +8,9 @@ import javax.enterprise.event.Observes;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidOwnerException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
+import pro.taskana.task.api.exceptions.InvalidOwnerException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.ObjectReference;
diff --git a/lib/taskana-cdi/src/main/java/pro/taskana/TaskanaProducers.java b/lib/taskana-cdi/src/main/java/pro/taskana/common/internal/TaskanaProducers.java
similarity index 96%
rename from lib/taskana-cdi/src/main/java/pro/taskana/TaskanaProducers.java
rename to lib/taskana-cdi/src/main/java/pro/taskana/common/internal/TaskanaProducers.java
index 738863aea..d9f8ee366 100644
--- a/lib/taskana-cdi/src/main/java/pro/taskana/TaskanaProducers.java
+++ b/lib/taskana-cdi/src/main/java/pro/taskana/common/internal/TaskanaProducers.java
@@ -1,4 +1,4 @@
-package pro.taskana;
+package pro.taskana.common.internal;
import java.io.IOException;
import java.io.InputStream;
@@ -17,6 +17,7 @@ import javax.sql.DataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import pro.taskana.TaskanaEngineConfiguration;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.common.api.TaskanaEngine;
import pro.taskana.task.api.TaskService;
diff --git a/lib/taskana-cdi/src/test/java/pro/taskana/TaskanaRestTest.java b/lib/taskana-cdi/src/test/java/pro/taskana/TaskanaRestTest.java
index ad8eedc34..591a7ee00 100644
--- a/lib/taskana-cdi/src/test/java/pro/taskana/TaskanaRestTest.java
+++ b/lib/taskana-cdi/src/test/java/pro/taskana/TaskanaRestTest.java
@@ -17,9 +17,9 @@ import pro.taskana.classification.api.exceptions.ClassificationNotFoundException
import pro.taskana.classification.api.models.Classification;
import pro.taskana.common.api.exceptions.DomainNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidOwnerException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
+import pro.taskana.task.api.exceptions.InvalidOwnerException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.ObjectReference;
diff --git a/lib/taskana-cdi/src/test/java/pro/taskana/TaskanaProducersTest.java b/lib/taskana-cdi/src/test/java/pro/taskana/common/internal/TaskanaProducersTest.java
similarity index 96%
rename from lib/taskana-cdi/src/test/java/pro/taskana/TaskanaProducersTest.java
rename to lib/taskana-cdi/src/test/java/pro/taskana/common/internal/TaskanaProducersTest.java
index eb1bd938b..0c877b47c 100644
--- a/lib/taskana-cdi/src/test/java/pro/taskana/TaskanaProducersTest.java
+++ b/lib/taskana-cdi/src/test/java/pro/taskana/common/internal/TaskanaProducersTest.java
@@ -1,4 +1,4 @@
-package pro.taskana;
+package pro.taskana.common.internal;
import java.sql.Connection;
import java.sql.DriverManager;
@@ -16,6 +16,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.wildfly.swarm.undertow.WARArchive;
+import pro.taskana.common.internal.TaskanaProducers;
+
/** TODO. */
@RunWith(Arquillian.class)
public class TaskanaProducersTest {
diff --git a/lib/taskana-core/src/main/java/pro/taskana/classification/api/ClassificationQueryColumnName.java b/lib/taskana-core/src/main/java/pro/taskana/classification/api/ClassificationQueryColumnName.java
index 6820c2be7..22119010c 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/classification/api/ClassificationQueryColumnName.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/classification/api/ClassificationQueryColumnName.java
@@ -1,11 +1,10 @@
package pro.taskana.classification.api;
-import pro.taskana.classification.internal.ClassificationQueryMapper;
import pro.taskana.common.api.QueryColumnName;
/**
* Enum containing the column names for {@link
- * ClassificationQueryMapper#queryClassificationColumnValues}.
+ * pro.taskana.classification.internal.ClassificationQueryMapper#queryClassificationColumnValues}.
*
* @author jsa
*/
diff --git a/lib/taskana-core/src/main/java/pro/taskana/task/api/ObjectReferenceQueryColumnName.java b/lib/taskana-core/src/main/java/pro/taskana/task/api/ObjectReferenceQueryColumnName.java
index eef130f83..3b3498652 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/task/api/ObjectReferenceQueryColumnName.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/task/api/ObjectReferenceQueryColumnName.java
@@ -1,10 +1,10 @@
package pro.taskana.task.api;
import pro.taskana.common.api.QueryColumnName;
-import pro.taskana.task.internal.TaskQueryMapper;
/**
- * Enum containing the column names for {@link TaskQueryMapper#queryObjectReferenceColumnValues}.
+ * Enum containing the column names for {@link
+ * pro.taskana.task.internal.TaskQueryMapper#queryObjectReferenceColumnValues}.
*
* @author jsa
*/
diff --git a/lib/taskana-core/src/main/java/pro/taskana/task/api/TaskQueryColumnName.java b/lib/taskana-core/src/main/java/pro/taskana/task/api/TaskQueryColumnName.java
index 49a0ef5ef..5c472687c 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/task/api/TaskQueryColumnName.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/task/api/TaskQueryColumnName.java
@@ -1,12 +1,10 @@
package pro.taskana.task.api;
import pro.taskana.common.api.QueryColumnName;
-import pro.taskana.task.internal.TaskQueryImpl;
-import pro.taskana.task.internal.TaskQueryMapper;
/**
- * Enum containing the column names for {@link
- * TaskQueryMapper#queryTaskColumnValues(TaskQueryImpl)}.
+ * Enum containing the column names for
+ * TaskQueryMapper.queryTaskColumnValues
*
* @author jsa
*/
diff --git a/lib/taskana-core/src/main/java/pro/taskana/task/api/TaskService.java b/lib/taskana-core/src/main/java/pro/taskana/task/api/TaskService.java
index 45f729107..5c973e3f0 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/task/api/TaskService.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/task/api/TaskService.java
@@ -6,13 +6,13 @@ import java.util.Map;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.common.api.BulkOperationResults;
-import pro.taskana.common.api.exceptions.AttachmentPersistenceException;
import pro.taskana.common.api.exceptions.ConcurrencyException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidOwnerException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.api.exceptions.TaskanaException;
+import pro.taskana.task.api.exceptions.AttachmentPersistenceException;
+import pro.taskana.task.api.exceptions.InvalidOwnerException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Attachment;
diff --git a/lib/taskana-core/src/main/java/pro/taskana/common/api/exceptions/AttachmentPersistenceException.java b/lib/taskana-core/src/main/java/pro/taskana/task/api/exceptions/AttachmentPersistenceException.java
similarity index 83%
rename from lib/taskana-core/src/main/java/pro/taskana/common/api/exceptions/AttachmentPersistenceException.java
rename to lib/taskana-core/src/main/java/pro/taskana/task/api/exceptions/AttachmentPersistenceException.java
index e4d8780fc..604de91b6 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/common/api/exceptions/AttachmentPersistenceException.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/task/api/exceptions/AttachmentPersistenceException.java
@@ -1,4 +1,6 @@
-package pro.taskana.common.api.exceptions;
+package pro.taskana.task.api.exceptions;
+
+import pro.taskana.common.api.exceptions.TaskanaException;
/**
* Thrown, when an attachment should be inserted to the DB, but it does already exist.
diff --git a/lib/taskana-core/src/main/java/pro/taskana/common/api/exceptions/InvalidOwnerException.java b/lib/taskana-core/src/main/java/pro/taskana/task/api/exceptions/InvalidOwnerException.java
similarity index 74%
rename from lib/taskana-core/src/main/java/pro/taskana/common/api/exceptions/InvalidOwnerException.java
rename to lib/taskana-core/src/main/java/pro/taskana/task/api/exceptions/InvalidOwnerException.java
index 17d3781a6..9981e4377 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/common/api/exceptions/InvalidOwnerException.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/task/api/exceptions/InvalidOwnerException.java
@@ -1,4 +1,6 @@
-package pro.taskana.common.api.exceptions;
+package pro.taskana.task.api.exceptions;
+
+import pro.taskana.common.api.exceptions.TaskanaException;
/**
* This exception is thrown when the task state doesn't allow the requested operation.
diff --git a/lib/taskana-core/src/main/java/pro/taskana/common/api/exceptions/InvalidStateException.java b/lib/taskana-core/src/main/java/pro/taskana/task/api/exceptions/InvalidStateException.java
similarity index 74%
rename from lib/taskana-core/src/main/java/pro/taskana/common/api/exceptions/InvalidStateException.java
rename to lib/taskana-core/src/main/java/pro/taskana/task/api/exceptions/InvalidStateException.java
index 16c8698f2..ea557bf8a 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/common/api/exceptions/InvalidStateException.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/task/api/exceptions/InvalidStateException.java
@@ -1,4 +1,6 @@
-package pro.taskana.common.api.exceptions;
+package pro.taskana.task.api.exceptions;
+
+import pro.taskana.common.api.exceptions.TaskanaException;
/**
* This exception is thrown when the task state doesn't allow the requested operation.
diff --git a/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskServiceImpl.java
index de87dc5c2..f404469b5 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskServiceImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskServiceImpl.java
@@ -23,11 +23,8 @@ import pro.taskana.classification.api.models.ClassificationSummary;
import pro.taskana.common.api.BulkOperationResults;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.TaskanaRole;
-import pro.taskana.common.api.exceptions.AttachmentPersistenceException;
import pro.taskana.common.api.exceptions.ConcurrencyException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidOwnerException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.api.exceptions.SystemException;
import pro.taskana.common.api.exceptions.TaskanaException;
@@ -46,6 +43,9 @@ import pro.taskana.task.api.CallbackState;
import pro.taskana.task.api.TaskQuery;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskState;
+import pro.taskana.task.api.exceptions.AttachmentPersistenceException;
+import pro.taskana.task.api.exceptions.InvalidOwnerException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Attachment;
diff --git a/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskTransferrer.java b/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskTransferrer.java
index 19d1ab374..1091fa23d 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskTransferrer.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskTransferrer.java
@@ -13,7 +13,6 @@ import org.slf4j.LoggerFactory;
import pro.taskana.common.api.BulkOperationResults;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.api.exceptions.TaskanaException;
import pro.taskana.common.internal.InternalTaskanaEngine;
@@ -21,6 +20,7 @@ import pro.taskana.common.internal.security.CurrentUserContext;
import pro.taskana.spi.history.api.events.task.TransferredEvent;
import pro.taskana.spi.history.internal.HistoryEventProducer;
import pro.taskana.task.api.TaskState;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Task;
import pro.taskana.task.internal.models.MinimalTaskSummary;
diff --git a/lib/taskana-core/src/main/java/pro/taskana/workbasket/api/AccessItemQueryColumnName.java b/lib/taskana-core/src/main/java/pro/taskana/workbasket/api/AccessItemQueryColumnName.java
index 8e6f0a192..3fdfd95a0 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/workbasket/api/AccessItemQueryColumnName.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/workbasket/api/AccessItemQueryColumnName.java
@@ -1,11 +1,10 @@
package pro.taskana.workbasket.api;
import pro.taskana.common.api.QueryColumnName;
-import pro.taskana.workbasket.internal.WorkbasketQueryMapper;
/**
* Enum containing the column names for {@link
- * WorkbasketQueryMapper#queryWorkbasketAccessItemColumnValues}.
+ * pro.taskana.workbasket.internal.WorkbasketQueryMapper#queryWorkbasketAccessItemColumnValues}.
*
* @author jsa
*/
diff --git a/lib/taskana-core/src/main/java/pro/taskana/workbasket/api/WorkbasketQueryColumnName.java b/lib/taskana-core/src/main/java/pro/taskana/workbasket/api/WorkbasketQueryColumnName.java
index e6df60d0a..c12307357 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/workbasket/api/WorkbasketQueryColumnName.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/workbasket/api/WorkbasketQueryColumnName.java
@@ -1,10 +1,10 @@
package pro.taskana.workbasket.api;
import pro.taskana.common.api.QueryColumnName;
-import pro.taskana.workbasket.internal.WorkbasketQueryMapper;
/**
- * Enum containing the column names for {@link WorkbasketQueryMapper#queryWorkbasketColumnValues}.
+ * Enum containing the column names
+ * for pro.taskana.workbasket.internal.WorkbasketQueryMapper.queryWorkbasketColumnValues
*
* @author jsa
*/
diff --git a/lib/taskana-core/src/test/java/acceptance/jobs/TaskCleanupJobAccTest.java b/lib/taskana-core/src/test/java/acceptance/jobs/TaskCleanupJobAccTest.java
index 65894cce3..5b584cba0 100644
--- a/lib/taskana-core/src/test/java/acceptance/jobs/TaskCleanupJobAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/jobs/TaskCleanupJobAccTest.java
@@ -13,13 +13,13 @@ import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidOwnerException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.jobs.TaskCleanupJob;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskService;
+import pro.taskana.task.api.exceptions.InvalidOwnerException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Task;
diff --git a/lib/taskana-core/src/test/java/acceptance/persistence/UpdateObjectsUseUtcTimeStampsAccTest.java b/lib/taskana-core/src/test/java/acceptance/persistence/UpdateObjectsUseUtcTimeStampsAccTest.java
index 144d2d0f3..1ab4ee84f 100644
--- a/lib/taskana-core/src/test/java/acceptance/persistence/UpdateObjectsUseUtcTimeStampsAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/persistence/UpdateObjectsUseUtcTimeStampsAccTest.java
@@ -20,16 +20,16 @@ import pro.taskana.classification.api.exceptions.ClassificationNotFoundException
import pro.taskana.classification.api.models.Classification;
import pro.taskana.common.api.JobService;
import pro.taskana.common.api.ScheduledJob;
-import pro.taskana.common.api.exceptions.AttachmentPersistenceException;
import pro.taskana.common.api.exceptions.ConcurrencyException;
import pro.taskana.common.api.exceptions.DomainNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.JobServiceImpl;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskService;
+import pro.taskana.task.api.exceptions.AttachmentPersistenceException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Task;
diff --git a/lib/taskana-core/src/test/java/acceptance/task/CallbackStateAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/CallbackStateAccTest.java
index e4695fb43..948abe0d2 100644
--- a/lib/taskana-core/src/test/java/acceptance/task/CallbackStateAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/task/CallbackStateAccTest.java
@@ -18,8 +18,6 @@ import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.common.api.BulkOperationResults;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidOwnerException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.api.exceptions.TaskanaException;
import pro.taskana.security.JaasExtension;
@@ -27,6 +25,8 @@ import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.CallbackState;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskState;
+import pro.taskana.task.api.exceptions.InvalidOwnerException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Task;
@@ -146,7 +146,7 @@ class CallbackStateAccTest extends AbstractAccTest {
for (String taskId : failedTaskIds) {
TaskanaException excpt = bulkResult1.getErrorForId(taskId);
assertEquals(
- "pro.taskana.common.api.exceptions.InvalidStateException", excpt.getClass().getName());
+ "pro.taskana.task.api.exceptions.InvalidStateException", excpt.getClass().getName());
}
List externalIds =
new ArrayList<>(
diff --git a/lib/taskana-core/src/test/java/acceptance/task/CompleteTaskAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/CompleteTaskAccTest.java
index cd863b2b4..d3fdc3555 100644
--- a/lib/taskana-core/src/test/java/acceptance/task/CompleteTaskAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/task/CompleteTaskAccTest.java
@@ -14,14 +14,14 @@ import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidOwnerException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.security.CurrentUserContext;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskState;
+import pro.taskana.task.api.exceptions.InvalidOwnerException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Task;
diff --git a/lib/taskana-core/src/test/java/acceptance/task/DeleteTaskAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/DeleteTaskAccTest.java
index aea0d65fc..69cc16538 100644
--- a/lib/taskana-core/src/test/java/acceptance/task/DeleteTaskAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/task/DeleteTaskAccTest.java
@@ -15,12 +15,12 @@ import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.common.api.BulkOperationResults;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.api.exceptions.TaskanaException;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskService;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Task;
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 33de5748a..a0bb32f92 100644
--- a/lib/taskana-core/src/test/java/acceptance/task/QueryTasksAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/task/QueryTasksAccTest.java
@@ -29,10 +29,8 @@ import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.common.api.TimeInterval;
-import pro.taskana.common.api.exceptions.AttachmentPersistenceException;
import pro.taskana.common.api.exceptions.ConcurrencyException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.TaskanaEngineProxyForTest;
import pro.taskana.security.JaasExtension;
@@ -40,6 +38,8 @@ import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskQuery;
import pro.taskana.task.api.TaskQueryColumnName;
import pro.taskana.task.api.TaskService;
+import pro.taskana.task.api.exceptions.AttachmentPersistenceException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Attachment;
diff --git a/lib/taskana-core/src/test/java/acceptance/task/TransferTaskAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/TransferTaskAccTest.java
index c7fc4914e..f347457ce 100644
--- a/lib/taskana-core/src/test/java/acceptance/task/TransferTaskAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/task/TransferTaskAccTest.java
@@ -20,14 +20,14 @@ import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.common.api.BulkOperationResults;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidOwnerException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.api.exceptions.TaskanaException;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskState;
+import pro.taskana.task.api.exceptions.InvalidOwnerException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Task;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
diff --git a/lib/taskana-core/src/test/java/acceptance/task/UpdateTaskAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/UpdateTaskAccTest.java
index 71b5aaca9..a82cb50bb 100644
--- a/lib/taskana-core/src/test/java/acceptance/task/UpdateTaskAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/task/UpdateTaskAccTest.java
@@ -14,16 +14,16 @@ import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.ClassificationSummary;
-import pro.taskana.common.api.exceptions.AttachmentPersistenceException;
import pro.taskana.common.api.exceptions.ConcurrencyException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidOwnerException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskState;
+import pro.taskana.task.api.exceptions.AttachmentPersistenceException;
+import pro.taskana.task.api.exceptions.InvalidOwnerException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.ObjectReference;
diff --git a/lib/taskana-core/src/test/java/acceptance/task/UpdateTaskAttachmentsAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/UpdateTaskAttachmentsAccTest.java
index 71ccd18e0..ff4ea5a80 100644
--- a/lib/taskana-core/src/test/java/acceptance/task/UpdateTaskAttachmentsAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/task/UpdateTaskAttachmentsAccTest.java
@@ -20,16 +20,16 @@ import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.classification.api.models.ClassificationSummary;
-import pro.taskana.common.api.exceptions.AttachmentPersistenceException;
import pro.taskana.common.api.exceptions.ConcurrencyException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.security.CurrentUserContext;
import pro.taskana.common.internal.util.DaysToWorkingDaysConverter;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskService;
+import pro.taskana.task.api.exceptions.AttachmentPersistenceException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Attachment;
diff --git a/lib/taskana-core/src/test/java/acceptance/task/WorkOnTaskAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/WorkOnTaskAccTest.java
index ffa87574b..e91b4931e 100644
--- a/lib/taskana-core/src/test/java/acceptance/task/WorkOnTaskAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/task/WorkOnTaskAccTest.java
@@ -20,14 +20,14 @@ import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.common.api.BulkOperationResults;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidOwnerException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.api.exceptions.TaskanaException;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskState;
+import pro.taskana.task.api.exceptions.InvalidOwnerException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Task;
diff --git a/lib/taskana-core/src/test/java/acceptance/workbasket/DeleteWorkbasketAccTest.java b/lib/taskana-core/src/test/java/acceptance/workbasket/DeleteWorkbasketAccTest.java
index f81fd67b4..9b9a0fba2 100644
--- a/lib/taskana-core/src/test/java/acceptance/workbasket/DeleteWorkbasketAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/workbasket/DeleteWorkbasketAccTest.java
@@ -14,12 +14,12 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidOwnerException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskService;
+import pro.taskana.task.api.exceptions.InvalidOwnerException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.internal.models.TaskImpl;
import pro.taskana.workbasket.api.WorkbasketService;
diff --git a/lib/taskana-core/src/test/java/pro/taskana/task/internal/TaskServiceImplIntAutocommitTest.java b/lib/taskana-core/src/test/java/pro/taskana/task/internal/TaskServiceImplIntAutocommitTest.java
index 74fa2d139..5dfcab0cf 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/task/internal/TaskServiceImplIntAutocommitTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/task/internal/TaskServiceImplIntAutocommitTest.java
@@ -26,7 +26,6 @@ import pro.taskana.common.api.TaskanaEngine;
import pro.taskana.common.api.TaskanaEngine.ConnectionManagementMode;
import pro.taskana.common.api.exceptions.DomainNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.api.exceptions.SystemException;
import pro.taskana.common.internal.JunitHelper;
@@ -38,6 +37,7 @@ import pro.taskana.sampledata.SampleDataGenerator;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskState;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.ObjectReference;
diff --git a/lib/taskana-core/src/test/java/pro/taskana/task/internal/TaskServiceImplIntExplicitTest.java b/lib/taskana-core/src/test/java/pro/taskana/task/internal/TaskServiceImplIntExplicitTest.java
index fc3ae9578..bb91f9841 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/task/internal/TaskServiceImplIntExplicitTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/task/internal/TaskServiceImplIntExplicitTest.java
@@ -30,7 +30,6 @@ import pro.taskana.common.api.TaskanaEngine;
import pro.taskana.common.api.TaskanaEngine.ConnectionManagementMode;
import pro.taskana.common.api.exceptions.DomainNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.api.exceptions.SystemException;
import pro.taskana.common.internal.JunitHelper;
@@ -43,6 +42,7 @@ import pro.taskana.sampledata.SampleDataGenerator;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskState;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Task;
diff --git a/lib/taskana-core/src/test/java/pro/taskana/task/internal/TaskTransferrerTest.java b/lib/taskana-core/src/test/java/pro/taskana/task/internal/TaskTransferrerTest.java
index 4f7dd8569..5e531b118 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/task/internal/TaskTransferrerTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/task/internal/TaskTransferrerTest.java
@@ -21,10 +21,10 @@ import pro.taskana.classification.api.models.Classification;
import pro.taskana.classification.internal.ClassificationQueryImpl;
import pro.taskana.classification.internal.ClassificationServiceImpl;
import pro.taskana.common.api.TaskanaEngine;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.InternalTaskanaEngine;
import pro.taskana.task.api.TaskState;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Task;
import pro.taskana.task.internal.models.TaskImpl;
diff --git a/lib/taskana-spring-example/src/main/java/pro/taskana/ExampleBootstrap.java b/lib/taskana-spring-example/src/main/java/pro/taskana/ExampleBootstrap.java
index 0f633c1ce..8e22ab950 100644
--- a/lib/taskana-spring-example/src/main/java/pro/taskana/ExampleBootstrap.java
+++ b/lib/taskana-spring-example/src/main/java/pro/taskana/ExampleBootstrap.java
@@ -11,10 +11,10 @@ import pro.taskana.classification.api.models.Classification;
import pro.taskana.common.api.TaskanaEngine;
import pro.taskana.common.api.exceptions.DomainNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
-import pro.taskana.common.api.exceptions.InvalidOwnerException;
-import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.task.api.TaskService;
+import pro.taskana.task.api.exceptions.InvalidOwnerException;
+import pro.taskana.task.api.exceptions.InvalidStateException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.ObjectReference;
diff --git a/lib/taskana-spring-example/src/main/java/pro/taskana/TaskanaConfig.java b/lib/taskana-spring-example/src/main/java/pro/taskana/TaskanaConfig.java
index d6bb74237..8cf469117 100644
--- a/lib/taskana-spring-example/src/main/java/pro/taskana/TaskanaConfig.java
+++ b/lib/taskana-spring-example/src/main/java/pro/taskana/TaskanaConfig.java
@@ -15,7 +15,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.common.api.TaskanaEngine;
-import pro.taskana.configuration.SpringTaskanaEngineConfiguration;
import pro.taskana.task.api.TaskService;
import pro.taskana.workbasket.api.WorkbasketService;
diff --git a/lib/taskana-spring-example/src/test/java/pro/taskana/TransactionalJobsConfiguration.java b/lib/taskana-spring-example/src/test/java/pro/taskana/TransactionalJobsConfiguration.java
index 04e6bbcf5..278dc9fdb 100644
--- a/lib/taskana-spring-example/src/test/java/pro/taskana/TransactionalJobsConfiguration.java
+++ b/lib/taskana-spring-example/src/test/java/pro/taskana/TransactionalJobsConfiguration.java
@@ -3,6 +3,7 @@ package pro.taskana;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import pro.taskana.common.internal.transaction.SpringTransactionProvider;
import pro.taskana.common.internal.transaction.TaskanaTransactionProvider;
/** Configuration class for Spring sample application. */
@@ -11,6 +12,6 @@ public class TransactionalJobsConfiguration {
@Bean
public TaskanaTransactionProvider