TSK-146: Introduced ClassificationSummary Interface and Impl. Also deleted forbidden methods on Classification-Interface. Mappers for Query changed.

This commit is contained in:
Marcel Lengl 2018-01-11 17:07:39 +01:00 committed by BerndBreier
parent 29fccd25e6
commit 83cff45c48
27 changed files with 535 additions and 330 deletions

View File

@ -22,6 +22,7 @@ import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.exceptions.TaskAlreadyExistException;
import pro.taskana.exceptions.TaskNotFoundException;
import pro.taskana.exceptions.WorkbasketNotFoundException;
import pro.taskana.impl.ClassificationImpl;
import pro.taskana.model.ObjectReference;
import pro.taskana.model.WorkbasketType;
@ -46,7 +47,7 @@ public class TaskanaRestTest {
workbasket.setDomain("cdiDomain");
workbasket.setType(WorkbasketType.PERSONAL);
taskanaEjb.getWorkbasketService().createWorkbasket(workbasket);
Classification classification = classificationService.newClassification();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST");
classification.setDomain("cdiDomain");
taskanaEjb.getClassificationService().createClassification(classification);

View File

@ -62,14 +62,6 @@ public interface Classification {
*/
String getType();
/**
* Set/Change the current type of the classification.
*
* @param type
* TODO
*/
void setType(String type);
/**
* Get the current domain-name of this classification.
*
@ -77,14 +69,6 @@ public interface Classification {
*/
String getDomain();
/**
* Set/Change the domain of this classification.
*
* @param domain
* name
*/
void setDomain(String domain);
/**
* Get a flag if the classification if currently valid in the used domain.
*
@ -178,7 +162,7 @@ public interface Classification {
* Set the logical name of the associated application entry point.
*
* @param applicationEntryPoint
* TODO
* TODO
*/
void setApplicationEntryPoint(String applicationEntryPoint);

View File

@ -5,18 +5,20 @@ import java.util.Date;
/**
* ClassificationQuery for generating dynamic sql.
*/
public interface ClassificationQuery extends BaseQuery<Classification> {
public interface ClassificationQuery extends BaseQuery<ClassificationSummary> {
/**
* Add your key to your query.
*
* @param key
* as String
* as String
* @return the query
*/
ClassificationQuery key(String... key);
/**
* Add your parentClassificationKey to your query.
*
* @param parentClassificationKey
* as String
* @return the query
@ -25,6 +27,7 @@ public interface ClassificationQuery extends BaseQuery<Classification> {
/**
* Add your category to your query.
*
* @param category
* as String
* @return the query
@ -33,6 +36,7 @@ public interface ClassificationQuery extends BaseQuery<Classification> {
/**
* Add your type to your query.
*
* @param type
* as String
* @return the query
@ -40,28 +44,35 @@ public interface ClassificationQuery extends BaseQuery<Classification> {
ClassificationQuery type(String... type);
/**
* Add your domain to your query.
* @param domain TODO
* @return TODO
* Add your domains to your query which are used as filter.
*
* @param domain
* or domains for filtering.
* @return the query
*/
ClassificationQuery domain(String... domain);
/**
* Add to your query if the Classification shall be valid in its domain.
* @param validInDomain TODO
* @return TODO
*
* @param validInDomain
* a simple flag showing if domain is valid
* @return the query
*/
ClassificationQuery validInDomain(Boolean validInDomain);
/**
* Add your created-Dates to your query.
* @param created TODO
* @return TODO
*
* @param created
* date of classification creation.
* @return the query
*/
ClassificationQuery created(Date... created);
/**
* Add your name to your query.
*
* @param name
* as String
* @return the query
@ -69,8 +80,9 @@ public interface ClassificationQuery extends BaseQuery<Classification> {
ClassificationQuery name(String... name);
/**
* Add your description to your query. It will be compared in SQL with an LIKE.
* If you use a wildcard like % tehn it will be transmitted to the database.
* Add your description to your query. It will be compared in SQL with an LIKE. If you use a wildcard like % tehn it
* will be transmitted to the database.
*
* @param description
* your description
* @return the query
@ -79,6 +91,7 @@ public interface ClassificationQuery extends BaseQuery<Classification> {
/**
* Add your priority to your query.
*
* @param priorities
* as integers
* @return the query
@ -87,6 +100,7 @@ public interface ClassificationQuery extends BaseQuery<Classification> {
/**
* Add your serviceLevel to your query.
*
* @param serviceLevel
* as String
* @return the query
@ -95,29 +109,37 @@ public interface ClassificationQuery extends BaseQuery<Classification> {
/**
* Add your applicationEntryPoint to your query.
* @param applicationEntryPoint TODO
*
* @param applicationEntryPoint
* name of the applications entrypoint
* @return the query
*/
ClassificationQuery applicationEntryPoint(String... applicationEntryPoint);
/**
* Add your customFields to your query.
* @param customFields TODO
* @return TODO
*
* @param customFields
* filtering the content of all custom attributes
* @return the query
*/
ClassificationQuery customFields(String... customFields);
/**
* Define after which date the classifications should be valid.
* @param validFrom TODO
* @return TODO
*
* @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 TODO
* @return TODO
*
* @param validUntil
* date until the classification will be or was valid
* @return the query
*/
ClassificationQuery validUntil(Date... validUntil);
}

View File

@ -4,7 +4,6 @@ import java.util.List;
import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
/**
@ -15,16 +14,14 @@ public interface ClassificationService {
/**
* Get all available Classifications as a tree.
*
* @return The List of all Classifications
* @return The List of all ClassificationSummaries
* @throws NotAuthorizedException
* if the permissions are not granted for this specific interaction.
* @throws InvalidArgumentException
* if the given permissions/UserContext or Base-Object is NULL.
*/
List<Classification> getClassificationTree() throws NotAuthorizedException, InvalidArgumentException;
List<ClassificationSummary> getClassificationTree() throws NotAuthorizedException;
/**
* Get all Classifications with the given key. Returns also older and domain-specific versions of the
* Get all ClassificationSummaries with the given key. Returns also older and domain-specific versions of the
* classification.
*
* @param key
@ -33,7 +30,7 @@ public interface ClassificationService {
* the domain of the searched-for classifications
* @return List with all versions of the Classification
*/
List<Classification> getAllClassificationsWithKey(String key, String domain);
List<ClassificationSummary> getAllClassifications(String key, String domain);
/**
* Get the Classification for key and domain. If there's no Classification in the given domain, return the

View File

@ -0,0 +1,59 @@
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.
*/
public interface ClassificationSummary {
/**
* Gets the id of the classification.
*
* @return classificationId
*/
String getId();
/**
* Gets the key of the classification.
*
* @return classificationKey
*/
String getKey();
/**
* Gets the category of the classification.
*
* @return classificationCategory
*/
String getCategory();
/**
* Gets the type of the classification.
*
* @return classificationType
*/
String getType();
/**
* Gets the domain of the classification.
*
* @return classificationDomain
*/
String getDomain();
/**
* Gets the name of the classification.
*
* @return classificationName
*/
String getName();
/**
* Gets the timestamp until the classification is/was valid.
*
* @return validUntil as timestamp
*/
Timestamp getValidUntil();
}

View File

@ -33,7 +33,8 @@ public class ClassificationImpl implements Classification {
private Date validFrom;
private Date validUntil;
ClassificationImpl() { }
ClassificationImpl() {
}
@Override
public String getId() {
@ -49,6 +50,7 @@ public class ClassificationImpl implements Classification {
return key;
}
@Override
public void setKey(String key) {
this.key = key;
}
@ -68,7 +70,6 @@ public class ClassificationImpl implements Classification {
return type;
}
@Override
public void setType(String type) {
this.type = type;
}
@ -88,7 +89,6 @@ public class ClassificationImpl implements Classification {
return this.domain;
}
@Override
public void setDomain(String domain) {
this.domain = domain;
}
@ -98,6 +98,7 @@ public class ClassificationImpl implements Classification {
return isValidInDomain;
}
@Override
public void setIsValidInDomain(Boolean isValidInDomain) {
this.isValidInDomain = isValidInDomain;
}

View File

@ -8,13 +8,14 @@ import org.apache.ibatis.session.RowBounds;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.Classification;
import pro.taskana.ClassificationQuery;
import pro.taskana.ClassificationSummary;
import pro.taskana.TaskanaEngine;
import pro.taskana.impl.util.LoggerUtils;
/**
* Implementation of ClassificationQuery interface.
*
* @author EH
*/
public class ClassificationQueryImpl implements ClassificationQuery {
@ -37,10 +38,8 @@ public class ClassificationQueryImpl implements ClassificationQuery {
private Date[] validFrom;
private Date[] validUntil;
private String[] applicationEntryPoint;
public ClassificationQueryImpl(TaskanaEngine taskanaEngine) {
this.taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
}
@ -136,9 +135,9 @@ public class ClassificationQueryImpl implements ClassificationQuery {
}
@Override
public List<Classification> list() {
public List<ClassificationSummary> list() {
LOGGER.debug("entry to list(), this = {}", this);
List<Classification> result = null;
List<ClassificationSummary> result = null;
try {
taskanaEngineImpl.openConnection();
result = taskanaEngineImpl.getSqlSession().selectList(LINK_TO_MAPPER, this);
@ -147,15 +146,16 @@ public class ClassificationQueryImpl implements ClassificationQuery {
taskanaEngineImpl.returnConnection();
if (LOGGER.isDebugEnabled()) {
int numberOfResultObjects = result == null ? 0 : result.size();
LOGGER.debug("exit from list(). Returning {} resulting Objects: {} ", numberOfResultObjects, LoggerUtils.listToString(result));
LOGGER.debug("exit from list(). Returning {} resulting Objects: {} ", numberOfResultObjects,
LoggerUtils.listToString(result));
}
}
}
@Override
public List<Classification> list(int offset, int limit) {
public List<ClassificationSummary> list(int offset, int limit) {
LOGGER.debug("entry to list(offset = {}, limit = {}), this = {}", offset, limit, this);
List<Classification> result = null;
List<ClassificationSummary> result = null;
try {
taskanaEngineImpl.openConnection();
RowBounds rowBounds = new RowBounds(offset, limit);
@ -165,15 +165,16 @@ public class ClassificationQueryImpl implements ClassificationQuery {
taskanaEngineImpl.returnConnection();
if (LOGGER.isDebugEnabled()) {
int numberOfResultObjects = result == null ? 0 : result.size();
LOGGER.debug("exit from list(offset,limit). Returning {} resulting Objects: {} ", numberOfResultObjects, LoggerUtils.listToString(result));
LOGGER.debug("exit from list(offset,limit). Returning {} resulting Objects: {} ", numberOfResultObjects,
LoggerUtils.listToString(result));
}
}
}
@Override
public Classification single() {
public ClassificationSummary single() {
LOGGER.debug("entry to single(), this = {}", this);
Classification result = null;
ClassificationSummary result = null;
try {
taskanaEngineImpl.openConnection();
result = taskanaEngineImpl.getSqlSession().selectOne(LINK_TO_MAPPER, this);
@ -338,5 +339,4 @@ public class ClassificationQueryImpl implements ClassificationQuery {
builder.append("]");
return builder.toString();
}
}

View File

@ -12,11 +12,11 @@ import org.slf4j.LoggerFactory;
import pro.taskana.Classification;
import pro.taskana.ClassificationQuery;
import pro.taskana.ClassificationService;
import pro.taskana.ClassificationSummary;
import pro.taskana.Task;
import pro.taskana.TaskanaEngine;
import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.impl.util.IdGenerator;
import pro.taskana.impl.util.LoggerUtils;
@ -40,42 +40,43 @@ public class ClassificationServiceImpl implements ClassificationService {
}
@Override
public List<Classification> getClassificationTree() throws NotAuthorizedException, InvalidArgumentException {
public List<ClassificationSummary> getClassificationTree() throws NotAuthorizedException {
LOGGER.debug("entry to getClassificationTree()");
List<Classification> result = null;
List<ClassificationSummary> rootClassificationSumamries = null;
try {
taskanaEngineImpl.openConnection();
List<Classification> rootClassifications;
rootClassifications = this.createClassificationQuery()
rootClassificationSumamries = this.createClassificationQuery()
.parentClassificationKey("")
.validUntil(CURRENT_CLASSIFICATIONS_VALID_UNTIL)
.list();
rootClassifications = this.populateChildClassifications(rootClassifications);
return rootClassifications;
rootClassificationSumamries = this.populateChildClassifications(rootClassificationSumamries);
return rootClassificationSumamries;
} finally {
taskanaEngineImpl.returnConnection();
if (LOGGER.isDebugEnabled()) {
int numberOfResultObjects = result == null ? 0 : result.size();
int numberOfResultObjects = rootClassificationSumamries == null ? 0
: rootClassificationSumamries.size();
LOGGER.debug("exit from getClassificationTree(). Returning {} resulting Objects: {} ",
numberOfResultObjects, LoggerUtils.listToString(result));
numberOfResultObjects, LoggerUtils.listToString(rootClassificationSumamries));
}
}
}
private List<Classification> populateChildClassifications(List<Classification> classifications)
throws NotAuthorizedException, InvalidArgumentException {
private List<ClassificationSummary> populateChildClassifications(
List<ClassificationSummary> classificationSumamries)
throws NotAuthorizedException {
try {
taskanaEngineImpl.openConnection();
List<Classification> children = new ArrayList<>();
for (Classification classification : classifications) {
List<Classification> childClassifications = this.createClassificationQuery()
List<ClassificationSummary> children = new ArrayList<>();
for (ClassificationSummary classification : classificationSumamries) {
List<ClassificationSummary> childClassifications = this.createClassificationQuery()
.parentClassificationKey(classification.getKey())
.validUntil(CURRENT_CLASSIFICATIONS_VALID_UNTIL)
.list();
children.addAll(populateChildClassifications(childClassifications));
}
classifications.addAll(children);
return classifications;
classificationSumamries.addAll(children);
return classificationSumamries;
} finally {
taskanaEngineImpl.returnConnection();
}
@ -143,9 +144,10 @@ public class ClassificationServiceImpl implements ClassificationService {
@Override
public void updateClassification(Classification classification) {
LOGGER.debug("entry to updateClassification(Classification = {})", classification);
ClassificationImpl classificationImpl = null;
try {
taskanaEngineImpl.openConnection();
ClassificationImpl classificationImpl = (ClassificationImpl) classification;
classificationImpl = (ClassificationImpl) classification;
this.initDefaultClassificationValues(classificationImpl);
ClassificationImpl oldClassification = null;
@ -229,31 +231,32 @@ public class ClassificationServiceImpl implements ClassificationService {
* @param oldClassification
* @param newClassification
*/
private void updateExistingClassification(ClassificationImpl oldClassification,
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<Classification> getAllClassificationsWithKey(String key, String domain) {
public List<ClassificationSummary> getAllClassifications(String key, String domain) {
LOGGER.debug("entry to getAllClassificationsWithKey(key = {}, domain = {})", key, domain);
List<Classification> result = null;
List<ClassificationSummary> results = new ArrayList<>();
try {
taskanaEngineImpl.openConnection();
List<ClassificationImpl> classifications = classificationMapper.getAllClassificationsWithKey(key, domain);
List<Classification> results = new ArrayList<>();
classifications.stream().forEach(c -> results.add(c));
List<ClassificationSummaryImpl> classificationSummaries = classificationMapper
.getAllClassificationsWithKey(key, domain);
classificationSummaries.stream().forEach(c -> results.add(c));
return results;
} finally {
taskanaEngineImpl.returnConnection();
if (LOGGER.isDebugEnabled()) {
int numberOfResultObjects = result == null ? 0 : result.size();
int numberOfResultObjects = results == null ? 0 : results.size();
LOGGER.debug("exit from getAllClassificationsWithKey(). Returning {} resulting Objects: {} ",
numberOfResultObjects, LoggerUtils.listToString(result));
numberOfResultObjects, LoggerUtils.listToString(results));
}
}
}

View File

@ -0,0 +1,181 @@
package pro.taskana.impl;
import java.sql.Timestamp;
import pro.taskana.ClassificationSummary;
/**
* Implementation for the short summaries of a classification entity.
*/
public class ClassificationSummaryImpl implements ClassificationSummary {
private String id;
private String key;
private String category;
private String type;
private String domain;
private String name;
private Timestamp validUntil;
@Override
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
@Override
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
@Override
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
@Override
public String getName() {
return name;
}
public void setName(String name) {
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;
int result = 1;
result = prime * result + ((category == null) ? 0 : category.hashCode());
result = prime * result + ((domain == null) ? 0 : domain.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
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;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
ClassificationSummaryImpl other = (ClassificationSummaryImpl) obj;
if (category == null) {
if (other.category != null) {
return false;
}
} else if (!category.equals(other.category)) {
return false;
}
if (domain == null) {
if (other.domain != null) {
return false;
}
} else if (!domain.equals(other.domain)) {
return false;
}
if (id == null) {
if (other.id != null) {
return false;
}
} else if (!id.equals(other.id)) {
return false;
}
if (key == null) {
if (other.key != null) {
return false;
}
} else if (!key.equals(other.key)) {
return false;
}
if (name == null) {
if (other.name != null) {
return false;
}
} else if (!name.equals(other.name)) {
return false;
}
if (type == null) {
if (other.type != null) {
return false;
}
} 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;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("ClassificationSummary [id=");
builder.append(id);
builder.append(", key=");
builder.append(key);
builder.append(", category=");
builder.append(category);
builder.append(", type=");
builder.append(type);
builder.append(", domain=");
builder.append(domain);
builder.append(", name=");
builder.append(name);
builder.append(", validUntil=");
builder.append(validUntil);
builder.append("]");
return builder.toString();
}
}

View File

@ -148,5 +148,4 @@ public class TaskSummary {
builder.append("]");
return builder.toString();
}
}

View File

@ -11,6 +11,7 @@ import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import pro.taskana.impl.ClassificationImpl;
import pro.taskana.impl.ClassificationSummaryImpl;
/**
* This class is the mybatis mapping of classifications.
@ -24,7 +25,7 @@ public interface ClassificationMapper {
+ "WHERE KEY = #{key}"
+ "AND DOMAIN = #{domain}"
+ "AND VALID_UNTIL = #{valid_until}")
@Results({@Result(property = "id", column = "ID"),
@Results({ @Result(property = "id", column = "ID"),
@Result(property = "key", column = "KEY"),
@Result(property = "parentClassificationKey", column = "PARENT_CLASSIFICATION_KEY"),
@Result(property = "category", column = "CATEGORY"),
@ -46,14 +47,14 @@ public interface ClassificationMapper {
@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 = "validUntil", column = "VALID_UNTIL") })
ClassificationImpl findByKeyAndDomain(@Param("key") String key, @Param("domain") String domain,
@Param("valid_until") Date validUntil);
@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 "
+ "FROM CLASSIFICATION "
+ "WHERE ID = #{id} ")
@Results({@Result(property = "id", column = "ID"),
@Results({ @Result(property = "id", column = "ID"),
@Result(property = "key", column = "KEY"),
@Result(property = "parentClassificationKey", column = "PARENT_CLASSIFICATION_KEY"),
@Result(property = "category", column = "CATEGORY"),
@ -75,7 +76,7 @@ public interface ClassificationMapper {
@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 = "validUntil", column = "VALID_UNTIL") })
ClassificationImpl findById(@Param("id") String id);
@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})")
@ -86,36 +87,21 @@ public interface ClassificationMapper {
void update(@Param("classification") ClassificationImpl classification);
@Select("<script>"
+ "SELECT * "
+ "SELECT ID, KEY, CATEGORY, TYPE, DOMAIN, NAME, VALID_UNTIL "
+ "FROM CLASSIFICATION "
+ "WHERE KEY = #{key} "
+ "AND DOMAIN = #{domain}"
+ "ORDER BY VALID_FROM DESC"
+ "</script>")
@Results({@Result(property = "id", column = "ID"),
@Results({ @Result(property = "id", column = "ID"),
@Result(property = "key", column = "KEY"),
@Result(property = "parentClassificationKey", column = "PARENT_CLASSIFICATION_KEY"),
@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 = "applicationEntryPoint", column = "APPLICATION_ENTRY_POINT"),
@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<ClassificationImpl> getAllClassificationsWithKey(@Param("key") String key, @Param("domain") String domain);
@Result(property = "validUntil", column = "VALID_UNTIL") })
List<ClassificationSummaryImpl> 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 "
@ -123,7 +109,7 @@ public interface ClassificationMapper {
+ "WHERE c.KEY = #{classificationKey}"
+ "AND W.KEY = #{workbasketKey}"
+ "AND VALID_UNTIL = #{valid_until}")
@Results({@Result(property = "id", column = "ID"),
@Results({ @Result(property = "id", column = "ID"),
@Result(property = "key", column = "KEY"),
@Result(property = "parentClassificationKey", column = "PARENT_CLASSIFICATION_KEY"),
@Result(property = "category", column = "CATEGORY"),
@ -145,9 +131,8 @@ public interface ClassificationMapper {
@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 = "validUntil", column = "VALID_UNTIL") })
ClassificationImpl findByTask(@Param("classificationKey") String classificationKey,
@Param("workbasketKey") String workbasketKey,
@Param("valid_until") Date validUntil);
}

View File

@ -6,8 +6,8 @@ import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import pro.taskana.impl.ClassificationImpl;
import pro.taskana.impl.ClassificationQueryImpl;
import pro.taskana.impl.ClassificationSummaryImpl;
import pro.taskana.impl.ObjectReferenceQueryImpl;
import pro.taskana.impl.TaskImpl;
import pro.taskana.impl.TaskQueryImpl;
@ -109,27 +109,13 @@ public interface QueryMapper {
+ "</where>"
+ "</script>")
@Results({ @Result(property = "id", column = "ID"),
@Result(property = "parentClassificationId", column = "PARENT_CLASSIFICATION_ID"),
@Result(property = "key", column = "KEY"),
@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") })
List<ClassificationImpl> queryClassification(ClassificationQueryImpl classificationQuery);
List<ClassificationSummaryImpl> queryClassification(ClassificationQueryImpl classificationQuery);
@Select("<script>SELECT ID, COMPANY, SYSTEM, SYSTEM_INSTANCE, TYPE, VALUE "
+ "FROM OBJECT_REFERENCE "
@ -194,5 +180,4 @@ public interface QueryMapper {
@Result(property = "orgLevel3", column = "ORG_LEVEL_3"),
@Result(property = "orgLevel4", column = "ORG_LEVEL_4") })
List<WorkbasketSummary> queryWorkbasket(WorkbasketQueryImpl workbasketQuery);
}

View File

@ -16,6 +16,7 @@ import org.junit.Test;
import acceptance.AbstractAccTest;
import pro.taskana.Classification;
import pro.taskana.ClassificationService;
import pro.taskana.ClassificationSummary;
import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.NotAuthorizedException;
@ -39,9 +40,12 @@ public class DeleteClassificationAccTest extends AbstractAccTest {
assertNotNull(classification);
assertEquals("", classification.getDomain());
List<Classification> classifications = classificationService.getAllClassificationsWithKey("L140101",
List<ClassificationSummary> classifications = classificationService.getAllClassifications("L140101",
"DOMAIN_A");
Date lastOneValidUntil = classifications.get(classifications.size() - 1).getValidUntil();
ClassificationSummary temp = classifications.get(classifications.size() - 1);
classification = classificationService.getClassification(temp.getKey(), temp.getDomain());
Date lastOneValidUntil = classification.getValidUntil();
assertTrue(lastOneValidUntil.before(new Date(System.currentTimeMillis())));
}

View File

@ -11,6 +11,7 @@ import org.junit.Test;
import acceptance.AbstractAccTest;
import pro.taskana.Classification;
import pro.taskana.ClassificationService;
import pro.taskana.ClassificationSummary;
import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
@ -28,8 +29,8 @@ public class GetClassificationAccTest extends AbstractAccTest {
public void testFindAllClassifications()
throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
List<Classification> classificationList = classificationService.getClassificationTree();
Assert.assertNotNull(classificationList);
List<ClassificationSummary> classificationSummaryList = classificationService.getClassificationTree();
Assert.assertNotNull(classificationSummaryList);
}
@Test

View File

@ -12,8 +12,8 @@ import org.junit.AfterClass;
import org.junit.Test;
import acceptance.AbstractAccTest;
import pro.taskana.Classification;
import pro.taskana.ClassificationService;
import pro.taskana.ClassificationSummary;
import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
@ -31,36 +31,33 @@ public class QueryClassificationAccTest extends AbstractAccTest {
public void testFindClassificationsByCategoryAndDomain()
throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
List<Classification> classificationList = classificationService.createClassificationQuery()
List<ClassificationSummary> classificationSummaryList = classificationService.createClassificationQuery()
.category("MANUAL")
.domain("DOMAIN_A")
.list();
assertNotNull(classificationList);
assertEquals(2, classificationList.size());
assertNotNull(classificationSummaryList);
assertEquals(2, classificationSummaryList.size());
}
@Test
public void testGetOneClassificationForMultipleDomains()
throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
List<Classification> classifications = classificationService.createClassificationQuery()
List<ClassificationSummary> classifications = classificationService.createClassificationQuery()
.key("L10000")
.domain("DOMAIN_A", "DOMAIN_B", "")
.list();
assertNotNull(classifications);
assertEquals(3, classifications.size());
assertEquals(999, classifications.get(0).getPriority());
assertEquals(1, classifications.get(1).getPriority());
assertEquals(1, classifications.get(2).getPriority());
}
@Test
public void testGetClassificationsForTypeAndParent()
throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
List<Classification> classifications = classificationService.createClassificationQuery()
List<ClassificationSummary> classifications = classificationService.createClassificationQuery()
.type("TASK", "DOCUMENT")
.parentClassificationKey("")
.list();
@ -68,14 +65,16 @@ public class QueryClassificationAccTest extends AbstractAccTest {
assertNotNull(classifications);
assertEquals(21, classifications.size());
List<Classification> documentTypes = classifications.stream()
List<ClassificationSummary> documentTypes = classifications.stream()
.filter(c -> c.getType().equals("DOCUMENT"))
.collect(
Collectors.toList());
assertEquals(2, documentTypes.size());
List<Classification> taskTypes = classifications.stream().filter(c -> c.getType().equals("TASK")).collect(
Collectors.toList());
List<ClassificationSummary> taskTypes = classifications.stream()
.filter(c -> c.getType().equals("TASK"))
.collect(
Collectors.toList());
assertEquals(19, taskTypes.size());
}
@ -83,7 +82,7 @@ public class QueryClassificationAccTest extends AbstractAccTest {
public void testGetClassificationsForKeyAndCategories()
throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
List<Classification> classifications = classificationService.createClassificationQuery()
List<ClassificationSummary> classifications = classificationService.createClassificationQuery()
.key("T2100", "L10000")
.category("EXTERN", "MANUAL")
.list();
@ -91,13 +90,13 @@ public class QueryClassificationAccTest extends AbstractAccTest {
assertNotNull(classifications);
assertEquals(6, classifications.size());
List<Classification> externCategory = classifications.stream()
List<ClassificationSummary> externCategory = classifications.stream()
.filter(c -> c.getCategory().equals("EXTERN"))
.collect(
Collectors.toList());
assertEquals(3, externCategory.size());
List<Classification> manualCategory = classifications.stream()
List<ClassificationSummary> manualCategory = classifications.stream()
.filter(c -> c.getCategory().equals("MANUAL"))
.collect(
Collectors.toList());
@ -108,7 +107,7 @@ public class QueryClassificationAccTest extends AbstractAccTest {
public void testGetClassificationsWithParentKey()
throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
List<Classification> classifications = classificationService.createClassificationQuery()
List<ClassificationSummary> classifications = classificationService.createClassificationQuery()
.key("A12", "A13")
.category("EXTERN", "MANUAL")
.parentClassificationKey("L10000")
@ -131,7 +130,7 @@ public class QueryClassificationAccTest extends AbstractAccTest {
public void testGetClassificationsWithCutsomFields()
throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
List<Classification> classifications = classificationService.createClassificationQuery()
List<ClassificationSummary> classifications = classificationService.createClassificationQuery()
.customFields("VNR,RVNR,KOLVNR", "VNR")
.domain("DOMAIN_A")
.list();

View File

@ -1,18 +1,22 @@
package acceptance.classification;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import java.sql.SQLException;
import java.util.List;
import org.h2.store.fs.FileUtils;
import org.junit.AfterClass;
import org.junit.Ignore;
import org.junit.Test;
import acceptance.AbstractAccTest;
import pro.taskana.Classification;
import pro.taskana.ClassificationService;
import pro.taskana.ClassificationSummary;
import pro.taskana.exceptions.ClassificationNotFoundException;
/**
@ -24,12 +28,13 @@ public class UpdateClassificationAccTest extends AbstractAccTest {
super();
}
@Ignore
@Test
public void testUpdateClassification() throws SQLException, ClassificationNotFoundException {
String newName = "updated Name";
String newEntryPoint = "updated EntryPoint";
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification classification = classificationService.getClassification("T2100", "DOMAIN_A");
classification.setApplicationEntryPoint("testApplicationEntryPoint");
classification.setApplicationEntryPoint(newEntryPoint);
classification.setCategory("PROCESS");
classification.setCustom1("newCustom1");
classification.setCustom2("newCustom2");
@ -41,24 +46,25 @@ public class UpdateClassificationAccTest extends AbstractAccTest {
classification.setCustom8("newCustom8");
classification.setDescription("newDescription");
classification.setIsValidInDomain(false);
classification.setName("newName");
classification.setName(newName);
classification.setParentClassificationKey("T2000");
classification.setPriority(1000);
classification.setServiceLevel("newServiceLevel");
// setType and setDomain must be made impossible! (remove setter from interface)
// classification.setType("DOCUMENT");
// classification.setDomain("DOMAIN_B");
// Classification updatedClassification = classificationService.updateClassification(classification);
classification.setServiceLevel("P2DT3H4M");
classificationService.updateClassification(classification);
// assertNotNull(updatedClassification);
// assertNotEquals(classification, updatedClassification);
// assert values are set properly
// Get and check the new value
Classification updatedClassification = classificationService.getClassification("T2100", "DOMAIN_A");
assertNotNull(updatedClassification);
assertThat(updatedClassification.getName(), equalTo(newName));
assertThat(updatedClassification.getApplicationEntryPoint(), equalTo(newEntryPoint));
// rename ...WithKey to simply getAllClassifications
List<Classification> classifications = classificationService.getAllClassificationsWithKey("T6310", "DOMAIN_A");
// Check that classification got historized
List<ClassificationSummary> classifications = classificationService.getAllClassifications("T2100",
"DOMAIN_A");
assertEquals(2, classifications.size());
// assert that the old one has the correct valid until information
// assert that the old one has the correct valid until information
assertThat(classifications.get(0).getValidUntil(), not(equalTo(classifications.get(1).getValidUntil())));
}
@AfterClass

View File

@ -14,7 +14,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.Classification;
import pro.taskana.ClassificationSummary;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
@ -44,7 +44,7 @@ public class ClassificationQueryImplTest {
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectList(any(), any())).thenReturn(new ArrayList<>());
List<Classification> result = classificationQueryImpl.name("test", "asd", "blubber")
List<ClassificationSummary> result = classificationQueryImpl.name("test", "asd", "blubber")
.type("cool", "bla")
.priority(1, 2)
.parentClassificationKey("superId")
@ -58,7 +58,7 @@ public class ClassificationQueryImplTest {
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectList(any(), any(), any())).thenReturn(new ArrayList<>());
List<Classification> result = classificationQueryImpl.name("test", "asd", "blubber")
List<ClassificationSummary> result = classificationQueryImpl.name("test", "asd", "blubber")
.type("cool", "bla")
.priority(1, 2)
.parentClassificationKey("superId")
@ -69,9 +69,9 @@ public class ClassificationQueryImplTest {
@Test
public void should_ReturnOneItem_when_BuilderIsUsed() throws NotAuthorizedException, InvalidArgumentException {
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
when(sqlSession.selectOne(any(), any())).thenReturn(new ClassificationImpl());
when(sqlSession.selectOne(any(), any())).thenReturn(new ClassificationSummaryImpl());
Classification result = classificationQueryImpl.name("test", "asd", "blubber")
ClassificationSummary result = classificationQueryImpl.name("test", "asd", "blubber")
.type("cool", "bla")
.priority(1, 2)
.parentClassificationKey("superId")

View File

@ -24,6 +24,7 @@ import org.mockito.Spy;
import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.Classification;
import pro.taskana.ClassificationSummary;
import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException;
@ -69,7 +70,7 @@ public class ClassificationServiceImplTest {
.validUntil(ClassificationServiceImpl.CURRENT_CLASSIFICATIONS_VALID_UNTIL);
doReturn(classifications).when(classificationQueryImplMock).list();
List<Classification> actaulResults = cutSpy.getClassificationTree();
List<ClassificationSummary> actaulResults = cutSpy.getClassificationTree();
verify(taskanaEngineImplMock, times(2)).openConnection();
verify(cutSpy, times(1)).createClassificationQuery();
@ -159,7 +160,7 @@ public class ClassificationServiceImplTest {
@Test
public void testCreateClassificationIntoRootDomain()
throws ClassificationAlreadyExistException {
Classification classification = createDummyClassification();
ClassificationImpl classification = (ClassificationImpl) createDummyClassification();
classification.setDomain("");
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain(), ClassificationServiceImpl.CURRENT_CLASSIFICATIONS_VALID_UNTIL);
@ -169,7 +170,7 @@ public class ClassificationServiceImplTest {
verify(taskanaEngineImplMock, times(1)).openConnection();
verify(classificationMapperMock, times(1)).findByKeyAndDomain(classification.getKey(),
classification.getDomain(), ClassificationServiceImpl.CURRENT_CLASSIFICATIONS_VALID_UNTIL);
verify(classificationMapperMock, times(1)).insert((ClassificationImpl) classification);
verify(classificationMapperMock, times(1)).insert(classification);
verify(taskanaEngineImplMock, times(1)).returnConnection();
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
assertThat(classification.getCreated(), equalTo(today));
@ -181,7 +182,7 @@ public class ClassificationServiceImplTest {
@Test
public void testUpdateClassificationAtNewDomain() throws ClassificationNotFoundException {
Classification classification = createDummyClassification();
Classification oldClassification = createDummyClassification();
ClassificationImpl oldClassification = (ClassificationImpl) createDummyClassification();
oldClassification.setDomain("");
doReturn(oldClassification).when(cutSpy).getClassification(classification.getKey(), classification.getDomain());
@ -220,12 +221,12 @@ public class ClassificationServiceImplTest {
@Test
public void testGetAllClassificationWithId() {
Classification dummyClassification = createDummyClassification();
List<ClassificationImpl> classificationImpls = Arrays.asList(createDummyCLassificationImpl(),
createDummyCLassificationImpl());
List<ClassificationSummary> classificationImpls = Arrays.asList(new ClassificationSummaryImpl(),
new ClassificationSummaryImpl());
doReturn(classificationImpls).when(classificationMapperMock)
.getAllClassificationsWithKey(dummyClassification.getKey(), dummyClassification.getDomain());
List<Classification> actualResults = cutSpy.getAllClassificationsWithKey(dummyClassification.getKey(),
List<ClassificationSummary> actualResults = cutSpy.getAllClassifications(dummyClassification.getKey(),
dummyClassification.getDomain());
verify(taskanaEngineImplMock, times(1)).openConnection();

View File

@ -651,7 +651,7 @@ public class TaskServiceImplTest {
doReturn(true).when(taskanaEngineConfigurationMock).isSecurityEnabled();
doReturn(task).when(cutSpy).getTask(task.getId());
doReturn(destinationWorkbasket).when(workbasketServiceMock).getWorkbasketByKey(destinationWorkbasket.getKey());
doNothing().when(taskMapperMock).update(any());
doNothing().when(taskMapperMock).update(any());
doNothing().when(workbasketServiceMock).checkAuthorization(destinationWorkbasket.getKey(),
WorkbasketAuthorization.APPEND);
doNothing().when(workbasketServiceMock).checkAuthorization(task.getWorkbasketKey(),
@ -921,7 +921,7 @@ doNothing().when(taskMapperMock).update(any());
Timestamp now = new Timestamp(System.currentTimeMillis());
task.setCreated(now);
task.setModified(now);
Classification classification = new ClassificationImpl();
ClassificationImpl classification = new ClassificationImpl();
classification.setName("dummy-classification");
classification.setDomain("dummy-domain");
classification.setKey("dummy-classification-key");

View File

@ -4,8 +4,8 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import pro.taskana.Classification;
import pro.taskana.ClassificationQuery;
import pro.taskana.ClassificationSummary;
import pro.taskana.exceptions.NotAuthorizedException;
/**
@ -13,15 +13,12 @@ import pro.taskana.exceptions.NotAuthorizedException;
*/
public class TestClassificationQuery implements ClassificationQuery {
private List<ClassificationImpl> classifications;
private List<ClassificationSummaryImpl> classifications;
private String[] parentClassificationKey;
private Date[] validUntil;
private String description;
public TestClassificationQuery(List<ClassificationImpl> classifications) {
public TestClassificationQuery(List<ClassificationSummaryImpl> classifications) {
this.classifications = classifications;
}
@ -104,10 +101,10 @@ public class TestClassificationQuery implements ClassificationQuery {
}
@Override
public List<Classification> list() throws NotAuthorizedException {
List<Classification> returnedClassifications = new ArrayList<>();
public List<ClassificationSummary> list() throws NotAuthorizedException {
List<ClassificationSummary> returnedClassifications = new ArrayList<>();
returnedClassifications.addAll(classifications);
for (ClassificationImpl classification : classifications) {
for (ClassificationSummaryImpl classification : classifications) {
if (this.validUntil != null) {
boolean validDate = false;
for (Date valid : validUntil) {
@ -119,38 +116,18 @@ public class TestClassificationQuery implements ClassificationQuery {
returnedClassifications.remove(classification);
}
}
if (this.parentClassificationKey != null) {
Boolean classificationWithParent = false;
if (classification.getParentClassificationKey() != null) {
for (String parent : this.parentClassificationKey) {
if (parent.equals(classification.getParentClassificationKey())) {
classificationWithParent = true;
}
}
}
if (!classificationWithParent) {
returnedClassifications.remove(classification);
}
}
if (this.description != null) {
if (classification.getDescription() != description) {
returnedClassifications.remove(classification);
}
}
}
return returnedClassifications;
}
@Override
public List<Classification> list(int offset, int limit) throws NotAuthorizedException {
public List<ClassificationSummary> list(int offset, int limit) throws NotAuthorizedException {
return null;
}
@Override
public ClassificationImpl single() throws NotAuthorizedException {
public ClassificationSummary single() throws NotAuthorizedException {
return null;
}
}

View File

@ -25,6 +25,7 @@ import org.junit.Test;
import pro.taskana.Classification;
import pro.taskana.ClassificationService;
import pro.taskana.ClassificationSummary;
import pro.taskana.TaskanaEngine;
import pro.taskana.TaskanaEngine.ConnectionManagementMode;
import pro.taskana.configuration.TaskanaEngineConfiguration;
@ -136,7 +137,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
assertThat(actualClassification.getKey(), equalTo(key));
assertThat(actualClassification.getDomain(), equalTo(domain + "_2"));
assertThat(actualClassification.getId(), startsWith(ID_PREFIX_CLASSIFICATION));
List<Classification> rootResults = classificationService.getAllClassificationsWithKey(key, "");
List<ClassificationSummary> rootResults = classificationService.getAllClassifications(key, "");
assertThat(rootResults.size(), equalTo(1));
// invalid serviceLevel
@ -185,7 +186,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
Classification classification = this.createDummyClassificationWithUniqueKey();
Classification actualClassification = classificationService.createClassification(classification);
Date today = Date.valueOf(LocalDate.now());
List<Classification> list = classificationService.createClassificationQuery()
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.validInDomain(Boolean.TRUE)
.created(today)
.validFrom(today)
@ -197,15 +198,14 @@ public class ClassificationServiceImplIntAutoCommitTest {
@Test
public void testUpdateAndClassificationMapper()
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
InvalidArgumentException {
Classification classification = this.createDummyClassificationWithUniqueKey();
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException {
ClassificationImpl classification = (ClassificationImpl) this.createDummyClassificationWithUniqueKey();
classificationService.createClassification(classification);
System.out.println(classification.getId());
classification.setDescription("description");
classificationService.updateClassification(classification);
List<Classification> list = classificationService.createClassificationQuery()
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.validUntil(Date.valueOf("9999-12-31"))
.list();
Assert.assertEquals(1, list.size());
@ -220,30 +220,29 @@ public class ClassificationServiceImplIntAutoCommitTest {
System.out.println(classification.getParentClassificationKey());
List<Classification> temp = classificationService.getClassificationTree();
List<ClassificationImpl> allClassifications = new ArrayList<>();
temp.stream().forEach(c -> allClassifications.add((ClassificationImpl) c));
List<ClassificationSummary> temp = classificationService.getClassificationTree();
List<ClassificationSummary> allClassifications = new ArrayList<>();
temp.stream().forEach(c -> allClassifications.add(c));
Assert.assertEquals(2, allClassifications.size());
}
@Test
public void testFindWithClassificationMapperDomainAndCategory()
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
InvalidArgumentException {
Classification classification1 = this.createDummyClassificationWithUniqueKey();
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException {
ClassificationImpl classification1 = (ClassificationImpl) this.createDummyClassificationWithUniqueKey();
classification1.setDomain("domain1");
classification1.setCategory("category1");
classificationService.createClassification(classification1);
Classification classification2 = this.createDummyClassificationWithUniqueKey();
ClassificationImpl classification2 = (ClassificationImpl) this.createDummyClassificationWithUniqueKey();
classification2.setDomain("domain2");
classification2.setCategory("category1");
classificationService.createClassification(classification2);
Classification classification3 = this.createDummyClassificationWithUniqueKey();
ClassificationImpl classification3 = (ClassificationImpl) this.createDummyClassificationWithUniqueKey();
classification3.setDomain("domain1");
classification3.setCategory("category2");
classificationService.createClassification(classification3);
List<Classification> list = classificationService.createClassificationQuery()
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.category("category1")
.domain("domain1")
.list();
@ -276,7 +275,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
classification4.setCategory("category1");
classificationService.createClassification(classification4);
List<Classification> list = classificationService.createClassificationQuery()
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.descriptionLike("DESC1")
.customFields("custom1")
.list();
@ -289,29 +288,28 @@ public class ClassificationServiceImplIntAutoCommitTest {
@Test
public void testFindWithClassificationMapperPriorityTypeAndParent()
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
NumberFormatException, InvalidArgumentException {
Classification classification = this.createDummyClassificationWithUniqueKey();
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException {
ClassificationImpl classification = (ClassificationImpl) this.createDummyClassificationWithUniqueKey();
classification.setPriority(Integer.decode("5"));
classification.setType("type1");
classificationService.createClassification(classification);
Classification classification1 = this.createDummyClassificationWithUniqueKey();
ClassificationImpl classification1 = (ClassificationImpl) this.createDummyClassificationWithUniqueKey();
classification1.setPriority(Integer.decode("3"));
classification1.setType("type1");
classification1.setParentClassificationKey(classification.getKey());
classificationService.createClassification(classification1);
Classification classification2 = this.createDummyClassificationWithUniqueKey();
ClassificationImpl classification2 = (ClassificationImpl) this.createDummyClassificationWithUniqueKey();
classification2.setPriority(Integer.decode("5"));
classification2.setType("type2");
classification2.setParentClassificationKey(classification.getKey());
classificationService.createClassification(classification2);
Classification classification3 = this.createDummyClassificationWithUniqueKey();
ClassificationImpl classification3 = (ClassificationImpl) this.createDummyClassificationWithUniqueKey();
classification3.setPriority(Integer.decode("5"));
classification3.setType("type1");
classification3.setParentClassificationKey(classification1.getKey());
classificationService.createClassification(classification3);
List<Classification> list = classificationService.createClassificationQuery()
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.parentClassificationKey(classification.getKey())
.list();
Assert.assertEquals(2, list.size());
@ -354,7 +352,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
classificationService.createClassification(classification3);
all++;
List<Classification> list = classificationService.createClassificationQuery().name("name").list();
List<ClassificationSummary> list = classificationService.createClassificationQuery().name("name").list();
Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery().serviceLevel("P1D").descriptionLike("desc").list();
Assert.assertEquals(2, list.size());
@ -375,14 +373,14 @@ public class ClassificationServiceImplIntAutoCommitTest {
classification1.setParentClassificationKey(classification.getKey());
classificationService.updateClassification(classification1);
List<Classification> list = classificationService.createClassificationQuery()
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.parentClassificationKey("")
.list();
Assert.assertEquals(2, list.size());
list = classificationService.createClassificationQuery().validUntil(Date.valueOf("9999-12-31")).list();
Assert.assertEquals(2, list.size());
List<Classification> listAll = classificationService.createClassificationQuery().list();
List<ClassificationSummary> listAll = classificationService.createClassificationQuery().list();
list = classificationService.createClassificationQuery().validFrom(Date.valueOf(LocalDate.now())).list();
Assert.assertEquals(listAll.size(), list.size());
list = classificationService.createClassificationQuery().validInDomain(true).list();

View File

@ -26,6 +26,7 @@ import org.junit.Test;
import pro.taskana.Classification;
import pro.taskana.ClassificationService;
import pro.taskana.ClassificationSummary;
import pro.taskana.TaskanaEngine;
import pro.taskana.TaskanaEngine.ConnectionManagementMode;
import pro.taskana.configuration.TaskanaEngineConfiguration;
@ -145,7 +146,7 @@ public class ClassificationServiceImplIntExplicitTest {
assertThat(actualClassification.getKey(), equalTo(key));
assertThat(actualClassification.getDomain(), equalTo(domain + "_2"));
assertThat(actualClassification.getId(), startsWith(ID_PREFIX_CLASSIFICATION));
List<Classification> rootResults = classificationService.getAllClassificationsWithKey(key, "");
List<ClassificationSummary> rootResults = classificationService.getAllClassifications(key, "");
assertThat(rootResults.size(), equalTo(1));
// invalid serviceLevel
@ -164,7 +165,7 @@ public class ClassificationServiceImplIntExplicitTest {
@Test
public void testFindAllClassifications()
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
ClassificationNotFoundException, InvalidArgumentException {
ClassificationNotFoundException {
Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection);
Classification classification0 = this.createNewClassificationWithUniqueKey();
@ -197,13 +198,13 @@ public class ClassificationServiceImplIntExplicitTest {
@Test
public void testInsertAndClassificationMapper()
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
ClassificationNotFoundException, InvalidArgumentException {
ClassificationNotFoundException {
Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection);
Classification classification = this.createNewClassificationWithUniqueKey();
classificationService.createClassification(classification);
Date today = Date.valueOf(LocalDate.now());
List<Classification> list = classificationService.createClassificationQuery()
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.validInDomain(Boolean.TRUE)
.created(today)
.validFrom(today)
@ -217,13 +218,13 @@ public class ClassificationServiceImplIntExplicitTest {
ClassificationAlreadyExistException, ClassificationNotFoundException, InvalidArgumentException {
Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection);
Classification classification = this.createNewClassificationWithUniqueKey();
ClassificationImpl classification = (ClassificationImpl) this.createNewClassificationWithUniqueKey();
classificationService.createClassification(classification);
System.out.println(classification.getKey());
classification.setDescription("description");
classificationService.updateClassification(classification);
List<Classification> list = classificationService.createClassificationQuery()
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.validUntil(Date.valueOf("9999-12-31"))
.list();
Assert.assertEquals(1, list.size());
@ -238,7 +239,7 @@ public class ClassificationServiceImplIntExplicitTest {
System.out.println(classification.getParentClassificationKey());
List<Classification> allClassifications = classificationService.getClassificationTree();
List<ClassificationSummary> allClassifications = classificationService.getClassificationTree();
Assert.assertEquals(2, allClassifications.size());
connection.commit();
}
@ -246,23 +247,23 @@ public class ClassificationServiceImplIntExplicitTest {
@Test
public void testFindWithClassificationMapperDomainAndCategory()
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
ClassificationNotFoundException, InvalidArgumentException {
ClassificationNotFoundException {
Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection);
Classification classification1 = this.createNewClassificationWithUniqueKey();
ClassificationImpl classification1 = (ClassificationImpl) this.createNewClassificationWithUniqueKey();
classification1.setDomain("domain1");
classification1.setCategory("category1");
classificationService.createClassification(classification1);
Classification classification2 = this.createNewClassificationWithUniqueKey();
ClassificationImpl classification2 = (ClassificationImpl) this.createNewClassificationWithUniqueKey();
classification2.setDomain("domain2");
classification2.setCategory("category1");
classificationService.createClassification(classification2);
Classification classification3 = this.createNewClassificationWithUniqueKey();
ClassificationImpl classification3 = (ClassificationImpl) this.createNewClassificationWithUniqueKey();
classification3.setDomain("domain1");
classification3.setCategory("category2");
classificationService.createClassification(classification3);
List<Classification> list = classificationService.createClassificationQuery()
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.category("category1")
.domain("domain1")
.list();
@ -275,7 +276,7 @@ public class ClassificationServiceImplIntExplicitTest {
@Test
public void testFindWithClassificationMapperCustomAndCategory()
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
ClassificationNotFoundException, InvalidArgumentException {
ClassificationNotFoundException {
Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection);
Classification classification1 = this.createNewClassificationWithUniqueKey();
@ -298,7 +299,7 @@ public class ClassificationServiceImplIntExplicitTest {
classification4.setCategory("category1");
classificationService.createClassification(classification4);
List<Classification> list = classificationService.createClassificationQuery()
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.descriptionLike("DESC1")
.customFields("custom1")
.list();
@ -313,30 +314,30 @@ public class ClassificationServiceImplIntExplicitTest {
@Test
public void testFindWithClassificationMapperPriorityTypeAndParent()
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
ClassificationNotFoundException, InvalidArgumentException {
ClassificationNotFoundException {
Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection);
Classification classification = this.createNewClassificationWithUniqueKey();
ClassificationImpl classification = (ClassificationImpl) this.createNewClassificationWithUniqueKey();
classification.setPriority(Integer.decode("5"));
classification.setType("type1");
classificationService.createClassification(classification);
Classification classification1 = this.createNewClassificationWithUniqueKey();
ClassificationImpl classification1 = (ClassificationImpl) this.createNewClassificationWithUniqueKey();
classification1.setPriority(Integer.decode("3"));
classification1.setType("type1");
classification1.setParentClassificationKey(classification.getKey());
classificationService.createClassification(classification1);
Classification classification2 = this.createNewClassificationWithUniqueKey();
ClassificationImpl classification2 = (ClassificationImpl) this.createNewClassificationWithUniqueKey();
classification2.setPriority(Integer.decode("5"));
classification2.setType("type2");
classification2.setParentClassificationKey(classification.getKey());
classificationService.createClassification(classification2);
Classification classification3 = this.createNewClassificationWithUniqueKey();
ClassificationImpl classification3 = (ClassificationImpl) this.createNewClassificationWithUniqueKey();
classification3.setPriority(Integer.decode("5"));
classification3.setType("type1");
classification3.setParentClassificationKey(classification1.getKey());
classificationService.createClassification(classification3);
List<Classification> list = classificationService.createClassificationQuery()
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.parentClassificationKey(classification.getKey())
.list();
Assert.assertEquals(2, list.size());
@ -354,7 +355,7 @@ public class ClassificationServiceImplIntExplicitTest {
@Test
public void testFindWithClassificationMapperServiceLevelNameAndDescription()
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
ClassificationNotFoundException, InvalidArgumentException {
ClassificationNotFoundException {
Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection);
int all = 0;
@ -382,7 +383,7 @@ public class ClassificationServiceImplIntExplicitTest {
classificationService.createClassification(classification3);
all++;
List<Classification> list = classificationService.createClassificationQuery().name("name").list();
List<ClassificationSummary> list = classificationService.createClassificationQuery().name("name").list();
Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery().serviceLevel("P1D").descriptionLike("desc").list();
Assert.assertEquals(2, list.size());
@ -405,7 +406,7 @@ public class ClassificationServiceImplIntExplicitTest {
classification1.setParentClassificationKey(classification.getKey());
classificationService.updateClassification(classification1);
List<Classification> list = classificationService.createClassificationQuery()
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.parentClassificationKey("")
.list();
Assert.assertEquals(2, list.size());
@ -413,7 +414,7 @@ public class ClassificationServiceImplIntExplicitTest {
Assert.assertEquals(2, list.size());
connection.commit();
List<Classification> listAll = classificationService.createClassificationQuery().list();
List<ClassificationSummary> listAll = classificationService.createClassificationQuery().list();
list = classificationService.createClassificationQuery().validFrom(Date.valueOf(LocalDate.now())).list();
Assert.assertEquals(listAll.size(), list.size());
list = classificationService.createClassificationQuery().validInDomain(true).list();

View File

@ -17,7 +17,6 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import pro.taskana.Classification;
import pro.taskana.ClassificationService;
import pro.taskana.TaskMonitorService;
import pro.taskana.TaskanaEngine;
@ -35,6 +34,7 @@ import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.exceptions.TaskAlreadyExistException;
import pro.taskana.exceptions.TaskNotFoundException;
import pro.taskana.exceptions.WorkbasketNotFoundException;
import pro.taskana.impl.ClassificationImpl;
import pro.taskana.impl.JunitHelper;
import pro.taskana.impl.TaskImpl;
import pro.taskana.impl.TaskServiceImpl;
@ -111,7 +111,7 @@ public class TaskMonitorServiceImplIntAutocommitTest {
workbasket2.setType(WorkbasketType.GROUP);
workBasketService.createWorkbasket(workbasket2);
Classification classification = classificationService.newClassification();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST");
classification.setDomain("novatec");
classificationService.createClassification(classification);

View File

@ -18,7 +18,6 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import pro.taskana.Classification;
import pro.taskana.ClassificationService;
import pro.taskana.TaskMonitorService;
import pro.taskana.TaskanaEngine;
@ -36,6 +35,7 @@ import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.exceptions.TaskAlreadyExistException;
import pro.taskana.exceptions.TaskNotFoundException;
import pro.taskana.exceptions.WorkbasketNotFoundException;
import pro.taskana.impl.ClassificationImpl;
import pro.taskana.impl.JunitHelper;
import pro.taskana.impl.TaskImpl;
import pro.taskana.impl.TaskServiceImpl;
@ -116,7 +116,7 @@ public class TaskMonitorServiceImplIntExplicitTest {
workbasket2.setType(WorkbasketType.GROUP);
workBasketService.createWorkbasket(workbasket2);
Classification classification = classificationService.newClassification();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST");
classification.setDomain("novatec");
classificationService.createClassification(classification);

View File

@ -22,7 +22,6 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import pro.taskana.Classification;
import pro.taskana.ClassificationService;
import pro.taskana.Task;
import pro.taskana.TaskanaEngine;
@ -106,7 +105,7 @@ public class TaskServiceImplIntAutocommitTest {
wb.setType(WorkbasketType.GROUP);
wb.setDomain("novatec");
taskanaEngine.getWorkbasketService().createWorkbasket(wb);
Classification classification = classificationService.newClassification();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST");
classification.setDomain("novatec");
taskanaEngine.getClassificationService().createClassification(classification);
@ -137,11 +136,13 @@ public class TaskServiceImplIntAutocommitTest {
wb.setDomain("novatec");
wb.setKey("wb1k1");
taskanaEngine.getWorkbasketService().createWorkbasket(wb);
Classification classification = classificationService.newClassification();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST");
classification.setDomain("novatec");
classification = taskanaEngine.getClassificationService().createClassification(classification);
classification = taskanaEngine.getClassificationService().getClassification(classification.getKey(),
classification = (ClassificationImpl) taskanaEngine.getClassificationService()
.createClassification(classification);
classification = (ClassificationImpl) taskanaEngine.getClassificationService().getClassification(
classification.getKey(),
classification.getDomain());
TaskImpl task = (TaskImpl) taskServiceImpl.newTask();
@ -173,7 +174,7 @@ public class TaskServiceImplIntAutocommitTest {
wb.setType(WorkbasketType.GROUP);
wb.setDomain("novatec");
te.getWorkbasketService().createWorkbasket(wb);
Classification classification = te.getClassificationService().newClassification();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST");
classification.setDomain("novatec");
te.getClassificationService().createClassification(classification);
@ -199,7 +200,7 @@ public class TaskServiceImplIntAutocommitTest {
wb.setType(WorkbasketType.GROUP);
wb.setDomain("novatec");
taskanaEngine.getWorkbasketService().createWorkbasket(wb);
Classification classification = classificationService.newClassification();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST");
classification.setDomain("novatec");
taskanaEngine.getClassificationService().createClassification(classification);
@ -241,7 +242,7 @@ public class TaskServiceImplIntAutocommitTest {
dummyWorkbasket.setDomain("novatec");
dummyWorkbasket = workbasketService.createWorkbasket(dummyWorkbasket);
Classification dummyClassification = classificationService.newClassification();
ClassificationImpl dummyClassification = (ClassificationImpl) classificationService.newClassification();
dummyClassification.setKey("1");
dummyClassification.setDomain("novatec");
dummyClassification.setName("Dummy-Classification");
@ -466,7 +467,7 @@ public class TaskServiceImplIntAutocommitTest {
wb.setType(WorkbasketType.GROUP);
wb.setDomain("novatec");
taskanaEngine.getWorkbasketService().createWorkbasket(wb);
Classification classification = classificationService.newClassification();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST");
classification.setDomain("novatec");
taskanaEngine.getClassificationService().createClassification(classification);

View File

@ -25,7 +25,6 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import pro.taskana.Classification;
import pro.taskana.ClassificationService;
import pro.taskana.Task;
import pro.taskana.TaskanaEngine;
@ -115,7 +114,7 @@ public class TaskServiceImplIntExplicitTest {
workbasket.setKey("k1");
workbasket.setType(WorkbasketType.GROUP);
workbasket.setDomain("novatec");
Classification classification = classificationService.newClassification();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST");
classification.setDomain("novatec");
taskanaEngineImpl.getWorkbasketService().createWorkbasket(workbasket);
@ -190,12 +189,11 @@ public class TaskServiceImplIntExplicitTest {
workbasket.setName("workbasket99");
workbasket.setType(WorkbasketType.GROUP);
workbasket.setDomain("novatec");
workBasketServiceImpl.createWorkbasket(workbasket);
Classification classification = classificationService.newClassification();
workbasket = workBasketServiceImpl.createWorkbasket(workbasket);
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST");
classification.setDomain("novatec");
workbasket.setName("workbasket99");
classificationServiceImpl.createClassification(classification);
classification = (ClassificationImpl) classificationServiceImpl.createClassification(classification);
Task task = taskServiceImpl.newTask();
task.setName("Unit Test Task");
@ -220,7 +218,7 @@ public class TaskServiceImplIntExplicitTest {
generateSampleAccessItems();
Classification classification = classificationService.newClassification();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST1");
classification.setDomain("novatec");
classification.setCategory("MANUAL");
@ -319,9 +317,9 @@ public class TaskServiceImplIntExplicitTest {
wb = workbasketService.createWorkbasket(wb);
this.createWorkbasketWithSecurity(wb, CurrentUserContext.getUserid(), true, true,
true, false);
Classification classification = classificationService.newClassification(); // not persisted, not found.
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setDomain(wb.getDomain());
classification.setName("not persisted - so not found.");
classification.setName("not persisted - so not found object.");
classification.setKey(UUID.randomUUID().toString());
Task task = this.generateDummyTask();
@ -342,7 +340,7 @@ public class TaskServiceImplIntExplicitTest {
WorkbasketImpl workbasket = (WorkbasketImpl) workbasketService.newWorkbasket();
workbasket.setName("workbasket");
Classification classification = classificationService.newClassification();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST");
classification.setDomain("novatec");
classificationService.createClassification(classification);
@ -567,7 +565,7 @@ public class TaskServiceImplIntExplicitTest {
workbasket.setDomain("novatec");
taskanaEngine.getWorkbasketService().createWorkbasket(workbasket);
Classification classification = classificationService.newClassification();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification();
classification.setKey("TEST");
classification.setDomain("novatec");
taskanaEngine.getClassificationService().createClassification(classification);

View File

@ -1,5 +1,5 @@
/**
*
*
*/
package pro.taskana.rest;
@ -17,61 +17,63 @@ import org.springframework.web.bind.annotation.RestController;
import pro.taskana.Classification;
import pro.taskana.ClassificationService;
import pro.taskana.ClassificationSummary;
@RestController
@RequestMapping(path = "/v1/classifications", produces = { MediaType.APPLICATION_JSON_VALUE })
public class ClassificationController {
@Autowired
private ClassificationService classificationService;
@Autowired
private ClassificationService classificationService;
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<List<Classification>> getClassifications() {
try {
List<Classification> classificationTree = classificationService.getClassificationTree();
return ResponseEntity.status(HttpStatus.OK).body(classificationTree);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
}
}
@RequestMapping(value = "/{classificationKey}", method = RequestMethod.GET)
public ResponseEntity<Classification> getClassification(@PathVariable String classificationKey) {
try {
Classification classification = classificationService.getClassification(classificationKey, "");
return ResponseEntity.status(HttpStatus.OK).body(classification);
} catch(Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<List<ClassificationSummary>> getClassifications() {
try {
List<ClassificationSummary> classificationTree = classificationService.getClassificationTree();
return ResponseEntity.status(HttpStatus.OK).body(classificationTree);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
}
}
@RequestMapping(value = "/{classificationKey}/{domain}", method = RequestMethod.GET)
public ResponseEntity<Classification> getClassification(@PathVariable String classificationKey, @PathVariable String domain) {
try {
Classification classification = classificationService.getClassification(classificationKey, domain);
@RequestMapping(value = "/{classificationKey}", method = RequestMethod.GET)
public ResponseEntity<Classification> getClassification(@PathVariable String classificationKey) {
try {
Classification classification = classificationService.getClassification(classificationKey, "");
return ResponseEntity.status(HttpStatus.OK).body(classification);
} catch(Exception e) {
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
}
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<Classification> createClassification(@RequestBody Classification classification) {
try {
classificationService.createClassification(classification);
return ResponseEntity.status(HttpStatus.CREATED).body(classification);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
@RequestMapping(value = "/{classificationKey}/{domain}", method = RequestMethod.GET)
public ResponseEntity<Classification> getClassification(@PathVariable String classificationKey,
@PathVariable String domain) {
try {
Classification classification = classificationService.getClassification(classificationKey, domain);
return ResponseEntity.status(HttpStatus.OK).body(classification);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
@RequestMapping(method = RequestMethod.PUT)
public ResponseEntity<Classification> updateClassification(@RequestBody Classification classification) {
try {
classificationService.updateClassification(classification);
return ResponseEntity.status(HttpStatus.CREATED).body(classification);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<Classification> createClassification(@RequestBody Classification classification) {
try {
classificationService.createClassification(classification);
return ResponseEntity.status(HttpStatus.CREATED).body(classification);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
@RequestMapping(method = RequestMethod.PUT)
public ResponseEntity<Classification> updateClassification(@RequestBody Classification classification) {
try {
classificationService.updateClassification(classification);
return ResponseEntity.status(HttpStatus.CREATED).body(classification);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
}