Merge pull request #31 from BVier/master

TSK_31: Delete tenantId from classification
This commit is contained in:
Holger Hagen 2017-11-15 13:50:43 +01:00 committed by GitHub
commit 0c018c7550
10 changed files with 37 additions and 76 deletions

View File

@ -17,7 +17,6 @@ public class ClassificationQueryImpl implements ClassificationQuery {
private static final String LINK_TO_MAPPER = "org.taskana.model.mappings.QueryMapper.queryClassification";
private TaskanaEngineImpl taskanaEngine;
private String tenantId;
private String[] parentClassificationId;
private String[] category;
private String[] type;
@ -36,12 +35,6 @@ public class ClassificationQueryImpl implements ClassificationQuery {
this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
}
@Override
public ClassificationQuery tenantId(String tenantId) {
this.tenantId = tenantId;
return this;
}
@Override
public ClassificationQuery parentClassification(String... parentClassificationId) {
this.parentClassificationId = parentClassificationId;
@ -136,14 +129,6 @@ public class ClassificationQueryImpl implements ClassificationQuery {
return taskanaEngine.getSession().selectOne(LINK_TO_MAPPER, this);
}
public String getTenantId() {
return tenantId;
}
public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}
public String[] getParentClassificationId() {
return parentClassificationId;
}

View File

@ -8,7 +8,6 @@ import java.sql.Date;
public class Classification {
private String id;
private String tenantId;
private String parentClassificationId;
private String category;
private String type;
@ -38,14 +37,6 @@ public class Classification {
this.id = id;
}
public String getTenantId() {
return tenantId;
}
public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}
public String getParentClassificationId() {
return parentClassificationId;
}

View File

@ -11,13 +11,12 @@ import java.util.List;
*/
public interface ClassificationMapper {
@Select("SELECT ID, TENANT_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 "
@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 DOMAIN = #{domain}"
+ "AND VALID_UNTIL = #{valid_until}")
@Results({@Result(property = "id", column = "ID"),
@Result(property = "tenantId", column = "TENANT_ID"),
@Result(property = "parentClassificationId", column = "PARENT_CLASSIFICATION_ID"),
@Result(property = "category", column = "CATEGORY"),
@Result(property = "type", column = "TYPE"),
@ -40,10 +39,10 @@ public interface ClassificationMapper {
@Result(property = "validUntil", column = "VALID_UNTIL")})
Classification findByIdAndDomain(@Param("id") String id, @Param("domain") String domain, @Param("valid_until")Date validUntil);
@Insert("INSERT INTO CLASSIFICATION (ID, TENANT_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.tenantId}, #{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})")
@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);
@Update(value = "UPDATE CLASSIFICATION SET TENANT_ID = #{classification.tenantId}, PARENT_CLASSIFICATION_ID = #{classification.parentClassificationId}, 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}, 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}")
@Update(value = "UPDATE CLASSIFICATION SET PARENT_CLASSIFICATION_ID = #{classification.parentClassificationId}, 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}, 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}")
void update(@Param("classification") Classification classification);
@Select("<script>"
@ -54,7 +53,6 @@ public interface ClassificationMapper {
+ "ORDER BY VALID_FROM DESC"
+ "</script>")
@Results({@Result(property = "id", column = "ID"),
@Result(property = "tenantId", column = "TENANT_ID"),
@Result(property = "parentClassificationId", column = "PARENT_CLASSIFICATION_ID"),
@Result(property = "category", column = "CATEGORY"),
@Result(property = "type", column = "TYPE"),

View File

@ -39,7 +39,6 @@ public interface QueryMapper {
+ "<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
+ "<if test='classificationQuery != null'>"
+ "<if test='classificationQuery.tenantId != null'>AND c.TENANT_ID = #{classificationQuery.tenantId}</if> "
+ "<if test='classificationQuery.parentClassificationId != null'>AND c.PARENT_CLASSIFICATION_ID IN(<foreach item='item' collection='classificationQuery.parentClassificationId' separator=',' >#{item}</foreach>)</if> "
+ "<if test='classificationQuery.category != null'>AND c.CATEGORY IN(<foreach item='item' collection='classificationQuery.category' separator=',' >#{item}</foreach>)</if> "
+ "<if test='classificationQuery.type != null'>AND c.TYPE IN(<foreach item='item' collection='classificationQuery.type' separator=',' >#{item}</foreach>)</if> "
@ -94,10 +93,9 @@ public interface QueryMapper {
@Result(property = "custom10", column = "CUSTOM_10") })
List<Task> queryTasks(TaskQueryImpl taskQuery);
@Select("<script>SELECT ID, TENANT_ID, PARENT_CLASSIFICATION_ID, CATEGORY, TYPE, CREATED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL "
@Select("<script>SELECT ID, PARENT_CLASSIFICATION_ID, CATEGORY, TYPE, CREATED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL "
+ "FROM CLASSIFICATION "
+ "<where>"
+ "<if test='tenantId != null'>TENANT_ID = #{tenantId}</if> "
+ "<if test='parentClassificationId != null'>AND PARENT_CLASSIFICATION_ID IN(<foreach item='item' collection='parentClassificationId' separator=',' >#{item}</foreach>)</if> "
+ "<if test='category != null'>AND CATEGORY IN(<foreach item='item' collection='category' separator=',' >#{item}</foreach>)</if> "
+ "<if test='type != null'>AND TYPE IN(<foreach item='item' collection='type' separator=',' >#{item}</foreach>)</if> "
@ -114,15 +112,26 @@ public interface QueryMapper {
+ "</where>"
+ "</script>")
@Results({ @Result(property = "id", column = "ID"),
@Result(property = "tenantId", column = "TENANT_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 = "validInDomain", 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 = "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") })
List<Classification> queryClassification(ClassificationQueryImpl classificationQuery);

View File

@ -9,13 +9,6 @@ import java.util.Date;
*/
public interface ClassificationQuery extends BaseQuery<Classification> {
/**
* Add your tenant id to your query.
* @param tenantId
* the tenant id as String
* @return the query
*/
ClassificationQuery tenantId(String tenantId);
/**
* Add your parentClassification to your query.

View File

@ -58,7 +58,6 @@ CREATE TABLE DISTRIBUTION_TARGETS(
CREATE TABLE CLASSIFICATION(
ID CHAR(40) NOT NULL,
TENANT_ID VARCHAR(32) NULL,
PARENT_CLASSIFICATION_ID VARCHAR(255) NOT NULL,
CATEGORY VARCHAR(255),
TYPE VARCHAR(255),

View File

@ -137,13 +137,13 @@ public class ClassificationServiceImplIntTest {
}
@Test
public void testFindWithClassificationMapperTenantCustomAndCategory() throws NotAuthorizedException {
public void testFindWithClassificationMapperCustomAndCategory() throws NotAuthorizedException {
Classification classification1 = new Classification();
classification1.setTenantId("tenant1");
classification1.setDescription("DESC1");
classification1.setCategory("category1");
classificationService.addClassification(classification1);
Classification classification2 = new Classification();
classification2.setTenantId("tenant1");
classification2.setDescription("DESC1");
classification2.setCustom1("custom1");
classification2.setCategory("category1");
classificationService.addClassification(classification2);
@ -153,16 +153,16 @@ public class ClassificationServiceImplIntTest {
classification3.setCategory("category2");
classificationService.addClassification(classification3);
Classification classification4 = new Classification();
classification4.setTenantId("tenant2");
classification4.setDescription("description2");
classification4.setCustom8("custom2");
classification4.setCategory("category1");
classificationService.addClassification(classification4);
List<Classification> list = classificationService.createClassificationQuery().tenantId("tenant1").customFields("custom1").list();
List<Classification> list = classificationService.createClassificationQuery().descriptionLike("DESC1").customFields("custom1").list();
Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery().customFields("custom2").list();
Assert.assertEquals(2, list.size());
list = classificationService.createClassificationQuery().tenantId("tenant1").category("category1").list();
list = classificationService.createClassificationQuery().descriptionLike("DESC1").category("category1").list();
Assert.assertEquals(2, list.size());
}

View File

@ -1,18 +1,7 @@
package org.taskana.impl.integration;
import java.io.FileNotFoundException;
import java.sql.SQLException;
import java.util.List;
import javax.security.auth.login.LoginException;
import javax.sql.DataSource;
import org.h2.store.fs.FileUtils;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.*;
import org.taskana.TaskanaEngine;
import org.taskana.configuration.TaskanaEngineConfiguration;
import org.taskana.exceptions.NotAuthorizedException;
@ -29,6 +18,12 @@ import org.taskana.model.TaskState;
import org.taskana.persistence.ClassificationQuery;
import org.taskana.persistence.ObjectReferenceQuery;
import javax.security.auth.login.LoginException;
import javax.sql.DataSource;
import java.io.FileNotFoundException;
import java.sql.SQLException;
import java.util.List;
/**
* Integration Test for TaskServiceImpl transactions.
* @author EH
@ -112,7 +107,7 @@ public class TaskServiceImplTransactionTest {
task = taskServiceImpl.create(task);
TaskanaEngineImpl taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
ClassificationQuery classificationQuery = new ClassificationQueryImpl(taskanaEngineImpl).tenantId("asdasdasd")
ClassificationQuery classificationQuery = new ClassificationQueryImpl(taskanaEngineImpl)
.parentClassification("pId1", "pId2").category("cat1", "cat2").type("oneType").name("1Name", "name2")
.descriptionLike("my desc").priority(1, 2, 1).serviceLevel("me", "and", "you");

View File

@ -23,11 +23,6 @@ public class TestClassificationQuery implements ClassificationQuery {
}
@Override
public ClassificationQuery tenantId(String tenantId) {
return this;
}
@Override
public ClassificationQuery parentClassification(String... parentClassificationId) {
parentId = parentClassificationId;

View File

@ -34,14 +34,13 @@ public class TaskFilter {
private static final String IS_TRANSFERRED = "isTransferred";
private static final String IS_READ = "isRead";
private static final String CLASSIFICATION_TENANT_ID = CLASSIFICATION + DOT + "tenantId";
private static final String CLASSIFICATION_SERVICE_LEVEL = CLASSIFICATION + DOT + "serviceLevel";
private static final String CLASSIFICATION_PRIORITY = CLASSIFICATION + DOT + "priority";
private static final String CLASSIFICATION_DESCRIPTION = CLASSIFICATION + DOT + "description";
private static final String CLASSIFICATION_NAME = CLASSIFICATION + DOT + "name";
private static final String CLASSIFICATION_TYPE = CLASSIFICATION + DOT + "type";
private static final String CLASSIFICATION_CATEGORY = CLASSIFICATION + DOT + "category";
private static final String CLASSIFICATION_PARENT_ID = CLASSIFICATION + DOT + "parentClassificationId";
private static final String CLASSIFICATION_CATEGORY = CLASSIFICATION + DOT + "category";
private static final String CLASSIFICATION_TYPE = CLASSIFICATION + DOT + "type";
private static final String CLASSIFICATION_NAME = CLASSIFICATION + DOT + "name";
private static final String CLASSIFICATION_DESCRIPTION = CLASSIFICATION + DOT + "description";
private static final String CLASSIFICATION_PRIORITY = CLASSIFICATION + DOT + "priority";
private static final String CLASSIFICATION_SERVICE_LEVEL = CLASSIFICATION + DOT + "serviceLevel";
private static final String POR_VALUE = POR + DOT + "value";
private static final String POR_TYPE = POR + DOT + "type";
@ -91,9 +90,6 @@ public class TaskFilter {
// classification
if (params.keySet().stream().filter(s -> s.startsWith(CLASSIFICATION)).toArray().length > 0) {
ClassificationQuery classificationQuery = classificationService.createClassificationQuery();
if (params.containsKey(CLASSIFICATION_TENANT_ID)) {
classificationQuery.tenantId(params.get(CLASSIFICATION_TENANT_ID).get(0));
}
if (params.containsKey(CLASSIFICATION_PARENT_ID)) {
String[] parentClassifications = extractCommaSeperatedFields(params.get(CLASSIFICATION_PARENT_ID));
classificationQuery.parentClassification(parentClassifications);