diff --git a/lib/taskana-cdi/src/test/java/pro/taskana/TaskanaProducersTest.java b/lib/taskana-cdi/src/test/java/pro/taskana/TaskanaProducersTest.java index 8d9573d13..887f90d87 100644 --- a/lib/taskana-cdi/src/test/java/pro/taskana/TaskanaProducersTest.java +++ b/lib/taskana-cdi/src/test/java/pro/taskana/TaskanaProducersTest.java @@ -64,8 +64,7 @@ public class TaskanaProducersTest { resultCount++; } } - - Assert.assertEquals(1, resultCount); + Assert.assertEquals(0, resultCount); } @Test diff --git a/lib/taskana-core/pom.xml b/lib/taskana-core/pom.xml index 21dca424c..a371b72f0 100644 --- a/lib/taskana-core/pom.xml +++ b/lib/taskana-core/pom.xml @@ -121,7 +121,7 @@ org.mybatis mybatis - 3.4.4 + 3.4.5 org.slf4j diff --git a/lib/taskana-core/src/main/java/pro/taskana/Attachment.java b/lib/taskana-core/src/main/java/pro/taskana/Attachment.java index 3c5aa9b53..f60d3d096 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/Attachment.java +++ b/lib/taskana-core/src/main/java/pro/taskana/Attachment.java @@ -1,6 +1,6 @@ package pro.taskana; -import java.sql.Timestamp; +import java.time.Instant; import java.util.Map; import pro.taskana.model.ObjectReference; @@ -27,16 +27,16 @@ public interface Attachment { /** * Returns the time when the attachment was created. * - * @return the created time as {@link Timestamp} + * @return the created time as {@link Instant} */ - Timestamp getCreated(); + Instant getCreated(); /** * Returns the time when the attachment was last modified. * - * @return modified {@link Timestamp} of the attachment + * @return modified {@link Instant} of the attachment */ - Timestamp getModified(); + Instant getModified(); /** * Returns the classification summary of the attachment. @@ -86,17 +86,17 @@ public interface Attachment { /** * Returns the time when this attachment was received. * - * @return received time as exact {@link Timestamp} + * @return received time as exact {@link Instant} */ - Timestamp getReceived(); + Instant getReceived(); /** * Sets the time when the attachment was received. * * @param received - * the time as {@link Timestamp} when the attachment was received + * the time as {@link Instant} when the attachment was received **/ - void setReceived(Timestamp received); + void setReceived(Instant received); /** * Returns the custom attributes of this attachment. diff --git a/lib/taskana-core/src/main/java/pro/taskana/AttachmentSummary.java b/lib/taskana-core/src/main/java/pro/taskana/AttachmentSummary.java index f72f110ff..0de9393bf 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/AttachmentSummary.java +++ b/lib/taskana-core/src/main/java/pro/taskana/AttachmentSummary.java @@ -1,6 +1,6 @@ package pro.taskana; -import java.sql.Timestamp; +import java.time.Instant; /** * Interface for AttachmentSummaries. This is a specific short model-object which only contains the most important @@ -25,16 +25,16 @@ public interface AttachmentSummary { /** * Gets the time when the attachment was created. * - * @return the created timestamp + * @return the created Instant */ - Timestamp getCreated(); + Instant getCreated(); /** * Gets the time when the attachment was last modified. * - * @return the last modified timestamp + * @return the last modified Instant */ - Timestamp getModified(); + Instant getModified(); /** * Gets the classificationSummary of the attachment. @@ -46,8 +46,7 @@ public interface AttachmentSummary { /** * Gets the time when the attachment was received. * - * @return received timestamp + * @return received Instant */ - Timestamp getReceived(); - + Instant getReceived(); } diff --git a/lib/taskana-core/src/main/java/pro/taskana/Classification.java b/lib/taskana-core/src/main/java/pro/taskana/Classification.java index a138484d0..5bf9fef3f 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/Classification.java +++ b/lib/taskana-core/src/main/java/pro/taskana/Classification.java @@ -1,6 +1,6 @@ package pro.taskana; -import java.sql.Date; +import java.time.Instant; /** * Interface used to specify the Classification-Model. @@ -79,9 +79,9 @@ public interface Classification { /** * Get the Date when this classification was as created. * - * @return created as date + * @return created as instant */ - Date getCreated(); + Instant getCreated(); /** * Get the classification name. @@ -279,25 +279,10 @@ public interface Classification { */ void setCustom8(String custom8); - /** - * Get the sql-date since/when the classification is valid from. - * - * @return validFrom - */ - Date getValidFrom(); - - /** - * Get the sql-date until the classification is valid. - * - * @return validUntil - */ - Date getValidUntil(); - /** * Return a summary of the current Classification. * * @return the ClassificationSummary object for the current classification */ ClassificationSummary asSummary(); - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/ClassificationQuery.java b/lib/taskana-core/src/main/java/pro/taskana/ClassificationQuery.java index f86a0f6bc..7138c2241 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/ClassificationQuery.java +++ b/lib/taskana-core/src/main/java/pro/taskana/ClassificationQuery.java @@ -1,6 +1,6 @@ package pro.taskana; -import java.util.Date; +import java.time.Instant; /** * ClassificationQuery for generating dynamic sql. @@ -65,10 +65,10 @@ public interface ClassificationQuery extends BaseQuery { * Add your created-Dates to your query. * * @param created - * date of classification creation. + * date (as instant) of classification creation. * @return the query */ - ClassificationQuery created(Date... created); + ClassificationQuery created(Instant... created); /** * Add your name to your query. @@ -124,22 +124,4 @@ public interface ClassificationQuery extends BaseQuery { * @return the query */ ClassificationQuery customFields(String... customFields); - - /** - * Define after which date the classifications should be valid. - * - * @param validFrom - * date when the classification was valid from - * @return the query - */ - ClassificationQuery validFrom(Date... validFrom); - - /** - * Define until which date the classifications should be valid. - * - * @param validUntil - * date until the classification will be or was valid - * @return the query - */ - ClassificationQuery validUntil(Date... validUntil); } diff --git a/lib/taskana-core/src/main/java/pro/taskana/ClassificationSummary.java b/lib/taskana-core/src/main/java/pro/taskana/ClassificationSummary.java index 2b6b299ba..7f84046a5 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/ClassificationSummary.java +++ b/lib/taskana-core/src/main/java/pro/taskana/ClassificationSummary.java @@ -1,7 +1,5 @@ package pro.taskana; -import java.sql.Timestamp; - /** * Interface for ClassificationSummaries. This is a specific short model-object which only requieres the most important * informations. Specific ones can be load afterwards via ID. @@ -49,11 +47,4 @@ public interface ClassificationSummary { * @return classificationName */ String getName(); - - /** - * Gets the timestamp until the classification is/was valid. - * - * @return validUntil as timestamp - */ - Timestamp getValidUntil(); } diff --git a/lib/taskana-core/src/main/java/pro/taskana/Task.java b/lib/taskana-core/src/main/java/pro/taskana/Task.java index 8bad5fe96..e1f558386 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/Task.java +++ b/lib/taskana-core/src/main/java/pro/taskana/Task.java @@ -1,6 +1,6 @@ package pro.taskana; -import java.sql.Timestamp; +import java.time.Instant; import java.util.List; import java.util.Map; @@ -22,52 +22,52 @@ public interface Task { /** * Returns the time when the task was {@link TaskState#READY}. * - * @return created as exact {@link Timestamp} + * @return created as exact {@link Instant} */ - Timestamp getCreated(); + Instant getCreated(); /** * Returns the time when the task was set to {@link TaskState#CLAIMED} by/to a user. * - * @return claimed as exact {@link Timestamp} + * @return claimed as exact {@link Instant} */ - Timestamp getClaimed(); + Instant getClaimed(); /** * Returns the time when the task was set into {@link TaskState#COMPLETED}. * - * @return completed as exact {@link Timestamp} + * @return completed as exact {@link Instant} */ - Timestamp getCompleted(); + Instant getCompleted(); /** * Returns the time when the task was modified the last time. * - * @return modified as exact {@link Timestamp} + * @return modified as exact {@link Instant} */ - Timestamp getModified(); + Instant getModified(); /** * Returns the time when the work on this task was planned to be started. * - * @return planned as exact {@link Timestamp} + * @return planned as exact {@link Instant} */ - Timestamp getPlanned(); + Instant getPlanned(); /** * Sets the time when the work on this task should be started. * * @param planned - * as exact {@link Timestamp} + * as exact {@link Instant} */ - void setPlanned(Timestamp planned); + void setPlanned(Instant planned); /** * Returns the time when this task should be finished. * - * @return due as exact {@link Timestamp} + * @return due as exact {@link Instant} */ - Timestamp getDue(); + Instant getDue(); /** * Return the name of the current task. diff --git a/lib/taskana-core/src/main/java/pro/taskana/TaskMonitorService.java b/lib/taskana-core/src/main/java/pro/taskana/TaskMonitorService.java index 5332713f2..466108ee6 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/TaskMonitorService.java +++ b/lib/taskana-core/src/main/java/pro/taskana/TaskMonitorService.java @@ -60,5 +60,4 @@ public interface TaskMonitorService { * @return a {@link Report} object */ Report getWorkbasketLevelReport(List workbaskets, List states); - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/TaskQuery.java b/lib/taskana-core/src/main/java/pro/taskana/TaskQuery.java index 51cbe32fb..7b64d30eb 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/TaskQuery.java +++ b/lib/taskana-core/src/main/java/pro/taskana/TaskQuery.java @@ -221,5 +221,4 @@ public interface TaskQuery extends BaseQuery { * @return a {@link ObjectReferenceQuery} */ ObjectReferenceQuery createObjectReferenceQuery(); - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/TaskSummary.java b/lib/taskana-core/src/main/java/pro/taskana/TaskSummary.java index 76b6e8cd7..6cb824635 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/TaskSummary.java +++ b/lib/taskana-core/src/main/java/pro/taskana/TaskSummary.java @@ -1,6 +1,6 @@ package pro.taskana; -import java.sql.Timestamp; +import java.time.Instant; import pro.taskana.model.ObjectReference; import pro.taskana.model.TaskState; @@ -20,44 +20,44 @@ public interface TaskSummary { /** * Gets the time when the task was created. * - * @return the created timestamp + * @return the created Instant */ - Timestamp getCreated(); + Instant getCreated(); /** * Gets the time when the task was claimed. * - * @return the claimed timestamp + * @return the claimed Instant */ - Timestamp getClaimed(); + Instant getClaimed(); /** * Gets the time when the task was completed. * - * @return the completed timestamp + * @return the completed Instant */ - Timestamp getCompleted(); + Instant getCompleted(); /** * Gets the time when the task was last modified. * - * @return the last modified timestamp + * @return the last modified Instant */ - Timestamp getModified(); + Instant getModified(); /** * Gets the time when the task is planned to be executed. * - * @return the planned timestamp + * @return the planned Instant */ - Timestamp getPlanned(); + Instant getPlanned(); /** * Gets the time when the task is due. * - * @return the due timestamp + * @return the due Instant */ - Timestamp getDue(); + Instant getDue(); /** * Gets the name of the task. @@ -219,5 +219,4 @@ public interface TaskSummary { * @return the task's custom10 property */ String getCustom10(); - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/TaskanaEngine.java b/lib/taskana-core/src/main/java/pro/taskana/TaskanaEngine.java index 607b1795b..0cc3c57bb 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/TaskanaEngine.java +++ b/lib/taskana-core/src/main/java/pro/taskana/TaskanaEngine.java @@ -80,5 +80,4 @@ public interface TaskanaEngine { AUTOCOMMIT, EXPLICIT } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/Workbasket.java b/lib/taskana-core/src/main/java/pro/taskana/Workbasket.java index 3914722f3..4aaf39e10 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/Workbasket.java +++ b/lib/taskana-core/src/main/java/pro/taskana/Workbasket.java @@ -1,6 +1,6 @@ package pro.taskana; -import java.sql.Timestamp; +import java.time.Instant; import java.util.List; import pro.taskana.model.WorkbasketType; @@ -18,11 +18,11 @@ public interface Workbasket { String getId(); /** - * Returns the timestamp when the workbasket was created. + * Returns the date when the workbasket was created. * - * @return created timestamp + * @return created as Instant */ - Timestamp getCreated(); + Instant getCreated(); /** * Returns the key of the workbasket. @@ -70,19 +70,19 @@ public interface Workbasket { void setType(WorkbasketType type); /** - * Returns the timestamp when the workbasket was modified the last time. + * Returns the date when the workbasket was modified the last time. * - * @return modified timestamp + * @return modified as Instant */ - Timestamp getModified(); + Instant getModified(); /** * Sets the time when the workbasket was modified the last time. * * @param modified - * the timestamp when the workbasket was last modified + * as Instant */ - void setModified(Timestamp modified); + void setModified(Instant modified); /** * Returns the name of the workbasket. diff --git a/lib/taskana-core/src/main/java/pro/taskana/WorkbasketQuery.java b/lib/taskana-core/src/main/java/pro/taskana/WorkbasketQuery.java index 5088f66ba..f7fad13b3 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/WorkbasketQuery.java +++ b/lib/taskana-core/src/main/java/pro/taskana/WorkbasketQuery.java @@ -1,6 +1,6 @@ package pro.taskana; -import java.util.Date; +import java.time.Instant; import pro.taskana.exceptions.InvalidArgumentException; import pro.taskana.model.WorkbasketAuthorization; @@ -51,37 +51,37 @@ public interface WorkbasketQuery extends BaseQuery { * Add your createdAfter-Date to your query. * * @param createdAfter - * the date after which the searched Workbaskets are created + * as Instant * @return the query */ - WorkbasketQuery createdAfter(Date createdAfter); + WorkbasketQuery createdAfter(Instant createdAfter); /** * Add your createdBefore-Date to your query. * * @param createdBefore - * the date before which the searched Workbaskets are created + * as Instant * @return the query */ - WorkbasketQuery createdBefore(Date createdBefore); + WorkbasketQuery createdBefore(Instant createdBefore); /** * Add your modifiedAfter-Date to your query. * * @param modifiedAfter - * the date after which the searched Workbaskets are modified + * as Instant * @return the query */ - WorkbasketQuery modifiedAfter(Date modifiedAfter); + WorkbasketQuery modifiedAfter(Instant modifiedAfter); /** * Add your modifiedBefore-Date to your query. * * @param modifiedBefore - * the date before which the searched Workbaskets are modified + * as Instant * @return the query */ - WorkbasketQuery modifiedBefore(Date modifiedBefore); + WorkbasketQuery modifiedBefore(Instant modifiedBefore); /** * Add your description to your query. It will be compared in SQL with an LIKE. If you use a wildcard like % tehn it diff --git a/lib/taskana-core/src/main/java/pro/taskana/configuration/DbSchemaCreator.java b/lib/taskana-core/src/main/java/pro/taskana/configuration/DbSchemaCreator.java index a4854e898..8f64a515c 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/configuration/DbSchemaCreator.java +++ b/lib/taskana-core/src/main/java/pro/taskana/configuration/DbSchemaCreator.java @@ -18,13 +18,10 @@ import org.slf4j.LoggerFactory; public class DbSchemaCreator { private static final Logger LOGGER = LoggerFactory.getLogger(DbSchemaCreator.class); - private static final String SQL = "/sql"; private static final String DB_SCHEMA = SQL + "/taskana-schema.sql"; private static final String DB_SCHEMA_DETECTION = SQL + "/schema-detection.sql"; - private DataSource dataSource; - private StringWriter outWriter = new StringWriter(); private PrintWriter logWriter = new PrintWriter(outWriter); private StringWriter errorWriter = new StringWriter(); @@ -37,7 +34,9 @@ public class DbSchemaCreator { /** * Run all db scripts. - * @throws SQLException TODO + * + * @throws SQLException + * TODO */ public void run() throws SQLException { Connection connection = dataSource.getConnection(); diff --git a/lib/taskana-core/src/main/java/pro/taskana/configuration/TaskanaEngineConfiguration.java b/lib/taskana-core/src/main/java/pro/taskana/configuration/TaskanaEngineConfiguration.java index b7e229b78..3c4e8ff66 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/configuration/TaskanaEngineConfiguration.java +++ b/lib/taskana-core/src/main/java/pro/taskana/configuration/TaskanaEngineConfiguration.java @@ -22,7 +22,6 @@ public class TaskanaEngineConfiguration { private static final String USER_PASSWORD = "sa"; private static final String JDBC_H2_MEM_TASKANA = "jdbc:h2:mem:taskana"; private static final String H2_DRIVER = "org.h2.Driver"; - protected DataSource dataSource; protected DbSchemaCreator dbScriptRunner; @@ -107,5 +106,4 @@ public class TaskanaEngineConfiguration { public static boolean shouldUseLowerCaseForAccessIds() { return true; } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/exceptions/ConcurrencyException.java b/lib/taskana-core/src/main/java/pro/taskana/exceptions/ConcurrencyException.java index 1fe5fe0e0..bdf14d731 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/exceptions/ConcurrencyException.java +++ b/lib/taskana-core/src/main/java/pro/taskana/exceptions/ConcurrencyException.java @@ -12,5 +12,4 @@ public class ConcurrencyException extends TaskanaException { } private static final long serialVersionUID = 1L; - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/exceptions/InvalidWorkbasketException.java b/lib/taskana-core/src/main/java/pro/taskana/exceptions/InvalidWorkbasketException.java index 112afadf0..a0555150c 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/exceptions/InvalidWorkbasketException.java +++ b/lib/taskana-core/src/main/java/pro/taskana/exceptions/InvalidWorkbasketException.java @@ -13,5 +13,4 @@ public class InvalidWorkbasketException extends TaskanaException { } private static final long serialVersionUID = 1L; - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/exceptions/SystemException.java b/lib/taskana-core/src/main/java/pro/taskana/exceptions/SystemException.java index c11540b1b..bb003cb0f 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/exceptions/SystemException.java +++ b/lib/taskana-core/src/main/java/pro/taskana/exceptions/SystemException.java @@ -10,5 +10,4 @@ public class SystemException extends TaskanaRuntimeException { } private static final long serialVersionUID = 1L; - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/exceptions/TaskanaException.java b/lib/taskana-core/src/main/java/pro/taskana/exceptions/TaskanaException.java index 34fcb4a96..53287a993 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/exceptions/TaskanaException.java +++ b/lib/taskana-core/src/main/java/pro/taskana/exceptions/TaskanaException.java @@ -28,5 +28,4 @@ public class TaskanaException extends Exception { public TaskanaException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/exceptions/TaskanaRuntimeException.java b/lib/taskana-core/src/main/java/pro/taskana/exceptions/TaskanaRuntimeException.java index 07e765bdc..24b096eb8 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/exceptions/TaskanaRuntimeException.java +++ b/lib/taskana-core/src/main/java/pro/taskana/exceptions/TaskanaRuntimeException.java @@ -29,5 +29,4 @@ public class TaskanaRuntimeException extends RuntimeException { boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java index 329482bef..2ed950d32 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java @@ -1,6 +1,6 @@ package pro.taskana.impl; -import java.sql.Timestamp; +import java.time.Instant; import java.util.Collections; import java.util.Map; @@ -18,13 +18,13 @@ public class AttachmentImpl implements Attachment { private String id; private String taskId; - private Timestamp created; - private Timestamp modified; + private Instant created; + private Instant modified; private String classificationKey; private ClassificationSummary classificationSummary; private ObjectReference objectReference; private String channel; - private Timestamp received; + private Instant received; private Map customAttributes = Collections.emptyMap(); AttachmentImpl() { @@ -49,20 +49,20 @@ public class AttachmentImpl implements Attachment { } @Override - public Timestamp getCreated() { + public Instant getCreated() { return created; } - public void setCreated(Timestamp created) { + public void setCreated(Instant created) { this.created = created; } @Override - public Timestamp getModified() { + public Instant getModified() { return modified; } - public void setModified(Timestamp modified) { + public void setModified(Instant modified) { this.modified = modified; } @@ -107,12 +107,12 @@ public class AttachmentImpl implements Attachment { } @Override - public Timestamp getReceived() { + public Instant getReceived() { return received; } @Override - public void setReceived(Timestamp received) { + public void setReceived(Instant received) { this.received = received; } @@ -146,7 +146,7 @@ public class AttachmentImpl implements Attachment { builder.append(", taskId="); builder.append(taskId); builder.append(", created="); - builder.append(created); + builder.append(created.toString()); builder.append(", modified="); builder.append(modified); builder.append(", classificationKey="); @@ -164,5 +164,4 @@ public class AttachmentImpl implements Attachment { builder.append("]"); return builder.toString(); } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentSummaryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentSummaryImpl.java index 9aa8e9b2b..8202c6845 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentSummaryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentSummaryImpl.java @@ -1,6 +1,6 @@ package pro.taskana.impl; -import java.sql.Timestamp; +import java.time.Instant; import pro.taskana.AttachmentSummary; import pro.taskana.ClassificationSummary; @@ -12,10 +12,10 @@ public class AttachmentSummaryImpl implements AttachmentSummary { private String id; private String taskId; - private Timestamp created; - private Timestamp modified; + private Instant created; + private Instant modified; private ClassificationSummary classificationSummary; - private Timestamp received; + private Instant received; /* * (non-Javadoc) @@ -48,11 +48,11 @@ public class AttachmentSummaryImpl implements AttachmentSummary { * @see pro.taskana.impl.AttachmentSummary#getCreated() */ @Override - public Timestamp getCreated() { + public Instant getCreated() { return created; } - public void setCreated(Timestamp created) { + public void setCreated(Instant created) { this.created = created; } @@ -61,11 +61,11 @@ public class AttachmentSummaryImpl implements AttachmentSummary { * @see pro.taskana.impl.AttachmentSummary#getModified() */ @Override - public Timestamp getModified() { + public Instant getModified() { return modified; } - public void setModified(Timestamp modified) { + public void setModified(Instant modified) { this.modified = modified; } @@ -97,11 +97,11 @@ public class AttachmentSummaryImpl implements AttachmentSummary { * @see pro.taskana.impl.AttachmentSummary#getReceived() */ @Override - public Timestamp getReceived() { + public Instant getReceived() { return received; } - public void setReceived(Timestamp received) { + public void setReceived(Instant received) { this.received = received; } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationImpl.java index 8abde3b9b..71829f893 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationImpl.java @@ -1,8 +1,7 @@ package pro.taskana.impl; -import java.sql.Date; -import java.sql.Timestamp; import java.time.Duration; +import java.time.Instant; import pro.taskana.Classification; import pro.taskana.ClassificationSummary; @@ -19,7 +18,7 @@ public class ClassificationImpl implements Classification { private String type; private String domain; private Boolean isValidInDomain; - private Date created; + private Instant created; private String name; private String description; private int priority; @@ -33,8 +32,6 @@ public class ClassificationImpl implements Classification { private String custom6; private String custom7; private String custom8; - private Date validFrom; - private Date validUntil; ClassificationImpl() { } @@ -106,11 +103,11 @@ public class ClassificationImpl implements Classification { } @Override - public Date getCreated() { + public Instant getCreated() { return created; } - public void setCreated(Date created) { + public void setCreated(Instant created) { this.created = created; } @@ -249,24 +246,6 @@ public class ClassificationImpl implements Classification { this.custom8 = custom8; } - @Override - public Date getValidFrom() { - return validFrom; - } - - public void setValidFrom(Date validFrom) { - this.validFrom = validFrom; - } - - @Override - public Date getValidUntil() { - return validUntil; - } - - public void setValidUntil(Date validUntil) { - this.validUntil = validUntil; - } - @Override public ClassificationSummary asSummary() { ClassificationSummaryImpl summary = new ClassificationSummaryImpl(); @@ -276,9 +255,6 @@ public class ClassificationImpl implements Classification { summary.setKey(this.key); summary.setName(this.name); summary.setType(this.type); - if (this.validUntil != null) { - summary.setValidUntil(new Timestamp(this.validUntil.getTime())); - } return summary; } @@ -300,7 +276,7 @@ public class ClassificationImpl implements Classification { builder.append(", isValidInDomain="); builder.append(isValidInDomain); builder.append(", created="); - builder.append(created); + builder.append(created.toString()); builder.append(", name="); builder.append(name); builder.append(", description="); @@ -327,10 +303,6 @@ public class ClassificationImpl implements Classification { builder.append(custom7); builder.append(", custom8="); builder.append(custom8); - builder.append(", validFrom="); - builder.append(validFrom); - builder.append(", validUntil="); - builder.append(validUntil); builder.append("]"); return builder.toString(); } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationQueryImpl.java index b7f6dc93e..767375b57 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationQueryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationQueryImpl.java @@ -1,7 +1,7 @@ package pro.taskana.impl; +import java.time.Instant; import java.util.Arrays; -import java.util.Date; import java.util.List; import org.apache.ibatis.session.RowBounds; @@ -29,15 +29,12 @@ public class ClassificationQueryImpl implements ClassificationQuery { private String[] type; private String[] domain; private Boolean validInDomain; - private Date[] created; + private Instant[] created; private String[] name; private String description; private int[] priority; private String[] serviceLevel; private String[] customFields; - private Date[] validFrom; - private Date[] validUntil; - private String[] applicationEntryPoint; public ClassificationQueryImpl(TaskanaEngine taskanaEngine) { @@ -81,7 +78,7 @@ public class ClassificationQueryImpl implements ClassificationQuery { } @Override - public ClassificationQuery created(Date... created) { + public ClassificationQuery created(Instant... created) { this.created = created; return this; } @@ -122,18 +119,6 @@ public class ClassificationQueryImpl implements ClassificationQuery { return this; } - @Override - public ClassificationQuery validFrom(Date... validFrom) { - this.validFrom = validFrom; - return this; - } - - @Override - public ClassificationQuery validUntil(Date... validUntil) { - this.validUntil = validUntil; - return this; - } - @Override public List list() { LOGGER.debug("entry to list(), this = {}", this); @@ -265,11 +250,11 @@ public class ClassificationQueryImpl implements ClassificationQuery { this.validInDomain = validInDomain; } - public Date[] getCreated() { + public Instant[] getCreated() { return created; } - public void setCreated(Date[] created) { + public void setCreated(Instant[] created) { this.created = created; } @@ -289,22 +274,6 @@ public class ClassificationQueryImpl implements ClassificationQuery { this.customFields = customFields; } - public Date[] getValidFrom() { - return validFrom; - } - - public void setValidFrom(Date[] validFrom) { - this.validFrom = validFrom; - } - - public Date[] getValidUntil() { - return validUntil; - } - - public void setValidUntil(Date[] validUntil) { - this.validUntil = validUntil; - } - @Override public String toString() { StringBuilder builder = new StringBuilder(); @@ -332,10 +301,6 @@ public class ClassificationQueryImpl implements ClassificationQuery { builder.append(Arrays.toString(serviceLevel)); builder.append(", customFields="); builder.append(Arrays.toString(customFields)); - builder.append(", validFrom="); - builder.append(Arrays.toString(validFrom)); - builder.append(", validUntil="); - builder.append(Arrays.toString(validUntil)); builder.append("]"); return builder.toString(); } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationServiceImpl.java index ccec1894e..74057ce3d 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationServiceImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationServiceImpl.java @@ -1,8 +1,7 @@ package pro.taskana.impl; -import java.sql.Date; import java.time.Duration; -import java.time.LocalDate; +import java.time.Instant; import java.util.ArrayList; import java.util.List; @@ -27,7 +26,6 @@ import pro.taskana.model.mappings.ClassificationMapper; */ public class ClassificationServiceImpl implements ClassificationService { - public static final Date CURRENT_CLASSIFICATIONS_VALID_UNTIL = Date.valueOf("9999-12-31"); private static final String ID_PREFIX_CLASSIFICATION = "CLI"; private static final Logger LOGGER = LoggerFactory.getLogger(ClassificationServiceImpl.class); private ClassificationMapper classificationMapper; @@ -47,7 +45,6 @@ public class ClassificationServiceImpl implements ClassificationService { taskanaEngineImpl.openConnection(); rootClassificationSumamries = this.createClassificationQuery() .parentClassificationKey("") - .validUntil(CURRENT_CLASSIFICATIONS_VALID_UNTIL) .list(); rootClassificationSumamries = this.populateChildClassifications(rootClassificationSumamries); return rootClassificationSumamries; @@ -75,7 +72,6 @@ public class ClassificationServiceImpl implements ClassificationService { for (ClassificationSummary classification : classificationSumamries) { List childClassifications = this.createClassificationQuery() .parentClassificationKey(classification.getKey()) - .validUntil(CURRENT_CLASSIFICATIONS_VALID_UNTIL) .list(); children.addAll(populateChildClassifications(childClassifications)); } @@ -154,24 +150,21 @@ public class ClassificationServiceImpl implements ClassificationService { classificationImpl = (ClassificationImpl) classification; this.initDefaultClassificationValues(classificationImpl); - ClassificationImpl oldClassification = null; + // UPDATE/INSERT classification try { - oldClassification = (ClassificationImpl) this.getClassification(classificationImpl.getKey(), - classificationImpl.getDomain()); - LOGGER.debug("Method updateClassification() inserted classification {}.", classificationImpl); - // ! If you update an classification twice the same day, - // the older version is valid from today until yesterday. - if (!oldClassification.getDomain().equals(classificationImpl.getDomain())) { - addClassificationToDomain(classificationImpl); - } else { - updateExistingClassification(oldClassification, classificationImpl); - } + this.getClassification(classificationImpl.getKey(), classificationImpl.getDomain()); + classificationMapper.update(classificationImpl); + LOGGER.debug("Method updateClassification() updated the classification {}.", + classificationImpl); } catch (ClassificationNotFoundException e) { - classificationImpl.setId(IdGenerator.generateWithPrefix(ID_PREFIX_CLASSIFICATION)); // TODO - classificationImpl.setCreated(Date.valueOf(LocalDate.now())); + classificationImpl.setCreated(Instant.now()); classificationMapper.insert(classificationImpl); - LOGGER.debug("Method updateClassification() inserted classification {}.", classificationImpl); + LOGGER.debug( + "Method updateClassification() inserted a unpersisted classification which was wanted to be updated {}.", + classificationImpl); } + + // CHECK if classification does exist now try { Classification updatedClassification = this.getClassification(classificationImpl.getKey(), classificationImpl.getDomain()); @@ -194,13 +187,12 @@ public class ClassificationServiceImpl implements ClassificationService { * @param classification */ private void initDefaultClassificationValues(ClassificationImpl classification) throws IllegalStateException { - classification.setId(IdGenerator.generateWithPrefix(ID_PREFIX_CLASSIFICATION)); - - classification.setValidFrom(Date.valueOf(LocalDate.now())); - classification.setValidUntil(CURRENT_CLASSIFICATIONS_VALID_UNTIL); + if (classification.getId() == null) { + classification.setId(IdGenerator.generateWithPrefix(ID_PREFIX_CLASSIFICATION)); + } if (classification.getCreated() == null) { - classification.setCreated(Date.valueOf(LocalDate.now())); + classification.setCreated(Instant.now()); } if (classification.getIsValidInDomain() == null) { @@ -228,33 +220,6 @@ public class ClassificationServiceImpl implements ClassificationService { } } - /** - * Add a new Classification if this Classification Key is not yet specified for this domain. - * - * @param classification - */ - private void addClassificationToDomain(ClassificationImpl classification) { - classification.setCreated(Date.valueOf(LocalDate.now())); - classificationMapper.insert(classification); - LOGGER.debug("Method updateClassification() inserted classification {}.", classification); - } - - /** - * Set the validUntil-Date of the oldClassification to yesterday and inserts the new Classification. - * - * @param oldClassification - * @param newClassification - */ - private Classification updateExistingClassification(ClassificationImpl oldClassification, - ClassificationImpl newClassification) { - oldClassification.setValidUntil(Date.valueOf(LocalDate.now().minusDays(1))); - classificationMapper.update(oldClassification); - classificationMapper.insert(newClassification); - LOGGER.debug("Method updateClassification() updated old classification {} and inserted new {}.", - oldClassification, newClassification); - return newClassification; - } - @Override public List getAllClassifications(String key, String domain) { LOGGER.debug("entry to getAllClassificationsWithKey(key = {}, domain = {})", key, domain); @@ -285,9 +250,9 @@ public class ClassificationServiceImpl implements ClassificationService { Classification result = null; try { taskanaEngineImpl.openConnection(); - result = classificationMapper.findByKeyAndDomain(key, domain, CURRENT_CLASSIFICATIONS_VALID_UNTIL); + result = classificationMapper.findByKeyAndDomain(key, domain); if (result == null) { - result = classificationMapper.findByKeyAndDomain(key, "", CURRENT_CLASSIFICATIONS_VALID_UNTIL); + result = classificationMapper.findByKeyAndDomain(key, ""); if (result == null) { throw new ClassificationNotFoundException("Classification for key " + key + " was not found"); } @@ -316,7 +281,7 @@ public class ClassificationServiceImpl implements ClassificationService { private boolean doesClassificationExist(String key, String domain) { boolean isExisting = false; try { - if (classificationMapper.findByKeyAndDomain(key, domain, CURRENT_CLASSIFICATIONS_VALID_UNTIL) != null) { + if (classificationMapper.findByKeyAndDomain(key, domain) != null) { isExisting = true; } } catch (Exception ex) { @@ -326,5 +291,4 @@ public class ClassificationServiceImpl implements ClassificationService { } return isExisting; } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationSummaryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationSummaryImpl.java index 44769a0c6..11df556e7 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationSummaryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationSummaryImpl.java @@ -1,7 +1,5 @@ package pro.taskana.impl; -import java.sql.Timestamp; - import pro.taskana.ClassificationSummary; /** @@ -15,7 +13,6 @@ public class ClassificationSummaryImpl implements ClassificationSummary { private String type; private String domain; private String name; - private Timestamp validUntil; @Override public String getId() { @@ -71,15 +68,6 @@ public class ClassificationSummaryImpl implements ClassificationSummary { this.name = name; } - @Override - public Timestamp getValidUntil() { - return validUntil; - } - - public void setValidUntil(Timestamp validUntil) { - this.validUntil = validUntil; - } - @Override public int hashCode() { final int prime = 31; @@ -90,7 +78,6 @@ public class ClassificationSummaryImpl implements ClassificationSummary { result = prime * result + ((key == null) ? 0 : key.hashCode()); result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((type == null) ? 0 : type.hashCode()); - result = prime * result + ((validUntil == null) ? 0 : validUntil.hashCode()); return result; } @@ -148,13 +135,6 @@ public class ClassificationSummaryImpl implements ClassificationSummary { } else if (!type.equals(other.type)) { return false; } - if (validUntil == null) { - if (other.validUntil != null) { - return false; - } - } else if (!validUntil.equals(other.validUntil)) { - return false; - } return true; } @@ -173,8 +153,6 @@ public class ClassificationSummaryImpl implements ClassificationSummary { builder.append(domain); builder.append(", name="); builder.append(name); - builder.append(", validUntil="); - builder.append(validUntil); builder.append("]"); return builder.toString(); } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java index a1bc7e32a..3d80de6ce 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java @@ -1,6 +1,6 @@ package pro.taskana.impl; -import java.sql.Timestamp; +import java.time.Instant; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -21,12 +21,12 @@ import pro.taskana.model.TaskState; public class TaskImpl implements Task { private String id; - private Timestamp created; - private Timestamp claimed; - private Timestamp completed; - private Timestamp modified; - private Timestamp planned; - private Timestamp due; + private Instant created; + private Instant claimed; + private Instant completed; + private Instant modified; + private Instant planned; + private Instant due; private String name; private String description; private String note; @@ -70,57 +70,57 @@ public class TaskImpl implements Task { } @Override - public Timestamp getCreated() { + public Instant getCreated() { return created; } - public void setCreated(Timestamp created) { + public void setCreated(Instant created) { this.created = created; } @Override - public Timestamp getClaimed() { + public Instant getClaimed() { return claimed; } - public void setClaimed(Timestamp claimed) { + public void setClaimed(Instant claimed) { this.claimed = claimed; } @Override - public Timestamp getCompleted() { + public Instant getCompleted() { return completed; } - public void setCompleted(Timestamp completed) { + public void setCompleted(Instant completed) { this.completed = completed; } @Override - public Timestamp getModified() { + public Instant getModified() { return modified; } - public void setModified(Timestamp modified) { + public void setModified(Instant modified) { this.modified = modified; } @Override - public Timestamp getPlanned() { + public Instant getPlanned() { return planned; } @Override - public void setPlanned(Timestamp planned) { + public void setPlanned(Instant planned) { this.planned = planned; } @Override - public Timestamp getDue() { + public Instant getDue() { return due; } - public void setDue(Timestamp due) { + public void setDue(Instant due) { this.due = due; } @@ -449,17 +449,17 @@ public class TaskImpl implements Task { builder.append("TaskImpl [id="); builder.append(id); builder.append(", created="); - builder.append(created); + builder.append(created.toString()); builder.append(", claimed="); - builder.append(claimed); + builder.append(claimed.toString()); builder.append(", completed="); - builder.append(completed); + builder.append(completed.toString()); builder.append(", modified="); - builder.append(modified); + builder.append(modified.toString()); builder.append(", planned="); - builder.append(planned); + builder.append(planned.toString()); builder.append(", due="); - builder.append(due); + builder.append(due.toString()); builder.append(", name="); builder.append(name); builder.append(", description="); @@ -519,5 +519,4 @@ public class TaskImpl implements Task { builder.append("]"); return builder.toString(); } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskMonitorServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskMonitorServiceImpl.java index 59868252d..fec8ed485 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskMonitorServiceImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskMonitorServiceImpl.java @@ -1,7 +1,7 @@ package pro.taskana.impl; -import java.sql.Date; -import java.time.LocalDate; +import java.time.Duration; +import java.time.Instant; import java.util.List; import org.slf4j.Logger; @@ -64,9 +64,7 @@ public class TaskMonitorServiceImpl implements TaskMonitorService { long result = -1; try { taskanaEngineImpl.openConnection(); - LocalDate time = LocalDate.now(); - time = time.minusDays(daysInPast); - Date fromDate = Date.valueOf(time); + Instant fromDate = Instant.now().minus(Duration.ofDays(daysInPast)); result = taskMonitorMapper.getTaskCountForWorkbasketByDaysInPastAndState(workbasketId, fromDate, states); return result; } finally { @@ -85,9 +83,7 @@ public class TaskMonitorServiceImpl implements TaskMonitorService { List result = null; try { taskanaEngineImpl.openConnection(); - LocalDate time = LocalDate.now(); - time = time.minusDays(daysInPast); - Date fromDate = Date.valueOf(time); + Instant fromDate = Instant.now().minus(Duration.ofDays(daysInPast)); result = taskMonitorMapper.getTaskCountByWorkbasketIdAndDaysInPastAndState(fromDate, states); return result; } finally { @@ -127,5 +123,4 @@ public class TaskMonitorServiceImpl implements TaskMonitorService { } } } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java index f931e532d..e28fa0ca9 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java @@ -367,6 +367,8 @@ public class TaskQueryImpl implements TaskQuery { builder.append(Arrays.toString(name)); builder.append(", description="); builder.append(description); + builder.append(", note="); + builder.append(note); builder.append(", priority="); builder.append(Arrays.toString(priority)); builder.append(", states="); @@ -406,5 +408,4 @@ public class TaskQueryImpl implements TaskQuery { builder.append("]"); return builder.toString(); } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskServiceImpl.java index 6e58f13a4..72ff1b4f9 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskServiceImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskServiceImpl.java @@ -1,8 +1,7 @@ package pro.taskana.impl; -import java.sql.Timestamp; import java.time.Duration; -import java.time.LocalDateTime; +import java.time.Instant; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -98,7 +97,7 @@ public class TaskServiceImpl implements TaskService { taskId, task.getOwner()); throw new InvalidOwnerException("Task is already claimed by user " + task.getOwner()); } - Timestamp now = new Timestamp(System.currentTimeMillis()); + Instant now = Instant.now(); task.setOwner(userId); task.setModified(now); task.setClaimed(now); @@ -148,7 +147,7 @@ public class TaskServiceImpl implements TaskService { task = (TaskImpl) this.claim(taskId, true); } } - Timestamp now = new Timestamp(System.currentTimeMillis()); + Instant now = Instant.now(); task.setCompleted(now); task.setModified(now); task.setState(TaskState.COMPLETED); @@ -258,7 +257,7 @@ public class TaskServiceImpl implements TaskService { task.setWorkbasketKey(destinationWorkbasketKey); task.setWorkbasketSummary(destinationWorkbasket.asSummary()); task.setDomain(destinationWorkbasket.getDomain()); - task.setModified(Timestamp.valueOf(LocalDateTime.now())); + task.setModified(Instant.now()); taskMapper.update(task); result = getTask(taskId); @@ -280,7 +279,7 @@ public class TaskServiceImpl implements TaskService { taskanaEngineImpl.openConnection(); TaskImpl task = (TaskImpl) getTask(taskId); task.setRead(true); - task.setModified(Timestamp.valueOf(LocalDateTime.now())); + task.setModified(Instant.now()); taskMapper.update(task); result = getTask(taskId); LOGGER.debug("Method setTaskRead() set read property of Task '{}' to {} ", result, isRead); @@ -345,7 +344,7 @@ public class TaskServiceImpl implements TaskService { } private void standardSettings(TaskImpl task, Classification classification) { - Timestamp now = new Timestamp(System.currentTimeMillis()); + Instant now = Instant.now(); task.setId(IdGenerator.generateWithPrefix(ID_PREFIX_TASK)); task.setState(TaskState.READY); task.setCreated(now); @@ -367,8 +366,8 @@ public class TaskServiceImpl implements TaskService { if (classification != null) { if (classification.getServiceLevel() != null) { Duration serviceLevel = Duration.parse(classification.getServiceLevel()); - LocalDateTime due = task.getPlanned().toLocalDateTime().plus(serviceLevel); - task.setDue(Timestamp.valueOf(due)); + Instant due = task.getPlanned().plus(serviceLevel); + task.setDue(due); } if (task.getName() == null) { @@ -733,8 +732,8 @@ public class TaskServiceImpl implements TaskService { if (newClassification != null) { if (newClassification.getServiceLevel() != null) { Duration serviceLevel = Duration.parse(newClassification.getServiceLevel()); - LocalDateTime due = newTaskImpl.getPlanned().toLocalDateTime().plus(serviceLevel); - newTaskImpl.setDue(Timestamp.valueOf(due)); + Instant due = newTaskImpl.getPlanned().plus(serviceLevel); + newTaskImpl.setDue(due); } if (newTaskImpl.getName() == null) { @@ -749,9 +748,7 @@ public class TaskServiceImpl implements TaskService { newTaskImpl.setPriority(newClassification.getPriority()); } } - - Timestamp now = new Timestamp(System.currentTimeMillis()); - newTaskImpl.setModified(now); + newTaskImpl.setModified(Instant.now()); } AttachmentMapper getAttachmentMapper() { diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskSummaryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskSummaryImpl.java index f61362c45..bb6d0b869 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskSummaryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskSummaryImpl.java @@ -1,6 +1,6 @@ package pro.taskana.impl; -import java.sql.Timestamp; +import java.time.Instant; import java.util.ArrayList; import java.util.List; @@ -17,12 +17,12 @@ import pro.taskana.model.TaskState; public class TaskSummaryImpl implements TaskSummary { private String taskId; - private Timestamp created; - private Timestamp claimed; - private Timestamp completed; - private Timestamp modified; - private Timestamp planned; - private Timestamp due; + private Instant created; + private Instant claimed; + private Instant completed; + private Instant modified; + private Instant planned; + private Instant due; private String name; private String note; private int priority; @@ -67,11 +67,11 @@ public class TaskSummaryImpl implements TaskSummary { * @see pro.taskana.impl.TaskSummary#getCreated() */ @Override - public Timestamp getCreated() { + public Instant getCreated() { return created; } - public void setCreated(Timestamp created) { + public void setCreated(Instant created) { this.created = created; } @@ -80,11 +80,11 @@ public class TaskSummaryImpl implements TaskSummary { * @see pro.taskana.impl.TaskSummary#getClaimed() */ @Override - public Timestamp getClaimed() { + public Instant getClaimed() { return claimed; } - public void setClaimed(Timestamp claimed) { + public void setClaimed(Instant claimed) { this.claimed = claimed; } @@ -93,11 +93,11 @@ public class TaskSummaryImpl implements TaskSummary { * @see pro.taskana.impl.TaskSummary#getCompleted() */ @Override - public Timestamp getCompleted() { + public Instant getCompleted() { return completed; } - public void setCompleted(Timestamp completed) { + public void setCompleted(Instant completed) { this.completed = completed; } @@ -106,11 +106,11 @@ public class TaskSummaryImpl implements TaskSummary { * @see pro.taskana.impl.TaskSummary#getModified() */ @Override - public Timestamp getModified() { + public Instant getModified() { return modified; } - public void setModified(Timestamp modified) { + public void setModified(Instant modified) { this.modified = modified; } @@ -119,11 +119,11 @@ public class TaskSummaryImpl implements TaskSummary { * @see pro.taskana.impl.TaskSummary#getPlanned() */ @Override - public Timestamp getPlanned() { + public Instant getPlanned() { return planned; } - public void setPlanned(Timestamp planned) { + public void setPlanned(Instant planned) { this.planned = planned; } @@ -132,11 +132,11 @@ public class TaskSummaryImpl implements TaskSummary { * @see pro.taskana.impl.TaskSummary#getDue() */ @Override - public Timestamp getDue() { + public Instant getDue() { return due; } - public void setDue(Timestamp due) { + public void setDue(Instant due) { this.due = due; } @@ -796,5 +796,4 @@ public class TaskSummaryImpl implements TaskSummary { builder.append("]"); return builder.toString(); } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskanaEngineImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskanaEngineImpl.java index 3f6387299..01d43d753 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskanaEngineImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskanaEngineImpl.java @@ -39,21 +39,13 @@ import pro.taskana.model.mappings.WorkbasketMapper; public class TaskanaEngineImpl implements TaskanaEngine { private static final String DEFAULT = "default"; - private static final Logger LOGGER = LoggerFactory.getLogger(TaskanaEngineImpl.class); - protected static ThreadLocal> sessionStack = new ThreadLocal>(); - protected TaskanaEngineConfiguration taskanaEngineConfiguration; - protected TransactionFactory transactionFactory; - protected SqlSessionManager sessionManager; - protected SqlSessionFactory sessionFactory; - protected ConnectionManagementMode mode = ConnectionManagementMode.PARTICIPATE; - protected java.sql.Connection connection = null; public TaskanaEngineImpl(TaskanaEngineConfiguration taskanaEngineConfiguration) { diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketImpl.java index b1b3668ea..19a0996ba 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketImpl.java @@ -1,6 +1,6 @@ package pro.taskana.impl; -import java.sql.Timestamp; +import java.time.Instant; import java.util.ArrayList; import java.util.List; @@ -15,8 +15,8 @@ public class WorkbasketImpl implements Workbasket { private String id; private String key; - private Timestamp created; - private Timestamp modified; + private Instant created; + private Instant modified; private String name; private String description; private String owner; @@ -55,21 +55,21 @@ public class WorkbasketImpl implements Workbasket { } @Override - public Timestamp getCreated() { + public Instant getCreated() { return created; } - public void setCreated(Timestamp created) { + public void setCreated(Instant created) { this.created = created; } @Override - public Timestamp getModified() { + public Instant getModified() { return modified; } @Override - public void setModified(Timestamp modified) { + public void setModified(Instant modified) { this.modified = modified; } @@ -237,9 +237,9 @@ public class WorkbasketImpl implements Workbasket { builder.append(", key="); builder.append(key); builder.append(", created="); - builder.append(created); + builder.append(created.toString()); builder.append(", modified="); - builder.append(modified); + builder.append(modified.toString()); builder.append(", name="); builder.append(name); builder.append(", description="); @@ -271,5 +271,4 @@ public class WorkbasketImpl implements Workbasket { builder.append("]"); return builder.toString(); } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketQueryImpl.java index 3e18a4fe6..cf7e32333 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketQueryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketQueryImpl.java @@ -1,7 +1,7 @@ package pro.taskana.impl; +import java.time.Instant; import java.util.Arrays; -import java.util.Date; import java.util.List; import org.apache.ibatis.session.RowBounds; @@ -34,10 +34,10 @@ public class WorkbasketQueryImpl implements WorkbasketQuery { private String[] key; private String[] domain; private WorkbasketType[] type; - private Date createdAfter; - private Date createdBefore; - private Date modifiedAfter; - private Date modifiedBefore; + private Instant createdAfter; + private Instant createdBefore; + private Instant modifiedAfter; + private Instant modifiedBefore; private String description; private String[] owner; private TaskanaEngineImpl taskanaEngineImpl; @@ -71,25 +71,25 @@ public class WorkbasketQueryImpl implements WorkbasketQuery { } @Override - public WorkbasketQuery createdAfter(Date createdAfter) { + public WorkbasketQuery createdAfter(Instant createdAfter) { this.createdAfter = createdAfter; return this; } @Override - public WorkbasketQuery createdBefore(Date createdBefore) { + public WorkbasketQuery createdBefore(Instant createdBefore) { this.createdBefore = createdBefore; return this; } @Override - public WorkbasketQuery modifiedAfter(Date modifiedAfter) { + public WorkbasketQuery modifiedAfter(Instant modifiedAfter) { this.modifiedAfter = modifiedAfter; return this; } @Override - public WorkbasketQuery modifiedBefore(Date modifiedBefore) { + public WorkbasketQuery modifiedBefore(Instant modifiedBefore) { this.modifiedBefore = modifiedBefore; return this; } @@ -223,19 +223,19 @@ public class WorkbasketQueryImpl implements WorkbasketQuery { return type; } - public Date getCreatedAfter() { + public Instant getCreatedAfter() { return createdAfter; } - public Date getCreatedBefore() { + public Instant getCreatedBefore() { return createdBefore; } - public Date getModifiedAfter() { + public Instant getModifiedAfter() { return modifiedAfter; } - public Date getModifiedBefore() { + public Instant getModifiedBefore() { return modifiedBefore; } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketServiceImpl.java index 8bf4af93f..01c8ebba7 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketServiceImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketServiceImpl.java @@ -1,6 +1,6 @@ package pro.taskana.impl; -import java.sql.Timestamp; +import java.time.Instant; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -151,7 +151,7 @@ public class WorkbasketServiceImpl implements WorkbasketService { WorkbasketImpl workbasket = (WorkbasketImpl) newWorkbasket; try { taskanaEngineImpl.openConnection(); - Timestamp now = new Timestamp(System.currentTimeMillis()); + Instant now = Instant.now(); workbasket.setCreated(now); workbasket.setModified(now); if (workbasket.getId() == null || workbasket.getId().isEmpty()) { @@ -187,7 +187,7 @@ public class WorkbasketServiceImpl implements WorkbasketService { WorkbasketImpl workbasket = (WorkbasketImpl) workbasketToUpdate; try { taskanaEngineImpl.openConnection(); - workbasket.setModified(new Timestamp(System.currentTimeMillis())); + workbasket.setModified(Instant.now()); workbasketMapper.update(workbasket); LOGGER.debug("Method updateWorkbasket() updated workbasket '{}'", workbasket.getId()); List oldDistributionTargets = distributionTargetMapper.findBySourceId(workbasket.getId()); diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/persistence/MapTypeHandler.java b/lib/taskana-core/src/main/java/pro/taskana/impl/persistence/MapTypeHandler.java index 06e3744a9..51ed0ef00 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/persistence/MapTypeHandler.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/persistence/MapTypeHandler.java @@ -20,6 +20,7 @@ import org.slf4j.LoggerFactory; /** * This Typehandler will transfer a Map into an xml blob and back. + * * @author EH */ @SuppressWarnings("rawtypes") diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/util/IdGenerator.java b/lib/taskana-core/src/main/java/pro/taskana/impl/util/IdGenerator.java index 9d1f24042..21ae98317 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/util/IdGenerator.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/util/IdGenerator.java @@ -25,5 +25,4 @@ public final class IdGenerator { private IdGenerator() { } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/util/LoggerUtils.java b/lib/taskana-core/src/main/java/pro/taskana/impl/util/LoggerUtils.java index 7152bcc86..df1881265 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/util/LoggerUtils.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/util/LoggerUtils.java @@ -16,7 +16,8 @@ public final class LoggerUtils { } /** - * make a String for logging from a list of objects. + * Creating an appended log-string of a list with generic type T. The logging does append informations using + * toString() on the entries. * * @param list * the input list to be stringified @@ -40,7 +41,8 @@ public final class LoggerUtils { } /** - * make a String for logging from a map. + * Creating an appended log-string of a map with generic types K/V. The logging does append informations using + * toString() on the entries. * * @param map * the map to be stringified @@ -68,6 +70,5 @@ public final class LoggerUtils { builder.append("]"); return builder.toString(); } - } } diff --git a/lib/taskana-core/src/main/java/pro/taskana/model/DueWorkbasketCounter.java b/lib/taskana-core/src/main/java/pro/taskana/model/DueWorkbasketCounter.java index 2e12ed9ef..ed9ece0d4 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/model/DueWorkbasketCounter.java +++ b/lib/taskana-core/src/main/java/pro/taskana/model/DueWorkbasketCounter.java @@ -1,21 +1,21 @@ package pro.taskana.model; -import java.sql.Date; +import java.time.Instant; /** * DueWorkbasketCounter entity. */ public class DueWorkbasketCounter { - private Date due; + private Instant due; private String workbasketId; private long taskCounter; - public Date getDue() { + public Instant getDue() { return due; } - public void setDue(Date due) { + public void setDue(Instant due) { this.due = due; } diff --git a/lib/taskana-core/src/main/java/pro/taskana/model/Report.java b/lib/taskana-core/src/main/java/pro/taskana/model/Report.java index 356cea774..57deafe85 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/model/Report.java +++ b/lib/taskana-core/src/main/java/pro/taskana/model/Report.java @@ -31,5 +31,4 @@ public class Report { public void setSumLine(ReportLine sumLine) { this.sumLine = sumLine; } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/model/ReportLine.java b/lib/taskana-core/src/main/java/pro/taskana/model/ReportLine.java index 509df5846..0477dcbbe 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/model/ReportLine.java +++ b/lib/taskana-core/src/main/java/pro/taskana/model/ReportLine.java @@ -40,5 +40,4 @@ public class ReportLine { public void setTotalCount(int totalCount) { this.totalCount = totalCount; } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/model/ReportLineItem.java b/lib/taskana-core/src/main/java/pro/taskana/model/ReportLineItem.java index 038da8fc0..f5a30f918 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/model/ReportLineItem.java +++ b/lib/taskana-core/src/main/java/pro/taskana/model/ReportLineItem.java @@ -24,5 +24,4 @@ public class ReportLineItem { public void setCount(int count) { this.count = count; } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/model/ReportLineItemDefinition.java b/lib/taskana-core/src/main/java/pro/taskana/model/ReportLineItemDefinition.java index a314fb0f5..e74c1e349 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/model/ReportLineItemDefinition.java +++ b/lib/taskana-core/src/main/java/pro/taskana/model/ReportLineItemDefinition.java @@ -24,5 +24,4 @@ public class ReportLineItemDefinition { public void setUpperLimit(int upperLimit) { this.upperLimit = upperLimit; } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/model/WorkbasketAccessItem.java b/lib/taskana-core/src/main/java/pro/taskana/model/WorkbasketAccessItem.java index 1272f8448..9428ee47d 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/model/WorkbasketAccessItem.java +++ b/lib/taskana-core/src/main/java/pro/taskana/model/WorkbasketAccessItem.java @@ -194,5 +194,4 @@ public class WorkbasketAccessItem { builder.append("]"); return builder.toString(); } - } diff --git a/lib/taskana-core/src/main/java/pro/taskana/model/WorkbasketSummary.java b/lib/taskana-core/src/main/java/pro/taskana/model/WorkbasketSummary.java new file mode 100644 index 000000000..187d90445 --- /dev/null +++ b/lib/taskana-core/src/main/java/pro/taskana/model/WorkbasketSummary.java @@ -0,0 +1,138 @@ +package pro.taskana.model; + +/** + * This entity contains the most important information about a workbasket. + * + * @author bbr + */ +public class WorkbasketSummary { + + private String id; + private String key; + private String name; + private String description; + private String owner; + private String domain; + private WorkbasketType type; + private String orgLevel1; + private String orgLevel2; + private String orgLevel3; + private String orgLevel4; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getOwner() { + return owner; + } + + public void setOwner(String owner) { + this.owner = owner; + } + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public WorkbasketType getType() { + return type; + } + + public void setType(WorkbasketType type) { + this.type = type; + } + + public String getOrgLevel1() { + return orgLevel1; + } + + public void setOrgLevel1(String orgLevel1) { + this.orgLevel1 = orgLevel1; + } + + public String getOrgLevel2() { + return orgLevel2; + } + + public void setOrgLevel2(String orgLevel2) { + this.orgLevel2 = orgLevel2; + } + + public String getOrgLevel3() { + return orgLevel3; + } + + public void setOrgLevel3(String orgLevel3) { + this.orgLevel3 = orgLevel3; + } + + public String getOrgLevel4() { + return orgLevel4; + } + + public void setOrgLevel4(String orgLevel4) { + this.orgLevel4 = orgLevel4; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("WorkbasketSummary [id="); + builder.append(id); + builder.append(", key="); + builder.append(key); + builder.append(", name="); + builder.append(name); + builder.append(", description="); + builder.append(description); + builder.append(", owner="); + builder.append(owner); + builder.append(", domain="); + builder.append(domain); + builder.append(", type="); + builder.append(type); + builder.append(", orgLevel1="); + builder.append(orgLevel1); + builder.append(", orgLevel2="); + builder.append(orgLevel2); + builder.append(", orgLevel3="); + builder.append(orgLevel3); + builder.append(", orgLevel4="); + builder.append(orgLevel4); + builder.append("]"); + return builder.toString(); + } +} diff --git a/lib/taskana-core/src/main/java/pro/taskana/model/mappings/ClassificationMapper.java b/lib/taskana-core/src/main/java/pro/taskana/model/mappings/ClassificationMapper.java index 7ab63d856..ce87a751c 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/model/mappings/ClassificationMapper.java +++ b/lib/taskana-core/src/main/java/pro/taskana/model/mappings/ClassificationMapper.java @@ -1,6 +1,5 @@ package pro.taskana.model.mappings; -import java.sql.Date; import java.util.List; import org.apache.ibatis.annotations.Insert; @@ -18,13 +17,10 @@ import pro.taskana.impl.ClassificationSummaryImpl; */ public interface ClassificationMapper { - String VALID_UNTIL_MAX = "9999-12-31"; - - @Select("SELECT ID, KEY, PARENT_CLASSIFICATION_KEY, CATEGORY, TYPE, DOMAIN, VALID_IN_DOMAIN, CREATED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL, APPLICATION_ENTRY_POINT, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, VALID_FROM, VALID_UNTIL " + @Select("SELECT ID, KEY, PARENT_CLASSIFICATION_KEY, CATEGORY, TYPE, DOMAIN, VALID_IN_DOMAIN, CREATED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL, APPLICATION_ENTRY_POINT, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8 " + "FROM CLASSIFICATION " + "WHERE KEY = #{key}" - + "AND DOMAIN = #{domain}" - + "AND VALID_UNTIL = #{valid_until}") + + "AND DOMAIN = #{domain}") @Results({ @Result(property = "id", column = "ID"), @Result(property = "key", column = "KEY"), @Result(property = "parentClassificationKey", column = "PARENT_CLASSIFICATION_KEY"), @@ -45,42 +41,37 @@ public interface ClassificationMapper { @Result(property = "custom5", column = "CUSTOM_5"), @Result(property = "custom6", column = "CUSTOM_6"), @Result(property = "custom7", column = "CUSTOM_7"), - @Result(property = "custom8", column = "CUSTOM_8"), - @Result(property = "validFrom", column = "VALID_FROM"), - @Result(property = "validUntil", column = "VALID_UNTIL") }) - ClassificationImpl findByKeyAndDomain(@Param("key") String key, @Param("domain") String domain, - @Param("valid_until") Date validUntil); + @Result(property = "custom8", column = "CUSTOM_8") }) + ClassificationImpl findByKeyAndDomain(@Param("key") String key, @Param("domain") String domain); - @Insert("INSERT INTO CLASSIFICATION (ID, KEY, PARENT_CLASSIFICATION_KEY, CATEGORY, TYPE, DOMAIN, VALID_IN_DOMAIN, CREATED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL, APPLICATION_ENTRY_POINT, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, VALID_FROM, VALID_UNTIL) VALUES (#{classification.id}, #{classification.key}, #{classification.parentClassificationKey}, #{classification.category}, #{classification.type}, #{classification.domain}, #{classification.isValidInDomain}, #{classification.created}, #{classification.name}, #{classification.description}, #{classification.priority}, #{classification.serviceLevel}, #{classification.applicationEntryPoint}, #{classification.custom1}, #{classification.custom2}, #{classification.custom3}, #{classification.custom4}, #{classification.custom5}, #{classification.custom6}, #{classification.custom7}, #{classification.custom8}, #{classification.validFrom}, #{classification.validUntil})") + @Insert("INSERT INTO CLASSIFICATION (ID, KEY, PARENT_CLASSIFICATION_KEY, CATEGORY, TYPE, DOMAIN, VALID_IN_DOMAIN, CREATED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL, APPLICATION_ENTRY_POINT, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8) VALUES (#{classification.id}, #{classification.key}, #{classification.parentClassificationKey}, #{classification.category}, #{classification.type}, #{classification.domain}, #{classification.isValidInDomain}, #{classification.created}, #{classification.name}, #{classification.description}, #{classification.priority}, #{classification.serviceLevel}, #{classification.applicationEntryPoint}, #{classification.custom1}, #{classification.custom2}, #{classification.custom3}, #{classification.custom4}, #{classification.custom5}, #{classification.custom6}, #{classification.custom7}, #{classification.custom8})") void insert(@Param("classification") ClassificationImpl classification); @Update( - value = "UPDATE CLASSIFICATION SET KEY = #{classification.key}, PARENT_CLASSIFICATION_KEY = #{classification.parentClassificationKey}, CATEGORY = #{classification.category}, TYPE = #{classification.type}, NAME = #{classification.name}, DESCRIPTION = #{classification.description}, PRIORITY = #{classification.priority}, SERVICE_LEVEL = #{classification.serviceLevel}, DOMAIN = #{classification.domain}, VALID_IN_DOMAIN = #{classification.isValidInDomain}, APPLICATION_ENTRY_POINT = #{classification.applicationEntryPoint}, CUSTOM_1 = #{classification.custom1}, CUSTOM_2 = #{classification.custom2}, CUSTOM_3 = #{classification.custom3}, CUSTOM_4 = #{classification.custom4}, CUSTOM_5 = #{classification.custom5}, CUSTOM_6 = #{classification.custom6}, CUSTOM_7 = #{classification.custom7}, CUSTOM_8 = #{classification.custom8}, VALID_FROM = #{classification.validFrom}, VALID_UNTIL = #{classification.validUntil} WHERE ID = #{classification.id}") + value = "UPDATE CLASSIFICATION SET KEY = #{classification.key}, PARENT_CLASSIFICATION_KEY = #{classification.parentClassificationKey}, CATEGORY = #{classification.category}, TYPE = #{classification.type}, NAME = #{classification.name}, DESCRIPTION = #{classification.description}, PRIORITY = #{classification.priority}, SERVICE_LEVEL = #{classification.serviceLevel}, DOMAIN = #{classification.domain}, VALID_IN_DOMAIN = #{classification.isValidInDomain}, APPLICATION_ENTRY_POINT = #{classification.applicationEntryPoint}, CUSTOM_1 = #{classification.custom1}, CUSTOM_2 = #{classification.custom2}, CUSTOM_3 = #{classification.custom3}, CUSTOM_4 = #{classification.custom4}, CUSTOM_5 = #{classification.custom5}, CUSTOM_6 = #{classification.custom6}, CUSTOM_7 = #{classification.custom7}, CUSTOM_8 = #{classification.custom8} WHERE ID = #{classification.id}") void update(@Param("classification") ClassificationImpl classification); @Select("") @Results({ @Result(property = "id", column = "ID"), @Result(property = "key", column = "KEY"), @Result(property = "category", column = "CATEGORY"), @Result(property = "type", column = "TYPE"), @Result(property = "domain", column = "DOMAIN"), - @Result(property = "name", column = "NAME"), - @Result(property = "validUntil", column = "VALID_UNTIL") }) + @Result(property = "name", column = "NAME") }) List getAllClassificationsWithKey(@Param("key") String key, @Param("domain") String domain); @Select("SELECT C.ID, C.KEY, C.PARENT_CLASSIFICATION_KEY, C.CATEGORY, C.TYPE, C.DOMAIN, C.VALID_IN_DOMAIN, C.CREATED, C.NAME, C.DESCRIPTION, C.PRIORITY, C.SERVICE_LEVEL, C.APPLICATION_ENTRY_POINT, " - + "C.CUSTOM_1, C.CUSTOM_2, C.CUSTOM_3, C.CUSTOM_4, C.CUSTOM_5, C.CUSTOM_6, C.CUSTOM_7, C.CUSTOM_8, C.VALID_FROM, C.VALID_UNTIL " + + "C.CUSTOM_1, C.CUSTOM_2, C.CUSTOM_3, C.CUSTOM_4, C.CUSTOM_5, C.CUSTOM_6, C.CUSTOM_7, C.CUSTOM_8 " + "FROM CLASSIFICATION AS C LEFT JOIN WORKBASKET AS W ON C.DOMAIN = W.DOMAIN " + "WHERE c.KEY = #{classificationKey}" - + "AND W.KEY = #{workbasketKey}" - + "AND VALID_UNTIL = #{valid_until}") + + "AND W.KEY = #{workbasketKey}") @Results({ @Result(property = "id", column = "ID"), @Result(property = "key", column = "KEY"), @Result(property = "parentClassificationKey", column = "PARENT_CLASSIFICATION_KEY"), @@ -101,10 +92,7 @@ public interface ClassificationMapper { @Result(property = "custom5", column = "CUSTOM_5"), @Result(property = "custom6", column = "CUSTOM_6"), @Result(property = "custom7", column = "CUSTOM_7"), - @Result(property = "custom8", column = "CUSTOM_8"), - @Result(property = "validFrom", column = "VALID_FROM"), - @Result(property = "validUntil", column = "VALID_UNTIL") }) + @Result(property = "custom8", column = "CUSTOM_8") }) ClassificationImpl findByTask(@Param("classificationKey") String classificationKey, - @Param("workbasketKey") String workbasketKey, - @Param("valid_until") Date validUntil); + @Param("workbasketKey") String workbasketKey); } diff --git a/lib/taskana-core/src/main/java/pro/taskana/model/mappings/QueryMapper.java b/lib/taskana-core/src/main/java/pro/taskana/model/mappings/QueryMapper.java index bf6899bef..2c7be9ac7 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/model/mappings/QueryMapper.java +++ b/lib/taskana-core/src/main/java/pro/taskana/model/mappings/QueryMapper.java @@ -52,7 +52,7 @@ public interface QueryMapper { + "AND (t.CUSTOM_1 IN(#{item}) OR t.CUSTOM_2 IN(#{item}) OR t.CUSTOM_3 IN(#{item}) OR t.CUSTOM_4 IN(#{item}) OR t.CUSTOM_5 IN(#{item}) OR t.CUSTOM_6 IN(#{item}) OR t.CUSTOM_7 IN(#{item}) OR t.CUSTOM_8 IN(#{item}) OR t.CUSTOM_9 IN(#{item}) OR t.CUSTOM_10 IN(#{item})) " + "" + "") - @Results(value = {@Result(property = "taskId", column = "ID"), + @Results(value = { @Result(property = "taskId", column = "ID"), @Result(property = "created", column = "CREATED"), @Result(property = "claimed", column = "CLAIMED"), @Result(property = "completed", column = "COMPLETED"), @@ -86,10 +86,10 @@ public interface QueryMapper { @Result(property = "custom7", column = "CUSTOM_7"), @Result(property = "custom8", column = "CUSTOM_8"), @Result(property = "custom9", column = "CUSTOM_9"), - @Result(property = "custom10", column = "CUSTOM_10")}) + @Result(property = "custom10", column = "CUSTOM_10") }) List queryTasks(TaskQueryImpl taskQuery); - @Select("") - @Results({@Result(property = "id", column = "ID"), + @Results({ @Result(property = "id", column = "ID"), @Result(property = "key", column = "KEY"), @Result(property = "category", column = "CATEGORY"), @Result(property = "type", column = "TYPE"), @Result(property = "domain", column = "DOMAIN"), - @Result(property = "name", column = "NAME"), - @Result(property = "validUntil", column = "VALID_UNTIL")}) + @Result(property = "name", column = "NAME") }) List queryClassification(ClassificationQueryImpl classificationQuery); @Select("") long getTaskCountForWorkbasketByDaysInPastAndState(@Param("workbasketId") String workbasketId, - @Param("fromDate") Date fromDate, @Param("status") List states); + @Param("fromDate") Instant fromDate, @Param("status") List states); @Select("