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 926d447be..c98a39b8b 100644 --- a/lib/taskana-cdi/src/test/java/pro/taskana/TaskanaProducersTest.java +++ b/lib/taskana-cdi/src/test/java/pro/taskana/TaskanaProducersTest.java @@ -66,7 +66,6 @@ public class TaskanaProducersTest { } Assert.assertEquals(1, resultCount); - } @@ -86,7 +85,5 @@ public class TaskanaProducersTest { } Assert.assertEquals(0, resultCount); - } - } 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 ffaff45e2..f04d0950a 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 @@ -20,9 +20,7 @@ import java.util.List; public class ClassificationServiceImpl implements ClassificationService { private static final String ID_PREFIX_CLASSIFICATION = "CLI"; - public static final Date CURRENT_CLASSIFICATIONS_VALID_UNTIL = Date.valueOf("9999-12-31"); - private ClassificationMapper classificationMapper; private TaskanaEngine taskanaEngine; private TaskanaEngineImpl taskanaEngineImpl; @@ -61,8 +59,6 @@ public class ClassificationServiceImpl implements ClassificationService { } } - - @Override public void addClassification(Classification classification) { try { @@ -134,7 +130,6 @@ public class ClassificationServiceImpl implements ClassificationService { } - @Override public List getAllClassificationsWithId(String id, String domain) { try { @@ -148,24 +143,22 @@ public class ClassificationServiceImpl implements ClassificationService { @Override public Classification getClassification(String id, String domain) { + Classification classification = null; try { taskanaEngineImpl.openConnection(); - Classification result = null; - Classification classification = classificationMapper.findByIdAndDomain(id, domain, CURRENT_CLASSIFICATIONS_VALID_UNTIL); - - if (classification == null) { - return classificationMapper.findByIdAndDomain(id, "", CURRENT_CLASSIFICATIONS_VALID_UNTIL); + if (domain == null) { + classification = classificationMapper.findByIdAndDomain(id, "", CURRENT_CLASSIFICATIONS_VALID_UNTIL); } else { - return classification; + classification = classificationMapper.findByIdAndDomain(id, domain, CURRENT_CLASSIFICATIONS_VALID_UNTIL); } } finally { taskanaEngineImpl.returnConnection(); } + return classification; } @Override public ClassificationQuery createClassificationQuery() { return new ClassificationQueryImpl(taskanaEngine); } - } 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 5bf5d075f..f0d6836ea 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 @@ -3,6 +3,7 @@ package pro.taskana.impl; import java.util.List; import org.apache.ibatis.session.RowBounds; + import pro.taskana.TaskanaEngine; import pro.taskana.exceptions.NotAuthorizedException; import pro.taskana.model.Task; 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 cd29af8e6..71a33f0df 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,16 +1,24 @@ package pro.taskana.model.mappings; -import org.apache.ibatis.annotations.*; -import pro.taskana.model.Classification; - import java.sql.Date; import java.util.List; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Result; +import org.apache.ibatis.annotations.Results; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import pro.taskana.model.Classification; + /** * This class is the mybatis mapping of classifications. */ public interface ClassificationMapper { + String VALID_UNTIL = "9999-12-31"; + @Select("SELECT ID, PARENT_CLASSIFICATION_ID, CATEGORY, TYPE, DOMAIN, VALID_IN_DOMAIN, CREATED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, VALID_FROM, VALID_UNTIL " + "FROM CLASSIFICATION " + "WHERE ID = #{id}" @@ -39,6 +47,33 @@ public interface ClassificationMapper { @Result(property = "validUntil", column = "VALID_UNTIL")}) Classification findByIdAndDomain(@Param("id") String id, @Param("domain") String domain, @Param("valid_until")Date validUntil); + @Select("SELECT ID, PARENT_CLASSIFICATION_ID, CATEGORY, TYPE, DOMAIN, VALID_IN_DOMAIN, CREATED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, VALID_FROM, VALID_UNTIL " + + "FROM CLASSIFICATION " + + "WHERE ID = #{id} " + + "AND VALID_UNTIL = '" + VALID_UNTIL + "'") + @Results({@Result(property = "id", column = "ID"), + @Result(property = "parentClassificationId", column = "PARENT_CLASSIFICATION_ID"), + @Result(property = "category", column = "CATEGORY"), + @Result(property = "type", column = "TYPE"), + @Result(property = "domain", column = "DOMAIN"), + @Result(property = "isValidInDomain", column = "VALID_IN_DOMAIN"), + @Result(property = "created", column = "CREATED"), + @Result(property = "name", column = "NAME"), + @Result(property = "description", column = "DESCRIPTION"), + @Result(property = "priority", column = "PRIORITY"), + @Result(property = "serviceLevel", column = "SERVICE_LEVEL"), + @Result(property = "custom1", column = "CUSTOM_1"), + @Result(property = "custom2", column = "CUSTOM_2"), + @Result(property = "custom3", column = "CUSTOM_3"), + @Result(property = "custom4", column = "CUSTOM_4"), + @Result(property = "custom5", column = "CUSTOM_5"), + @Result(property = "custom6", column = "CUSTOM_6"), + @Result(property = "custom7", column = "CUSTOM_7"), + @Result(property = "custom8", column = "CUSTOM_8"), + @Result(property = "validFrom", column = "VALID_FROM"), + @Result(property = "validUntil", column = "VALID_UNTIL")}) + Classification findById(@Param("id") String id); + @Insert("INSERT INTO CLASSIFICATION (ID, PARENT_CLASSIFICATION_ID, CATEGORY, TYPE, DOMAIN, VALID_IN_DOMAIN, CREATED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, VALID_FROM, VALID_UNTIL) VALUES (#{classification.id}, #{classification.parentClassificationId}, #{classification.category}, #{classification.type}, #{classification.domain}, #{classification.isValidInDomain}, #{classification.created}, #{classification.name}, #{classification.description}, #{classification.priority}, #{classification.serviceLevel}, #{classification.custom1}, #{classification.custom2}, #{classification.custom3}, #{classification.custom4}, #{classification.custom5}, #{classification.custom6}, #{classification.custom7}, #{classification.custom8}, #{classification.validFrom}, #{classification.validUntil})") void insert(@Param("classification") Classification classification); @@ -74,6 +109,5 @@ public interface ClassificationMapper { @Result(property = "validFrom", column = "VALID_FROM"), @Result(property = "validUntil", column = "VALID_UNTIL")}) List getAllClassificationsWithId(@Param("id") String id, @Param("domain") String domain); - } 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 e04cc2555..e7210ce95 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 @@ -20,7 +20,8 @@ import java.util.List; public interface QueryMapper { String OBJECTREFERENCEMAPPER_FINDBYID = "pro.taskana.model.mappings.ObjectReferenceMapper.findById"; - String CLASSIFICATION_FINDBYID = "pro.taskana.model.mappings.ClassificationMapper.findByIdAndDomain"; + String CLASSIFICATION_FINDBYIDANDDOMAIN = "pro.taskana.model.mappings.ClassificationMapper.findByIdAndDomain"; + String CLASSIFICATION_FINDBYID = "pro.taskana.model.mappings.ClassificationMapper.findById"; @Select("