TSK-991 after initial refactoring
This commit is contained in:
parent
5d39ff63e2
commit
3b13b9a95e
|
@ -6,8 +6,8 @@ import java.util.List;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.TimeInterval;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.TimeInterval;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.simplehistory.impl.mappings.HistoryQueryMapper;
|
||||
import pro.taskana.simplehistory.query.HistoryQuery;
|
||||
import pro.taskana.simplehistory.query.HistoryQueryColumnName;
|
||||
|
|
|
@ -5,7 +5,7 @@ import java.time.Instant;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.TaskanaEngineConfiguration;
|
||||
import pro.taskana.history.api.TaskanaHistory;
|
||||
import pro.taskana.history.api.TaskanaHistoryEvent;
|
||||
import pro.taskana.simplehistory.impl.mappings.HistoryEventMapper;
|
||||
|
|
|
@ -13,7 +13,7 @@ import org.apache.ibatis.transaction.TransactionFactory;
|
|||
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
|
||||
import org.apache.ibatis.transaction.managed.ManagedTransactionFactory;
|
||||
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.TaskanaEngineConfiguration;
|
||||
import pro.taskana.history.api.TaskanaHistory;
|
||||
import pro.taskana.simplehistory.TaskanaHistoryEngine;
|
||||
import pro.taskana.simplehistory.configuration.DbSchemaCreator;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package pro.taskana.simplehistory.query;
|
||||
|
||||
import pro.taskana.BaseQuery;
|
||||
import pro.taskana.TimeInterval;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.BaseQuery;
|
||||
import pro.taskana.common.api.TimeInterval;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.simplehistory.impl.HistoryEventImpl;
|
||||
|
||||
/** HistoryQuery for generating dynamic sql. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package pro.taskana.simplehistory.query;
|
||||
|
||||
import pro.taskana.QueryColumnName;
|
||||
import pro.taskana.common.api.QueryColumnName;
|
||||
|
||||
/**
|
||||
* Enum containing the column names for {@link
|
||||
|
|
|
@ -15,7 +15,7 @@ import org.junit.BeforeClass;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.TaskanaEngineConfiguration;
|
||||
import pro.taskana.simplehistory.impl.HistoryEventImpl;
|
||||
import pro.taskana.simplehistory.impl.SimpleHistoryServiceImpl;
|
||||
|
||||
|
|
|
@ -10,8 +10,8 @@ import java.time.Instant;
|
|||
import java.util.List;
|
||||
import org.junit.Test;
|
||||
|
||||
import pro.taskana.BaseQuery.SortDirection;
|
||||
import pro.taskana.TimeInterval;
|
||||
import pro.taskana.common.api.BaseQuery.SortDirection;
|
||||
import pro.taskana.common.api.TimeInterval;
|
||||
import pro.taskana.simplehistory.impl.HistoryEventImpl;
|
||||
import pro.taskana.simplehistory.query.HistoryQuery;
|
||||
import pro.taskana.simplehistory.query.HistoryQueryColumnName;
|
||||
|
|
|
@ -8,8 +8,8 @@ import javax.sql.DataSource;
|
|||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.TaskanaEngineConfiguration;
|
||||
|
||||
/**
|
||||
* Unit Test for TaskanaEngineConfigurationTest.
|
||||
|
|
|
@ -15,7 +15,7 @@ import org.junit.runner.RunWith;
|
|||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.TimeInterval;
|
||||
import pro.taskana.common.api.TimeInterval;
|
||||
import pro.taskana.simplehistory.impl.mappings.HistoryQueryMapper;
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,7 +25,7 @@ import org.powermock.core.classloader.annotations.PowerMockIgnore;
|
|||
import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||
import org.powermock.modules.junit4.PowerMockRunner;
|
||||
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.TaskanaEngineConfiguration;
|
||||
import pro.taskana.simplehistory.impl.mappings.HistoryEventMapper;
|
||||
import pro.taskana.simplehistory.impl.mappings.HistoryQueryMapper;
|
||||
|
||||
|
|
|
@ -16,11 +16,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import pro.taskana.BaseQuery;
|
||||
import pro.taskana.TimeInterval;
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.impl.util.LoggerUtils;
|
||||
import pro.taskana.common.api.BaseQuery;
|
||||
import pro.taskana.common.api.TimeInterval;
|
||||
import pro.taskana.TaskanaEngineConfiguration;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.internal.util.LoggerUtils;
|
||||
import pro.taskana.rest.AbstractPagingController;
|
||||
import pro.taskana.rest.resource.PagedResources.PageMetadata;
|
||||
import pro.taskana.rest.resource.TaskHistoryEventListAssembler;
|
||||
|
|
|
@ -13,7 +13,7 @@ import org.apache.ibatis.jdbc.ScriptRunner;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.configuration.DB;
|
||||
import pro.taskana.common.internal.configuration.DB;
|
||||
|
||||
/** This class generates sample data for manual testing purposes. */
|
||||
public class SampleDataGenerator {
|
||||
|
|
|
@ -35,7 +35,7 @@ import org.springframework.test.context.junit4.SpringRunner;
|
|||
import org.springframework.web.client.HttpClientErrorException;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import pro.taskana.exceptions.SystemException;
|
||||
import pro.taskana.common.api.exceptions.SystemException;
|
||||
import pro.taskana.rest.resource.TaskHistoryEventListResource;
|
||||
import pro.taskana.rest.simplehistory.TaskHistoryRestConfiguration;
|
||||
import pro.taskana.rest.simplehistory.sampledata.SampleDataGenerator;
|
||||
|
|
|
@ -6,14 +6,16 @@ import javax.enterprise.context.ApplicationScoped;
|
|||
import javax.enterprise.context.Initialized;
|
||||
import javax.enterprise.event.Observes;
|
||||
|
||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.InvalidOwnerException;
|
||||
import pro.taskana.exceptions.InvalidStateException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.exceptions.TaskAlreadyExistException;
|
||||
import pro.taskana.exceptions.TaskNotFoundException;
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
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.TaskAlreadyExistException;
|
||||
import pro.taskana.task.api.exceptions.TaskNotFoundException;
|
||||
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.task.api.ObjectReference;
|
||||
import pro.taskana.task.api.Task;
|
||||
|
||||
/** Example Bootstrap Application. */
|
||||
@ApplicationScoped
|
||||
|
|
|
@ -3,6 +3,8 @@ package pro.taskana;
|
|||
import javax.ejb.Stateless;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import pro.taskana.task.api.TaskService;
|
||||
|
||||
/** example Taskana EJB. */
|
||||
@Stateless
|
||||
public class TaskanaEjb {
|
||||
|
|
|
@ -17,7 +17,10 @@ import javax.sql.DataSource;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.classification.api.ClassificationService;
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.workbasket.api.WorkbasketService;
|
||||
|
||||
/** TODO. */
|
||||
@ApplicationScoped
|
||||
|
|
|
@ -3,11 +3,16 @@ package pro.taskana;
|
|||
import javax.ejb.Stateless;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.exceptions.TaskAlreadyExistException;
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.classification.api.ClassificationService;
|
||||
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
|
||||
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.task.api.ObjectReference;
|
||||
import pro.taskana.task.api.Task;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.workbasket.api.WorkbasketService;
|
||||
|
||||
/** TODO. */
|
||||
@Stateless
|
||||
|
|
|
@ -11,18 +11,24 @@ import javax.ws.rs.core.Response;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||
import pro.taskana.exceptions.DomainNotFoundException;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.InvalidOwnerException;
|
||||
import pro.taskana.exceptions.InvalidStateException;
|
||||
import pro.taskana.exceptions.InvalidWorkbasketException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.exceptions.TaskAlreadyExistException;
|
||||
import pro.taskana.exceptions.TaskNotFoundException;
|
||||
import pro.taskana.exceptions.WorkbasketAlreadyExistException;
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.classification.api.Classification;
|
||||
import pro.taskana.classification.api.ClassificationService;
|
||||
import pro.taskana.classification.api.exceptions.ClassificationAlreadyExistException;
|
||||
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
|
||||
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.workbasket.api.exceptions.InvalidWorkbasketException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
|
||||
import pro.taskana.task.api.exceptions.TaskNotFoundException;
|
||||
import pro.taskana.workbasket.api.exceptions.WorkbasketAlreadyExistException;
|
||||
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.task.api.ObjectReference;
|
||||
import pro.taskana.task.api.Task;
|
||||
import pro.taskana.workbasket.api.Workbasket;
|
||||
import pro.taskana.workbasket.api.WorkbasketType;
|
||||
|
||||
/** TODO. */
|
||||
@Path("/test")
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.configuration;
|
||||
package pro.taskana;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
|
@ -27,11 +27,13 @@ import org.apache.ibatis.datasource.pooled.PooledDataSource;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.TaskanaRole;
|
||||
import pro.taskana.exceptions.SystemException;
|
||||
import pro.taskana.impl.TaskanaEngineImpl;
|
||||
import pro.taskana.impl.util.LoggerUtils;
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.common.api.exceptions.SystemException;
|
||||
import pro.taskana.common.internal.TaskanaEngineImpl;
|
||||
import pro.taskana.common.internal.configuration.DB;
|
||||
import pro.taskana.common.internal.configuration.DbSchemaCreator;
|
||||
import pro.taskana.common.internal.util.LoggerUtils;
|
||||
import pro.taskana.task.api.TaskanaRole;
|
||||
|
||||
/**
|
||||
* This central class creates the TaskanaEngine and holds all the information about DB and Security.
|
|
@ -1,9 +1,9 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.classification.api;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import java.time.Instant;
|
||||
|
||||
import pro.taskana.impl.ClassificationImpl;
|
||||
import pro.taskana.classification.internal.ClassificationImpl;
|
||||
|
||||
/** Interface used to specify the Classification-Model. */
|
||||
@JsonDeserialize(as = ClassificationImpl.class)
|
|
@ -1,6 +1,8 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.classification.api;
|
||||
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.BaseQuery;
|
||||
import pro.taskana.common.api.TimeInterval;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
|
||||
/** ClassificationQuery for generating dynamic sql. */
|
||||
public interface ClassificationQuery
|
|
@ -1,8 +1,11 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.classification.api;
|
||||
|
||||
import pro.taskana.common.api.QueryColumnName;
|
||||
import pro.taskana.workbasket.internal.WorkbasketQueryMapper;
|
||||
|
||||
/**
|
||||
* Enum containing the column names for {@link
|
||||
* pro.taskana.mappings.QueryMapper#queryClassificationColumnValues}.
|
||||
* WorkbasketQueryMapper#queryClassificationColumnValues}.
|
||||
*
|
||||
* @author jsa
|
||||
*/
|
|
@ -1,12 +1,12 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.classification.api;
|
||||
|
||||
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
||||
import pro.taskana.exceptions.ClassificationInUseException;
|
||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||
import pro.taskana.exceptions.ConcurrencyException;
|
||||
import pro.taskana.exceptions.DomainNotFoundException;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.classification.api.exceptions.ClassificationAlreadyExistException;
|
||||
import pro.taskana.classification.api.exceptions.ClassificationInUseException;
|
||||
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
|
||||
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.NotAuthorizedException;
|
||||
|
||||
/** This class manages the classifications. */
|
||||
public interface ClassificationService {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.classification.api;
|
||||
|
||||
/**
|
||||
* Interface for ClassificationSummaries. This is a specific short model-object which only requieres
|
|
@ -1,6 +1,7 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.classification.api.exceptions;
|
||||
|
||||
import pro.taskana.Classification;
|
||||
import pro.taskana.classification.api.Classification;
|
||||
import pro.taskana.common.api.exceptions.TaskanaException;
|
||||
|
||||
/** Thrown, when a classification does already exits, but wanted to create with same ID+domain. */
|
||||
public class ClassificationAlreadyExistException extends TaskanaException {
|
|
@ -1,4 +1,6 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.classification.api.exceptions;
|
||||
|
||||
import pro.taskana.common.api.exceptions.TaskanaException;
|
||||
|
||||
/** Thrown if a specific task is not in the database. */
|
||||
public class ClassificationInUseException extends TaskanaException {
|
|
@ -1,4 +1,6 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.classification.api.exceptions;
|
||||
|
||||
import pro.taskana.common.api.exceptions.NotFoundException;
|
||||
|
||||
/** Thrown if a specific task is not in the database. */
|
||||
public class ClassificationNotFoundException extends NotFoundException {
|
|
@ -1,10 +1,10 @@
|
|||
package pro.taskana.impl;
|
||||
package pro.taskana.classification.internal;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Objects;
|
||||
|
||||
import pro.taskana.Classification;
|
||||
import pro.taskana.ClassificationSummary;
|
||||
import pro.taskana.classification.api.Classification;
|
||||
import pro.taskana.classification.api.ClassificationSummary;
|
||||
|
||||
/** Classification entity. */
|
||||
public class ClassificationImpl extends ClassificationSummaryImpl implements Classification {
|
||||
|
@ -15,7 +15,7 @@ public class ClassificationImpl extends ClassificationSummaryImpl implements Cla
|
|||
private String description;
|
||||
private String applicationEntryPoint;
|
||||
|
||||
ClassificationImpl() {}
|
||||
public ClassificationImpl() {}
|
||||
|
||||
ClassificationImpl(ClassificationImpl classification) {
|
||||
this.id = classification.getId();
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.mappings;
|
||||
package pro.taskana.classification.internal;
|
||||
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
|
@ -8,8 +8,6 @@ import org.apache.ibatis.annotations.Results;
|
|||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import pro.taskana.impl.ClassificationImpl;
|
||||
|
||||
/** This class is the mybatis mapping of classifications. */
|
||||
@SuppressWarnings({"checkstyle:LineLength", "checkstyle:Indentation"})
|
||||
public interface ClassificationMapper {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.impl;
|
||||
package pro.taskana.classification.internal;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
@ -8,13 +8,14 @@ import org.apache.ibatis.session.RowBounds;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.ClassificationQuery;
|
||||
import pro.taskana.ClassificationQueryColumnName;
|
||||
import pro.taskana.ClassificationSummary;
|
||||
import pro.taskana.TimeInterval;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.TaskanaRuntimeException;
|
||||
import pro.taskana.impl.util.LoggerUtils;
|
||||
import pro.taskana.classification.api.ClassificationQuery;
|
||||
import pro.taskana.classification.api.ClassificationQueryColumnName;
|
||||
import pro.taskana.classification.api.ClassificationSummary;
|
||||
import pro.taskana.common.api.TimeInterval;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.TaskanaRuntimeException;
|
||||
import pro.taskana.common.internal.InternalTaskanaEngine;
|
||||
import pro.taskana.common.internal.util.LoggerUtils;
|
||||
|
||||
/**
|
||||
* Implementation of ClassificationQuery interface.
|
|
@ -0,0 +1,161 @@
|
|||
package pro.taskana.classification.internal;
|
||||
|
||||
import java.util.List;
|
||||
import org.apache.ibatis.annotations.Result;
|
||||
import org.apache.ibatis.annotations.Results;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
/** This class provides a mapper for all classification queries. */
|
||||
@SuppressWarnings({"checkstyle:LineLength", "checkstyle:Indentation"})
|
||||
public interface ClassificationQueryMapper {
|
||||
@Select(
|
||||
"<script>SELECT ID, KEY, PARENT_ID, PARENT_KEY, CATEGORY, TYPE, DOMAIN, VALID_IN_DOMAIN, CREATED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL, APPLICATION_ENTRY_POINT, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8 "
|
||||
+ "FROM CLASSIFICATION "
|
||||
+ "<where>"
|
||||
+ "<if test='key != null'>AND KEY IN(<foreach item='item' collection='key' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='idIn != null'>AND ID IN(<foreach item='item' collection='idIn' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='parentId != null'>AND PARENT_ID IN(<foreach item='item' collection='parentId' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='parentKey != null'>AND PARENT_KEY IN(<foreach item='item' collection='parentKey' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='category != null'>AND CATEGORY IN(<foreach item='item' collection='category' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='type != null'>AND TYPE IN(<foreach item='item' collection='type' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='domain != null'>AND DOMAIN IN(<foreach item='item' collection='domain' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='validInDomain != null'>AND VALID_IN_DOMAIN = #{validInDomain}</if> "
|
||||
+ "<if test='createdIn !=null'> AND ( <foreach item='item' collection='createdIn' separator=' OR ' > ( <if test='item.begin!=null'> CREATED >= #{item.begin} </if> <if test='item.begin!=null and item.end!=null'> AND </if><if test='item.end!=null'> CREATED <=#{item.end} </if>)</foreach>)</if> "
|
||||
+ "<if test='modifiedIn !=null'> AND ( <foreach item='item' collection='modifiedIn' separator=' OR ' > ( <if test='item.begin!=null'> MODIFIED >= #{item.begin} </if> <if test='item.begin!=null and item.end!=null'> AND </if><if test='item.end!=null'> MODIFIED <=#{item.end} </if>)</foreach>)</if> "
|
||||
+ "<if test='nameIn != null'>AND NAME IN(<foreach item='item' collection='nameIn' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='nameLike != null'>AND (<foreach item='item' collection='nameLike' separator=' OR '>UPPER(NAME) LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='descriptionLike != null'>AND UPPER(DESCRIPTION) like #{descriptionLike}</if> "
|
||||
+ "<if test='priority != null'>AND PRIORITY IN(<foreach item='item' collection='priority' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='serviceLevelIn != null'>AND SERVICE_LEVEL IN(<foreach item='item' collection='serviceLevelIn' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='serviceLevelLike != null'>AND (<foreach item='item' collection='serviceLevelLike' separator=' OR ' >UPPER(SERVICE_LEVEL) LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='applicationEntryPointIn != null'>AND APPLICATION_ENTRY_POINT IN(<foreach item='item' collection='applicationEntryPointIn' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='applicationEntryPointLike != null'>AND (<foreach item='item' collection='applicationEntryPointLike' separator=' OR ' >UPPER(APPLICATION_ENTRY_POINT) LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom1In != null'>AND CUSTOM_1 IN(<foreach item='item' collection='custom1In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom1Like != null'>AND (<foreach item='item' collection='custom1Like' separator=' OR ' > UPPER(CUSTOM_1) LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom2In != null'>AND CUSTOM_2 IN(<foreach item='item' collection='custom2In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom2Like != null'>AND (<foreach item='item' collection='custom2Like' separator=' OR ' > UPPER(CUSTOM_2) LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom3In != null'>AND CUSTOM_3 IN(<foreach item='item' collection='custom3In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom3Like != null'>AND (<foreach item='item' collection='custom3Like' separator=' OR ' > UPPER(CUSTOM_3) LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom4In != null'>AND CUSTOM_4 IN(<foreach item='item' collection='custom4In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom4Like != null'>AND (<foreach item='item' collection='custom4Like' separator=' OR ' > UPPER(CUSTOM_4) LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom5In != null'>AND CUSTOM_5 IN(<foreach item='item' collection='custom5In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom5Like != null'>AND (<foreach item='item' collection='custom5Like' separator=' OR ' > UPPER(CUSTOM_5) LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom6In != null'>AND CUSTOM_6 IN(<foreach item='item' collection='custom6In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom6Like != null'>AND (<foreach item='item' collection='custom6Like' separator=' OR ' > UPPER(CUSTOM_6) LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom7In != null'>AND CUSTOM_7 IN(<foreach item='item' collection='custom7In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom7Like != null'>AND (<foreach item='item' collection='custom7Like' separator=' OR ' > UPPER(CUSTOM_7) LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom8In != null'>AND CUSTOM_8 IN(<foreach item='item' collection='custom8In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom8Like != null'>AND (<foreach item='item' collection='custom8Like' separator=' OR ' > UPPER(CUSTOM_8) LIKE #{item}</foreach>)</if> "
|
||||
+ "</where>"
|
||||
+ "<if test='!orderBy.isEmpty()'>ORDER BY <foreach item='item' collection='orderBy' separator=',' >${item}</foreach></if> "
|
||||
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
|
||||
+ "</script>")
|
||||
@Results({
|
||||
@Result(property = "id", column = "ID"),
|
||||
@Result(property = "key", column = "KEY"),
|
||||
@Result(property = "category", column = "CATEGORY"),
|
||||
@Result(property = "type", column = "TYPE"),
|
||||
@Result(property = "domain", column = "DOMAIN"),
|
||||
@Result(property = "name", column = "NAME"),
|
||||
@Result(property = "priority", column = "PRIORITY"),
|
||||
@Result(property = "serviceLevel", column = "SERVICE_LEVEL"),
|
||||
@Result(property = "parentId", column = "PARENT_ID"),
|
||||
@Result(property = "parentKey", column = "PARENT_KEY"),
|
||||
@Result(property = "custom1", column = "CUSTOM_1"),
|
||||
@Result(property = "custom2", column = "CUSTOM_2"),
|
||||
@Result(property = "custom3", column = "CUSTOM_3"),
|
||||
@Result(property = "custom4", column = "CUSTOM_4"),
|
||||
@Result(property = "custom5", column = "CUSTOM_5"),
|
||||
@Result(property = "custom6", column = "CUSTOM_6"),
|
||||
@Result(property = "custom7", column = "CUSTOM_7"),
|
||||
@Result(property = "custom8", column = "CUSTOM_8")
|
||||
})
|
||||
List<ClassificationSummaryImpl> queryClassificationSummaries(
|
||||
ClassificationQueryImpl classificationQuery);
|
||||
|
||||
@Select(
|
||||
"<script>SELECT COUNT(ID) FROM CLASSIFICATION "
|
||||
+ "<where>"
|
||||
+ "<if test='key != null'>AND KEY IN(<foreach item='item' collection='key' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='idIn != null'>AND ID IN(<foreach item='item' collection='idIn' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='parentId != null'>AND PARENT_ID IN(<foreach item='item' collection='parentId' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='parentKey != null'>AND PARENT_KEY IN(<foreach item='item' collection='parentKey' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='category != null'>AND CATEGORY IN(<foreach item='item' collection='category' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='type != null'>AND TYPE IN(<foreach item='item' collection='type' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='domain != null'>AND DOMAIN IN(<foreach item='item' collection='domain' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='validInDomain != null'>AND VALID_IN_DOMAIN = #{validInDomain}</if> "
|
||||
+ "<if test='createdIn !=null'> AND ( <foreach item='item' collection='createdIn' separator=' OR ' > ( <if test='item.begin!=null'> CREATED >= #{item.begin} </if> <if test='item.begin!=null and item.end!=null'> AND </if><if test='item.end!=null'> CREATED <=#{item.end} </if>)</foreach>)</if> "
|
||||
+ "<if test='modifiedIn !=null'> AND ( <foreach item='item' collection='modifiedIn' separator=' OR ' > ( <if test='item.begin!=null'> MODIFIED >= #{item.begin} </if> <if test='item.begin!=null and item.end!=null'> AND </if><if test='item.end!=null'> MODIFIED <=#{item.end} </if>)</foreach>)</if> "
|
||||
+ "<if test='nameIn != null'>AND NAME IN(<foreach item='item' collection='nameIn' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='nameLike != null'>AND (<foreach item='item' collection='nameLike' separator=' OR '>NAME LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='descriptionLike != null'>AND DESCRIPTION like #{descriptionLike}</if> "
|
||||
+ "<if test='priority != null'>AND PRIORITY IN(<foreach item='item' collection='priority' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='serviceLevelIn != null'>AND SERVICE_LEVEL IN(<foreach item='item' collection='serviceLevelIn' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='serviceLevelLike != null'>AND (<foreach item='item' collection='serviceLevelLike' separator=' OR ' >SERVICE_LEVEL LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='applicationEntryPointIn != null'>AND APPLICATION_ENTRY_POINT IN(<foreach item='item' collection='applicationEntryPoint' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='applicationEntryPointLike != null'>AND (<foreach item='item' collection='applicationEntryPointLike' separator=' OR ' >APPLICATION_ENTRY_POINT LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom1In != null'>AND CUSTOM_1 IN(<foreach item='item' collection='custom1In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom1Like != null'>AND (<foreach item='item' collection='custom1Like' separator=' OR ' >CUSTOM_1 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom2In != null'>AND CUSTOM_2 IN(<foreach item='item' collection='custom2In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom2Like != null'>AND (<foreach item='item' collection='custom2Like' separator=' OR ' > CUSTOM_2 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom3In != null'>AND CUSTOM_3 IN(<foreach item='item' collection='custom3In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom3Like != null'>AND (<foreach item='item' collection='custom3Like' separator=' OR ' > CUSTOM_3 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom4In != null'>AND CUSTOM_4 IN(<foreach item='item' collection='custom4In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom4Like != null'>AND (<foreach item='item' collection='custom4Like' separator=' OR ' > CUSTOM_4 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom5In != null'>AND CUSTOM_5 IN(<foreach item='item' collection='custom5In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom5Like != null'>AND (<foreach item='item' collection='custom5Like' separator=' OR ' > CUSTOM_5 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom6In != null'>AND CUSTOM_6 IN(<foreach item='item' collection='custom6In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom6Like != null'>AND (<foreach item='item' collection='custom6Like' separator=' OR ' > CUSTOM_6 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom7In != null'>AND CUSTOM_7 IN(<foreach item='item' collection='custom7In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom7Like != null'>AND (<foreach item='item' collection='custom7Like' separator=' OR ' > CUSTOM_7 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom8In != null'>AND CUSTOM_8 IN(<foreach item='item' collection='custom8In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom8Like != null'>AND (<foreach item='item' collection='custom8Like' separator=' OR ' > CUSTOM_8 LIKE #{item}</foreach>)</if> "
|
||||
+ "</where>"
|
||||
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
|
||||
+ "</script>")
|
||||
Long countQueryClassifications(ClassificationQueryImpl classificationQuery);
|
||||
|
||||
@Select(
|
||||
"<script>SELECT DISTINCT ${columnName} "
|
||||
+ "FROM CLASSIFICATION"
|
||||
+ "<where>"
|
||||
+ "<if test='key != null'>AND KEY IN(<foreach item='item' collection='key' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='idIn != null'>AND ID IN(<foreach item='item' collection='idIn' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='parentId != null'>AND PARENT_ID IN(<foreach item='item' collection='parentId' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='parentKey != null'>AND PARENT_KEY IN(<foreach item='item' collection='parentKey' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='category != null'>AND CATEGORY IN(<foreach item='item' collection='category' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='type != null'>AND TYPE IN(<foreach item='item' collection='type' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='domain != null'>AND DOMAIN IN(<foreach item='item' collection='domain' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='validInDomain != null'>AND VALID_IN_DOMAIN = #{validInDomain}</if> "
|
||||
+ "<if test='createdIn !=null'> AND ( <foreach item='item' collection='createdIn' separator=' OR ' > ( <if test='item.begin!=null'> CREATED >= #{item.begin} </if> <if test='item.begin!=null and item.end!=null'> AND </if><if test='item.end!=null'> CREATED <=#{item.end} </if>)</foreach>)</if> "
|
||||
+ "<if test='modifiedIn !=null'> AND ( <foreach item='item' collection='modifiedIn' separator=' OR ' > ( <if test='item.begin!=null'> MODIFIED >= #{item.begin} </if> <if test='item.begin!=null and item.end!=null'> AND </if><if test='item.end!=null'> MODIFIED <=#{item.end} </if>)</foreach>)</if> "
|
||||
+ "<if test='nameIn != null'>AND NAME IN(<foreach item='item' collection='nameIn' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='nameLike != null'>AND (<foreach item='item' collection='nameLike' separator=' OR '>NAME LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='descriptionLike != null'>AND DESCRIPTION like #{descriptionLike}</if> "
|
||||
+ "<if test='priority != null'>AND PRIORITY IN(<foreach item='item' collection='priority' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='serviceLevelIn != null'>AND SERVICE_LEVEL IN(<foreach item='item' collection='serviceLevelIn' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='serviceLevelLike != null'>AND (<foreach item='item' collection='serviceLevelLike' separator=' OR ' >SERVICE_LEVEL LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='applicationEntryPointIn != null'>AND APPLICATION_ENTRY_POINT IN(<foreach item='item' collection='applicationEntryPoint' separator=',' >#{item}</foreach>)</if> "
|
||||
+ "<if test='applicationEntryPointLike != null'>AND (<foreach item='item' collection='applicationEntryPointLike' separator=' OR ' >APPLICATION_ENTRY_POINT LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom1In != null'>AND CUSTOM_1 IN(<foreach item='item' collection='custom1In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom1Like != null'>AND (<foreach item='item' collection='custom1Like' separator=' OR ' >CUSTOM_1 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom2In != null'>AND CUSTOM_2 IN(<foreach item='item' collection='custom2In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom2Like != null'>AND (<foreach item='item' collection='custom2Like' separator=' OR ' > CUSTOM_2 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom3In != null'>AND CUSTOM_3 IN(<foreach item='item' collection='custom3In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom3Like != null'>AND (<foreach item='item' collection='custom3Like' separator=' OR ' > CUSTOM_3 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom4In != null'>AND CUSTOM_4 IN(<foreach item='item' collection='custom4In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom4Like != null'>AND (<foreach item='item' collection='custom4Like' separator=' OR ' > CUSTOM_4 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom5In != null'>AND CUSTOM_5 IN(<foreach item='item' collection='custom5In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom5Like != null'>AND (<foreach item='item' collection='custom5Like' separator=' OR ' > CUSTOM_5 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom6In != null'>AND CUSTOM_6 IN(<foreach item='item' collection='custom6In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom6Like != null'>AND (<foreach item='item' collection='custom6Like' separator=' OR ' > CUSTOM_6 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom7In != null'>AND CUSTOM_7 IN(<foreach item='item' collection='custom7In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom7Like != null'>AND (<foreach item='item' collection='custom7Like' separator=' OR ' > CUSTOM_7 LIKE #{item}</foreach>)</if> "
|
||||
+ "<if test='custom8In != null'>AND CUSTOM_8 IN(<foreach item='item' collection='custom8In' separator=',' >#{item}</foreach>) </if> "
|
||||
+ "<if test='custom8Like != null'>AND (<foreach item='item' collection='custom8Like' separator=' OR ' > CUSTOM_8 LIKE #{item}</foreach>)</if> "
|
||||
+ "</where>"
|
||||
+ "<if test='!orderBy.isEmpty()'>ORDER BY <foreach item='item' collection='orderBy' separator=',' >${item}</foreach></if> "
|
||||
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
|
||||
+ "</script>")
|
||||
List<String> queryClassificationColumnValues(ClassificationQueryImpl classificationQuery);
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.impl;
|
||||
package pro.taskana.classification.internal;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.sql.SQLIntegrityConstraintViolationException;
|
||||
|
@ -13,24 +13,24 @@ import org.apache.ibatis.exceptions.PersistenceException;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.Classification;
|
||||
import pro.taskana.ClassificationQuery;
|
||||
import pro.taskana.ClassificationService;
|
||||
import pro.taskana.ClassificationSummary;
|
||||
import pro.taskana.TaskSummary;
|
||||
import pro.taskana.TaskanaRole;
|
||||
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
||||
import pro.taskana.exceptions.ClassificationInUseException;
|
||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||
import pro.taskana.exceptions.ConcurrencyException;
|
||||
import pro.taskana.exceptions.DomainNotFoundException;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.impl.util.IdGenerator;
|
||||
import pro.taskana.jobs.ClassificationChangedJob;
|
||||
import pro.taskana.jobs.ScheduledJob;
|
||||
import pro.taskana.mappings.ClassificationMapper;
|
||||
import pro.taskana.mappings.TaskMapper;
|
||||
import pro.taskana.classification.api.Classification;
|
||||
import pro.taskana.classification.api.ClassificationQuery;
|
||||
import pro.taskana.classification.api.ClassificationService;
|
||||
import pro.taskana.classification.api.ClassificationSummary;
|
||||
import pro.taskana.classification.api.exceptions.ClassificationAlreadyExistException;
|
||||
import pro.taskana.classification.api.exceptions.ClassificationInUseException;
|
||||
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
|
||||
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.NotAuthorizedException;
|
||||
import pro.taskana.common.internal.InternalTaskanaEngine;
|
||||
import pro.taskana.common.internal.jobs.ClassificationChangedJob;
|
||||
import pro.taskana.common.internal.jobs.ScheduledJob;
|
||||
import pro.taskana.common.internal.util.IdGenerator;
|
||||
import pro.taskana.task.api.TaskSummary;
|
||||
import pro.taskana.task.api.TaskanaRole;
|
||||
import pro.taskana.task.internal.TaskMapper;
|
||||
|
||||
/** This is the implementation of ClassificationService. */
|
||||
public class ClassificationServiceImpl implements ClassificationService {
|
||||
|
@ -41,7 +41,7 @@ public class ClassificationServiceImpl implements ClassificationService {
|
|||
private TaskMapper taskMapper;
|
||||
private InternalTaskanaEngine taskanaEngine;
|
||||
|
||||
ClassificationServiceImpl(
|
||||
public ClassificationServiceImpl(
|
||||
InternalTaskanaEngine taskanaEngine,
|
||||
ClassificationMapper classificationMapper,
|
||||
TaskMapper taskMapper) {
|
|
@ -1,8 +1,8 @@
|
|||
package pro.taskana.impl;
|
||||
package pro.taskana.classification.internal;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import pro.taskana.ClassificationSummary;
|
||||
import pro.taskana.classification.api.ClassificationSummary;
|
||||
|
||||
/** Implementation for the short summaries of a classification entity. */
|
||||
public class ClassificationSummaryImpl implements ClassificationSummary {
|
||||
|
@ -26,7 +26,7 @@ public class ClassificationSummaryImpl implements ClassificationSummary {
|
|||
protected String custom7;
|
||||
protected String custom8;
|
||||
|
||||
ClassificationSummaryImpl() {}
|
||||
public ClassificationSummaryImpl() {}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.common.api;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.common.api;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
@ -7,7 +7,7 @@ import java.util.Map;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.impl.util.LoggerUtils;
|
||||
import pro.taskana.common.internal.util.LoggerUtils;
|
||||
|
||||
/**
|
||||
* Returning type for a bulk db interaction with errors. This wrapper is storing them with a
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.common.api;
|
||||
|
||||
/** This enum contains the fields CUSTOM_1 - CUSTOM_10 for the task entity. */
|
||||
public enum CustomField {
|
|
@ -1,6 +1,6 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.common.api;
|
||||
|
||||
import pro.taskana.jobs.ScheduledJob;
|
||||
import pro.taskana.common.internal.jobs.ScheduledJob;
|
||||
|
||||
/** Service to manage the TASKANA jobs. */
|
||||
public interface JobService {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.common.api;
|
||||
|
||||
import java.util.Objects;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.common.api;
|
||||
|
||||
/**
|
||||
* This interface ist used to emulate an extensible enum for use in the Basequery interface.
|
|
@ -1,9 +1,14 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.common.api;
|
||||
|
||||
import java.sql.SQLException;
|
||||
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.TaskanaEngineConfiguration;
|
||||
import pro.taskana.classification.api.ClassificationService;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.report.api.TaskMonitorService;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.task.api.TaskanaRole;
|
||||
import pro.taskana.workbasket.api.WorkbasketService;
|
||||
|
||||
/** The TaskanaEngine represents an overall set of all needed services. */
|
||||
public interface TaskanaEngine {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.common.api;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Objects;
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/**
|
||||
* Thrown, when an attachment should be inserted to the DB, but it does already exist.<br>
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/** Thrown in ConnectionManagementMode AUTOCOMMIT when an attempt to commit fails. */
|
||||
public class AutocommitFailedException extends TaskanaRuntimeException {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/**
|
||||
* This exception is thrown when an attempt is made to update an object that has already been
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/**
|
||||
* Thrown if ConnectionManagementMode is CONNECTION_MANAGED_EXTERNALLY and an attempt is made to
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/**
|
||||
* This exception is thrown if a domain name is specified which is not found in the configuration.
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/**
|
||||
* This exception is thrown when a method is called with invalid argument.
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/**
|
||||
* This exception is thrown when the task state doesn't allow the requested operation.
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/**
|
||||
* This exception is thrown when the task state doesn't allow the requested operation.
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/** This exception is used to communicate a not authorized user. */
|
||||
public class NotAuthorizedException extends TaskanaException {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/** This exception will be thrown if a specific object is not in the database. */
|
||||
public class NotFoundException extends TaskanaException {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/** This exception is thrown when a generic taskana problem is encountered. */
|
||||
public class SystemException extends TaskanaRuntimeException {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/**
|
||||
* common base class for Taskana's checked exceptions.
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/**
|
||||
* Common base class for Taskana's runtime exceptions.
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.exceptions;
|
||||
package pro.taskana.common.api.exceptions;
|
||||
|
||||
/**
|
||||
* This exception will be thrown if the database name doesn't match to one of the desired databases.
|
|
@ -1,6 +1,6 @@
|
|||
package pro.taskana.mappings;
|
||||
package pro.taskana.common.internal;
|
||||
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
|
||||
/**
|
||||
* Determines which custom properties are to be updated.
|
|
@ -1,11 +1,11 @@
|
|||
package pro.taskana.impl;
|
||||
package pro.taskana.common.internal;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.history.HistoryEventProducer;
|
||||
import pro.taskana.taskrouting.TaskRoutingManager;
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.history.internal.HistoryEventProducer;
|
||||
import pro.taskana.task.internal.TaskRoutingManager;
|
||||
|
||||
/**
|
||||
* FOR INTERNAL USE ONLY.
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.mappings;
|
||||
package pro.taskana.common.internal;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -10,8 +10,8 @@ import org.apache.ibatis.annotations.Results;
|
|||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import pro.taskana.impl.persistence.MapTypeHandler;
|
||||
import pro.taskana.jobs.ScheduledJob;
|
||||
import pro.taskana.common.internal.jobs.ScheduledJob;
|
||||
import pro.taskana.common.internal.persistence.MapTypeHandler;
|
||||
|
||||
/** This class is the mybatis mapping of the JOB table. */
|
||||
@SuppressWarnings("checkstyle:LineLength")
|
|
@ -1,13 +1,12 @@
|
|||
package pro.taskana.impl;
|
||||
package pro.taskana.common.internal;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.JobService;
|
||||
import pro.taskana.jobs.ScheduledJob;
|
||||
import pro.taskana.mappings.JobMapper;
|
||||
import pro.taskana.common.api.JobService;
|
||||
import pro.taskana.common.internal.jobs.ScheduledJob;
|
||||
|
||||
/** Controls all job activities. */
|
||||
public class JobServiceImpl implements JobService {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.impl;
|
||||
package pro.taskana.common.internal;
|
||||
|
||||
import java.security.AccessController;
|
||||
import java.security.Principal;
|
||||
|
@ -26,37 +26,40 @@ import org.apache.ibatis.transaction.managed.ManagedTransactionFactory;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.ClassificationService;
|
||||
import pro.taskana.JobService;
|
||||
import pro.taskana.TaskMonitorService;
|
||||
import pro.taskana.TaskService;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.TaskanaRole;
|
||||
import pro.taskana.WorkbasketService;
|
||||
import pro.taskana.configuration.DB;
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.exceptions.AutocommitFailedException;
|
||||
import pro.taskana.exceptions.ConnectionNotSetException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.exceptions.SystemException;
|
||||
import pro.taskana.exceptions.TaskanaRuntimeException;
|
||||
import pro.taskana.history.HistoryEventProducer;
|
||||
import pro.taskana.impl.persistence.InstantTypeHandler;
|
||||
import pro.taskana.impl.persistence.MapTypeHandler;
|
||||
import pro.taskana.impl.util.LoggerUtils;
|
||||
import pro.taskana.mappings.AttachmentMapper;
|
||||
import pro.taskana.mappings.ClassificationMapper;
|
||||
import pro.taskana.mappings.DistributionTargetMapper;
|
||||
import pro.taskana.mappings.JobMapper;
|
||||
import pro.taskana.mappings.ObjectReferenceMapper;
|
||||
import pro.taskana.mappings.QueryMapper;
|
||||
import pro.taskana.mappings.TaskMapper;
|
||||
import pro.taskana.mappings.TaskMonitorMapper;
|
||||
import pro.taskana.mappings.WorkbasketAccessMapper;
|
||||
import pro.taskana.mappings.WorkbasketMapper;
|
||||
import pro.taskana.security.CurrentUserContext;
|
||||
import pro.taskana.security.GroupPrincipal;
|
||||
import pro.taskana.taskrouting.TaskRoutingManager;
|
||||
import pro.taskana.TaskanaEngineConfiguration;
|
||||
import pro.taskana.classification.api.ClassificationService;
|
||||
import pro.taskana.classification.internal.ClassificationMapper;
|
||||
import pro.taskana.classification.internal.ClassificationServiceImpl;
|
||||
import pro.taskana.common.api.JobService;
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.common.api.exceptions.AutocommitFailedException;
|
||||
import pro.taskana.common.api.exceptions.ConnectionNotSetException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.common.api.exceptions.SystemException;
|
||||
import pro.taskana.common.api.exceptions.TaskanaRuntimeException;
|
||||
import pro.taskana.common.internal.configuration.DB;
|
||||
import pro.taskana.common.internal.persistence.InstantTypeHandler;
|
||||
import pro.taskana.common.internal.persistence.MapTypeHandler;
|
||||
import pro.taskana.common.internal.security.CurrentUserContext;
|
||||
import pro.taskana.common.internal.security.GroupPrincipal;
|
||||
import pro.taskana.common.internal.util.LoggerUtils;
|
||||
import pro.taskana.history.internal.HistoryEventProducer;
|
||||
import pro.taskana.report.api.TaskMonitorService;
|
||||
import pro.taskana.report.internal.TaskMonitorMapper;
|
||||
import pro.taskana.report.internal.TaskMonitorServiceImpl;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.task.api.TaskanaRole;
|
||||
import pro.taskana.task.internal.AttachmentMapper;
|
||||
import pro.taskana.task.internal.ObjectReferenceMapper;
|
||||
import pro.taskana.task.internal.TaskMapper;
|
||||
import pro.taskana.task.internal.TaskRoutingManager;
|
||||
import pro.taskana.task.internal.TaskServiceImpl;
|
||||
import pro.taskana.workbasket.api.WorkbasketService;
|
||||
import pro.taskana.workbasket.internal.DistributionTargetMapper;
|
||||
import pro.taskana.workbasket.internal.WorkbasketAccessMapper;
|
||||
import pro.taskana.workbasket.internal.WorkbasketMapper;
|
||||
import pro.taskana.workbasket.internal.WorkbasketQueryMapper;
|
||||
import pro.taskana.workbasket.internal.WorkbasketServiceImpl;
|
||||
|
||||
/** This is the implementation of TaskanaEngine. */
|
||||
public class TaskanaEngineImpl implements TaskanaEngine {
|
||||
|
@ -251,7 +254,7 @@ public class TaskanaEngineImpl implements TaskanaEngine {
|
|||
configuration.addMapper(ClassificationMapper.class);
|
||||
configuration.addMapper(WorkbasketAccessMapper.class);
|
||||
configuration.addMapper(ObjectReferenceMapper.class);
|
||||
configuration.addMapper(QueryMapper.class);
|
||||
configuration.addMapper(WorkbasketQueryMapper.class);
|
||||
configuration.addMapper(AttachmentMapper.class);
|
||||
configuration.addMapper(JobMapper.class);
|
||||
SqlSessionFactory localSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
|
|
@ -1,6 +1,6 @@
|
|||
package pro.taskana.configuration;
|
||||
package pro.taskana.common.internal.configuration;
|
||||
|
||||
import pro.taskana.exceptions.UnsupportedDatabaseException;
|
||||
import pro.taskana.common.api.exceptions.UnsupportedDatabaseException;
|
||||
|
||||
/** Supported versions of databases. */
|
||||
public enum DB {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.configuration;
|
||||
package pro.taskana.common.internal.configuration;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
|
@ -1,13 +1,13 @@
|
|||
package pro.taskana.jobs;
|
||||
package pro.taskana.common.internal.jobs;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.exceptions.TaskanaException;
|
||||
import pro.taskana.impl.TaskanaEngineImpl;
|
||||
import pro.taskana.transaction.TaskanaTransactionProvider;
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.common.api.exceptions.TaskanaException;
|
||||
import pro.taskana.common.internal.TaskanaEngineImpl;
|
||||
import pro.taskana.common.internal.transaction.TaskanaTransactionProvider;
|
||||
|
||||
/** Abstract base for all background jobs of TASKANA. */
|
||||
public abstract class AbstractTaskanaJob implements TaskanaJob {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.jobs;
|
||||
package pro.taskana.common.internal.jobs;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
@ -7,10 +7,10 @@ import java.util.Set;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.exceptions.TaskanaException;
|
||||
import pro.taskana.impl.TaskServiceImpl;
|
||||
import pro.taskana.transaction.TaskanaTransactionProvider;
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.common.api.exceptions.TaskanaException;
|
||||
import pro.taskana.common.internal.transaction.TaskanaTransactionProvider;
|
||||
import pro.taskana.task.internal.TaskServiceImpl;
|
||||
|
||||
/**
|
||||
* This class executes a job of type CLASSIFICATIONCHANGEDJOB.
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.jobs;
|
||||
package pro.taskana.common.internal.jobs;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
|
@ -7,12 +7,12 @@ import java.util.List;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.exceptions.SystemException;
|
||||
import pro.taskana.impl.JobServiceImpl;
|
||||
import pro.taskana.impl.TaskServiceImpl;
|
||||
import pro.taskana.impl.TaskanaEngineImpl;
|
||||
import pro.taskana.transaction.TaskanaTransactionProvider;
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.common.api.exceptions.SystemException;
|
||||
import pro.taskana.common.internal.JobServiceImpl;
|
||||
import pro.taskana.common.internal.TaskanaEngineImpl;
|
||||
import pro.taskana.common.internal.transaction.TaskanaTransactionProvider;
|
||||
import pro.taskana.task.internal.TaskServiceImpl;
|
||||
|
||||
/** This is the runner for Tasks jobs. */
|
||||
public class JobRunner {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.jobs;
|
||||
package pro.taskana.common.internal.jobs;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Map;
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.jobs;
|
||||
package pro.taskana.common.internal.jobs;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
|
@ -10,15 +10,15 @@ import java.util.stream.Collectors;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.BaseQuery;
|
||||
import pro.taskana.BulkOperationResults;
|
||||
import pro.taskana.TaskSummary;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.TimeInterval;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.TaskanaException;
|
||||
import pro.taskana.impl.util.LoggerUtils;
|
||||
import pro.taskana.transaction.TaskanaTransactionProvider;
|
||||
import pro.taskana.common.api.BaseQuery;
|
||||
import pro.taskana.common.api.BulkOperationResults;
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.common.api.TimeInterval;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.TaskanaException;
|
||||
import pro.taskana.common.internal.transaction.TaskanaTransactionProvider;
|
||||
import pro.taskana.common.internal.util.LoggerUtils;
|
||||
import pro.taskana.task.api.TaskSummary;
|
||||
|
||||
/** Job to cleanup completed tasks after a period of time. */
|
||||
public class TaskCleanupJob extends AbstractTaskanaJob {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.jobs;
|
||||
package pro.taskana.common.internal.jobs;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
@ -6,11 +6,11 @@ import java.util.Map;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.exceptions.TaskanaException;
|
||||
import pro.taskana.impl.TaskServiceImpl;
|
||||
import pro.taskana.impl.util.LoggerUtils;
|
||||
import pro.taskana.transaction.TaskanaTransactionProvider;
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.common.api.exceptions.TaskanaException;
|
||||
import pro.taskana.common.internal.transaction.TaskanaTransactionProvider;
|
||||
import pro.taskana.common.internal.util.LoggerUtils;
|
||||
import pro.taskana.task.internal.TaskServiceImpl;
|
||||
|
||||
/**
|
||||
* This class executes a job of type CLASSIFICATIONCHANGEDJOB.
|
|
@ -1,6 +1,6 @@
|
|||
package pro.taskana.jobs;
|
||||
package pro.taskana.common.internal.jobs;
|
||||
|
||||
import pro.taskana.exceptions.TaskanaException;
|
||||
import pro.taskana.common.api.exceptions.TaskanaException;
|
||||
|
||||
/** Interface for all background TASKANA jobs. */
|
||||
public interface TaskanaJob {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.jobs;
|
||||
package pro.taskana.common.internal.jobs;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
|
@ -6,16 +6,16 @@ import java.util.List;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.BaseQuery;
|
||||
import pro.taskana.BulkOperationResults;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.WorkbasketQueryColumnName;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.exceptions.TaskanaException;
|
||||
import pro.taskana.exceptions.WorkbasketInUseException;
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.transaction.TaskanaTransactionProvider;
|
||||
import pro.taskana.common.api.BaseQuery;
|
||||
import pro.taskana.common.api.BulkOperationResults;
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.common.api.exceptions.TaskanaException;
|
||||
import pro.taskana.common.internal.transaction.TaskanaTransactionProvider;
|
||||
import pro.taskana.workbasket.api.WorkbasketQueryColumnName;
|
||||
import pro.taskana.workbasket.api.exceptions.WorkbasketInUseException;
|
||||
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
|
||||
|
||||
/**
|
||||
* Job to cleanup completed workbaskets after a period of time if there are no pending tasks
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.impl.persistence;
|
||||
package pro.taskana.common.internal.persistence;
|
||||
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.PreparedStatement;
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.impl.persistence;
|
||||
package pro.taskana.common.internal.persistence;
|
||||
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.PreparedStatement;
|
|
@ -1,6 +1,6 @@
|
|||
package pro.taskana.security;
|
||||
package pro.taskana.common.internal.security;
|
||||
|
||||
import static pro.taskana.configuration.TaskanaEngineConfiguration.shouldUseLowerCaseForAccessIds;
|
||||
import static pro.taskana.TaskanaEngineConfiguration.shouldUseLowerCaseForAccessIds;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.security;
|
||||
package pro.taskana.common.internal.security;
|
||||
|
||||
import java.security.Principal;
|
||||
import java.security.acl.Group;
|
||||
|
@ -7,7 +7,7 @@ import java.util.Enumeration;
|
|||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import pro.taskana.impl.util.LoggerUtils;
|
||||
import pro.taskana.common.internal.util.LoggerUtils;
|
||||
|
||||
/** Represents a group with a name and a set of members. */
|
||||
public class GroupPrincipal implements Group {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.security;
|
||||
package pro.taskana.common.internal.security;
|
||||
|
||||
import java.security.Principal;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.transaction;
|
||||
package pro.taskana.common.internal.transaction;
|
||||
|
||||
/**
|
||||
* represents a callable Object.
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.transaction;
|
||||
package pro.taskana.common.internal.transaction;
|
||||
|
||||
/**
|
||||
* This class provides support for transactions.
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.impl.util;
|
||||
package pro.taskana.common.internal.util;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.impl.util;
|
||||
package pro.taskana.common.internal.util;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
|
@ -1,6 +1,6 @@
|
|||
package pro.taskana.history.api;
|
||||
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.TaskanaEngineConfiguration;
|
||||
|
||||
/** Interface for TASKANA History Service Provider. */
|
||||
public interface TaskanaHistory {
|
||||
|
|
|
@ -2,7 +2,7 @@ package pro.taskana.history.api;
|
|||
|
||||
import java.time.Instant;
|
||||
|
||||
import pro.taskana.security.CurrentUserContext;
|
||||
import pro.taskana.common.internal.security.CurrentUserContext;
|
||||
|
||||
/** Super class for all specific events from the TASKANA engine. */
|
||||
public class TaskanaHistoryEvent {
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package pro.taskana.history;
|
||||
package pro.taskana.history.internal;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.ServiceLoader;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.TaskanaEngineConfiguration;
|
||||
import pro.taskana.history.api.TaskanaHistory;
|
||||
import pro.taskana.history.api.TaskanaHistoryEvent;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package pro.taskana.history.events.task;
|
||||
package pro.taskana.history.internal.events.task;
|
||||
|
||||
import pro.taskana.Task;
|
||||
import pro.taskana.task.api.Task;
|
||||
|
||||
/** Event fired if a task is cancelled to be claimed. */
|
||||
public class ClaimCancelledEvent extends TaskEvent {
|
|
@ -1,6 +1,6 @@
|
|||
package pro.taskana.history.events.task;
|
||||
package pro.taskana.history.internal.events.task;
|
||||
|
||||
import pro.taskana.Task;
|
||||
import pro.taskana.task.api.Task;
|
||||
|
||||
/** Event fired if a task is claimed. */
|
||||
public class ClaimedEvent extends TaskEvent {
|
|
@ -1,7 +1,7 @@
|
|||
package pro.taskana.history.events.task;
|
||||
package pro.taskana.history.internal.events.task;
|
||||
|
||||
import pro.taskana.Task;
|
||||
import pro.taskana.TaskSummary;
|
||||
import pro.taskana.task.api.Task;
|
||||
import pro.taskana.task.api.TaskSummary;
|
||||
|
||||
/** Event fired if a task is completed. */
|
||||
public class CompletedEvent extends TaskEvent {
|
|
@ -1,6 +1,6 @@
|
|||
package pro.taskana.history.events.task;
|
||||
package pro.taskana.history.internal.events.task;
|
||||
|
||||
import pro.taskana.Task;
|
||||
import pro.taskana.task.api.Task;
|
||||
|
||||
/** Event fired if a task is created. */
|
||||
public class CreatedEvent extends TaskEvent {
|
|
@ -1,8 +1,8 @@
|
|||
package pro.taskana.history.events.task;
|
||||
package pro.taskana.history.internal.events.task;
|
||||
|
||||
import pro.taskana.Task;
|
||||
import pro.taskana.TaskSummary;
|
||||
import pro.taskana.history.api.TaskanaHistoryEvent;
|
||||
import pro.taskana.task.api.Task;
|
||||
import pro.taskana.task.api.TaskSummary;
|
||||
|
||||
/** Super class for all task related events. */
|
||||
public class TaskEvent extends TaskanaHistoryEvent {
|
|
@ -1,10 +1,10 @@
|
|||
package pro.taskana.history.events.task;
|
||||
package pro.taskana.history.internal.events.task;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.Task;
|
||||
import pro.taskana.WorkbasketSummary;
|
||||
import pro.taskana.task.api.Task;
|
||||
import pro.taskana.workbasket.api.WorkbasketSummary;
|
||||
|
||||
/** Event fired if a task is transferred. */
|
||||
public class TransferredEvent extends TaskEvent {
|
|
@ -1,12 +1,12 @@
|
|||
package pro.taskana.report;
|
||||
package pro.taskana.report.api;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.impl.report.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.impl.report.item.MonitorQueryItem;
|
||||
import pro.taskana.impl.report.structure.Report;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.report.internal.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.report.internal.item.MonitorQueryItem;
|
||||
import pro.taskana.report.internal.structure.Report;
|
||||
|
||||
/**
|
||||
* A CategoryReport contains the total numbers of tasks of the respective category as well as the
|
|
@ -1,18 +1,20 @@
|
|||
package pro.taskana.report;
|
||||
package pro.taskana.report.api;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.impl.report.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.impl.report.item.DetailedMonitorQueryItem;
|
||||
import pro.taskana.impl.report.item.MonitorQueryItem;
|
||||
import pro.taskana.impl.report.row.DetailedClassificationRow;
|
||||
import pro.taskana.impl.report.structure.Report;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.report.internal.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.report.internal.item.DetailedMonitorQueryItem;
|
||||
import pro.taskana.report.internal.item.MonitorQueryItem;
|
||||
import pro.taskana.report.internal.row.DetailedClassificationRow;
|
||||
import pro.taskana.report.internal.row.FoldableRow;
|
||||
import pro.taskana.report.internal.structure.Report;
|
||||
import pro.taskana.report.internal.structure.Row;
|
||||
|
||||
/**
|
||||
* The ClassificationReport extends the Report. The {@link pro.taskana.impl.report.structure.Row}s
|
||||
* of the ClassificationReport are grouped by classifications.
|
||||
* The ClassificationReport extends the Report. The {@link Row}s of the ClassificationReport are
|
||||
* grouped by classifications.
|
||||
*/
|
||||
public class ClassificationReport extends Report<MonitorQueryItem, TimeIntervalColumnHeader> {
|
||||
|
||||
|
@ -30,9 +32,8 @@ public class ClassificationReport extends Report<MonitorQueryItem, TimeIntervalC
|
|||
/**
|
||||
* Returns a {@link DetailedClassificationReport} containing all tasks after applying the
|
||||
* filters. If the column headers are set the report is subdivided into clusters. Its {@link
|
||||
* pro.taskana.impl.report.row.FoldableRow}s contain an additional list of {@link
|
||||
* pro.taskana.impl.report.structure.Row}s for the classifications of the attachments of the
|
||||
* tasks.
|
||||
* FoldableRow}s contain an additional list of {@link Row}s for the classifications of the
|
||||
* attachments of the tasks.
|
||||
*
|
||||
* @return the DetailedClassificationReport
|
||||
* @throws InvalidArgumentException if the column headers are not initialized
|
||||
|
@ -44,9 +45,8 @@ public class ClassificationReport extends Report<MonitorQueryItem, TimeIntervalC
|
|||
|
||||
/**
|
||||
* The DetailedClassificationReport is a functional extension of the {@link ClassificationReport}.
|
||||
* Its {@link pro.taskana.impl.report.row.FoldableRow}s contain an additional list of {@link
|
||||
* pro.taskana.impl.report.structure.Row}s for the classifications of the attachments of the
|
||||
* tasks.
|
||||
* Its {@link FoldableRow}s contain an additional list of {@link Row}s for the classifications of
|
||||
* the attachments of the tasks.
|
||||
*/
|
||||
public static class DetailedClassificationReport
|
||||
extends Report<DetailedMonitorQueryItem, TimeIntervalColumnHeader> {
|
|
@ -1,12 +1,12 @@
|
|||
package pro.taskana.report;
|
||||
package pro.taskana.report.api;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.impl.report.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.impl.report.item.MonitorQueryItem;
|
||||
import pro.taskana.impl.report.structure.Report;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.report.internal.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.report.internal.item.MonitorQueryItem;
|
||||
import pro.taskana.report.internal.structure.Report;
|
||||
|
||||
/**
|
||||
* A CustomFieldValueReport contains the total numbers of tasks of the respective custom field as
|
|
@ -1,11 +1,6 @@
|
|||
package pro.taskana;
|
||||
package pro.taskana.report.api;
|
||||
|
||||
import pro.taskana.report.CategoryReport;
|
||||
import pro.taskana.report.ClassificationReport;
|
||||
import pro.taskana.report.CustomFieldValueReport;
|
||||
import pro.taskana.report.TaskStatusReport;
|
||||
import pro.taskana.report.TimestampReport;
|
||||
import pro.taskana.report.WorkbasketReport;
|
||||
import pro.taskana.common.api.CustomField;
|
||||
|
||||
/** The Task Monitor Service manages operations on tasks regarding the monitoring. */
|
||||
public interface TaskMonitorService {
|
|
@ -1,15 +1,15 @@
|
|||
package pro.taskana.report;
|
||||
package pro.taskana.report.api;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import pro.taskana.TaskState;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.impl.report.header.TaskStatusColumnHeader;
|
||||
import pro.taskana.impl.report.item.TaskQueryItem;
|
||||
import pro.taskana.impl.report.structure.Report;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.report.internal.header.TaskStatusColumnHeader;
|
||||
import pro.taskana.report.internal.item.TaskQueryItem;
|
||||
import pro.taskana.report.internal.structure.Report;
|
||||
import pro.taskana.task.api.TaskState;
|
||||
|
||||
/**
|
||||
* A TaskStatusReport contains the total number of tasks, clustered in their task status.
|
|
@ -1,16 +1,16 @@
|
|||
package pro.taskana.report;
|
||||
package pro.taskana.report.api;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import pro.taskana.CustomField;
|
||||
import pro.taskana.TaskState;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.impl.SelectedItem;
|
||||
import pro.taskana.impl.report.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.impl.report.item.AgeQueryItem;
|
||||
import pro.taskana.impl.report.structure.Report;
|
||||
import pro.taskana.common.api.CustomField;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.report.internal.SelectedItem;
|
||||
import pro.taskana.report.internal.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.report.internal.item.AgeQueryItem;
|
||||
import pro.taskana.report.internal.structure.Report;
|
||||
import pro.taskana.task.api.TaskState;
|
||||
|
||||
/**
|
||||
* "Super" Interface for all TimeIntervalReportBuilders.
|
|
@ -1,6 +1,8 @@
|
|||
package pro.taskana.report;
|
||||
package pro.taskana.report.api;
|
||||
|
||||
/** This enum contains all timestamps saved in the database table for a {@link pro.taskana.Task}. */
|
||||
import pro.taskana.task.api.Task;
|
||||
|
||||
/** This enum contains all timestamps saved in the database table for a {@link Task}. */
|
||||
public enum Timestamp {
|
||||
CREATED,
|
||||
CLAIMED,
|
|
@ -1,13 +1,13 @@
|
|||
package pro.taskana.report;
|
||||
package pro.taskana.report.api;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.impl.report.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.impl.report.item.TimestampQueryItem;
|
||||
import pro.taskana.impl.report.row.TimestampRow;
|
||||
import pro.taskana.impl.report.structure.Report;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.report.internal.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.report.internal.item.TimestampQueryItem;
|
||||
import pro.taskana.report.internal.row.TimestampRow;
|
||||
import pro.taskana.report.internal.structure.Report;
|
||||
|
||||
/** A {@link TimestampReport} displays created and competed tasks for a specific dates. */
|
||||
public class TimestampReport extends Report<TimestampQueryItem, TimeIntervalColumnHeader> {
|
|
@ -1,13 +1,13 @@
|
|||
package pro.taskana.report;
|
||||
package pro.taskana.report.api;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.impl.report.CombinedClassificationFilter;
|
||||
import pro.taskana.impl.report.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.impl.report.item.MonitorQueryItem;
|
||||
import pro.taskana.impl.report.structure.Report;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.report.internal.CombinedClassificationFilter;
|
||||
import pro.taskana.report.internal.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.report.internal.item.MonitorQueryItem;
|
||||
import pro.taskana.report.internal.structure.Report;
|
||||
|
||||
/**
|
||||
* A WorkbasketReport contains the total numbers of tasks of the respective workbasket as well as
|
|
@ -1,17 +1,17 @@
|
|||
package pro.taskana.impl;
|
||||
package pro.taskana.report.internal;
|
||||
|
||||
import java.util.List;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.TaskanaRole;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.impl.report.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.impl.report.item.MonitorQueryItem;
|
||||
import pro.taskana.impl.report.preprocessor.DaysToWorkingDaysPreProcessor;
|
||||
import pro.taskana.mappings.TaskMonitorMapper;
|
||||
import pro.taskana.report.CategoryReport;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.common.internal.InternalTaskanaEngine;
|
||||
import pro.taskana.report.api.CategoryReport;
|
||||
import pro.taskana.report.internal.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.report.internal.item.MonitorQueryItem;
|
||||
import pro.taskana.report.internal.preprocessor.DaysToWorkingDaysPreProcessor;
|
||||
import pro.taskana.task.api.TaskanaRole;
|
||||
|
||||
/** The implementation of CategoryReportBuilder. */
|
||||
public class CategoryReportBuilderImpl
|
|
@ -1,19 +1,19 @@
|
|||
package pro.taskana.impl;
|
||||
package pro.taskana.report.internal;
|
||||
|
||||
import java.util.List;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.TaskanaRole;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.impl.report.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.impl.report.item.DetailedMonitorQueryItem;
|
||||
import pro.taskana.impl.report.item.MonitorQueryItem;
|
||||
import pro.taskana.impl.report.preprocessor.DaysToWorkingDaysPreProcessor;
|
||||
import pro.taskana.mappings.TaskMonitorMapper;
|
||||
import pro.taskana.report.ClassificationReport;
|
||||
import pro.taskana.report.ClassificationReport.DetailedClassificationReport;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.common.internal.InternalTaskanaEngine;
|
||||
import pro.taskana.report.api.ClassificationReport;
|
||||
import pro.taskana.report.api.ClassificationReport.DetailedClassificationReport;
|
||||
import pro.taskana.report.internal.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.report.internal.item.DetailedMonitorQueryItem;
|
||||
import pro.taskana.report.internal.item.MonitorQueryItem;
|
||||
import pro.taskana.report.internal.preprocessor.DaysToWorkingDaysPreProcessor;
|
||||
import pro.taskana.task.api.TaskanaRole;
|
||||
|
||||
/** The implementation of ClassificationReportBuilder. */
|
||||
public class ClassificationReportBuilderImpl
|
|
@ -1,10 +1,12 @@
|
|||
package pro.taskana.impl.report;
|
||||
package pro.taskana.report.internal;
|
||||
|
||||
import pro.taskana.report.api.WorkbasketReport;
|
||||
|
||||
/**
|
||||
* The CombinedClassificationFilter is a pair of a classificationId for a task and a
|
||||
* classificationId for the corresponding attachment that is used to filter the {@link
|
||||
* pro.taskana.report.WorkbasketReport} by the classification of the attachment. To filter by the
|
||||
* classification of the task, the classificationId of the attachment should be null.
|
||||
* WorkbasketReport} by the classification of the attachment. To filter by the classification of the
|
||||
* task, the classificationId of the attachment should be null.
|
||||
*/
|
||||
public class CombinedClassificationFilter {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue