TSK-123 move primary Object Reference Values to Task record
This commit is contained in:
parent
7afa2e33f8
commit
f3f46e1ed5
|
|
@ -7,6 +7,7 @@ import javax.enterprise.context.Initialized;
|
||||||
import javax.enterprise.event.Observes;
|
import javax.enterprise.event.Observes;
|
||||||
|
|
||||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||||
|
import pro.taskana.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.exceptions.InvalidOwnerException;
|
import pro.taskana.exceptions.InvalidOwnerException;
|
||||||
import pro.taskana.exceptions.InvalidStateException;
|
import pro.taskana.exceptions.InvalidStateException;
|
||||||
import pro.taskana.exceptions.InvalidWorkbasketException;
|
import pro.taskana.exceptions.InvalidWorkbasketException;
|
||||||
|
|
@ -14,6 +15,7 @@ import pro.taskana.exceptions.NotAuthorizedException;
|
||||||
import pro.taskana.exceptions.TaskAlreadyExistException;
|
import pro.taskana.exceptions.TaskAlreadyExistException;
|
||||||
import pro.taskana.exceptions.TaskNotFoundException;
|
import pro.taskana.exceptions.TaskNotFoundException;
|
||||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||||
|
import pro.taskana.model.ObjectReference;
|
||||||
|
|
||||||
@ApplicationScoped
|
@ApplicationScoped
|
||||||
public class ExampleBootstrap {
|
public class ExampleBootstrap {
|
||||||
|
|
@ -25,9 +27,16 @@ public class ExampleBootstrap {
|
||||||
public void init(@Observes @Initialized(ApplicationScoped.class) Object init)
|
public void init(@Observes @Initialized(ApplicationScoped.class) Object init)
|
||||||
throws TaskNotFoundException, NotAuthorizedException, WorkbasketNotFoundException,
|
throws TaskNotFoundException, NotAuthorizedException, WorkbasketNotFoundException,
|
||||||
ClassificationNotFoundException, InvalidStateException, InvalidOwnerException, InvalidWorkbasketException,
|
ClassificationNotFoundException, InvalidStateException, InvalidOwnerException, InvalidWorkbasketException,
|
||||||
TaskAlreadyExistException {
|
TaskAlreadyExistException, InvalidArgumentException {
|
||||||
System.out.println("---------------------------> Start App");
|
System.out.println("---------------------------> Start App");
|
||||||
Task task = taskanaEjb.getTaskService().newTask();
|
Task task = taskanaEjb.getTaskService().newTask();
|
||||||
|
ObjectReference objRef = new ObjectReference();
|
||||||
|
objRef.setCompany("aCompany");
|
||||||
|
objRef.setSystem("aSystem");
|
||||||
|
objRef.setSystemInstance("anInstance");
|
||||||
|
objRef.setType("aType");
|
||||||
|
objRef.setValue("aValue");
|
||||||
|
task.setPrimaryObjRef(objRef);
|
||||||
task = taskanaEjb.getTaskService().createTask(task);
|
task = taskanaEjb.getTaskService().createTask(task);
|
||||||
System.out.println("---------------------------> Task started: " + task.getId());
|
System.out.println("---------------------------> Task started: " + task.getId());
|
||||||
taskanaEjb.getTaskService().claim(task.getId());
|
taskanaEjb.getTaskService().claim(task.getId());
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,12 @@ import javax.ejb.Stateless;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||||
|
import pro.taskana.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.exceptions.InvalidWorkbasketException;
|
import pro.taskana.exceptions.InvalidWorkbasketException;
|
||||||
import pro.taskana.exceptions.NotAuthorizedException;
|
import pro.taskana.exceptions.NotAuthorizedException;
|
||||||
import pro.taskana.exceptions.TaskAlreadyExistException;
|
import pro.taskana.exceptions.TaskAlreadyExistException;
|
||||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||||
|
import pro.taskana.model.ObjectReference;
|
||||||
|
|
||||||
@Stateless
|
@Stateless
|
||||||
public class TaskanaEjb {
|
public class TaskanaEjb {
|
||||||
|
|
@ -34,8 +36,17 @@ public class TaskanaEjb {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void triggerRollback() throws NotAuthorizedException, WorkbasketNotFoundException,
|
public void triggerRollback() throws NotAuthorizedException, WorkbasketNotFoundException,
|
||||||
ClassificationNotFoundException, TaskAlreadyExistException, InvalidWorkbasketException {
|
ClassificationNotFoundException, TaskAlreadyExistException, InvalidWorkbasketException,
|
||||||
|
InvalidArgumentException {
|
||||||
Task task = taskService.newTask();
|
Task task = taskService.newTask();
|
||||||
|
ObjectReference objRef = new ObjectReference();
|
||||||
|
objRef.setCompany("aCompany");
|
||||||
|
objRef.setSystem("aSystem");
|
||||||
|
objRef.setSystemInstance("anInstance");
|
||||||
|
objRef.setType("aType");
|
||||||
|
objRef.setValue("aValue");
|
||||||
|
task.setPrimaryObjRef(objRef);
|
||||||
|
|
||||||
taskService.createTask(task);
|
taskService.createTask(task);
|
||||||
System.out.println("---------------->" + task.getId());
|
System.out.println("---------------->" + task.getId());
|
||||||
throw new RuntimeException();
|
throw new RuntimeException();
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
||||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||||
|
import pro.taskana.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.exceptions.InvalidOwnerException;
|
import pro.taskana.exceptions.InvalidOwnerException;
|
||||||
import pro.taskana.exceptions.InvalidStateException;
|
import pro.taskana.exceptions.InvalidStateException;
|
||||||
import pro.taskana.exceptions.InvalidWorkbasketException;
|
import pro.taskana.exceptions.InvalidWorkbasketException;
|
||||||
|
|
@ -21,6 +22,7 @@ import pro.taskana.exceptions.NotAuthorizedException;
|
||||||
import pro.taskana.exceptions.TaskAlreadyExistException;
|
import pro.taskana.exceptions.TaskAlreadyExistException;
|
||||||
import pro.taskana.exceptions.TaskNotFoundException;
|
import pro.taskana.exceptions.TaskNotFoundException;
|
||||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||||
|
import pro.taskana.model.ObjectReference;
|
||||||
import pro.taskana.model.WorkbasketType;
|
import pro.taskana.model.WorkbasketType;
|
||||||
|
|
||||||
@Path("/test")
|
@Path("/test")
|
||||||
|
|
@ -37,7 +39,7 @@ public class TaskanaRestTest {
|
||||||
@GET
|
@GET
|
||||||
public Response startTask() throws NotAuthorizedException, WorkbasketNotFoundException,
|
public Response startTask() throws NotAuthorizedException, WorkbasketNotFoundException,
|
||||||
ClassificationNotFoundException, ClassificationAlreadyExistException, InvalidWorkbasketException,
|
ClassificationNotFoundException, ClassificationAlreadyExistException, InvalidWorkbasketException,
|
||||||
TaskAlreadyExistException {
|
TaskAlreadyExistException, InvalidArgumentException {
|
||||||
Workbasket workbasket = taskanaEjb.getWorkbasketService().newWorkbasket();
|
Workbasket workbasket = taskanaEjb.getWorkbasketService().newWorkbasket();
|
||||||
workbasket.setName("wb");
|
workbasket.setName("wb");
|
||||||
workbasket.setKey("key");
|
workbasket.setKey("key");
|
||||||
|
|
@ -51,6 +53,14 @@ public class TaskanaRestTest {
|
||||||
Task task = taskanaEjb.getTaskService().newTask();
|
Task task = taskanaEjb.getTaskService().newTask();
|
||||||
task.setClassification(classification);
|
task.setClassification(classification);
|
||||||
task.setWorkbasketKey(workbasket.getKey());
|
task.setWorkbasketKey(workbasket.getKey());
|
||||||
|
ObjectReference objRef = new ObjectReference();
|
||||||
|
objRef.setCompany("aCompany");
|
||||||
|
objRef.setSystem("aSystem");
|
||||||
|
objRef.setSystemInstance("anInstance");
|
||||||
|
objRef.setType("aType");
|
||||||
|
objRef.setValue("aValue");
|
||||||
|
task.setPrimaryObjRef(objRef);
|
||||||
|
|
||||||
Task result = taskanaEjb.getTaskService().createTask(task);
|
Task result = taskanaEjb.getTaskService().createTask(task);
|
||||||
|
|
||||||
logger.info(result.getId() + ":" + result.getOwner());
|
logger.info(result.getId() + ":" + result.getOwner());
|
||||||
|
|
@ -60,7 +70,7 @@ public class TaskanaRestTest {
|
||||||
@POST
|
@POST
|
||||||
public Response rollbackTask()
|
public Response rollbackTask()
|
||||||
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException,
|
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException,
|
||||||
InvalidWorkbasketException, TaskAlreadyExistException {
|
InvalidWorkbasketException, TaskAlreadyExistException, InvalidArgumentException {
|
||||||
taskanaEjb.triggerRollback();
|
taskanaEjb.triggerRollback();
|
||||||
return Response.status(204).build();
|
return Response.status(204).build();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ public interface TaskQuery extends BaseQuery<Task> {
|
||||||
TaskQuery name(String... name);
|
TaskQuery name(String... name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add your description to your query. It will be compared in SQL with an LIKE. If you use a wildcard like % tehn it
|
* Add your description for pattern matching to your query. It will be compared in SQL with the LIKE operator. You
|
||||||
* will be transmitted to the database.
|
* may use a wildcard like % to specify the pattern.
|
||||||
*
|
*
|
||||||
* @param description
|
* @param description
|
||||||
* your description
|
* your description
|
||||||
|
|
@ -75,13 +75,99 @@ public interface TaskQuery extends BaseQuery<Task> {
|
||||||
TaskQuery owner(String... owners);
|
TaskQuery owner(String... owners);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add your objectReference to your query. The objectReference query can be obtained from the TaskService
|
* Add the companies of the primary object reference for exact matching to your query.
|
||||||
*
|
*
|
||||||
* @param objectReferenceQuery
|
* @param companies
|
||||||
* the objectReference query
|
* the companies of your primary object reference
|
||||||
* @return the query
|
* @return the query
|
||||||
*/
|
*/
|
||||||
TaskQuery objectReference(ObjectReferenceQuery objectReferenceQuery);
|
TaskQuery primaryObjectReferenceCompanyIn(String... companies);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the company of the primary object reference for pattern matching to your query. It will be compared in SQL
|
||||||
|
* with the LIKE operator. You may use a wildcard like % to specify the pattern.
|
||||||
|
*
|
||||||
|
* @param company
|
||||||
|
* the company of your primary object reference
|
||||||
|
* @return the query
|
||||||
|
*/
|
||||||
|
TaskQuery primaryObjectReferenceCompanyLike(String company);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the systems of the primary object reference for exact matching to your query.
|
||||||
|
*
|
||||||
|
* @param systems
|
||||||
|
* the systems of your primary object reference
|
||||||
|
* @return the query
|
||||||
|
*/
|
||||||
|
TaskQuery primaryObjectReferenceSystemIn(String... systems);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the system of the primary object reference for pattern matching to your query. It will be compared in SQL
|
||||||
|
* with the LIKE operator. You may use a wildcard like % to specify the pattern.
|
||||||
|
*
|
||||||
|
* @param system
|
||||||
|
* the system of your primary object reference
|
||||||
|
* @return the query
|
||||||
|
*/
|
||||||
|
TaskQuery primaryObjectReferenceSystemLike(String system);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the system instances of the primary object reference for exact matching to your query.
|
||||||
|
*
|
||||||
|
* @param systemInstances
|
||||||
|
* the system instances of your primary object reference
|
||||||
|
* @return the query
|
||||||
|
*/
|
||||||
|
TaskQuery primaryObjectReferenceSystemInstanceIn(String... systemInstances);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the system instance of the primary object reference for pattern matching to your query. It will be compared
|
||||||
|
* in SQL with the LIKE operator. You may use a wildcard like % to specify the pattern.
|
||||||
|
*
|
||||||
|
* @param systemInstance
|
||||||
|
* the system instance of your primary object reference
|
||||||
|
* @return the query
|
||||||
|
*/
|
||||||
|
TaskQuery primaryObjectReferenceSystemInstanceLike(String systemInstance);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the types of the primary object reference for exact matching to your query.
|
||||||
|
*
|
||||||
|
* @param types
|
||||||
|
* the types your primary object reference
|
||||||
|
* @return the query
|
||||||
|
*/
|
||||||
|
TaskQuery primaryObjectReferenceTypeIn(String... types);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the type of the primary object reference for pattern matching to your query. It will be compared in SQL with
|
||||||
|
* the LIKE operator. You may use a wildcard like % to specify the pattern.
|
||||||
|
*
|
||||||
|
* @param type
|
||||||
|
* the type of your primary object reference
|
||||||
|
* @return the query
|
||||||
|
*/
|
||||||
|
TaskQuery primaryObjectReferenceTypeLike(String type);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the values of the primary object reference for exact matching to your query.
|
||||||
|
*
|
||||||
|
* @param values
|
||||||
|
* the values of your primary object reference
|
||||||
|
* @return the query
|
||||||
|
*/
|
||||||
|
TaskQuery primaryObjectReferenceValueIn(String... values);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the value of the primary object reference for pattern matching to your query. It will be compared in SQL with
|
||||||
|
* the LIKE operator. You may use a wildcard like % to specify the pattern.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* the value of your primary object reference
|
||||||
|
* @return the query
|
||||||
|
*/
|
||||||
|
TaskQuery primaryObjectReferenceValueLike(String value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add the isRead flag to the query.
|
* Add the isRead flag to the query.
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package pro.taskana;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||||
|
import pro.taskana.exceptions.ConcurrencyException;
|
||||||
|
import pro.taskana.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.exceptions.InvalidOwnerException;
|
import pro.taskana.exceptions.InvalidOwnerException;
|
||||||
import pro.taskana.exceptions.InvalidStateException;
|
import pro.taskana.exceptions.InvalidStateException;
|
||||||
import pro.taskana.exceptions.InvalidWorkbasketException;
|
import pro.taskana.exceptions.InvalidWorkbasketException;
|
||||||
|
|
@ -100,10 +102,12 @@ public interface TaskService {
|
||||||
* thrown if the {@link Classification} referenced by the task is not found
|
* thrown if the {@link Classification} referenced by the task is not found
|
||||||
* @throws InvalidWorkbasketException
|
* @throws InvalidWorkbasketException
|
||||||
* thrown if the referenced Workbasket has missing required properties
|
* thrown if the referenced Workbasket has missing required properties
|
||||||
|
* @throws InvalidArgumentException
|
||||||
|
* thrown if the primary ObjectReference is invalid
|
||||||
*/
|
*/
|
||||||
Task createTask(Task taskToCreate)
|
Task createTask(Task taskToCreate)
|
||||||
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException,
|
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException,
|
||||||
TaskAlreadyExistException, InvalidWorkbasketException;
|
TaskAlreadyExistException, InvalidWorkbasketException, InvalidArgumentException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the details of a task by Id.
|
* Get the details of a task by Id.
|
||||||
|
|
@ -192,4 +196,19 @@ public interface TaskService {
|
||||||
* @return task - with default values
|
* @return task - with default values
|
||||||
*/
|
*/
|
||||||
Task newTask();
|
Task newTask();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update a task.
|
||||||
|
*
|
||||||
|
* @param task
|
||||||
|
* the task to be updated in the database
|
||||||
|
* @return the updated task
|
||||||
|
* @throws InvalidArgumentException
|
||||||
|
* if the task to be updated contains invalid properties like e.g. invalid object references
|
||||||
|
* @throws TaskNotFoundException
|
||||||
|
* if the id of the task is not found in the database
|
||||||
|
* @throws ConcurrencyException
|
||||||
|
* if the task has already been updated by another user
|
||||||
|
*/
|
||||||
|
Task updateTask(Task task) throws InvalidArgumentException, TaskNotFoundException, ConcurrencyException;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package pro.taskana.exceptions;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This exception is thrown when an attempt is made to update an object that has already been updated by another user.
|
||||||
|
*
|
||||||
|
* @author bbr
|
||||||
|
*/
|
||||||
|
public class ConcurrencyException extends TaskanaException {
|
||||||
|
|
||||||
|
public ConcurrencyException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -35,6 +35,11 @@ public class TaskImpl implements Task {
|
||||||
private boolean isTransferred;
|
private boolean isTransferred;
|
||||||
// All objects have to be serializable
|
// All objects have to be serializable
|
||||||
private Map<String, Object> customAttributes = Collections.emptyMap();
|
private Map<String, Object> customAttributes = Collections.emptyMap();
|
||||||
|
private String porCompany; // auxiliary field needed to avoid 2nd query for primaryObjRef in TaskMapper
|
||||||
|
private String porSystem; // auxiliary field needed to avoid 2nd query for primaryObjRef in TaskMapper
|
||||||
|
private String porSystemInstance; // auxiliary field needed to avoid 2nd query for primaryObjRef in TaskMapper
|
||||||
|
private String porType; // auxiliary field needed to avoid 2nd query for primaryObjRef in TaskMapper
|
||||||
|
private String porValue; // auxiliary field needed to avoid 2nd query for primaryObjRef in TaskMapper
|
||||||
private String custom1;
|
private String custom1;
|
||||||
private String custom2;
|
private String custom2;
|
||||||
private String custom3;
|
private String custom3;
|
||||||
|
|
@ -336,10 +341,50 @@ public class TaskImpl implements Task {
|
||||||
this.custom10 = custom10;
|
this.custom10 = custom10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getPorCompany() {
|
||||||
|
return porCompany;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorCompany(String porCompany) {
|
||||||
|
this.porCompany = porCompany;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPorSystem() {
|
||||||
|
return porSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorSystem(String porSystem) {
|
||||||
|
this.porSystem = porSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPorSystemInstance() {
|
||||||
|
return porSystemInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorSystemInstance(String porSystemInstance) {
|
||||||
|
this.porSystemInstance = porSystemInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPorType() {
|
||||||
|
return porType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorType(String porType) {
|
||||||
|
this.porType = porType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPorValue() {
|
||||||
|
return porValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorValue(String porValue) {
|
||||||
|
this.porValue = porValue;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
builder.append("Task [id=");
|
builder.append("TaskImpl [id=");
|
||||||
builder.append(id);
|
builder.append(id);
|
||||||
builder.append(", created=");
|
builder.append(", created=");
|
||||||
builder.append(created);
|
builder.append(created);
|
||||||
|
|
@ -379,6 +424,16 @@ public class TaskImpl implements Task {
|
||||||
builder.append(isTransferred);
|
builder.append(isTransferred);
|
||||||
builder.append(", customAttributes=");
|
builder.append(", customAttributes=");
|
||||||
builder.append(customAttributes);
|
builder.append(customAttributes);
|
||||||
|
builder.append(", porCompany=");
|
||||||
|
builder.append(porCompany);
|
||||||
|
builder.append(", porSystem=");
|
||||||
|
builder.append(porSystem);
|
||||||
|
builder.append(", porSystemInstance=");
|
||||||
|
builder.append(porSystemInstance);
|
||||||
|
builder.append(", porType=");
|
||||||
|
builder.append(porType);
|
||||||
|
builder.append(", porValue=");
|
||||||
|
builder.append(porValue);
|
||||||
builder.append(", custom1=");
|
builder.append(", custom1=");
|
||||||
builder.append(custom1);
|
builder.append(custom1);
|
||||||
builder.append(", custom2=");
|
builder.append(", custom2=");
|
||||||
|
|
@ -402,4 +457,5 @@ public class TaskImpl implements Task {
|
||||||
builder.append("]");
|
builder.append("]");
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package pro.taskana.impl;
|
package pro.taskana.impl;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -34,10 +35,19 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
private ClassificationQuery classificationQuery;
|
private ClassificationQuery classificationQuery;
|
||||||
private String[] workbasketKey;
|
private String[] workbasketKey;
|
||||||
private String[] owner;
|
private String[] owner;
|
||||||
private ObjectReferenceQuery objectReferenceQuery;
|
|
||||||
private Boolean isRead;
|
private Boolean isRead;
|
||||||
private Boolean isTransferred;
|
private Boolean isTransferred;
|
||||||
private String[] customFields;
|
private String[] customFields;
|
||||||
|
private String[] porCompanyIn;
|
||||||
|
private String porCompanyLike;
|
||||||
|
private String[] porSystemIn;
|
||||||
|
private String porSystemLike;
|
||||||
|
private String[] porSystemInstanceIn;
|
||||||
|
private String porSystemInstanceLike;
|
||||||
|
private String[] porTypeIn;
|
||||||
|
private String porTypeLike;
|
||||||
|
private String[] porValueIn;
|
||||||
|
private String porValueLike;
|
||||||
|
|
||||||
public TaskQueryImpl(TaskanaEngine taskanaEngine) {
|
public TaskQueryImpl(TaskanaEngine taskanaEngine) {
|
||||||
this.taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
this.taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
||||||
|
|
@ -86,8 +96,62 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TaskQuery objectReference(ObjectReferenceQuery objectReferenceQuery) {
|
public TaskQuery primaryObjectReferenceCompanyIn(String... companies) {
|
||||||
this.objectReferenceQuery = objectReferenceQuery;
|
this.porCompanyIn = companies;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaskQuery primaryObjectReferenceCompanyLike(String company) {
|
||||||
|
this.porCompanyLike = company;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaskQuery primaryObjectReferenceSystemIn(String... systems) {
|
||||||
|
this.porSystemIn = systems;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaskQuery primaryObjectReferenceSystemLike(String system) {
|
||||||
|
this.porSystemLike = system;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaskQuery primaryObjectReferenceSystemInstanceIn(String... systemInstances) {
|
||||||
|
this.porSystemInstanceIn = systemInstances;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaskQuery primaryObjectReferenceSystemInstanceLike(String systemInstance) {
|
||||||
|
this.porSystemInstanceLike = systemInstance;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaskQuery primaryObjectReferenceTypeIn(String... types) {
|
||||||
|
this.porTypeIn = types;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaskQuery primaryObjectReferenceTypeLike(String type) {
|
||||||
|
this.porTypeLike = type;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaskQuery primaryObjectReferenceValueIn(String... values) {
|
||||||
|
this.porValueIn = values;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaskQuery primaryObjectReferenceValueLike(String value) {
|
||||||
|
this.porValueLike = value;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -117,11 +181,15 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
@Override
|
@Override
|
||||||
public List<Task> list() throws NotAuthorizedException {
|
public List<Task> list() throws NotAuthorizedException {
|
||||||
LOGGER.debug("entry to list(), this = {}", this);
|
LOGGER.debug("entry to list(), this = {}", this);
|
||||||
List<Task> result = null;
|
List<Task> result = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
taskanaEngineImpl.openConnection();
|
taskanaEngineImpl.openConnection();
|
||||||
checkAuthorization();
|
checkAuthorization();
|
||||||
result = taskanaEngineImpl.getSqlSession().selectList(LINK_TO_MAPPER, this);
|
List<TaskImpl> tasks = taskanaEngineImpl.getSqlSession().selectList(LINK_TO_MAPPER, this);
|
||||||
|
for (TaskImpl taskImpl : tasks) {
|
||||||
|
TaskServiceImpl.setPrimaryObjRef(taskImpl);
|
||||||
|
result.add(taskImpl);
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
} finally {
|
} finally {
|
||||||
taskanaEngineImpl.returnConnection();
|
taskanaEngineImpl.returnConnection();
|
||||||
|
|
@ -136,12 +204,16 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
@Override
|
@Override
|
||||||
public List<Task> list(int offset, int limit) throws NotAuthorizedException {
|
public List<Task> list(int offset, int limit) throws NotAuthorizedException {
|
||||||
LOGGER.debug("entry to list(offset = {}, limit = {}), this = {}", offset, limit, this);
|
LOGGER.debug("entry to list(offset = {}, limit = {}), this = {}", offset, limit, this);
|
||||||
List<Task> result = null;
|
List<Task> result = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
taskanaEngineImpl.openConnection();
|
taskanaEngineImpl.openConnection();
|
||||||
checkAuthorization();
|
checkAuthorization();
|
||||||
RowBounds rowBounds = new RowBounds(offset, limit);
|
RowBounds rowBounds = new RowBounds(offset, limit);
|
||||||
result = taskanaEngineImpl.getSqlSession().selectList(LINK_TO_MAPPER, this, rowBounds);
|
List<TaskImpl> tasks = taskanaEngineImpl.getSqlSession().selectList(LINK_TO_MAPPER, this, rowBounds);
|
||||||
|
for (TaskImpl taskImpl : tasks) {
|
||||||
|
TaskServiceImpl.setPrimaryObjRef(taskImpl);
|
||||||
|
result.add(taskImpl);
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
} finally {
|
} finally {
|
||||||
taskanaEngineImpl.returnConnection();
|
taskanaEngineImpl.returnConnection();
|
||||||
|
|
@ -161,6 +233,7 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
taskanaEngineImpl.openConnection();
|
taskanaEngineImpl.openConnection();
|
||||||
checkAuthorization();
|
checkAuthorization();
|
||||||
result = taskanaEngineImpl.getSqlSession().selectOne(LINK_TO_MAPPER, this);
|
result = taskanaEngineImpl.getSqlSession().selectOne(LINK_TO_MAPPER, this);
|
||||||
|
TaskServiceImpl.setPrimaryObjRef(result);
|
||||||
return result;
|
return result;
|
||||||
} finally {
|
} finally {
|
||||||
taskanaEngineImpl.returnConnection();
|
taskanaEngineImpl.returnConnection();
|
||||||
|
|
@ -240,30 +313,6 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
this.owner = owner;
|
this.owner = owner;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObjectReferenceQuery getObjectReferenceQuery() {
|
|
||||||
return objectReferenceQuery;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setObjectReferenceQuery(ObjectReferenceQuery objectReferenceQuery) {
|
|
||||||
this.objectReferenceQuery = objectReferenceQuery;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isRead() {
|
|
||||||
return isRead;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRead(boolean isRead) {
|
|
||||||
this.isRead = isRead;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isTransferred() {
|
|
||||||
return isTransferred;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTransferred(boolean isTransferred) {
|
|
||||||
this.isTransferred = isTransferred;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String[] getCustomFields() {
|
public String[] getCustomFields() {
|
||||||
return customFields;
|
return customFields;
|
||||||
}
|
}
|
||||||
|
|
@ -272,6 +321,102 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
this.customFields = customFields;
|
this.customFields = customFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Boolean getIsRead() {
|
||||||
|
return isRead;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsRead(Boolean isRead) {
|
||||||
|
this.isRead = isRead;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getIsTransferred() {
|
||||||
|
return isTransferred;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsTransferred(Boolean isTransferred) {
|
||||||
|
this.isTransferred = isTransferred;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getPorCompanyIn() {
|
||||||
|
return porCompanyIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorCompanyIn(String[] porCompanyIn) {
|
||||||
|
this.porCompanyIn = porCompanyIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPorCompanyLike() {
|
||||||
|
return porCompanyLike;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorCompanyLike(String porCompanyLike) {
|
||||||
|
this.porCompanyLike = porCompanyLike;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getPorSystemIn() {
|
||||||
|
return porSystemIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorSystemIn(String[] porSystemIn) {
|
||||||
|
this.porSystemIn = porSystemIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPorSystemLike() {
|
||||||
|
return porSystemLike;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorSystemLike(String porSystemLike) {
|
||||||
|
this.porSystemLike = porSystemLike;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getPorSystemInstanceIn() {
|
||||||
|
return porSystemInstanceIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorSystemInstanceIn(String[] porSystemInstanceIn) {
|
||||||
|
this.porSystemInstanceIn = porSystemInstanceIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPorSystemInstanceLike() {
|
||||||
|
return porSystemInstanceLike;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorSystemInstanceLike(String porSystemInstanceLike) {
|
||||||
|
this.porSystemInstanceLike = porSystemInstanceLike;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getPorTypeIn() {
|
||||||
|
return porTypeIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorTypeIn(String[] porTypeIn) {
|
||||||
|
this.porTypeIn = porTypeIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPorTypeLike() {
|
||||||
|
return porTypeLike;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorTypeLike(String porTypeLike) {
|
||||||
|
this.porTypeLike = porTypeLike;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getPorValueIn() {
|
||||||
|
return porValueIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorValueIn(String[] porValueIn) {
|
||||||
|
this.porValueIn = porValueIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPorValueLike() {
|
||||||
|
return porValueLike;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorValueLike(String porValueLike) {
|
||||||
|
this.porValueLike = porValueLike;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
|
|
@ -291,15 +436,34 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
builder.append(Arrays.toString(workbasketKey));
|
builder.append(Arrays.toString(workbasketKey));
|
||||||
builder.append(", owner=");
|
builder.append(", owner=");
|
||||||
builder.append(Arrays.toString(owner));
|
builder.append(Arrays.toString(owner));
|
||||||
builder.append(", objectReferenceQuery=");
|
|
||||||
builder.append(objectReferenceQuery);
|
|
||||||
builder.append(", isRead=");
|
builder.append(", isRead=");
|
||||||
builder.append(isRead);
|
builder.append(isRead);
|
||||||
builder.append(", isTransferred=");
|
builder.append(", isTransferred=");
|
||||||
builder.append(isTransferred);
|
builder.append(isTransferred);
|
||||||
builder.append(", customFields=");
|
builder.append(", customFields=");
|
||||||
builder.append(Arrays.toString(customFields));
|
builder.append(Arrays.toString(customFields));
|
||||||
|
builder.append(", porCompanyIn=");
|
||||||
|
builder.append(Arrays.toString(porCompanyIn));
|
||||||
|
builder.append(", porCompanyLike=");
|
||||||
|
builder.append(porCompanyLike);
|
||||||
|
builder.append(", porSystemIn=");
|
||||||
|
builder.append(Arrays.toString(porSystemIn));
|
||||||
|
builder.append(", porSystemLike=");
|
||||||
|
builder.append(porSystemLike);
|
||||||
|
builder.append(", porSystemInstanceIn=");
|
||||||
|
builder.append(Arrays.toString(porSystemInstanceIn));
|
||||||
|
builder.append(", porSystemInstanceLike=");
|
||||||
|
builder.append(porSystemInstanceLike);
|
||||||
|
builder.append(", porTypeIn=");
|
||||||
|
builder.append(Arrays.toString(porTypeIn));
|
||||||
|
builder.append(", porTypeLike=");
|
||||||
|
builder.append(porTypeLike);
|
||||||
|
builder.append(", porValueIn=");
|
||||||
|
builder.append(Arrays.toString(porValueIn));
|
||||||
|
builder.append(", porValueLike=");
|
||||||
|
builder.append(porValueLike);
|
||||||
builder.append("]");
|
builder.append("]");
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ import pro.taskana.TaskanaEngine;
|
||||||
import pro.taskana.Workbasket;
|
import pro.taskana.Workbasket;
|
||||||
import pro.taskana.WorkbasketService;
|
import pro.taskana.WorkbasketService;
|
||||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||||
|
import pro.taskana.exceptions.ConcurrencyException;
|
||||||
|
import pro.taskana.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.exceptions.InvalidOwnerException;
|
import pro.taskana.exceptions.InvalidOwnerException;
|
||||||
import pro.taskana.exceptions.InvalidStateException;
|
import pro.taskana.exceptions.InvalidStateException;
|
||||||
import pro.taskana.exceptions.InvalidWorkbasketException;
|
import pro.taskana.exceptions.InvalidWorkbasketException;
|
||||||
|
|
@ -152,7 +154,7 @@ public class TaskServiceImpl implements TaskService {
|
||||||
@Override
|
@Override
|
||||||
public Task createTask(Task taskToCreate)
|
public Task createTask(Task taskToCreate)
|
||||||
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException,
|
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException,
|
||||||
TaskAlreadyExistException, InvalidWorkbasketException {
|
TaskAlreadyExistException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
LOGGER.debug("entry to createTask(task = {})", taskToCreate);
|
LOGGER.debug("entry to createTask(task = {})", taskToCreate);
|
||||||
try {
|
try {
|
||||||
taskanaEngineImpl.openConnection();
|
taskanaEngineImpl.openConnection();
|
||||||
|
|
@ -171,6 +173,7 @@ public class TaskServiceImpl implements TaskService {
|
||||||
classification.getDomain());
|
classification.getDomain());
|
||||||
|
|
||||||
standardSettings(task);
|
standardSettings(task);
|
||||||
|
validatePrimaryObjectReference(task);
|
||||||
this.taskMapper.insert(task);
|
this.taskMapper.insert(task);
|
||||||
LOGGER.debug("Method createTask() created Task '{}'.", task.getId());
|
LOGGER.debug("Method createTask() created Task '{}'.", task.getId());
|
||||||
}
|
}
|
||||||
|
|
@ -189,6 +192,7 @@ public class TaskServiceImpl implements TaskService {
|
||||||
taskanaEngineImpl.openConnection();
|
taskanaEngineImpl.openConnection();
|
||||||
result = taskMapper.findById(id);
|
result = taskMapper.findById(id);
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
|
setPrimaryObjRef((TaskImpl) result);
|
||||||
return result;
|
return result;
|
||||||
} else {
|
} else {
|
||||||
LOGGER.warn("Method getTaskById() didn't find task with id {}. Throwing TaskNotFoundException", id);
|
LOGGER.warn("Method getTaskById() didn't find task with id {}. Throwing TaskNotFoundException", id);
|
||||||
|
|
@ -272,7 +276,10 @@ public class TaskServiceImpl implements TaskService {
|
||||||
taskanaEngineImpl.openConnection();
|
taskanaEngineImpl.openConnection();
|
||||||
workbasketService.checkAuthorization(workbasketKey, WorkbasketAuthorization.READ);
|
workbasketService.checkAuthorization(workbasketKey, WorkbasketAuthorization.READ);
|
||||||
List<TaskImpl> tasks = taskMapper.findTasksByWorkbasketIdAndState(workbasketKey, taskState);
|
List<TaskImpl> tasks = taskMapper.findTasksByWorkbasketIdAndState(workbasketKey, taskState);
|
||||||
tasks.stream().forEach(t -> results.add(t));
|
for (TaskImpl taskImpl : tasks) {
|
||||||
|
setPrimaryObjRef(taskImpl);
|
||||||
|
results.add(taskImpl);
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
taskanaEngineImpl.returnConnection();
|
taskanaEngineImpl.returnConnection();
|
||||||
if (LOGGER.isDebugEnabled()) {
|
if (LOGGER.isDebugEnabled()) {
|
||||||
|
|
@ -285,6 +292,30 @@ public class TaskServiceImpl implements TaskService {
|
||||||
return (results == null) ? new ArrayList<>() : results;
|
return (results == null) ? new ArrayList<>() : results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Task updateTask(Task task)
|
||||||
|
throws InvalidArgumentException, TaskNotFoundException, ConcurrencyException {
|
||||||
|
String userId = CurrentUserContext.getUserid();
|
||||||
|
LOGGER.debug("entry to updateTask(task = {}, userId = {})", task, userId);
|
||||||
|
TaskImpl newTaskImpl = (TaskImpl) task;
|
||||||
|
TaskImpl oldTaskImpl = null;
|
||||||
|
try {
|
||||||
|
taskanaEngineImpl.openConnection();
|
||||||
|
oldTaskImpl = (TaskImpl) getTaskById(newTaskImpl.getId());
|
||||||
|
standardUpdateActions(oldTaskImpl, newTaskImpl);
|
||||||
|
|
||||||
|
Timestamp now = new Timestamp(System.currentTimeMillis());
|
||||||
|
newTaskImpl.setModified(now);
|
||||||
|
taskMapper.update(newTaskImpl);
|
||||||
|
LOGGER.debug("Method updateTask() updated task '{}' for user '{}'.", task.getId(), userId);
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
taskanaEngineImpl.returnConnection();
|
||||||
|
LOGGER.debug("exit from claim()");
|
||||||
|
}
|
||||||
|
return task;
|
||||||
|
}
|
||||||
|
|
||||||
private void standardSettings(TaskImpl task) {
|
private void standardSettings(TaskImpl task) {
|
||||||
Timestamp now = new Timestamp(System.currentTimeMillis());
|
Timestamp now = new Timestamp(System.currentTimeMillis());
|
||||||
task.setId(IdGenerator.generateWithPrefix(ID_PREFIX_TASK));
|
task.setId(IdGenerator.generateWithPrefix(ID_PREFIX_TASK));
|
||||||
|
|
@ -325,16 +356,16 @@ public class TaskServiceImpl implements TaskService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// insert ObjectReference if needed.
|
// insert ObjectReference if needed. Comment this out for the scope of tsk-123
|
||||||
if (task.getPrimaryObjRef() != null) {
|
// if (task.getPrimaryObjRef() != null) {
|
||||||
ObjectReference objectReference = this.objectReferenceMapper.findByObjectReference(task.getPrimaryObjRef());
|
// ObjectReference objectReference = this.objectReferenceMapper.findByObjectReference(task.getPrimaryObjRef());
|
||||||
if (objectReference == null) {
|
// if (objectReference == null) {
|
||||||
objectReference = task.getPrimaryObjRef();
|
// objectReference = task.getPrimaryObjRef();
|
||||||
objectReference.setId(IdGenerator.generateWithPrefix(ID_PREFIX_OBJECT_REFERENCE));
|
// objectReference.setId(IdGenerator.generateWithPrefix(ID_PREFIX_OBJECT_REFERENCE));
|
||||||
this.objectReferenceMapper.insert(objectReference);
|
// this.objectReferenceMapper.insert(objectReference);
|
||||||
}
|
// }
|
||||||
task.setPrimaryObjRef(objectReference);
|
// // task.setPrimaryObjRef(objectReference);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -367,4 +398,75 @@ public class TaskServiceImpl implements TaskService {
|
||||||
public Task newTask() {
|
public Task newTask() {
|
||||||
return new TaskImpl();
|
return new TaskImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void setPrimaryObjRef(TaskImpl task) {
|
||||||
|
ObjectReference objRef = new ObjectReference();
|
||||||
|
objRef.setCompany(task.getPorCompany());
|
||||||
|
objRef.setSystem(task.getPorSystem());
|
||||||
|
objRef.setSystemInstance(task.getPorSystemInstance());
|
||||||
|
objRef.setType(task.getPorType());
|
||||||
|
objRef.setValue(task.getPorValue());
|
||||||
|
task.setPrimaryObjRef(objRef);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validatePrimaryObjectReference(TaskImpl task) throws InvalidArgumentException {
|
||||||
|
// check that all values in the primary ObjectReference are set correctly
|
||||||
|
ObjectReference primObjRef = task.getPrimaryObjRef();
|
||||||
|
if (primObjRef == null) {
|
||||||
|
throw new InvalidArgumentException("primary ObjectReference of task must not be null");
|
||||||
|
} else if (primObjRef.getCompany() == null || primObjRef.getCompany().length() == 0) {
|
||||||
|
throw new InvalidArgumentException("Company of primary ObjectReference of task must not be empty");
|
||||||
|
} else if (primObjRef.getSystem() == null || primObjRef.getSystem().length() == 0) {
|
||||||
|
throw new InvalidArgumentException("System of primary ObjectReference of task must not be empty");
|
||||||
|
} else if (primObjRef.getSystemInstance() == null || primObjRef.getSystemInstance().length() == 0) {
|
||||||
|
throw new InvalidArgumentException("SystemInstance of primary ObjectReference of task must not be empty");
|
||||||
|
} else if (primObjRef.getType() == null || primObjRef.getType().length() == 0) {
|
||||||
|
throw new InvalidArgumentException("Type of primary ObjectReference of task must not be empty");
|
||||||
|
} else if (primObjRef.getValue() == null || primObjRef.getValue().length() == 0) {
|
||||||
|
throw new InvalidArgumentException("Value of primary ObjectReference of task must not be empty");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void standardUpdateActions(TaskImpl oldTaskImpl, TaskImpl newTaskImpl)
|
||||||
|
throws InvalidArgumentException, ConcurrencyException {
|
||||||
|
validatePrimaryObjectReference(newTaskImpl);
|
||||||
|
if (oldTaskImpl.getModified() != null && !oldTaskImpl.getModified().equals(newTaskImpl.getModified())
|
||||||
|
|| oldTaskImpl.getClaimed() != null && !oldTaskImpl.getClaimed().equals(newTaskImpl.getClaimed())
|
||||||
|
|| oldTaskImpl.getState() != null && !oldTaskImpl.getState().equals(newTaskImpl.getState())) {
|
||||||
|
throw new ConcurrencyException("The task has already been updated by another user");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newTaskImpl.getPlanned() == null) {
|
||||||
|
newTaskImpl.setPlanned(oldTaskImpl.getPlanned());
|
||||||
|
}
|
||||||
|
|
||||||
|
// if no business process id is provided, a unique id is created.
|
||||||
|
if (newTaskImpl.getBusinessProcessId() == null) {
|
||||||
|
newTaskImpl.setBusinessProcessId(oldTaskImpl.getBusinessProcessId());
|
||||||
|
}
|
||||||
|
|
||||||
|
// insert Classification specifications if Classification is given.
|
||||||
|
Classification classification = newTaskImpl.getClassification();
|
||||||
|
if (classification != null) {
|
||||||
|
if (classification.getServiceLevel() != null) {
|
||||||
|
Duration serviceLevel = Duration.parse(classification.getServiceLevel());
|
||||||
|
LocalDateTime due = newTaskImpl.getPlanned().toLocalDateTime().plus(serviceLevel);
|
||||||
|
newTaskImpl.setDue(Timestamp.valueOf(due));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newTaskImpl.getName() == null) {
|
||||||
|
newTaskImpl.setName(classification.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newTaskImpl.getDescription() == null) {
|
||||||
|
newTaskImpl.setDescription(classification.getDescription());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newTaskImpl.getPriority() == 0) {
|
||||||
|
newTaskImpl.setPriority(classification.getPriority());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -79,4 +79,68 @@ public class ObjectReference {
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
final int prime = 31;
|
||||||
|
int result = 1;
|
||||||
|
result = prime * result + ((id == null) ? 0 : id.hashCode());
|
||||||
|
result = prime * result + ((company == null) ? 0 : company.hashCode());
|
||||||
|
result = prime * result + ((system == null) ? 0 : system.hashCode());
|
||||||
|
result = prime * result + ((systemInstance == null) ? 0 : systemInstance.hashCode());
|
||||||
|
result = prime * result + ((type == null) ? 0 : type.hashCode());
|
||||||
|
result = prime * result + ((value == null) ? 0 : value.hashCode());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object other) {
|
||||||
|
if (this == other) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (other == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (other.getClass() != getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
ObjectReference o = (ObjectReference) other;
|
||||||
|
|
||||||
|
if (id == null && o.id != null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (id != null && !(id.equals(o.id))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (company == null && o.company != null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (company != null && !(company.equals(o.company))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (system == null && o.system != null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (system != null && !(system.equals(o.system))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (systemInstance == null && o.systemInstance != null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (systemInstance != null && !(systemInstance.equals(o.systemInstance))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (type == null && o.type != null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (type != null && !(type.equals(o.type))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (value == null && o.value != null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (value != null && !(value.equals(o.value))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,11 +26,10 @@ public interface QueryMapper {
|
||||||
String CLASSIFICATION_FINDBYIDANDDOMAIN = "pro.taskana.model.mappings.ClassificationMapper.findByKeyAndDomain";
|
String CLASSIFICATION_FINDBYIDANDDOMAIN = "pro.taskana.model.mappings.ClassificationMapper.findByKeyAndDomain";
|
||||||
String CLASSIFICATION_FINDBYID = "pro.taskana.model.mappings.ClassificationMapper.findById";
|
String CLASSIFICATION_FINDBYID = "pro.taskana.model.mappings.ClassificationMapper.findById";
|
||||||
|
|
||||||
@Select("<script>SELECT t.ID, t.CREATED, t.CLAIMED, t.COMPLETED, t.MODIFIED, t.PLANNED, t.DUE, t.NAME, t.DESCRIPTION, t.PRIORITY, t.STATE, t.CLASSIFICATION_KEY, t.WORKBASKET_KEY, t.OWNER, t.PRIMARY_OBJ_REF_ID, t.IS_READ, t.IS_TRANSFERRED, t.CUSTOM_1, t.CUSTOM_2, t.CUSTOM_3, t.CUSTOM_4, t.CUSTOM_5, t.CUSTOM_6, t.CUSTOM_7, t.CUSTOM_8, t.CUSTOM_9, t.CUSTOM_10 "
|
@Select("<script>SELECT t.ID, t.CREATED, t.CLAIMED, t.COMPLETED, t.MODIFIED, t.PLANNED, t.DUE, t.NAME, t.DESCRIPTION, t.PRIORITY, t.STATE, t.CLASSIFICATION_KEY, t.WORKBASKET_KEY, t.OWNER, t.POR_COMPANY, t.POR_SYSTEM, t.POR_INSTANCE, t.POR_TYPE, t.POR_VALUE, t.IS_READ, t.IS_TRANSFERRED, t.CUSTOM_1, t.CUSTOM_2, t.CUSTOM_3, t.CUSTOM_4, t.CUSTOM_5, t.CUSTOM_6, t.CUSTOM_7, t.CUSTOM_8, t.CUSTOM_9, t.CUSTOM_10 "
|
||||||
+ "FROM TASK t "
|
+ "FROM TASK t "
|
||||||
// Joins if Classification or Object Reference Query is needed
|
// Joins if Classification Query is needed
|
||||||
+ "<if test='classificationQuery != null'>LEFT OUTER JOIN CLASSIFICATION c on t.CLASSIFICATION_KEY = c.KEY</if> "
|
+ "<if test='classificationQuery != null'>LEFT OUTER JOIN CLASSIFICATION c on t.CLASSIFICATION_KEY = c.KEY</if> "
|
||||||
+ "<if test='objectReferenceQuery != null'>LEFT OUTER JOIN OBJECT_REFERENCE o on t.PRIMARY_OBJ_REF_ID = o.ID</if> "
|
|
||||||
+ "<where>"
|
+ "<where>"
|
||||||
+ "<if test='name != null'>AND t.NAME IN(<foreach item='item' collection='name' separator=',' >#{item}</foreach>)</if> "
|
+ "<if test='name != null'>AND t.NAME IN(<foreach item='item' collection='name' separator=',' >#{item}</foreach>)</if> "
|
||||||
+ "<if test='description != null'>AND t.DESCRIPTION like #{description}</if> "
|
+ "<if test='description != null'>AND t.DESCRIPTION like #{description}</if> "
|
||||||
|
|
@ -40,6 +39,16 @@ public interface QueryMapper {
|
||||||
+ "<if test='owner != null'>AND t.OWNER IN(<foreach item='item' collection='owner' separator=',' >#{item}</foreach>)</if> "
|
+ "<if test='owner != null'>AND t.OWNER IN(<foreach item='item' collection='owner' separator=',' >#{item}</foreach>)</if> "
|
||||||
+ "<if test='isRead != null'>AND t.IS_READ = #{isRead}</if> "
|
+ "<if test='isRead != null'>AND t.IS_READ = #{isRead}</if> "
|
||||||
+ "<if test='isTransferred != null'>AND t.IS_TRANSFERRED = #{isTransferred}</if> "
|
+ "<if test='isTransferred != null'>AND t.IS_TRANSFERRED = #{isTransferred}</if> "
|
||||||
|
+ "<if test='porCompanyIn != null'>AND t.POR_COMPANY IN(<foreach item='item' collection='porCompanyIn' separator=',' >#{item}</foreach>)</if> "
|
||||||
|
+ "<if test='porCompanyLike != null'>AND t.POR_COMPANY like #{porCompanyLike}</if> "
|
||||||
|
+ "<if test='porSystemIn != null'>AND t.POR_SYSTEM IN(<foreach item='item' collection='porSystemIn' separator=',' >#{item}</foreach>)</if> "
|
||||||
|
+ "<if test='porSystemLike != null'>AND t.POR_SYSTEM like #{porSystemLike}</if> "
|
||||||
|
+ "<if test='porSystemInstanceIn != null'>AND t.POR_INSTANCE IN(<foreach item='item' collection='porSystemInstanceIn' separator=',' >#{item}</foreach>)</if> "
|
||||||
|
+ "<if test='porSystemInstanceLike != null'>AND t.POR_INSTANCE like #{porSystemInstanceLike}</if> "
|
||||||
|
+ "<if test='porTypeIn != null'>AND t.POR_TYPE IN(<foreach item='item' collection='porTypeIn' separator=',' >#{item}</foreach>)</if> "
|
||||||
|
+ "<if test='porTypeLike != null'>AND t.POR_TYPE like #{porTypeLike}</if> "
|
||||||
|
+ "<if test='porValueIn != null'>AND t.POR_VALUE IN(<foreach item='item' collection='porValueIn' separator=',' >#{item}</foreach>)</if> "
|
||||||
|
+ "<if test='porValueLike != null'>AND t.POR_VALUE like #{porValueLike}</if> "
|
||||||
+ "<if test='customFields != null'>AND (t.CUSTOM_1 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_2 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_3 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_4 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_5 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_6 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_7 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_8 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_9 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_10 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>))</if> "
|
+ "<if test='customFields != null'>AND (t.CUSTOM_1 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_2 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_3 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_4 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_5 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_6 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_7 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_8 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_9 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>) OR t.CUSTOM_10 IN(<foreach item='item' collection='customFields' separator=',' >#{item}</foreach>))</if> "
|
||||||
// Classification Query
|
// Classification Query
|
||||||
+ "<if test='classificationQuery != null'>"
|
+ "<if test='classificationQuery != null'>"
|
||||||
|
|
@ -59,14 +68,6 @@ public interface QueryMapper {
|
||||||
+ "<if test='classificationQuery.validFrom != null'>AND c.VALID_FROM IN(<foreach item='item' collection='classificationQuery.validFrom' separator=',' >#{item}</foreach>)</if> "
|
+ "<if test='classificationQuery.validFrom != null'>AND c.VALID_FROM IN(<foreach item='item' collection='classificationQuery.validFrom' separator=',' >#{item}</foreach>)</if> "
|
||||||
+ "<if test='classificationQuery.validUntil != null'>AND c.VALID_UNTIL IN(<foreach item='item' collection='classificationQuery.validUntil' separator=',' >#{item}</foreach>)</if> "
|
+ "<if test='classificationQuery.validUntil != null'>AND c.VALID_UNTIL IN(<foreach item='item' collection='classificationQuery.validUntil' separator=',' >#{item}</foreach>)</if> "
|
||||||
+ "</if>"
|
+ "</if>"
|
||||||
// Object Reference Query
|
|
||||||
+ "<if test='objectReferenceQuery != null'>"
|
|
||||||
+ "<if test='objectReferenceQuery.company != null'>AND o.COMPANY IN(<foreach item='item' collection='objectReferenceQuery.company' separator=',' >#{item}</foreach>)</if> "
|
|
||||||
+ "<if test='objectReferenceQuery.system != null'>AND o.SYSTEM IN(<foreach item='item' collection='objectReferenceQuery.system' separator=',' >#{item}</foreach>)</if> "
|
|
||||||
+ "<if test='objectReferenceQuery.systemInstance != null'>AND o.SYSTEM_INSTANCE IN(<foreach item='item' collection='objectReferenceQuery.systemInstance' separator=',' >#{item}</foreach>)</if> "
|
|
||||||
+ "<if test='objectReferenceQuery.type != null'>AND o.TYPE IN(<foreach item='item' collection='objectReferenceQuery.type' separator=',' >#{item}</foreach>)</if> "
|
|
||||||
+ "<if test='objectReferenceQuery.value != null'>AND o.VALUE IN(<foreach item='item' collection='objectReferenceQuery.value' separator=',' >#{item}</foreach>)</if> "
|
|
||||||
+ "</if>"
|
|
||||||
+ "</where>"
|
+ "</where>"
|
||||||
+ "</script>")
|
+ "</script>")
|
||||||
@Results(value = {@Result(property = "id", column = "ID"),
|
@Results(value = {@Result(property = "id", column = "ID"),
|
||||||
|
|
@ -83,8 +84,11 @@ public interface QueryMapper {
|
||||||
one = @One(select = CLASSIFICATION_FINDBYID)),
|
one = @One(select = CLASSIFICATION_FINDBYID)),
|
||||||
@Result(property = "workbasketKey", column = "WORKBASKET_KEY"),
|
@Result(property = "workbasketKey", column = "WORKBASKET_KEY"),
|
||||||
@Result(property = "owner", column = "OWNER"),
|
@Result(property = "owner", column = "OWNER"),
|
||||||
@Result(property = "primaryObjRef", column = "PRIMARY_OBJ_REF_ID", javaType = ObjectReference.class,
|
@Result(property = "porCompany", column = "POR_COMPANY"),
|
||||||
one = @One(select = OBJECTREFERENCEMAPPER_FINDBYID)),
|
@Result(property = "porSystem", column = "POR_SYSTEM"),
|
||||||
|
@Result(property = "porSystemInstance", column = "POR_INSTANCE"),
|
||||||
|
@Result(property = "porType", column = "POR_TYPE"),
|
||||||
|
@Result(property = "porValue", column = "POR_VALUE"),
|
||||||
@Result(property = "isRead", column = "IS_READ"),
|
@Result(property = "isRead", column = "IS_READ"),
|
||||||
@Result(property = "isTransferred", column = "IS_TRANSFERRED"),
|
@Result(property = "isTransferred", column = "IS_TRANSFERRED"),
|
||||||
@Result(property = "custom1", column = "CUSTOM_1"),
|
@Result(property = "custom1", column = "CUSTOM_1"),
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ import pro.taskana.impl.ClassificationImpl;
|
||||||
import pro.taskana.impl.TaskImpl;
|
import pro.taskana.impl.TaskImpl;
|
||||||
import pro.taskana.impl.persistence.MapTypeHandler;
|
import pro.taskana.impl.persistence.MapTypeHandler;
|
||||||
import pro.taskana.model.DueWorkbasketCounter;
|
import pro.taskana.model.DueWorkbasketCounter;
|
||||||
import pro.taskana.model.ObjectReference;
|
|
||||||
import pro.taskana.model.TaskState;
|
import pro.taskana.model.TaskState;
|
||||||
import pro.taskana.model.TaskSummary;
|
import pro.taskana.model.TaskSummary;
|
||||||
|
|
||||||
|
|
@ -33,7 +32,7 @@ public interface TaskMapper {
|
||||||
String CLASSIFICATION_FINDBYKEYANDDOMAIN = "pro.taskana.model.mappings.ClassificationMapper.findByKeyAndDomain";
|
String CLASSIFICATION_FINDBYKEYANDDOMAIN = "pro.taskana.model.mappings.ClassificationMapper.findByKeyAndDomain";
|
||||||
String CLASSIFICATION_FINDBYID = "pro.taskana.model.mappings.ClassificationMapper.findById";
|
String CLASSIFICATION_FINDBYID = "pro.taskana.model.mappings.ClassificationMapper.findById";
|
||||||
|
|
||||||
@Select("SELECT ID, CREATED, CLAIMED, COMPLETED, MODIFIED, PLANNED, DUE, NAME, DESCRIPTION, PRIORITY, STATE, CLASSIFICATION_KEY, WORKBASKET_KEY, BUSINESS_PROCESS_ID, PARENT_BUSINESS_PROCESS_ID, OWNER, PRIMARY_OBJ_REF_ID, IS_READ, IS_TRANSFERRED, CUSTOM_ATTRIBUTES, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, CUSTOM_9, CUSTOM_10 "
|
@Select("SELECT ID, CREATED, CLAIMED, COMPLETED, MODIFIED, PLANNED, DUE, NAME, DESCRIPTION, PRIORITY, STATE, CLASSIFICATION_KEY, WORKBASKET_KEY, BUSINESS_PROCESS_ID, PARENT_BUSINESS_PROCESS_ID, OWNER, POR_COMPANY, POR_SYSTEM, POR_INSTANCE, POR_TYPE, POR_VALUE, IS_READ, IS_TRANSFERRED, CUSTOM_ATTRIBUTES, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, CUSTOM_9, CUSTOM_10 "
|
||||||
+ "FROM TASK "
|
+ "FROM TASK "
|
||||||
+ "WHERE ID = #{id}")
|
+ "WHERE ID = #{id}")
|
||||||
@Results(value = {
|
@Results(value = {
|
||||||
|
|
@ -54,8 +53,11 @@ public interface TaskMapper {
|
||||||
@Result(property = "businessProcessId", column = "BUSINESS_PROCESS_ID"),
|
@Result(property = "businessProcessId", column = "BUSINESS_PROCESS_ID"),
|
||||||
@Result(property = "parentBusinessProcessId", column = "PARENT_BUSINESS_PROCESS_ID"),
|
@Result(property = "parentBusinessProcessId", column = "PARENT_BUSINESS_PROCESS_ID"),
|
||||||
@Result(property = "owner", column = "OWNER"),
|
@Result(property = "owner", column = "OWNER"),
|
||||||
@Result(property = "primaryObjRef", column = "PRIMARY_OBJ_REF_ID", javaType = ObjectReference.class,
|
@Result(property = "porCompany", column = "POR_COMPANY"),
|
||||||
one = @One(select = OBJECTREFERENCEMAPPER_FINDBYID)),
|
@Result(property = "porSystem", column = "POR_SYSTEM"),
|
||||||
|
@Result(property = "porSystemInstance", column = "POR_INSTANCE"),
|
||||||
|
@Result(property = "porType", column = "POR_TYPE"),
|
||||||
|
@Result(property = "porValue", column = "POR_VALUE"),
|
||||||
@Result(property = "isRead", column = "IS_READ"),
|
@Result(property = "isRead", column = "IS_READ"),
|
||||||
@Result(property = "isTransferred", column = "IS_TRANSFERRED"),
|
@Result(property = "isTransferred", column = "IS_TRANSFERRED"),
|
||||||
@Result(property = "customAttributes", column = "CUSTOM_ATTRIBUTES", jdbcType = JdbcType.BLOB,
|
@Result(property = "customAttributes", column = "CUSTOM_ATTRIBUTES", jdbcType = JdbcType.BLOB,
|
||||||
|
|
@ -79,19 +81,19 @@ public interface TaskMapper {
|
||||||
List<DueWorkbasketCounter> getTaskCountByWorkbasketIdAndDaysInPastAndState(@Param("fromDate") Date fromDate,
|
List<DueWorkbasketCounter> getTaskCountByWorkbasketIdAndDaysInPastAndState(@Param("fromDate") Date fromDate,
|
||||||
@Param("status") List<TaskState> states);
|
@Param("status") List<TaskState> states);
|
||||||
|
|
||||||
@Insert("INSERT INTO TASK(ID, CREATED, CLAIMED, COMPLETED, MODIFIED, PLANNED, DUE, NAME, DESCRIPTION, PRIORITY, STATE, CLASSIFICATION_KEY, WORKBASKET_KEY, BUSINESS_PROCESS_ID, PARENT_BUSINESS_PROCESS_ID, OWNER, PRIMARY_OBJ_REF_ID, IS_READ, IS_TRANSFERRED, CUSTOM_ATTRIBUTES, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, CUSTOM_9, CUSTOM_10) "
|
@Insert("INSERT INTO TASK(ID, CREATED, CLAIMED, COMPLETED, MODIFIED, PLANNED, DUE, NAME, DESCRIPTION, PRIORITY, STATE, CLASSIFICATION_KEY, WORKBASKET_KEY, BUSINESS_PROCESS_ID, PARENT_BUSINESS_PROCESS_ID, OWNER, POR_COMPANY, POR_SYSTEM, POR_INSTANCE, POR_TYPE, POR_VALUE, IS_READ, IS_TRANSFERRED, CUSTOM_ATTRIBUTES, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, CUSTOM_9, CUSTOM_10) "
|
||||||
+ "VALUES(#{id}, #{created}, #{claimed}, #{completed}, #{modified}, #{planned}, #{due}, #{name}, #{description}, #{priority}, #{state}, #{classification.key}, #{workbasketKey}, #{businessProcessId}, #{parentBusinessProcessId}, #{owner}, #{primaryObjRef.id}, #{isRead}, #{isTransferred}, #{customAttributes,jdbcType=BLOB,javaType=java.util.Map,typeHandler=pro.taskana.impl.persistence.MapTypeHandler}, #{custom1}, #{custom2}, #{custom3}, #{custom4}, #{custom5}, #{custom6}, #{custom7}, #{custom8}, #{custom9}, #{custom10})")
|
+ "VALUES(#{id}, #{created}, #{claimed}, #{completed}, #{modified}, #{planned}, #{due}, #{name}, #{description}, #{priority}, #{state}, #{classification.key}, #{workbasketKey}, #{businessProcessId}, #{parentBusinessProcessId}, #{owner}, #{primaryObjRef.company},#{primaryObjRef.system},#{primaryObjRef.systemInstance},#{primaryObjRef.type},#{primaryObjRef.value}, #{isRead}, #{isTransferred}, #{customAttributes,jdbcType=BLOB,javaType=java.util.Map,typeHandler=pro.taskana.impl.persistence.MapTypeHandler}, #{custom1}, #{custom2}, #{custom3}, #{custom4}, #{custom5}, #{custom6}, #{custom7}, #{custom8}, #{custom9}, #{custom10})")
|
||||||
@Options(keyProperty = "id", keyColumn = "ID")
|
@Options(keyProperty = "id", keyColumn = "ID")
|
||||||
void insert(TaskImpl task);
|
void insert(TaskImpl task);
|
||||||
|
|
||||||
@Update("UPDATE TASK SET CLAIMED = #{claimed}, COMPLETED = #{completed}, MODIFIED = #{modified}, PLANNED = #{planned}, DUE = #{due}, NAME = #{name}, DESCRIPTION = #{description}, PRIORITY = #{priority}, STATE = #{state}, CLASSIFICATION_KEY = #{classification.key}, WORKBASKET_KEY = #{workbasketKey}, BUSINESS_PROCESS_ID = #{businessProcessId}, PARENT_BUSINESS_PROCESS_ID = #{parentBusinessProcessId}, OWNER = #{owner}, PRIMARY_OBJ_REF_ID = #{primaryObjRef.id}, IS_READ = #{isRead}, IS_TRANSFERRED = #{isTransferred}, CUSTOM_ATTRIBUTES = #{customAttributes,jdbcType=BLOB,javaType=java.util.Map,typeHandler=pro.taskana.impl.persistence.MapTypeHandler}, CUSTOM_1 = #{custom1}, CUSTOM_2 = #{custom2}, CUSTOM_3 = #{custom3}, CUSTOM_4 = #{custom4}, CUSTOM_5 = #{custom5}, CUSTOM_6 = #{custom6}, CUSTOM_7 = #{custom7}, CUSTOM_8 = #{custom8}, CUSTOM_9 = #{custom9}, CUSTOM_10 = #{custom10} "
|
@Update("UPDATE TASK SET CLAIMED = #{claimed}, COMPLETED = #{completed}, MODIFIED = #{modified}, PLANNED = #{planned}, DUE = #{due}, NAME = #{name}, DESCRIPTION = #{description}, PRIORITY = #{priority}, STATE = #{state}, CLASSIFICATION_KEY = #{classification.key}, WORKBASKET_KEY = #{workbasketKey}, BUSINESS_PROCESS_ID = #{businessProcessId}, PARENT_BUSINESS_PROCESS_ID = #{parentBusinessProcessId}, OWNER = #{owner}, POR_COMPANY = #{primaryObjRef.company}, POR_SYSTEM = #{primaryObjRef.system}, POR_INSTANCE = #{primaryObjRef.systemInstance}, POR_TYPE = #{primaryObjRef.type}, POR_VALUE = #{primaryObjRef.value}, IS_READ = #{isRead}, IS_TRANSFERRED = #{isTransferred}, CUSTOM_ATTRIBUTES = #{customAttributes,jdbcType=BLOB,javaType=java.util.Map,typeHandler=pro.taskana.impl.persistence.MapTypeHandler}, CUSTOM_1 = #{custom1}, CUSTOM_2 = #{custom2}, CUSTOM_3 = #{custom3}, CUSTOM_4 = #{custom4}, CUSTOM_5 = #{custom5}, CUSTOM_6 = #{custom6}, CUSTOM_7 = #{custom7}, CUSTOM_8 = #{custom8}, CUSTOM_9 = #{custom9}, CUSTOM_10 = #{custom10} "
|
||||||
+ "WHERE ID = #{id}")
|
+ "WHERE ID = #{id}")
|
||||||
void update(TaskImpl task);
|
void update(TaskImpl task);
|
||||||
|
|
||||||
@Delete("DELETE FROM TASK WHERE ID = #{id}")
|
@Delete("DELETE FROM TASK WHERE ID = #{id}")
|
||||||
void delete(String id);
|
void delete(String id);
|
||||||
|
|
||||||
@Select("SELECT ID, CREATED, CLAIMED, COMPLETED, MODIFIED, PLANNED, DUE, NAME, DESCRIPTION, PRIORITY, STATE, CLASSIFICATION_KEY, WORKBASKET_KEY, OWNER, PRIMARY_OBJ_REF_ID, IS_READ, IS_TRANSFERRED, CUSTOM_ATTRIBUTES, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, CUSTOM_9, CUSTOM_10 "
|
@Select("SELECT ID, CREATED, CLAIMED, COMPLETED, MODIFIED, PLANNED, DUE, NAME, DESCRIPTION, PRIORITY, STATE, CLASSIFICATION_KEY, WORKBASKET_KEY, OWNER, POR_COMPANY, POR_SYSTEM, POR_INSTANCE, POR_TYPE, POR_VALUE, IS_READ, IS_TRANSFERRED, CUSTOM_ATTRIBUTES, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, CUSTOM_9, CUSTOM_10 "
|
||||||
+ "FROM TASK "
|
+ "FROM TASK "
|
||||||
+ "WHERE WORKBASKET_KEY = #{workbasketKey} "
|
+ "WHERE WORKBASKET_KEY = #{workbasketKey} "
|
||||||
+ "AND STATE = #{taskState}")
|
+ "AND STATE = #{taskState}")
|
||||||
|
|
@ -111,8 +113,11 @@ public interface TaskMapper {
|
||||||
@Result(property = "classification", column = "CLASSIFICATION_KEY", javaType = Classification.class,
|
@Result(property = "classification", column = "CLASSIFICATION_KEY", javaType = Classification.class,
|
||||||
one = @One(select = CLASSIFICATION_FINDBYKEYANDDOMAIN)),
|
one = @One(select = CLASSIFICATION_FINDBYKEYANDDOMAIN)),
|
||||||
@Result(property = "owner", column = "OWNER"),
|
@Result(property = "owner", column = "OWNER"),
|
||||||
@Result(property = "primaryObjRef", column = "PRIMARY_OBJ_REF_ID", javaType = ObjectReference.class,
|
@Result(property = "porCompany", column = "POR_COMPANY"),
|
||||||
one = @One(select = OBJECTREFERENCEMAPPER_FINDBYID)),
|
@Result(property = "porSystem", column = "POR_SYSTEM"),
|
||||||
|
@Result(property = "porSystemInstance", column = "POR_INSTANCE"),
|
||||||
|
@Result(property = "porType", column = "POR_TYPE"),
|
||||||
|
@Result(property = "porValue", column = "POR_VALUE"),
|
||||||
@Result(property = "isRead", column = "IS_READ"),
|
@Result(property = "isRead", column = "IS_READ"),
|
||||||
@Result(property = "isTransferred", column = "IS_TRANSFERRED"),
|
@Result(property = "isTransferred", column = "IS_TRANSFERRED"),
|
||||||
@Result(property = "customAttributes", column = "CUSTOM_ATTRIBUTES", jdbcType = JdbcType.BLOB,
|
@Result(property = "customAttributes", column = "CUSTOM_ATTRIBUTES", jdbcType = JdbcType.BLOB,
|
||||||
|
|
@ -146,4 +151,5 @@ public interface TaskMapper {
|
||||||
@Result(property = "classificationName", column = "classificationName")
|
@Result(property = "classificationName", column = "classificationName")
|
||||||
})
|
})
|
||||||
List<TaskSummary> findTaskSummariesByWorkbasketKey(@Param("workbasketKey") String workbasketKey);
|
List<TaskSummary> findTaskSummariesByWorkbasketKey(@Param("workbasketKey") String workbasketKey);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,11 @@ CREATE TABLE TASK (
|
||||||
BUSINESS_PROCESS_ID VARCHAR(128) NULL,
|
BUSINESS_PROCESS_ID VARCHAR(128) NULL,
|
||||||
PARENT_BUSINESS_PROCESS_ID VARCHAR(128) NULL,
|
PARENT_BUSINESS_PROCESS_ID VARCHAR(128) NULL,
|
||||||
OWNER VARCHAR(255) NULL,
|
OWNER VARCHAR(255) NULL,
|
||||||
PRIMARY_OBJ_REF_ID CHAR(40) NULL,
|
POR_COMPANY VARCHAR(32) NOT NULL,
|
||||||
|
POR_SYSTEM VARCHAR(32) NOT NULL,
|
||||||
|
POR_INSTANCE VARCHAR(32) NOT NULL,
|
||||||
|
POR_TYPE VARCHAR(32) NOT NULL,
|
||||||
|
POR_VALUE VARCHAR(128) NOT NULL,
|
||||||
IS_READ BOOLEAN NOT NULL,
|
IS_READ BOOLEAN NOT NULL,
|
||||||
IS_TRANSFERRED BOOLEAN NOT NULL,
|
IS_TRANSFERRED BOOLEAN NOT NULL,
|
||||||
CUSTOM_ATTRIBUTES BLOB NULL,
|
CUSTOM_ATTRIBUTES BLOB NULL,
|
||||||
|
|
|
||||||
|
|
@ -240,7 +240,6 @@ public class CreateTaskAccTest extends AbstractAccTest {
|
||||||
taskService.createTask(newTask);
|
taskService.createTask(newTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore
|
|
||||||
@WithAccessId(
|
@WithAccessId(
|
||||||
userName = "user_1_1",
|
userName = "user_1_1",
|
||||||
groupNames = {"group_1"})
|
groupNames = {"group_1"})
|
||||||
|
|
@ -253,37 +252,76 @@ public class CreateTaskAccTest extends AbstractAccTest {
|
||||||
Task newTask = taskService.newTask();
|
Task newTask = taskService.newTask();
|
||||||
newTask.setClassification(taskanaEngine.getClassificationService().getClassification("T2100", "DOMAIN_A"));
|
newTask.setClassification(taskanaEngine.getClassificationService().getClassification("T2100", "DOMAIN_A"));
|
||||||
newTask.setWorkbasketKey("USER_1_1");
|
newTask.setWorkbasketKey("USER_1_1");
|
||||||
Task createdTask = taskService.createTask(newTask);
|
Task createdTask;
|
||||||
|
try {
|
||||||
// Exception
|
|
||||||
|
|
||||||
newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", null));
|
|
||||||
|
|
||||||
createdTask = taskService.createTask(newTask);
|
createdTask = taskService.createTask(newTask);
|
||||||
|
} catch (InvalidArgumentException ex) {
|
||||||
|
assertEquals("primary ObjectReference of task must not be null", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
// Exception
|
// Exception
|
||||||
|
|
||||||
|
newTask = taskService.newTask();
|
||||||
|
newTask.setClassification(taskanaEngine.getClassificationService().getClassification("T2100", "DOMAIN_A"));
|
||||||
|
newTask.setWorkbasketKey("USER_1_1");
|
||||||
|
newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", null));
|
||||||
|
try {
|
||||||
|
createdTask = taskService.createTask(newTask);
|
||||||
|
} catch (InvalidArgumentException ex) {
|
||||||
|
assertEquals("Value of primary ObjectReference of task must not be empty", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Exception
|
||||||
|
|
||||||
|
newTask = taskService.newTask();
|
||||||
|
newTask.setClassification(taskanaEngine.getClassificationService().getClassification("T2100", "DOMAIN_A"));
|
||||||
|
newTask.setWorkbasketKey("USER_1_1");
|
||||||
newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", null, "1234567"));
|
newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", null, "1234567"));
|
||||||
|
|
||||||
|
try {
|
||||||
createdTask = taskService.createTask(newTask);
|
createdTask = taskService.createTask(newTask);
|
||||||
|
} catch (InvalidArgumentException ex) {
|
||||||
|
assertEquals("Type of primary ObjectReference of task must not be empty", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
// Exception
|
// Exception
|
||||||
|
|
||||||
|
newTask = taskService.newTask();
|
||||||
|
newTask.setClassification(taskanaEngine.getClassificationService().getClassification("T2100", "DOMAIN_A"));
|
||||||
|
newTask.setWorkbasketKey("USER_1_1");
|
||||||
newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", null, "VNR", "1234567"));
|
newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", null, "VNR", "1234567"));
|
||||||
|
|
||||||
|
try {
|
||||||
createdTask = taskService.createTask(newTask);
|
createdTask = taskService.createTask(newTask);
|
||||||
|
} catch (InvalidArgumentException ex) {
|
||||||
|
assertEquals("SystemInstance of primary ObjectReference of task must not be empty", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
// Exception
|
// Exception
|
||||||
|
|
||||||
|
newTask = taskService.newTask();
|
||||||
|
newTask.setClassification(taskanaEngine.getClassificationService().getClassification("T2100", "DOMAIN_A"));
|
||||||
|
newTask.setWorkbasketKey("USER_1_1");
|
||||||
newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", null, "INSTANCE_A", "VNR", "1234567"));
|
newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", null, "INSTANCE_A", "VNR", "1234567"));
|
||||||
|
|
||||||
|
try {
|
||||||
createdTask = taskService.createTask(newTask);
|
createdTask = taskService.createTask(newTask);
|
||||||
|
} catch (InvalidArgumentException ex) {
|
||||||
|
assertEquals("System of primary ObjectReference of task must not be empty", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
// Exception
|
// Exception
|
||||||
|
|
||||||
|
newTask = taskService.newTask();
|
||||||
|
newTask.setClassification(taskanaEngine.getClassificationService().getClassification("T2100", "DOMAIN_A"));
|
||||||
|
newTask.setWorkbasketKey("USER_1_1");
|
||||||
newTask.setPrimaryObjRef(createObjectReference(null, "SYSTEM_A", "INSTANCE_A", "VNR", "1234567"));
|
newTask.setPrimaryObjRef(createObjectReference(null, "SYSTEM_A", "INSTANCE_A", "VNR", "1234567"));
|
||||||
|
|
||||||
|
try {
|
||||||
createdTask = taskService.createTask(newTask);
|
createdTask = taskService.createTask(newTask);
|
||||||
|
} catch (InvalidArgumentException ex) {
|
||||||
|
assertEquals("Company of primary ObjectReference of task must not be empty", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
// Exception
|
// Exception
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,16 @@
|
||||||
package acceptance.task;
|
package acceptance.task;
|
||||||
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.h2.store.fs.FileUtils;
|
import org.h2.store.fs.FileUtils;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
import org.junit.Ignore;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import acceptance.AbstractAccTest;
|
import acceptance.AbstractAccTest;
|
||||||
|
import pro.taskana.Task;
|
||||||
|
import pro.taskana.TaskService;
|
||||||
import pro.taskana.exceptions.InvalidArgumentException;
|
import pro.taskana.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.exceptions.NotAuthorizedException;
|
import pro.taskana.exceptions.NotAuthorizedException;
|
||||||
|
|
||||||
|
|
@ -20,38 +23,35 @@ public class QueryTasksByObjectReferenceAccTest extends AbstractAccTest {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore
|
|
||||||
@Test
|
@Test
|
||||||
public void testQueryTasksByExcactValueOfObjectReference()
|
public void testQueryTasksByExcactValueOfObjectReference()
|
||||||
throws SQLException, NotAuthorizedException, InvalidArgumentException {
|
throws SQLException, NotAuthorizedException, InvalidArgumentException {
|
||||||
// TaskService taskService = taskanaEngine.getTaskService();
|
TaskService taskService = taskanaEngine.getTaskService();
|
||||||
// List<TaskSummary> results = taskService.createTaskQuery()
|
List<Task> results = taskService.createTaskQuery()
|
||||||
// .primaryObjectReferenceValueEquals("223344")
|
.primaryObjectReferenceValueIn("Value1", "Value2")
|
||||||
// .list();
|
.list();
|
||||||
// Assert.assertEquals(5L, results.size());
|
Assert.assertEquals(10L, results.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore
|
|
||||||
@Test
|
@Test
|
||||||
public void testQueryTasksByExcactValueAndTypeOfObjectReference()
|
public void testQueryTasksByExcactValueAndTypeOfObjectReference()
|
||||||
throws SQLException, NotAuthorizedException, InvalidArgumentException {
|
throws SQLException, NotAuthorizedException, InvalidArgumentException {
|
||||||
// TaskService taskService = taskanaEngine.getTaskService();
|
TaskService taskService = taskanaEngine.getTaskService();
|
||||||
// List<TaskSummary> results = taskService.createTaskQuery()
|
List<Task> results = taskService.createTaskQuery()
|
||||||
// .primaryObjectReferenceTypeEquals("VNR")
|
.primaryObjectReferenceTypeIn("Type3")
|
||||||
// .primaryObjectReferenceValueEquals("223344")
|
.primaryObjectReferenceValueIn("Value3")
|
||||||
// .list();
|
.list();
|
||||||
// Assert.assertEquals(3L, results.size());
|
Assert.assertEquals(4L, results.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore
|
|
||||||
@Test
|
@Test
|
||||||
public void testQueryTasksByValueLikeOfObjectReference()
|
public void testQueryTasksByValueLikeOfObjectReference()
|
||||||
throws SQLException, NotAuthorizedException, InvalidArgumentException {
|
throws SQLException, NotAuthorizedException, InvalidArgumentException {
|
||||||
// TaskService taskService = taskanaEngine.getTaskService();
|
TaskService taskService = taskanaEngine.getTaskService();
|
||||||
// List<TaskSummary> results = taskService.createTaskQuery()
|
List<Task> results = taskService.createTaskQuery()
|
||||||
// .primaryObjectReferenceValueLike("223")
|
.primaryObjectReferenceValueLike("Val%")
|
||||||
// .list();
|
.list();
|
||||||
// Assert.assertEquals(15L, results.size());
|
Assert.assertEquals(14L, results.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass
|
@AfterClass
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,26 @@
|
||||||
package acceptance.task;
|
package acceptance.task;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|
||||||
import org.h2.store.fs.FileUtils;
|
import org.h2.store.fs.FileUtils;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
|
import org.junit.Assert;
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import acceptance.AbstractAccTest;
|
import acceptance.AbstractAccTest;
|
||||||
|
import pro.taskana.Task;
|
||||||
import pro.taskana.TaskService;
|
import pro.taskana.TaskService;
|
||||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||||
|
import pro.taskana.exceptions.ConcurrencyException;
|
||||||
import pro.taskana.exceptions.InvalidArgumentException;
|
import pro.taskana.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.exceptions.InvalidWorkbasketException;
|
import pro.taskana.exceptions.InvalidWorkbasketException;
|
||||||
import pro.taskana.exceptions.NotAuthorizedException;
|
import pro.taskana.exceptions.NotAuthorizedException;
|
||||||
import pro.taskana.exceptions.TaskAlreadyExistException;
|
import pro.taskana.exceptions.TaskAlreadyExistException;
|
||||||
|
import pro.taskana.exceptions.TaskNotFoundException;
|
||||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||||
import pro.taskana.security.JAASRunner;
|
import pro.taskana.security.JAASRunner;
|
||||||
import pro.taskana.security.WithAccessId;
|
import pro.taskana.security.WithAccessId;
|
||||||
|
|
@ -29,75 +35,105 @@ public class UpdateTaskAccTest extends AbstractAccTest {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore
|
|
||||||
@WithAccessId(
|
@WithAccessId(
|
||||||
userName = "user_1_1",
|
userName = "user_1_1",
|
||||||
groupNames = {"group_1"})
|
groupNames = {"group_1"})
|
||||||
@Test
|
@Test
|
||||||
public void testUpdatePrimaryObjectReferenceOfTask()
|
public void testUpdatePrimaryObjectReferenceOfTask()
|
||||||
throws SQLException, NotAuthorizedException, InvalidArgumentException, ClassificationNotFoundException,
|
throws SQLException, NotAuthorizedException, InvalidArgumentException, ClassificationNotFoundException,
|
||||||
WorkbasketNotFoundException, TaskAlreadyExistException, InvalidWorkbasketException {
|
WorkbasketNotFoundException, TaskAlreadyExistException, InvalidWorkbasketException, TaskNotFoundException,
|
||||||
|
ConcurrencyException {
|
||||||
|
|
||||||
// TaskService taskService = taskanaEngine.getTaskService();
|
TaskService taskService = taskanaEngine.getTaskService();
|
||||||
// Task task = taskService.getTask("TKI:000000000000000000000000000000000000");
|
Task task = taskService.getTaskById("TKI:000000000000000000000000000000000000");
|
||||||
// task.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", "7654321"));
|
task.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", "7654321"));
|
||||||
// Task updatedTask = taskService.updateTask(task);
|
Task updatedTask = taskService.updateTask(task);
|
||||||
//
|
|
||||||
// assertNotNull(updatedTask);
|
Assert.assertNotNull(updatedTask);
|
||||||
// assertEquals("7654321", updatedTask.getPrimaryObjRef().getValue());
|
Assert.assertEquals("7654321", updatedTask.getPrimaryObjRef().getValue());
|
||||||
// assertNotNull(updatedTask.getCreated());
|
Assert.assertNotNull(updatedTask.getCreated());
|
||||||
// assertNotNull(updatedTask.getModified());
|
Assert.assertNotNull(updatedTask.getModified());
|
||||||
// assertNotEquals(updatedTask.getCreated(), updatedTask.getModified());
|
Assert.assertNotEquals(updatedTask.getCreated(), updatedTask.getModified());
|
||||||
// assertEquals(task.getCreated(), updatedTask.getCreated());
|
Assert.assertEquals(task.getCreated(), updatedTask.getCreated());
|
||||||
// assertEquals(task.isRead(), updatedTask.isRead());
|
Assert.assertEquals(task.isRead(), updatedTask.isRead());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore
|
|
||||||
@WithAccessId(
|
@WithAccessId(
|
||||||
userName = "user_1_1",
|
userName = "user_1_1",
|
||||||
groupNames = {"group_1"})
|
groupNames = {"group_1"})
|
||||||
@Test
|
@Test
|
||||||
public void testThrowsExceptionIfMandatoryPrimaryObjectReferenceIsNotSetOrIncomplete()
|
public void testThrowsExceptionIfMandatoryPrimaryObjectReferenceIsNotSetOrIncomplete()
|
||||||
throws SQLException, NotAuthorizedException, InvalidArgumentException, ClassificationNotFoundException,
|
throws SQLException, NotAuthorizedException, InvalidArgumentException, ClassificationNotFoundException,
|
||||||
WorkbasketNotFoundException, TaskAlreadyExistException, InvalidWorkbasketException {
|
WorkbasketNotFoundException, TaskAlreadyExistException, InvalidWorkbasketException, TaskNotFoundException,
|
||||||
|
ConcurrencyException {
|
||||||
|
|
||||||
|
TaskService taskService = taskanaEngine.getTaskService();
|
||||||
|
Task task = taskService.getTaskById("TKI:000000000000000000000000000000000000");
|
||||||
|
task.setPrimaryObjRef(null);
|
||||||
|
Task updatedTask = null;
|
||||||
|
try {
|
||||||
|
updatedTask = taskService.updateTask(task);
|
||||||
|
} catch (InvalidArgumentException ex) {
|
||||||
|
assertEquals("primary ObjectReference of task must not be null", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
task.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", null));
|
||||||
|
try {
|
||||||
|
updatedTask = taskService.updateTask(task);
|
||||||
|
} catch (InvalidArgumentException ex) {
|
||||||
|
assertEquals("Value of primary ObjectReference of task must not be empty", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
task.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", null, "1234567"));
|
||||||
|
try {
|
||||||
|
updatedTask = taskService.updateTask(task);
|
||||||
|
} catch (InvalidArgumentException ex) {
|
||||||
|
assertEquals("Type of primary ObjectReference of task must not be empty", ex.getMessage());
|
||||||
|
}
|
||||||
|
task.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", null, "VNR", "1234567"));
|
||||||
|
try {
|
||||||
|
updatedTask = taskService.updateTask(task);
|
||||||
|
} catch (InvalidArgumentException ex) {
|
||||||
|
assertEquals("SystemInstance of primary ObjectReference of task must not be empty", ex.getMessage());
|
||||||
|
}
|
||||||
|
task.setPrimaryObjRef(createObjectReference("COMPANY_A", null, "INSTANCE_A", "VNR", "1234567"));
|
||||||
|
try {
|
||||||
|
updatedTask = taskService.updateTask(task);
|
||||||
|
} catch (InvalidArgumentException ex) {
|
||||||
|
assertEquals("System of primary ObjectReference of task must not be empty", ex.getMessage());
|
||||||
|
}
|
||||||
|
task.setPrimaryObjRef(createObjectReference(null, "SYSTEM_A", "INSTANCE_A", "VNR", "1234567"));
|
||||||
|
try {
|
||||||
|
updatedTask = taskService.updateTask(task);
|
||||||
|
} catch (InvalidArgumentException ex) {
|
||||||
|
assertEquals("Company of primary ObjectReference of task must not be empty", ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@WithAccessId(
|
||||||
|
userName = "user_1_1",
|
||||||
|
groupNames = {"group_1"})
|
||||||
|
@Test
|
||||||
|
public void testThrowsExceptionIfTaskHasAlreadyBeenUpdated()
|
||||||
|
throws SQLException, NotAuthorizedException, InvalidArgumentException, ClassificationNotFoundException,
|
||||||
|
WorkbasketNotFoundException, TaskAlreadyExistException, InvalidWorkbasketException, TaskNotFoundException,
|
||||||
|
ConcurrencyException {
|
||||||
|
|
||||||
|
TaskService taskService = taskanaEngine.getTaskService();
|
||||||
|
Task task = taskService.getTaskById("TKI:000000000000000000000000000000000000");
|
||||||
|
Task task2 = taskService.getTaskById("TKI:000000000000000000000000000000000000");
|
||||||
|
|
||||||
|
task.setCustom1("willi");
|
||||||
|
Task updatedTask = null;
|
||||||
|
updatedTask = taskService.updateTask(task);
|
||||||
|
|
||||||
|
task2.setCustom2("Walter");
|
||||||
|
try {
|
||||||
|
updatedTask = taskService.updateTask(task2);
|
||||||
|
} catch (ConcurrencyException ex) {
|
||||||
|
assertEquals("The task has already been updated by another user", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
// TaskService taskService = taskanaEngine.getTaskService();
|
|
||||||
// Task task = taskService.getTask("TKI:000000000000000000000000000000000000");
|
|
||||||
// task.setPrimaryObjRef(null);
|
|
||||||
// Task updatedTask = taskService.updateTask(task);
|
|
||||||
//
|
|
||||||
// // Exception
|
|
||||||
//
|
|
||||||
// newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", null));
|
|
||||||
//
|
|
||||||
// createdTask = taskService.createTask(newTask);
|
|
||||||
//
|
|
||||||
// // Exception
|
|
||||||
//
|
|
||||||
// newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", null, "1234567"));
|
|
||||||
//
|
|
||||||
// createdTask = taskService.createTask(newTask);
|
|
||||||
//
|
|
||||||
// // Exception
|
|
||||||
//
|
|
||||||
// newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", null, "VNR", "1234567"));
|
|
||||||
//
|
|
||||||
// createdTask = taskService.createTask(newTask);
|
|
||||||
//
|
|
||||||
// // Exception
|
|
||||||
//
|
|
||||||
// newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", null, "INSTANCE_A", "VNR", "1234567"));
|
|
||||||
//
|
|
||||||
// createdTask = taskService.createTask(newTask);
|
|
||||||
//
|
|
||||||
// // Exception
|
|
||||||
//
|
|
||||||
// newTask.setPrimaryObjRef(createObjectReference(null, "SYSTEM_A", "INSTANCE_A", "VNR", "1234567"));
|
|
||||||
//
|
|
||||||
// createdTask = taskService.createTask(newTask);
|
|
||||||
//
|
|
||||||
// // Exception
|
|
||||||
//
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
package pro.taskana.impl;
|
||||||
|
|
||||||
|
import pro.taskana.model.ObjectReference;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class contains helper methods for Junit Tests.
|
||||||
|
*
|
||||||
|
* @author bbr
|
||||||
|
*/
|
||||||
|
public final class JunitHelper {
|
||||||
|
|
||||||
|
private JunitHelper() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ObjectReference createDefaultObjRef() {
|
||||||
|
return createObjRef("company", "system", "instance", "type", "value");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ObjectReference createObjRef(String company, String system, String instance, String type,
|
||||||
|
String value) {
|
||||||
|
ObjectReference objRef = new ObjectReference();
|
||||||
|
objRef.setCompany(company);
|
||||||
|
objRef.setSystem(system);
|
||||||
|
objRef.setSystemInstance(instance);
|
||||||
|
objRef.setType(type);
|
||||||
|
objRef.setValue(value);
|
||||||
|
return objRef;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -39,6 +39,7 @@ import pro.taskana.WorkbasketService;
|
||||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||||
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
||||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||||
|
import pro.taskana.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.exceptions.InvalidOwnerException;
|
import pro.taskana.exceptions.InvalidOwnerException;
|
||||||
import pro.taskana.exceptions.InvalidStateException;
|
import pro.taskana.exceptions.InvalidStateException;
|
||||||
import pro.taskana.exceptions.InvalidWorkbasketException;
|
import pro.taskana.exceptions.InvalidWorkbasketException;
|
||||||
|
|
@ -108,7 +109,7 @@ public class TaskServiceImplTest {
|
||||||
@Test
|
@Test
|
||||||
public void testCreateSimpleTask() throws NotAuthorizedException, WorkbasketNotFoundException,
|
public void testCreateSimpleTask() throws NotAuthorizedException, WorkbasketNotFoundException,
|
||||||
ClassificationNotFoundException, ClassificationAlreadyExistException, TaskAlreadyExistException,
|
ClassificationNotFoundException, ClassificationAlreadyExistException, TaskAlreadyExistException,
|
||||||
TaskNotFoundException, InvalidWorkbasketException {
|
TaskNotFoundException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
||||||
TaskImpl expectedTask = createUnitTestTask("", "DUMMYTASK", "k1");
|
TaskImpl expectedTask = createUnitTestTask("", "DUMMYTASK", "k1");
|
||||||
WorkbasketImpl wb = new WorkbasketImpl();
|
WorkbasketImpl wb = new WorkbasketImpl();
|
||||||
|
|
@ -118,6 +119,7 @@ public class TaskServiceImplTest {
|
||||||
doThrow(TaskNotFoundException.class).when(cutSpy).getTaskById(expectedTask.getId());
|
doThrow(TaskNotFoundException.class).when(cutSpy).getTaskById(expectedTask.getId());
|
||||||
doReturn(wb).when(workbasketServiceMock).getWorkbasketByKey(wb.getKey());
|
doReturn(wb).when(workbasketServiceMock).getWorkbasketByKey(wb.getKey());
|
||||||
doNothing().when(taskMapperMock).insert(expectedTask);
|
doNothing().when(taskMapperMock).insert(expectedTask);
|
||||||
|
expectedTask.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
|
|
||||||
Task actualTask = cutSpy.createTask(expectedTask);
|
Task actualTask = cutSpy.createTask(expectedTask);
|
||||||
|
|
||||||
|
|
@ -143,11 +145,9 @@ public class TaskServiceImplTest {
|
||||||
@Test
|
@Test
|
||||||
public void testCreateSimpleTaskWithObjectReference() throws NotAuthorizedException, WorkbasketNotFoundException,
|
public void testCreateSimpleTaskWithObjectReference() throws NotAuthorizedException, WorkbasketNotFoundException,
|
||||||
ClassificationNotFoundException, ClassificationAlreadyExistException, TaskAlreadyExistException,
|
ClassificationNotFoundException, ClassificationAlreadyExistException, TaskAlreadyExistException,
|
||||||
TaskNotFoundException, InvalidWorkbasketException {
|
TaskNotFoundException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
||||||
ObjectReference expectedObjectReference = new ObjectReference();
|
ObjectReference expectedObjectReference = JunitHelper.createDefaultObjRef();
|
||||||
expectedObjectReference.setId("1");
|
|
||||||
expectedObjectReference.setType("DUMMY");
|
|
||||||
WorkbasketImpl wb = new WorkbasketImpl();
|
WorkbasketImpl wb = new WorkbasketImpl();
|
||||||
wb.setId("1");
|
wb.setId("1");
|
||||||
wb.setName("workbasket");
|
wb.setName("workbasket");
|
||||||
|
|
@ -162,7 +162,6 @@ public class TaskServiceImplTest {
|
||||||
doReturn(expectedObjectReference).when(objectReferenceMapperMock)
|
doReturn(expectedObjectReference).when(objectReferenceMapperMock)
|
||||||
.findByObjectReference(expectedObjectReference);
|
.findByObjectReference(expectedObjectReference);
|
||||||
doNothing().when(taskMapperMock).insert(expectedTask);
|
doNothing().when(taskMapperMock).insert(expectedTask);
|
||||||
|
|
||||||
Task actualTask = cutSpy.createTask(expectedTask);
|
Task actualTask = cutSpy.createTask(expectedTask);
|
||||||
|
|
||||||
verify(taskanaEngineImpl, times(1)).openConnection();
|
verify(taskanaEngineImpl, times(1)).openConnection();
|
||||||
|
|
@ -170,7 +169,6 @@ public class TaskServiceImplTest {
|
||||||
verify(workbasketServiceMock, times(1)).checkAuthorization(wb.getKey(), WorkbasketAuthorization.APPEND);
|
verify(workbasketServiceMock, times(1)).checkAuthorization(wb.getKey(), WorkbasketAuthorization.APPEND);
|
||||||
verify(classificationServiceMock, times(1)).getClassification(classification.getKey(),
|
verify(classificationServiceMock, times(1)).getClassification(classification.getKey(),
|
||||||
classification.getDomain());
|
classification.getDomain());
|
||||||
verify(objectReferenceMapperMock, times(1)).findByObjectReference(expectedObjectReference);
|
|
||||||
verify(taskMapperMock, times(1)).insert(expectedTask);
|
verify(taskMapperMock, times(1)).insert(expectedTask);
|
||||||
verify(taskanaEngineImpl, times(1)).returnConnection();
|
verify(taskanaEngineImpl, times(1)).returnConnection();
|
||||||
verifyNoMoreInteractions(taskanaEngineConfigurationMock, taskanaEngineMock, taskanaEngineImpl,
|
verifyNoMoreInteractions(taskanaEngineConfigurationMock, taskanaEngineMock, taskanaEngineImpl,
|
||||||
|
|
@ -189,11 +187,9 @@ public class TaskServiceImplTest {
|
||||||
@Test
|
@Test
|
||||||
public void testCreateSimpleTaskWithObjectReferenceIsNull() throws NotAuthorizedException,
|
public void testCreateSimpleTaskWithObjectReferenceIsNull() throws NotAuthorizedException,
|
||||||
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
||||||
TaskAlreadyExistException, TaskNotFoundException, InvalidWorkbasketException {
|
TaskAlreadyExistException, TaskNotFoundException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
||||||
ObjectReference expectedObjectReference = new ObjectReference();
|
ObjectReference expectedObjectReference = JunitHelper.createDefaultObjRef();
|
||||||
expectedObjectReference.setId("1");
|
|
||||||
expectedObjectReference.setType("DUMMY");
|
|
||||||
WorkbasketImpl wb = new WorkbasketImpl();
|
WorkbasketImpl wb = new WorkbasketImpl();
|
||||||
wb.setId("1");
|
wb.setId("1");
|
||||||
wb.setKey("key1");
|
wb.setKey("key1");
|
||||||
|
|
@ -219,8 +215,6 @@ public class TaskServiceImplTest {
|
||||||
WorkbasketAuthorization.APPEND);
|
WorkbasketAuthorization.APPEND);
|
||||||
verify(classificationServiceMock, times(1)).getClassification(classification.getKey(),
|
verify(classificationServiceMock, times(1)).getClassification(classification.getKey(),
|
||||||
classification.getDomain());
|
classification.getDomain());
|
||||||
verify(objectReferenceMapperMock, times(1)).findByObjectReference(expectedObjectReference);
|
|
||||||
verify(objectReferenceMapperMock, times(1)).insert(expectedObjectReference);
|
|
||||||
verify(taskMapperMock, times(1)).insert(expectedTask);
|
verify(taskMapperMock, times(1)).insert(expectedTask);
|
||||||
verify(taskanaEngineImpl, times(1)).returnConnection();
|
verify(taskanaEngineImpl, times(1)).returnConnection();
|
||||||
verifyNoMoreInteractions(taskanaEngineConfigurationMock, taskanaEngineMock, taskanaEngineImpl,
|
verifyNoMoreInteractions(taskanaEngineConfigurationMock, taskanaEngineMock, taskanaEngineImpl,
|
||||||
|
|
@ -239,12 +233,10 @@ public class TaskServiceImplTest {
|
||||||
@Test
|
@Test
|
||||||
public void testCreateTaskWithPlanned()
|
public void testCreateTaskWithPlanned()
|
||||||
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException,
|
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException,
|
||||||
TaskAlreadyExistException, TaskNotFoundException, InvalidWorkbasketException {
|
TaskAlreadyExistException, TaskNotFoundException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
||||||
|
|
||||||
ObjectReference expectedObjectReference = new ObjectReference();
|
ObjectReference expectedObjectReference = JunitHelper.createDefaultObjRef();
|
||||||
expectedObjectReference.setId("1");
|
|
||||||
expectedObjectReference.setType("DUMMY");
|
|
||||||
Classification classification = new ClassificationImpl();
|
Classification classification = new ClassificationImpl();
|
||||||
classification.setName("Name");
|
classification.setName("Name");
|
||||||
classification.setCategory("MANUAL");
|
classification.setCategory("MANUAL");
|
||||||
|
|
@ -273,6 +265,7 @@ public class TaskServiceImplTest {
|
||||||
task2.setPrimaryObjRef(expectedObjectReference);
|
task2.setPrimaryObjRef(expectedObjectReference);
|
||||||
task2.setPlanned(Timestamp.valueOf(LocalDateTime.now().minusHours(1)));
|
task2.setPlanned(Timestamp.valueOf(LocalDateTime.now().minusHours(1)));
|
||||||
task2.setName("Task2");
|
task2.setName("Task2");
|
||||||
|
task2.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
|
|
||||||
cutSpy.createTask(task2);
|
cutSpy.createTask(task2);
|
||||||
|
|
||||||
|
|
@ -280,7 +273,6 @@ public class TaskServiceImplTest {
|
||||||
verify(workbasketServiceMock, times(2)).checkAuthorization(any(), any());
|
verify(workbasketServiceMock, times(2)).checkAuthorization(any(), any());
|
||||||
verify(workbasketServiceMock, times(2)).getWorkbasketByKey(any());
|
verify(workbasketServiceMock, times(2)).getWorkbasketByKey(any());
|
||||||
verify(classificationServiceMock, times(2)).getClassification(any(), any());
|
verify(classificationServiceMock, times(2)).getClassification(any(), any());
|
||||||
verify(objectReferenceMapperMock, times(2)).findByObjectReference(expectedObjectReference);
|
|
||||||
verify(taskMapperMock, times(1)).insert(task);
|
verify(taskMapperMock, times(1)).insert(task);
|
||||||
verify(taskMapperMock, times(1)).insert(task2);
|
verify(taskMapperMock, times(1)).insert(task2);
|
||||||
verify(taskanaEngineImpl, times(2)).returnConnection();
|
verify(taskanaEngineImpl, times(2)).returnConnection();
|
||||||
|
|
@ -305,7 +297,7 @@ public class TaskServiceImplTest {
|
||||||
@Test(expected = TaskAlreadyExistException.class)
|
@Test(expected = TaskAlreadyExistException.class)
|
||||||
public void testCreateTaskThrowingAlreadyExistException() throws WorkbasketNotFoundException,
|
public void testCreateTaskThrowingAlreadyExistException() throws WorkbasketNotFoundException,
|
||||||
ClassificationNotFoundException, NotAuthorizedException, TaskAlreadyExistException, TaskNotFoundException,
|
ClassificationNotFoundException, NotAuthorizedException, TaskAlreadyExistException, TaskNotFoundException,
|
||||||
InvalidWorkbasketException {
|
InvalidWorkbasketException, InvalidArgumentException {
|
||||||
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
||||||
TaskImpl task = createUnitTestTask("12", "Task Name", "1");
|
TaskImpl task = createUnitTestTask("12", "Task Name", "1");
|
||||||
doReturn(task).when(cutSpy).getTaskById(task.getId());
|
doReturn(task).when(cutSpy).getTaskById(task.getId());
|
||||||
|
|
@ -325,7 +317,7 @@ public class TaskServiceImplTest {
|
||||||
@Test(expected = NotAuthorizedException.class)
|
@Test(expected = NotAuthorizedException.class)
|
||||||
public void testCreateThrowingAuthorizedOnWorkbasket()
|
public void testCreateThrowingAuthorizedOnWorkbasket()
|
||||||
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException,
|
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException,
|
||||||
TaskAlreadyExistException, TaskNotFoundException, InvalidWorkbasketException {
|
TaskAlreadyExistException, TaskNotFoundException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
||||||
TaskImpl task = createUnitTestTask("", "dummyTask", "1");
|
TaskImpl task = createUnitTestTask("", "dummyTask", "1");
|
||||||
doThrow(TaskNotFoundException.class).when(cutSpy).getTaskById(task.getId());
|
doThrow(TaskNotFoundException.class).when(cutSpy).getTaskById(task.getId());
|
||||||
|
|
@ -349,7 +341,7 @@ public class TaskServiceImplTest {
|
||||||
@Test(expected = WorkbasketNotFoundException.class)
|
@Test(expected = WorkbasketNotFoundException.class)
|
||||||
public void testCreateThrowsWorkbasketNotFoundException()
|
public void testCreateThrowsWorkbasketNotFoundException()
|
||||||
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException,
|
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException,
|
||||||
InvalidWorkbasketException, TaskAlreadyExistException, TaskNotFoundException {
|
InvalidWorkbasketException, TaskAlreadyExistException, TaskNotFoundException, InvalidArgumentException {
|
||||||
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
TaskServiceImpl cutSpy = Mockito.spy(cut);
|
||||||
TaskImpl task = createUnitTestTask("", "dumma-task", "1");
|
TaskImpl task = createUnitTestTask("", "dumma-task", "1");
|
||||||
doThrow(TaskNotFoundException.class).when(cutSpy).getTaskById(task.getId());
|
doThrow(TaskNotFoundException.class).when(cutSpy).getTaskById(task.getId());
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ import pro.taskana.WorkbasketService;
|
||||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||||
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
||||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||||
|
import pro.taskana.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.exceptions.InvalidWorkbasketException;
|
import pro.taskana.exceptions.InvalidWorkbasketException;
|
||||||
import pro.taskana.exceptions.NotAuthorizedException;
|
import pro.taskana.exceptions.NotAuthorizedException;
|
||||||
import pro.taskana.exceptions.TaskAlreadyExistException;
|
import pro.taskana.exceptions.TaskAlreadyExistException;
|
||||||
|
|
@ -41,6 +42,7 @@ import pro.taskana.exceptions.TaskNotFoundException;
|
||||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||||
import pro.taskana.impl.ClassificationImpl;
|
import pro.taskana.impl.ClassificationImpl;
|
||||||
import pro.taskana.impl.ClassificationQueryImpl;
|
import pro.taskana.impl.ClassificationQueryImpl;
|
||||||
|
import pro.taskana.impl.JunitHelper;
|
||||||
import pro.taskana.impl.ObjectReferenceQueryImpl;
|
import pro.taskana.impl.ObjectReferenceQueryImpl;
|
||||||
import pro.taskana.impl.TaskImpl;
|
import pro.taskana.impl.TaskImpl;
|
||||||
import pro.taskana.impl.TaskServiceImpl;
|
import pro.taskana.impl.TaskServiceImpl;
|
||||||
|
|
@ -49,6 +51,7 @@ import pro.taskana.impl.WorkbasketImpl;
|
||||||
import pro.taskana.impl.configuration.DBCleaner;
|
import pro.taskana.impl.configuration.DBCleaner;
|
||||||
import pro.taskana.impl.configuration.TaskanaEngineConfigurationTest;
|
import pro.taskana.impl.configuration.TaskanaEngineConfigurationTest;
|
||||||
import pro.taskana.impl.util.IdGenerator;
|
import pro.taskana.impl.util.IdGenerator;
|
||||||
|
import pro.taskana.model.ObjectReference;
|
||||||
import pro.taskana.model.TaskState;
|
import pro.taskana.model.TaskState;
|
||||||
import pro.taskana.model.TaskSummary;
|
import pro.taskana.model.TaskSummary;
|
||||||
import pro.taskana.model.WorkbasketAccessItem;
|
import pro.taskana.model.WorkbasketAccessItem;
|
||||||
|
|
@ -98,7 +101,8 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
@Test
|
@Test
|
||||||
public void testStart() throws FileNotFoundException, SQLException, TaskNotFoundException,
|
public void testStart() throws FileNotFoundException, SQLException, TaskNotFoundException,
|
||||||
WorkbasketNotFoundException, NotAuthorizedException, ClassificationNotFoundException,
|
WorkbasketNotFoundException, NotAuthorizedException, ClassificationNotFoundException,
|
||||||
ClassificationAlreadyExistException, TaskAlreadyExistException, InvalidWorkbasketException {
|
ClassificationAlreadyExistException, TaskAlreadyExistException, InvalidWorkbasketException,
|
||||||
|
InvalidArgumentException {
|
||||||
Workbasket wb = workbasketService.newWorkbasket();
|
Workbasket wb = workbasketService.newWorkbasket();
|
||||||
wb.setKey("workbasket");
|
wb.setKey("workbasket");
|
||||||
wb.setName("workbasket");
|
wb.setName("workbasket");
|
||||||
|
|
@ -114,7 +118,7 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
task.setWorkbasketKey(wb.getKey());
|
task.setWorkbasketKey(wb.getKey());
|
||||||
|
|
||||||
task.setClassification(classification);
|
task.setClassification(classification);
|
||||||
|
task.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
task = taskServiceImpl.createTask(task);
|
task = taskServiceImpl.createTask(task);
|
||||||
// skanaEngineImpl.getSqlSession().commit(); // needed so that the change is visible in the other session
|
// skanaEngineImpl.getSqlSession().commit(); // needed so that the change is visible in the other session
|
||||||
|
|
||||||
|
|
@ -128,7 +132,7 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
public void testStartTransactionFail()
|
public void testStartTransactionFail()
|
||||||
throws FileNotFoundException, SQLException, TaskNotFoundException, NotAuthorizedException,
|
throws FileNotFoundException, SQLException, TaskNotFoundException, NotAuthorizedException,
|
||||||
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
||||||
TaskAlreadyExistException, InvalidWorkbasketException {
|
TaskAlreadyExistException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
Workbasket wb = workbasketService.newWorkbasket();
|
Workbasket wb = workbasketService.newWorkbasket();
|
||||||
wb.setName("sdf");
|
wb.setName("sdf");
|
||||||
wb.setType(WorkbasketType.GROUP);
|
wb.setType(WorkbasketType.GROUP);
|
||||||
|
|
@ -145,6 +149,7 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
task.setName("Unit Test Task");
|
task.setName("Unit Test Task");
|
||||||
task.setWorkbasketKey(wb.getKey());
|
task.setWorkbasketKey(wb.getKey());
|
||||||
task.setClassification(classification);
|
task.setClassification(classification);
|
||||||
|
task.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
taskServiceImpl.createTask(task);
|
taskServiceImpl.createTask(task);
|
||||||
taskServiceImpl.getTaskById(task.getId());
|
taskServiceImpl.getTaskById(task.getId());
|
||||||
|
|
||||||
|
|
@ -157,7 +162,7 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
public void testCreateTaskInTaskanaWithDefaultDb()
|
public void testCreateTaskInTaskanaWithDefaultDb()
|
||||||
throws FileNotFoundException, SQLException, TaskNotFoundException, NotAuthorizedException,
|
throws FileNotFoundException, SQLException, TaskNotFoundException, NotAuthorizedException,
|
||||||
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
||||||
TaskAlreadyExistException, InvalidWorkbasketException {
|
TaskAlreadyExistException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
TaskanaEngineConfiguration taskanaEngineConfiguration = new TaskanaEngineConfiguration(null, false, false);
|
TaskanaEngineConfiguration taskanaEngineConfiguration = new TaskanaEngineConfiguration(null, false, false);
|
||||||
TaskanaEngine te = taskanaEngineConfiguration.buildTaskanaEngine();
|
TaskanaEngine te = taskanaEngineConfiguration.buildTaskanaEngine();
|
||||||
((TaskanaEngineImpl) te).setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT);
|
((TaskanaEngineImpl) te).setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT);
|
||||||
|
|
@ -177,6 +182,7 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
task.setName("Unit Test Task");
|
task.setName("Unit Test Task");
|
||||||
task.setWorkbasketKey(wb.getKey());
|
task.setWorkbasketKey(wb.getKey());
|
||||||
task.setClassification(classification);
|
task.setClassification(classification);
|
||||||
|
task.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
task = taskServiceImpl.createTask(task);
|
task = taskServiceImpl.createTask(task);
|
||||||
|
|
||||||
Assert.assertNotNull(task);
|
Assert.assertNotNull(task);
|
||||||
|
|
@ -186,7 +192,7 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
@Test
|
@Test
|
||||||
public void should_ReturnList_when_BuilderIsUsed() throws SQLException, NotAuthorizedException,
|
public void should_ReturnList_when_BuilderIsUsed() throws SQLException, NotAuthorizedException,
|
||||||
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
||||||
TaskAlreadyExistException, InvalidWorkbasketException {
|
TaskAlreadyExistException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
Workbasket wb = workbasketService.newWorkbasket();
|
Workbasket wb = workbasketService.newWorkbasket();
|
||||||
wb.setKey("key");
|
wb.setKey("key");
|
||||||
wb.setName("workbasket");
|
wb.setName("workbasket");
|
||||||
|
|
@ -201,6 +207,7 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
task.setName("Unit Test Task");
|
task.setName("Unit Test Task");
|
||||||
task.setWorkbasketKey(wb.getKey());
|
task.setWorkbasketKey(wb.getKey());
|
||||||
task.setClassification(classification);
|
task.setClassification(classification);
|
||||||
|
task.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
taskServiceImpl.createTask(task);
|
taskServiceImpl.createTask(task);
|
||||||
|
|
||||||
TaskanaEngineImpl taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
TaskanaEngineImpl taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
||||||
|
|
@ -229,7 +236,11 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
.owner("test", "test2", "bla")
|
.owner("test", "test2", "bla")
|
||||||
.customFields("test")
|
.customFields("test")
|
||||||
.classification(classificationQuery)
|
.classification(classificationQuery)
|
||||||
.objectReference(objectReferenceQuery)
|
.primaryObjectReferenceCompanyIn("first comp", "sonstwo gmbh")
|
||||||
|
.primaryObjectReferenceSystemIn("sys")
|
||||||
|
.primaryObjectReferenceTypeIn("type1", "type2")
|
||||||
|
.primaryObjectReferenceSystemInstanceIn("sysInst1", "sysInst2")
|
||||||
|
.primaryObjectReferenceValueIn("val1", "val2", "val3")
|
||||||
.list();
|
.list();
|
||||||
|
|
||||||
Assert.assertEquals(0, results.size());
|
Assert.assertEquals(0, results.size());
|
||||||
|
|
@ -254,6 +265,7 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
dummyTask.setName("Dummy-Task");
|
dummyTask.setName("Dummy-Task");
|
||||||
dummyTask.setClassification(dummyClassification);
|
dummyTask.setClassification(dummyClassification);
|
||||||
dummyTask.setWorkbasketKey(dummyWorkbasket.getKey());
|
dummyTask.setWorkbasketKey(dummyWorkbasket.getKey());
|
||||||
|
dummyTask.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
dummyTask = (TaskImpl) taskServiceImpl.createTask(dummyTask);
|
dummyTask = (TaskImpl) taskServiceImpl.createTask(dummyTask);
|
||||||
|
|
||||||
List<TaskSummary> expectedTaskSumamries = new ArrayList<>();
|
List<TaskSummary> expectedTaskSumamries = new ArrayList<>();
|
||||||
|
|
@ -297,7 +309,7 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
public void shouldTransferTaskToOtherWorkbasket()
|
public void shouldTransferTaskToOtherWorkbasket()
|
||||||
throws WorkbasketNotFoundException, ClassificationNotFoundException, NotAuthorizedException,
|
throws WorkbasketNotFoundException, ClassificationNotFoundException, NotAuthorizedException,
|
||||||
ClassificationAlreadyExistException, TaskNotFoundException, InterruptedException, TaskAlreadyExistException,
|
ClassificationAlreadyExistException, TaskNotFoundException, InterruptedException, TaskAlreadyExistException,
|
||||||
InvalidWorkbasketException {
|
InvalidWorkbasketException, InvalidArgumentException {
|
||||||
Workbasket sourceWB;
|
Workbasket sourceWB;
|
||||||
Workbasket destinationWB;
|
Workbasket destinationWB;
|
||||||
WorkbasketImpl wb;
|
WorkbasketImpl wb;
|
||||||
|
|
@ -343,6 +355,7 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
task.setTransferred(false);
|
task.setTransferred(false);
|
||||||
task.setModified(null);
|
task.setModified(null);
|
||||||
task.setClassification(classification);
|
task.setClassification(classification);
|
||||||
|
task.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
task = (TaskImpl) taskServiceImpl.createTask(task);
|
task = (TaskImpl) taskServiceImpl.createTask(task);
|
||||||
Thread.sleep(sleepTime); // Sleep for modification-timestamp
|
Thread.sleep(sleepTime); // Sleep for modification-timestamp
|
||||||
|
|
||||||
|
|
@ -366,7 +379,7 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
@Test
|
@Test
|
||||||
public void shouldNotTransferByFailingSecurity() throws WorkbasketNotFoundException,
|
public void shouldNotTransferByFailingSecurity() throws WorkbasketNotFoundException,
|
||||||
ClassificationNotFoundException, NotAuthorizedException, ClassificationAlreadyExistException, SQLException,
|
ClassificationNotFoundException, NotAuthorizedException, ClassificationAlreadyExistException, SQLException,
|
||||||
TaskNotFoundException, TaskAlreadyExistException, InvalidWorkbasketException {
|
TaskNotFoundException, TaskAlreadyExistException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
final String user = CurrentUserContext.getUserid();
|
final String user = CurrentUserContext.getUserid();
|
||||||
|
|
||||||
// Set up Security for this Test
|
// Set up Security for this Test
|
||||||
|
|
@ -422,6 +435,7 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
task.setWorkbasketKey(wb.getKey());
|
task.setWorkbasketKey(wb.getKey());
|
||||||
task.setOwner(user);
|
task.setOwner(user);
|
||||||
task.setClassification(classification);
|
task.setClassification(classification);
|
||||||
|
task.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
task = (TaskImpl) taskServiceImpl.createTask(task);
|
task = (TaskImpl) taskServiceImpl.createTask(task);
|
||||||
|
|
||||||
// Check failing with missing APPEND
|
// Check failing with missing APPEND
|
||||||
|
|
@ -453,6 +467,43 @@ public class TaskServiceImplIntAutocommitTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testWithPrimaryObjectRef() throws FileNotFoundException, SQLException, TaskNotFoundException,
|
||||||
|
WorkbasketNotFoundException, NotAuthorizedException, ClassificationNotFoundException,
|
||||||
|
ClassificationAlreadyExistException, TaskAlreadyExistException, InvalidWorkbasketException,
|
||||||
|
InvalidArgumentException {
|
||||||
|
Workbasket wb = workbasketService.newWorkbasket();
|
||||||
|
wb.setKey("workbasket");
|
||||||
|
wb.setName("workbasket");
|
||||||
|
wb.setType(WorkbasketType.GROUP);
|
||||||
|
wb.setDomain("novatec");
|
||||||
|
taskanaEngine.getWorkbasketService().createWorkbasket(wb);
|
||||||
|
Classification classification = classificationService.newClassification();
|
||||||
|
classification.setKey("TEST");
|
||||||
|
taskanaEngine.getClassificationService().createClassification(classification);
|
||||||
|
|
||||||
|
Task task = taskServiceImpl.newTask();
|
||||||
|
task.setName("Unit Test Task");
|
||||||
|
task.setWorkbasketKey(wb.getKey());
|
||||||
|
|
||||||
|
task.setClassification(classification);
|
||||||
|
|
||||||
|
ObjectReference objRef = new ObjectReference();
|
||||||
|
objRef.setCompany("novatec");
|
||||||
|
objRef.setSystem("linux");
|
||||||
|
objRef.setSystemInstance("inst1");
|
||||||
|
objRef.setType("fast");
|
||||||
|
objRef.setValue("4711");
|
||||||
|
task.setPrimaryObjRef(objRef);
|
||||||
|
|
||||||
|
task = taskServiceImpl.createTask(task);
|
||||||
|
|
||||||
|
Task task2 = taskServiceImpl.getTaskById(task.getId());
|
||||||
|
// skanaEngineImpl.getSqlSession().commit(); // needed so that the change is visible in the other session
|
||||||
|
|
||||||
|
Assert.assertNotNull(task2);
|
||||||
|
}
|
||||||
|
|
||||||
private void createWorkbasketWithSecurity(Workbasket wb, String accessId, boolean permOpen,
|
private void createWorkbasketWithSecurity(Workbasket wb, String accessId, boolean permOpen,
|
||||||
boolean permRead, boolean permAppend, boolean permTransfer) {
|
boolean permRead, boolean permAppend, boolean permTransfer) {
|
||||||
WorkbasketAccessItem accessItem = new WorkbasketAccessItem();
|
WorkbasketAccessItem accessItem = new WorkbasketAccessItem();
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ import pro.taskana.WorkbasketService;
|
||||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||||
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
||||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||||
|
import pro.taskana.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.exceptions.InvalidWorkbasketException;
|
import pro.taskana.exceptions.InvalidWorkbasketException;
|
||||||
import pro.taskana.exceptions.NotAuthorizedException;
|
import pro.taskana.exceptions.NotAuthorizedException;
|
||||||
import pro.taskana.exceptions.TaskAlreadyExistException;
|
import pro.taskana.exceptions.TaskAlreadyExistException;
|
||||||
|
|
@ -45,6 +46,7 @@ import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||||
import pro.taskana.impl.ClassificationImpl;
|
import pro.taskana.impl.ClassificationImpl;
|
||||||
import pro.taskana.impl.ClassificationQueryImpl;
|
import pro.taskana.impl.ClassificationQueryImpl;
|
||||||
import pro.taskana.impl.ClassificationServiceImpl;
|
import pro.taskana.impl.ClassificationServiceImpl;
|
||||||
|
import pro.taskana.impl.JunitHelper;
|
||||||
import pro.taskana.impl.ObjectReferenceQueryImpl;
|
import pro.taskana.impl.ObjectReferenceQueryImpl;
|
||||||
import pro.taskana.impl.TaskImpl;
|
import pro.taskana.impl.TaskImpl;
|
||||||
import pro.taskana.impl.TaskServiceImpl;
|
import pro.taskana.impl.TaskServiceImpl;
|
||||||
|
|
@ -110,7 +112,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
public void testStartTransactionFail()
|
public void testStartTransactionFail()
|
||||||
throws FileNotFoundException, SQLException, TaskNotFoundException, NotAuthorizedException,
|
throws FileNotFoundException, SQLException, TaskNotFoundException, NotAuthorizedException,
|
||||||
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
||||||
TaskAlreadyExistException, InvalidWorkbasketException {
|
TaskAlreadyExistException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
Connection connection = dataSource.getConnection();
|
Connection connection = dataSource.getConnection();
|
||||||
taskanaEngineImpl.setConnection(connection);
|
taskanaEngineImpl.setConnection(connection);
|
||||||
|
|
||||||
|
|
@ -131,6 +133,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
task.setName("Unit Test Task");
|
task.setName("Unit Test Task");
|
||||||
task.setWorkbasketKey(workbasket.getKey());
|
task.setWorkbasketKey(workbasket.getKey());
|
||||||
task.setClassification(classification);
|
task.setClassification(classification);
|
||||||
|
task.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
task = taskServiceImpl.createTask(task);
|
task = taskServiceImpl.createTask(task);
|
||||||
connection.commit();
|
connection.commit();
|
||||||
taskServiceImpl.getTaskById(workbasket.getId());
|
taskServiceImpl.getTaskById(workbasket.getId());
|
||||||
|
|
@ -146,7 +149,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
public void testCreateTask()
|
public void testCreateTask()
|
||||||
throws FileNotFoundException, SQLException, TaskNotFoundException, NotAuthorizedException,
|
throws FileNotFoundException, SQLException, TaskNotFoundException, NotAuthorizedException,
|
||||||
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
||||||
TaskAlreadyExistException, InvalidWorkbasketException {
|
TaskAlreadyExistException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
Connection connection = dataSource.getConnection();
|
Connection connection = dataSource.getConnection();
|
||||||
taskanaEngineImpl.setConnection(connection);
|
taskanaEngineImpl.setConnection(connection);
|
||||||
|
|
||||||
|
|
@ -163,6 +166,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
accessItem.setPermOpen(true);
|
accessItem.setPermOpen(true);
|
||||||
workbasketService.createWorkbasketAuthorization(accessItem);
|
workbasketService.createWorkbasketAuthorization(accessItem);
|
||||||
|
|
||||||
|
task.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
task = taskServiceImpl.createTask(task);
|
task = taskServiceImpl.createTask(task);
|
||||||
connection.commit(); // needed so that the change is visible in the other session
|
connection.commit(); // needed so that the change is visible in the other session
|
||||||
|
|
||||||
|
|
@ -177,7 +181,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
public void testCreateTaskInTaskanaWithDefaultDb()
|
public void testCreateTaskInTaskanaWithDefaultDb()
|
||||||
throws FileNotFoundException, SQLException, TaskNotFoundException, NotAuthorizedException,
|
throws FileNotFoundException, SQLException, TaskNotFoundException, NotAuthorizedException,
|
||||||
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
||||||
TaskAlreadyExistException, InvalidWorkbasketException {
|
TaskAlreadyExistException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
DataSource ds = TaskanaEngineConfiguration.createDefaultDataSource();
|
DataSource ds = TaskanaEngineConfiguration.createDefaultDataSource();
|
||||||
TaskanaEngineConfiguration taskanaEngineConfiguration = new TaskanaEngineConfiguration(ds, false, false);
|
TaskanaEngineConfiguration taskanaEngineConfiguration = new TaskanaEngineConfiguration(ds, false, false);
|
||||||
TaskanaEngine te = taskanaEngineConfiguration.buildTaskanaEngine();
|
TaskanaEngine te = taskanaEngineConfiguration.buildTaskanaEngine();
|
||||||
|
|
@ -203,6 +207,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
task.setName("Unit Test Task");
|
task.setName("Unit Test Task");
|
||||||
task.setWorkbasketKey(workbasket.getKey());
|
task.setWorkbasketKey(workbasket.getKey());
|
||||||
task.setClassification(classification);
|
task.setClassification(classification);
|
||||||
|
task.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
task = taskServiceImpl.createTask(task);
|
task = taskServiceImpl.createTask(task);
|
||||||
|
|
||||||
Assert.assertNotNull(task);
|
Assert.assertNotNull(task);
|
||||||
|
|
@ -215,7 +220,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
@Test
|
@Test
|
||||||
public void testCreateTaskWithPlannedAndName() throws SQLException, NotAuthorizedException,
|
public void testCreateTaskWithPlannedAndName() throws SQLException, NotAuthorizedException,
|
||||||
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
||||||
TaskAlreadyExistException, InvalidWorkbasketException {
|
TaskAlreadyExistException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
Connection connection = dataSource.getConnection();
|
Connection connection = dataSource.getConnection();
|
||||||
taskanaEngineImpl.setConnection(connection);
|
taskanaEngineImpl.setConnection(connection);
|
||||||
|
|
||||||
|
|
@ -287,7 +292,8 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
@Test(expected = WorkbasketNotFoundException.class)
|
@Test(expected = WorkbasketNotFoundException.class)
|
||||||
public void createTaskShouldThrowWorkbasketNotFoundException()
|
public void createTaskShouldThrowWorkbasketNotFoundException()
|
||||||
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException, SQLException,
|
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException, SQLException,
|
||||||
ClassificationAlreadyExistException, TaskAlreadyExistException, InvalidWorkbasketException {
|
ClassificationAlreadyExistException, TaskAlreadyExistException, InvalidWorkbasketException,
|
||||||
|
InvalidArgumentException {
|
||||||
Connection connection = dataSource.getConnection();
|
Connection connection = dataSource.getConnection();
|
||||||
taskanaEngineImpl.setConnection(connection);
|
taskanaEngineImpl.setConnection(connection);
|
||||||
|
|
||||||
|
|
@ -302,7 +308,8 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
@Test(expected = ClassificationNotFoundException.class)
|
@Test(expected = ClassificationNotFoundException.class)
|
||||||
public void createManualTaskShouldThrowClassificationNotFoundException()
|
public void createManualTaskShouldThrowClassificationNotFoundException()
|
||||||
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException, SQLException,
|
throws NotAuthorizedException, WorkbasketNotFoundException, ClassificationNotFoundException, SQLException,
|
||||||
ClassificationAlreadyExistException, TaskAlreadyExistException, InvalidWorkbasketException {
|
ClassificationAlreadyExistException, TaskAlreadyExistException, InvalidWorkbasketException,
|
||||||
|
InvalidArgumentException {
|
||||||
Connection connection = dataSource.getConnection();
|
Connection connection = dataSource.getConnection();
|
||||||
taskanaEngineImpl.setConnection(connection);
|
taskanaEngineImpl.setConnection(connection);
|
||||||
|
|
||||||
|
|
@ -331,7 +338,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
@Test
|
@Test
|
||||||
public void should_ReturnList_when_BuilderIsUsed() throws SQLException, NotAuthorizedException,
|
public void should_ReturnList_when_BuilderIsUsed() throws SQLException, NotAuthorizedException,
|
||||||
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
WorkbasketNotFoundException, ClassificationNotFoundException, ClassificationAlreadyExistException,
|
||||||
TaskAlreadyExistException, InvalidWorkbasketException {
|
TaskAlreadyExistException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
Connection connection = dataSource.getConnection();
|
Connection connection = dataSource.getConnection();
|
||||||
taskanaEngineImpl.setConnection(connection);
|
taskanaEngineImpl.setConnection(connection);
|
||||||
|
|
||||||
|
|
@ -352,6 +359,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
task.setName("Unit Test Task");
|
task.setName("Unit Test Task");
|
||||||
task.setWorkbasketKey(workbasket.getKey());
|
task.setWorkbasketKey(workbasket.getKey());
|
||||||
task.setClassification(classification);
|
task.setClassification(classification);
|
||||||
|
task.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
task = taskServiceImpl.createTask(task);
|
task = taskServiceImpl.createTask(task);
|
||||||
|
|
||||||
TaskanaEngineImpl taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
TaskanaEngineImpl taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
||||||
|
|
@ -380,7 +388,11 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
.owner("test", "test2", "bla")
|
.owner("test", "test2", "bla")
|
||||||
.customFields("test")
|
.customFields("test")
|
||||||
.classification(classificationQuery)
|
.classification(classificationQuery)
|
||||||
.objectReference(objectReferenceQuery)
|
.primaryObjectReferenceCompanyIn("first comp", "sonstwo gmbh")
|
||||||
|
.primaryObjectReferenceSystemIn("sys")
|
||||||
|
.primaryObjectReferenceTypeIn("type1", "type2")
|
||||||
|
.primaryObjectReferenceSystemInstanceIn("sysInst1", "sysInst2")
|
||||||
|
.primaryObjectReferenceValueIn("val1", "val2", "val3")
|
||||||
.list();
|
.list();
|
||||||
|
|
||||||
Assert.assertEquals(0, results.size());
|
Assert.assertEquals(0, results.size());
|
||||||
|
|
@ -392,7 +404,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
public void shouldTransferTaskToOtherWorkbasket()
|
public void shouldTransferTaskToOtherWorkbasket()
|
||||||
throws WorkbasketNotFoundException, ClassificationNotFoundException, NotAuthorizedException,
|
throws WorkbasketNotFoundException, ClassificationNotFoundException, NotAuthorizedException,
|
||||||
ClassificationAlreadyExistException, TaskNotFoundException, InterruptedException, TaskAlreadyExistException,
|
ClassificationAlreadyExistException, TaskNotFoundException, InterruptedException, TaskAlreadyExistException,
|
||||||
SQLException, InvalidWorkbasketException {
|
SQLException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
Workbasket sourceWB;
|
Workbasket sourceWB;
|
||||||
Workbasket destinationWB;
|
Workbasket destinationWB;
|
||||||
WorkbasketImpl wb;
|
WorkbasketImpl wb;
|
||||||
|
|
@ -446,6 +458,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
task.setModified(null);
|
task.setModified(null);
|
||||||
task.setClassification(classification);
|
task.setClassification(classification);
|
||||||
task.setOwner(user);
|
task.setOwner(user);
|
||||||
|
task.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
task = (TaskImpl) taskServiceImpl.createTask(task);
|
task = (TaskImpl) taskServiceImpl.createTask(task);
|
||||||
Thread.sleep(sleepTime); // Sleep for modification-timestamp
|
Thread.sleep(sleepTime); // Sleep for modification-timestamp
|
||||||
connection.commit();
|
connection.commit();
|
||||||
|
|
@ -474,7 +487,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
@Test
|
@Test
|
||||||
public void shouldNotTransferByFailingSecurity() throws WorkbasketNotFoundException,
|
public void shouldNotTransferByFailingSecurity() throws WorkbasketNotFoundException,
|
||||||
ClassificationNotFoundException, NotAuthorizedException, ClassificationAlreadyExistException, SQLException,
|
ClassificationNotFoundException, NotAuthorizedException, ClassificationAlreadyExistException, SQLException,
|
||||||
TaskNotFoundException, TaskAlreadyExistException, InvalidWorkbasketException {
|
TaskNotFoundException, TaskAlreadyExistException, InvalidWorkbasketException, InvalidArgumentException {
|
||||||
final String user = "User";
|
final String user = "User";
|
||||||
|
|
||||||
// Set up Security for this Test
|
// Set up Security for this Test
|
||||||
|
|
@ -530,6 +543,7 @@ public class TaskServiceImplIntExplicitTest {
|
||||||
task.setWorkbasketKey(wb.getKey());
|
task.setWorkbasketKey(wb.getKey());
|
||||||
task.setOwner(user);
|
task.setOwner(user);
|
||||||
task.setClassification(classification);
|
task.setClassification(classification);
|
||||||
|
task.setPrimaryObjRef(JunitHelper.createDefaultObjRef());
|
||||||
task = (TaskImpl) taskServiceImpl.createTask(task);
|
task = (TaskImpl) taskServiceImpl.createTask(task);
|
||||||
|
|
||||||
// Check failing with missing APPEND
|
// Check failing with missing APPEND
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,19 @@
|
||||||
INSERT INTO TASK VALUES('1', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, 'Task1', 'Lorem ipsum dolor sit amet.', 1, 'READY', '1', 'key1', 'BPI1', 'PBPI1', 'Stefan', '1', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('1', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, 'Task1', 'Lorem ipsum dolor sit amet.', 1, 'READY', '1', 'key1', 'BPI1', 'PBPI1', 'Stefan', 'Company1', 'System1', 'Instance1', 'Type1', 'Value1', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('2', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task2', 'Lorem ipsum dolor sit amet. ', 1, 'READY', '2', 'key1', 'BPI2', 'PBPI2', 'Frank', '2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('2', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task2', 'Lorem ipsum dolor sit amet. ', 1, 'READY', '2', 'key1', 'BPI2', 'PBPI2', 'Frank', 'Company2', 'System2', 'Instance2', 'Type2', 'Value2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('3', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task3', 'Lorem ipsum dolor sit amet. ', 1, 'CLAIMED', '3', 'key1', 'BPI3', 'PBPI3', 'Stefan', '3', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('3', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task3', 'Lorem ipsum dolor sit amet. ', 1, 'CLAIMED', '3', 'key1', 'BPI3', 'PBPI3', 'Stefan', 'Company3', 'System3', 'Instance3', 'Type3', 'Value3', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('4', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task4', 'Lorem ipsum dolor sit amet.', 1, 'CLAIMED', '4', 'key1', 'BPI4', 'PBPI4', 'Frank', '1', false, true, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('4', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task4', 'Lorem ipsum dolor sit amet.', 1, 'CLAIMED', '4', 'key1', 'BPI4', 'PBPI4', 'Frank', 'Company1', 'System1', 'Instance1', 'Type1', 'Value1', false, true, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('5', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task5', 'Lorem ipsum dolor sit amet. ', 1, 'COMPLETED', '15', 'key1', 'BPI5', 'PBPI5', 'Stefan', '2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('5', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task5', 'Lorem ipsum dolor sit amet. ', 1, 'COMPLETED', '15', 'key1', 'BPI5', 'PBPI5', 'Stefan', 'Company2', 'System2', 'Instance2', 'Type2', 'Value2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('6', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task6', 'Lorem ipsum dolor sit amet.', 1, 'COMPLETED', '16', 'key1', 'BPI6', 'PBPI6', 'Frank', '3', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('6', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task6', 'Lorem ipsum dolor sit amet.', 1, 'COMPLETED', '16', 'key1', 'BPI6', 'PBPI6', 'Frank', 'Company3', 'System3', 'Instance3', 'Type3', 'Value3', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
|
|
||||||
INSERT INTO TASK VALUES('7', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task7', 'Lorem ipsum dolor sit amet.', 1, 'READY', '13', 'key2', 'BPI7', 'PBPI7', 'Stefan', '1', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('7', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task7', 'Lorem ipsum dolor sit amet.', 1, 'READY', '13', 'key2', 'BPI7', 'PBPI7', 'Stefan', 'Company1', 'System1', 'Instance1', 'Type1', 'Value1' , false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('8', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task8', 'Lorem ipsum dolor sit amet. ', 1, 'READY', '14', 'key2', 'BPI8', 'PBPI8', 'Frank', '2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('8', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task8', 'Lorem ipsum dolor sit amet. ', 1, 'READY', '14', 'key2', 'BPI8', 'PBPI8', 'Frank', 'Company2', 'System2', 'Instance2', 'Type2', 'Value2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('9', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task9', 'Lorem ipsum dolor sit amet. ', 1, 'CLAIMED', '1', 'key2', 'BPI9', 'PBPI9', 'Stefan', '3', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('9', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task9', 'Lorem ipsum dolor sit amet. ', 1, 'CLAIMED', '1', 'key2', 'BPI9', 'PBPI9', 'Stefan', 'Company3', 'System3', 'Instance3', 'Type3', 'Value3', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('10', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task10', 'Lorem ipsum dolor sit amet.', 1, 'CLAIMED', '2', 'key2', 'BPI10', 'PBPI10', 'Frank', '1', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('10', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task10', 'Lorem ipsum dolor sit amet.', 1, 'CLAIMED', '2', 'key2', 'BPI10', 'PBPI10', 'Frank', 'Company1', 'System1', 'Instance1', 'Type1', 'Value1', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('11', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task11', 'Lorem ipsum dolor sit amet. ', 1, 'COMPLETED', '3', 'key2', 'BPI11', 'PBPI11', 'Stefan', '2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('11', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task11', 'Lorem ipsum dolor sit amet. ', 1, 'COMPLETED', '3', 'key2', 'BPI11', 'PBPI11', 'Stefan', 'Company2', 'System2', 'Instance2', 'Type2', 'Value2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('12', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task12', 'Lorem ipsum dolor sit amet.', 1, 'COMPLETED', '4', 'key2', 'BPI12', 'PBPI12', 'Frank', '3', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('12', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task12', 'Lorem ipsum dolor sit amet.', 1, 'COMPLETED', '4', 'key2', 'BPI12', 'PBPI12', 'Frank', 'Company3', 'System3', 'Instance3', 'Type3', 'Value3', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
|
|
||||||
|
|
||||||
INSERT INTO TASK VALUES('13', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task12', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus massa turpis, pellentesque ut libero sit aet, malesuada suscipit dolor. Sed volutpat euismod felis sit amet molestie. Fusce ornare purus dui. ', 1, 'READY', '13', 'key2', 'BPI13', 'PBPI13', 'Frank', '1', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('13', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task12', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus massa turpis, pellentesque ut libero sit aet, malesuada suscipit dolor. Sed volutpat euismod felis sit amet molestie. Fusce ornare purus dui. ', 1, 'READY', '13', 'key2', 'BPI13', 'PBPI13', 'Frank', 'Company1', 'System1', 'Instance1', 'Type1', 'Value1', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('14', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task6', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sagittis vulputate nibh ut malesuada. Etiam ac dictum tellus, nec cursus nunc. Curabitur velit eros, feugiat volutpat laoreet vitae, cursus eu dui. Nulla ut purus sem. Vivamus aliquet odio vitae erat cursus, vitae mattis urna mollis. Nam quam tellus, auctor id volutpat congue, viverra vitae ante. Duis nisi dolor, elementum et mattis at, maximus id velit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis eu condimentum risus. Praesent libero velit, facilisis sit amet maximus non, scelerisque ullamcorper leo. Ut sit amet iaculis eros. Mauris sagittis nibh lacus, at facilisis magna suscipit at. Aliquam finibus tempor odio id commodo. Vivamus aliquam, justo id porta imperdiet, mi.', 1, 'READY', '14', 'key1', 'BPI14', 'PBPI14', 'Frank', '2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('14', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task6', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sagittis vulputate nibh ut malesuada. Etiam ac dictum tellus, nec cursus nunc. Curabitur velit eros, feugiat volutpat laoreet vitae, cursus eu dui. Nulla ut purus sem. Vivamus aliquet odio vitae erat cursus, vitae mattis urna mollis. Nam quam tellus, auctor id volutpat congue, viverra vitae ante. Duis nisi dolor, elementum et mattis at, maximus id velit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis eu condimentum risus. Praesent libero velit, facilisis sit amet maximus non, scelerisque ullamcorper leo. Ut sit amet iaculis eros. Mauris sagittis nibh lacus, at facilisis magna suscipit at. Aliquam finibus tempor odio id commodo. Vivamus aliquam, justo id porta imperdiet, mi.', 1, 'READY', '14', 'key1', 'BPI14', 'PBPI14', 'Frank', 'Company2', 'System2', 'Instance2', 'Type2', 'Value2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
|
|
||||||
|
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000000', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, 'Task99', 'Lorem ipsum was n Quatsch dolor sit amet.', 1, 'READY', '11', 'key17', 'BPI21', 'PBPI21', 'Konrad', 'MyCompany1', 'MySystem1', 'MyInstance1', 'MyType1', 'MyValue1', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||||
|
import pro.taskana.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.exceptions.InvalidOwnerException;
|
import pro.taskana.exceptions.InvalidOwnerException;
|
||||||
import pro.taskana.exceptions.InvalidStateException;
|
import pro.taskana.exceptions.InvalidStateException;
|
||||||
import pro.taskana.exceptions.InvalidWorkbasketException;
|
import pro.taskana.exceptions.InvalidWorkbasketException;
|
||||||
|
|
@ -14,6 +15,7 @@ import pro.taskana.exceptions.NotAuthorizedException;
|
||||||
import pro.taskana.exceptions.TaskAlreadyExistException;
|
import pro.taskana.exceptions.TaskAlreadyExistException;
|
||||||
import pro.taskana.exceptions.TaskNotFoundException;
|
import pro.taskana.exceptions.TaskNotFoundException;
|
||||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||||
|
import pro.taskana.model.ObjectReference;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|
@ -25,11 +27,18 @@ public class ExampleBootstrap {
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void test() throws TaskNotFoundException, NotAuthorizedException, WorkbasketNotFoundException,
|
public void test() throws TaskNotFoundException, NotAuthorizedException, WorkbasketNotFoundException,
|
||||||
ClassificationNotFoundException, InvalidStateException, InvalidOwnerException, InvalidWorkbasketException,
|
ClassificationNotFoundException, InvalidStateException, InvalidOwnerException, InvalidWorkbasketException,
|
||||||
TaskAlreadyExistException {
|
TaskAlreadyExistException, InvalidArgumentException {
|
||||||
System.out.println("---------------------------> Start App");
|
System.out.println("---------------------------> Start App");
|
||||||
Task task = taskService.newTask();
|
Task task = taskService.newTask();
|
||||||
task.setName("Spring example task");
|
task.setName("Spring example task");
|
||||||
task.setWorkbasketKey("1");
|
task.setWorkbasketKey("1");
|
||||||
|
ObjectReference objRef = new ObjectReference();
|
||||||
|
objRef.setCompany("aCompany");
|
||||||
|
objRef.setSystem("aSystem");
|
||||||
|
objRef.setSystemInstance("anInstance");
|
||||||
|
objRef.setType("aType");
|
||||||
|
objRef.setValue("aValue");
|
||||||
|
task.setPrimaryObjRef(objRef);
|
||||||
task = taskService.createTask(task);
|
task = taskService.createTask(task);
|
||||||
System.out.println("---------------------------> Task started: " + task.getId());
|
System.out.println("---------------------------> Task started: " + task.getId());
|
||||||
taskService.claim(task.getId());
|
taskService.claim(task.getId());
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,12 @@ import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||||
|
import pro.taskana.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.exceptions.InvalidWorkbasketException;
|
import pro.taskana.exceptions.InvalidWorkbasketException;
|
||||||
import pro.taskana.exceptions.NotAuthorizedException;
|
import pro.taskana.exceptions.NotAuthorizedException;
|
||||||
import pro.taskana.exceptions.TaskAlreadyExistException;
|
import pro.taskana.exceptions.TaskAlreadyExistException;
|
||||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||||
|
import pro.taskana.model.ObjectReference;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|
@ -22,13 +24,21 @@ public class TaskanaComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void triggerRollback() throws NotAuthorizedException, WorkbasketNotFoundException,
|
public void triggerRollback() throws NotAuthorizedException, WorkbasketNotFoundException,
|
||||||
ClassificationNotFoundException, InvalidWorkbasketException, TaskAlreadyExistException {
|
ClassificationNotFoundException, InvalidWorkbasketException, TaskAlreadyExistException,
|
||||||
|
InvalidArgumentException {
|
||||||
Task task = taskService.newTask();
|
Task task = taskService.newTask();
|
||||||
task.setName("Unit Test Task");
|
task.setName("Unit Test Task");
|
||||||
task.setWorkbasketKey("1");
|
task.setWorkbasketKey("1");
|
||||||
|
ObjectReference objRef = new ObjectReference();
|
||||||
|
objRef.setCompany("aCompany");
|
||||||
|
objRef.setSystem("aSystem");
|
||||||
|
objRef.setSystemInstance("anInstance");
|
||||||
|
objRef.setType("aType");
|
||||||
|
objRef.setValue("aValue");
|
||||||
|
task.setPrimaryObjRef(objRef);
|
||||||
|
|
||||||
task = taskService.createTask(task);
|
task = taskService.createTask(task);
|
||||||
throw new RuntimeException();
|
throw new RuntimeException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ import org.springframework.util.MultiValueMap;
|
||||||
|
|
||||||
import pro.taskana.ClassificationQuery;
|
import pro.taskana.ClassificationQuery;
|
||||||
import pro.taskana.ClassificationService;
|
import pro.taskana.ClassificationService;
|
||||||
import pro.taskana.ObjectReferenceQuery;
|
|
||||||
import pro.taskana.Task;
|
import pro.taskana.Task;
|
||||||
import pro.taskana.TaskQuery;
|
import pro.taskana.TaskQuery;
|
||||||
import pro.taskana.TaskService;
|
import pro.taskana.TaskService;
|
||||||
|
|
@ -125,29 +124,26 @@ public class TaskFilter {
|
||||||
}
|
}
|
||||||
// objectReference
|
// objectReference
|
||||||
if (params.keySet().stream().filter(s -> s.startsWith(POR)).toArray().length > 0) {
|
if (params.keySet().stream().filter(s -> s.startsWith(POR)).toArray().length > 0) {
|
||||||
ObjectReferenceQuery objectReferenceQuery = taskQuery.createObjectReferenceQuery();
|
|
||||||
if (params.containsKey(POR_COMPANY)) {
|
if (params.containsKey(POR_COMPANY)) {
|
||||||
String[] companies = extractCommaSeperatedFields(params.get(POR_COMPANY));
|
String[] companies = extractCommaSeperatedFields(params.get(POR_COMPANY));
|
||||||
objectReferenceQuery.company(companies);
|
taskQuery.primaryObjectReferenceCompanyIn(companies);
|
||||||
}
|
}
|
||||||
if (params.containsKey(POR_SYSTEM)) {
|
if (params.containsKey(POR_SYSTEM)) {
|
||||||
String[] systems = extractCommaSeperatedFields(params.get(POR_SYSTEM));
|
String[] systems = extractCommaSeperatedFields(params.get(POR_SYSTEM));
|
||||||
objectReferenceQuery.system(systems);
|
taskQuery.primaryObjectReferenceSystemIn(systems);
|
||||||
}
|
}
|
||||||
if (params.containsKey(POR_SYSTEM_INSTANCE)) {
|
if (params.containsKey(POR_SYSTEM_INSTANCE)) {
|
||||||
String[] systemInstances = extractCommaSeperatedFields(params.get(POR_SYSTEM_INSTANCE));
|
String[] systemInstances = extractCommaSeperatedFields(params.get(POR_SYSTEM_INSTANCE));
|
||||||
objectReferenceQuery.systemInstance(systemInstances);
|
taskQuery.primaryObjectReferenceSystemInstanceIn(systemInstances);
|
||||||
}
|
}
|
||||||
if (params.containsKey(POR_TYPE)) {
|
if (params.containsKey(POR_TYPE)) {
|
||||||
String[] types = extractCommaSeperatedFields(params.get(POR_TYPE));
|
String[] types = extractCommaSeperatedFields(params.get(POR_TYPE));
|
||||||
objectReferenceQuery.type(types);
|
taskQuery.primaryObjectReferenceTypeIn(types);
|
||||||
}
|
}
|
||||||
if (params.containsKey(POR_VALUE)) {
|
if (params.containsKey(POR_VALUE)) {
|
||||||
String[] values = extractCommaSeperatedFields(params.get(POR_VALUE));
|
String[] values = extractCommaSeperatedFields(params.get(POR_VALUE));
|
||||||
objectReferenceQuery.value(values);
|
taskQuery.primaryObjectReferenceValueIn(values);
|
||||||
}
|
}
|
||||||
|
|
||||||
taskQuery.objectReference(objectReferenceQuery);
|
|
||||||
}
|
}
|
||||||
if (params.containsKey(IS_READ)) {
|
if (params.containsKey(IS_READ)) {
|
||||||
taskQuery.read(Boolean.getBoolean(params.get(IS_READ).get(0)));
|
taskQuery.read(Boolean.getBoolean(params.get(IS_READ).get(0)));
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,19 @@
|
||||||
INSERT INTO TASK VALUES('1', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, 'Task1', 'Lorem ipsum dolor sit amet.', 1, 'READY', '1', 'key1', 'BPI1', 'PBPI1', 'Stefan', '1', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('1', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, 'Task1', 'Lorem ipsum dolor sit amet.', 1, 'READY', '1', 'key1', 'BPI1', 'PBPI1', 'Stefan', 'Company1', 'System1', 'Instance1', 'Type1', 'Value1', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('2', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task2', 'Lorem ipsum dolor sit amet. ', 1, 'READY', '2', 'key1', 'BPI2', 'PBPI2', 'Frank', '2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('2', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task2', 'Lorem ipsum dolor sit amet. ', 1, 'READY', '2', 'key1', 'BPI2', 'PBPI2', 'Frank', 'Company2', 'System2', 'Instance2', 'Type2', 'Value2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('3', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task3', 'Lorem ipsum dolor sit amet. ', 1, 'CLAIMED', '3', 'key1', 'BPI3', 'PBPI3', 'Stefan', '3', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('3', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task3', 'Lorem ipsum dolor sit amet. ', 1, 'CLAIMED', '3', 'key1', 'BPI3', 'PBPI3', 'Stefan', 'Company3', 'System3', 'Instance3', 'Type3', 'Value3', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('4', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task4', 'Lorem ipsum dolor sit amet.', 1, 'CLAIMED', '4', 'key1', 'BPI4', 'PBPI4', 'Frank', '1', false, true, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('4', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task4', 'Lorem ipsum dolor sit amet.', 1, 'CLAIMED', '4', 'key1', 'BPI4', 'PBPI4', 'Frank', 'Company1', 'System1', 'Instance1', 'Type1', 'Value1', false, true, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('5', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task5', 'Lorem ipsum dolor sit amet. ', 1, 'COMPLETED', '15', 'key1', 'BPI5', 'PBPI5', 'Stefan', '2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('5', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task5', 'Lorem ipsum dolor sit amet. ', 1, 'COMPLETED', '15', 'key1', 'BPI5', 'PBPI5', 'Stefan', 'Company2', 'System2', 'Instance2', 'Type2', 'Value2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('6', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task6', 'Lorem ipsum dolor sit amet.', 1, 'COMPLETED', '16', 'key1', 'BPI6', 'PBPI6', 'Frank', '3', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('6', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task6', 'Lorem ipsum dolor sit amet.', 1, 'COMPLETED', '16', 'key1', 'BPI6', 'PBPI6', 'Frank', 'Company3', 'System3', 'Instance3', 'Type3', 'Value3', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
|
|
||||||
INSERT INTO TASK VALUES('7', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task7', 'Lorem ipsum dolor sit amet.', 1, 'READY', '13', 'key2', 'BPI7', 'PBPI7', 'Stefan', '1', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('7', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task7', 'Lorem ipsum dolor sit amet.', 1, 'READY', '13', 'key2', 'BPI7', 'PBPI7', 'Stefan', 'Company1', 'System1', 'Instance1', 'Type1', 'Value1' , false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('8', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task8', 'Lorem ipsum dolor sit amet. ', 1, 'READY', '14', 'key2', 'BPI8', 'PBPI8', 'Frank', '2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('8', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task8', 'Lorem ipsum dolor sit amet. ', 1, 'READY', '14', 'key2', 'BPI8', 'PBPI8', 'Frank', 'Company2', 'System2', 'Instance2', 'Type2', 'Value2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('9', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task9', 'Lorem ipsum dolor sit amet. ', 1, 'CLAIMED', '1', 'key2', 'BPI9', 'PBPI9', 'Stefan', '3', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('9', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task9', 'Lorem ipsum dolor sit amet. ', 1, 'CLAIMED', '1', 'key2', 'BPI9', 'PBPI9', 'Stefan', 'Company3', 'System3', 'Instance3', 'Type3', 'Value3', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('10', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task10', 'Lorem ipsum dolor sit amet.', 1, 'CLAIMED', '2', 'key2', 'BPI10', 'PBPI10', 'Frank', '1', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('10', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task10', 'Lorem ipsum dolor sit amet.', 1, 'CLAIMED', '2', 'key2', 'BPI10', 'PBPI10', 'Frank', 'Company1', 'System1', 'Instance1', 'Type1', 'Value1', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('11', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task11', 'Lorem ipsum dolor sit amet. ', 1, 'COMPLETED', '3', 'key2', 'BPI11', 'PBPI11', 'Stefan', '2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('11', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task11', 'Lorem ipsum dolor sit amet. ', 1, 'COMPLETED', '3', 'key2', 'BPI11', 'PBPI11', 'Stefan', 'Company2', 'System2', 'Instance2', 'Type2', 'Value2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('12', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task12', 'Lorem ipsum dolor sit amet.', 1, 'COMPLETED', '4', 'key2', 'BPI12', 'PBPI12', 'Frank', '3', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('12', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task12', 'Lorem ipsum dolor sit amet.', 1, 'COMPLETED', '4', 'key2', 'BPI12', 'PBPI12', 'Frank', 'Company3', 'System3', 'Instance3', 'Type3', 'Value3', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
|
|
||||||
|
|
||||||
INSERT INTO TASK VALUES('13', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task12', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus massa turpis, pellentesque ut libero sit aet, malesuada suscipit dolor. Sed volutpat euismod felis sit amet molestie. Fusce ornare purus dui. ', 1, 'READY', '13', 'key2', 'BPI13', 'PBPI13', 'Frank', '1', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('13', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task12', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus massa turpis, pellentesque ut libero sit aet, malesuada suscipit dolor. Sed volutpat euismod felis sit amet molestie. Fusce ornare purus dui. ', 1, 'READY', '13', 'key2', 'BPI13', 'PBPI13', 'Frank', 'Company1', 'System1', 'Instance1', 'Type1', 'Value1', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
INSERT INTO TASK VALUES('14', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task6', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sagittis vulputate nibh ut malesuada. Etiam ac dictum tellus, nec cursus nunc. Curabitur velit eros, feugiat volutpat laoreet vitae, cursus eu dui. Nulla ut purus sem. Vivamus aliquet odio vitae erat cursus, vitae mattis urna mollis. Nam quam tellus, auctor id volutpat congue, viverra vitae ante. Duis nisi dolor, elementum et mattis at, maximus id velit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis eu condimentum risus. Praesent libero velit, facilisis sit amet maximus non, scelerisque ullamcorper leo. Ut sit amet iaculis eros. Mauris sagittis nibh lacus, at facilisis magna suscipit at. Aliquam finibus tempor odio id commodo. Vivamus aliquam, justo id porta imperdiet, mi.', 1, 'READY', '14', 'key1', 'BPI14', 'PBPI14', 'Frank', '2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
INSERT INTO TASK VALUES('14', CURRENT_TIMESTAMP, null, null, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, 'Task6', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sagittis vulputate nibh ut malesuada. Etiam ac dictum tellus, nec cursus nunc. Curabitur velit eros, feugiat volutpat laoreet vitae, cursus eu dui. Nulla ut purus sem. Vivamus aliquet odio vitae erat cursus, vitae mattis urna mollis. Nam quam tellus, auctor id volutpat congue, viverra vitae ante. Duis nisi dolor, elementum et mattis at, maximus id velit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis eu condimentum risus. Praesent libero velit, facilisis sit amet maximus non, scelerisque ullamcorper leo. Ut sit amet iaculis eros. Mauris sagittis nibh lacus, at facilisis magna suscipit at. Aliquam finibus tempor odio id commodo. Vivamus aliquam, justo id porta imperdiet, mi.', 1, 'READY', '14', 'key1', 'BPI14', 'PBPI14', 'Frank', 'Company2', 'System2', 'Instance2', 'Type2', 'Value2', false, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
|
|
||||||
|
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000000', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, null, 'Task99', 'Lorem ipsum was n Quatsch dolor sit amet.', 1, 'READY', '11', 'key17', 'BPI21', 'PBPI21', 'Konrad', 'MyCompany1', 'MySystem1', 'MyInstance1', 'MyType1', 'MyValue1', true, false, null, null, null, null, null, null, null, null, null, null, null);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue