Added prefixes to id definitions and changed varchar(36) to char(40)

This commit is contained in:
Eberhard Mayer 2017-07-05 11:15:16 +02:00
parent cff6901846
commit f444ad3a5d
7 changed files with 70 additions and 38 deletions

View File

@ -1,9 +1,9 @@
package org.taskana;
import org.taskana.model.Classification;
import java.util.List;
import org.taskana.model.Classification;
public interface ClassificationService {
/**

View File

@ -7,8 +7,8 @@ import org.taskana.exceptions.TaskNotFoundException;
import org.taskana.exceptions.WorkbasketNotFoundException;
import org.taskana.model.DueWorkbasketCounter;
import org.taskana.model.Task;
import org.taskana.model.TaskStateCounter;
import org.taskana.model.TaskState;
import org.taskana.model.TaskStateCounter;
public interface TaskService {

View File

@ -1,16 +1,19 @@
package org.taskana.impl;
import java.sql.Date;
import java.time.Duration;
import java.time.LocalDate;
import java.util.List;
import org.taskana.ClassificationService;
import org.taskana.impl.util.IdGenerator;
import org.taskana.model.Classification;
import org.taskana.model.mappings.ClassificationMapper;
import java.sql.Date;
import java.time.LocalDate;
import java.util.List;
import java.util.UUID;
public class ClassificationServiceImpl implements ClassificationService {
private static final String ID_PREFIX_CLASSIFICATION = "CLI";
private ClassificationMapper classificationMapper;
public ClassificationServiceImpl(ClassificationMapper classificationMapper) {
@ -40,7 +43,7 @@ public class ClassificationServiceImpl implements ClassificationService {
@Override
public void insertClassification(Classification classification) {
classification.setId(UUID.randomUUID().toString());
classification.setId(IdGenerator.generateWithPrefix(ID_PREFIX_CLASSIFICATION));
classification.setCreated(Date.valueOf(LocalDate.now()));
classification.setModified(Date.valueOf(LocalDate.now()));
this.checkServiceLevel(classification);
@ -64,7 +67,7 @@ public class ClassificationServiceImpl implements ClassificationService {
private void checkServiceLevel(Classification classification) {
if (classification.getServiceLevel() != null) {
try {
java.time.Duration.parse(classification.getServiceLevel());
Duration.parse(classification.getServiceLevel());
} catch (Exception e) {
throw new IllegalArgumentException("Invalid timestamp. Please use the format 'PddDThhHmmM'");
}

View File

@ -5,7 +5,6 @@ import java.sql.Timestamp;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -14,6 +13,7 @@ import org.taskana.TaskanaEngine;
import org.taskana.exceptions.NotAuthorizedException;
import org.taskana.exceptions.TaskNotFoundException;
import org.taskana.exceptions.WorkbasketNotFoundException;
import org.taskana.impl.util.IdGenerator;
import org.taskana.model.DueWorkbasketCounter;
import org.taskana.model.ObjectReference;
import org.taskana.model.Task;
@ -27,6 +27,9 @@ public class TaskServiceImpl implements TaskService {
private static final Logger logger = LoggerFactory.getLogger(TaskServiceImpl.class);
private static final String ID_PREFIX_OBJECTR_EFERENCE = "ORI";
private static final String ID_PREFIX_TASK = "TKI";
private TaskanaEngine taskanaEngine;
private TaskMapper taskMapper;
private ObjectReferenceMapper objectReferenceMapper;
@ -74,7 +77,7 @@ public class TaskServiceImpl implements TaskService {
taskanaEngine.getWorkbasketService().checkAuthorization(task.getWorkbasketId(), WorkbasketAuthorization.APPEND);
Timestamp now = new Timestamp(System.currentTimeMillis());
task.setId(UUID.randomUUID().toString());
task.setId(IdGenerator.generateWithPrefix(ID_PREFIX_TASK));
task.setState(TaskState.READY);
task.setCreated(now);
task.setModified(now);
@ -86,7 +89,7 @@ public class TaskServiceImpl implements TaskService {
ObjectReference objectReference = this.objectReferenceMapper.findByObjectReference(task.getPrimaryObjRef());
if (objectReference == null) {
objectReference = task.getPrimaryObjRef();
objectReference.setId(UUID.randomUUID().toString());
objectReference.setId(IdGenerator.generateWithPrefix(ID_PREFIX_OBJECTR_EFERENCE));
this.objectReferenceMapper.insert(objectReference);
}
task.setPrimaryObjRef(objectReference);

View File

@ -2,7 +2,6 @@ package org.taskana.impl;
import java.sql.Timestamp;
import java.util.List;
import java.util.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -10,6 +9,7 @@ import org.taskana.TaskanaEngine;
import org.taskana.WorkbasketService;
import org.taskana.exceptions.NotAuthorizedException;
import org.taskana.exceptions.WorkbasketNotFoundException;
import org.taskana.impl.util.IdGenerator;
import org.taskana.model.Workbasket;
import org.taskana.model.WorkbasketAccessItem;
import org.taskana.model.WorkbasketAuthorization;
@ -22,6 +22,9 @@ public class WorkbasketServiceImpl implements WorkbasketService {
private static final Logger logger = LoggerFactory.getLogger(WorkbasketServiceImpl.class);
private static final String ID_PREFIX_WORKBASKET = "WBI";
private static final String ID_PREFIX_WORKBASKET_AUTHORIZATION = "WAI";
private TaskanaEngine taskanaEngine;
private WorkbasketMapper workbasketMapper;
@ -64,7 +67,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
workbasket.setCreated(now);
workbasket.setModified(now);
if (workbasket.getId() == null || workbasket.getId().isEmpty()) {
workbasket.setId(UUID.randomUUID().toString());
workbasket.setId(IdGenerator.generateWithPrefix(ID_PREFIX_WORKBASKET));
}
workbasketMapper.insert(workbasket);
logger.debug("Workbasket '{}' created", workbasket.getId());
@ -106,7 +109,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
@Override
public WorkbasketAccessItem createWorkbasketAuthorization(WorkbasketAccessItem workbasketAccessItem) {
workbasketAccessItem.setId(UUID.randomUUID().toString());
workbasketAccessItem.setId(IdGenerator.generateWithPrefix(ID_PREFIX_WORKBASKET_AUTHORIZATION));
workbasketAccessMapper.insert(workbasketAccessItem);
return workbasketAccessItem;
}

View File

@ -0,0 +1,13 @@
package org.taskana.impl.util;
import java.util.UUID;
public class IdGenerator {
private static final String SEPERATOR = ":";
public static String generateWithPrefix(String prefix) {
return new StringBuilder().append(prefix).append(SEPERATOR).append(UUID.randomUUID().toString()).toString();
}
}

View File

@ -1,13 +1,13 @@
CREATE TABLE TASKANA_SCHEMA_VERSION(
ID VARCHAR(36) NOT NULL,
ID CHAR(40) NOT NULL,
VERSION VARCHAR(255) NOT NULL,
PRIMARY KEY (ID)
);
INSERT INTO TASKANA_SCHEMA_VERSION VALUES ('1', '0.0.1');
CREATE TABLE TASK(
ID VARCHAR(36) NOT NULL,
TENANT_ID VARCHAR(36) NULL,
ID CHAR(40) NOT NULL,
TENANT_ID VARCHAR(32) NULL,
CREATED TIMESTAMP NULL,
CLAIMED TIMESTAMP NULL,
COMPLETED TIMESTAMP NULL,
@ -19,17 +19,17 @@ CREATE TABLE TASK(
PRIORITY INT NULL,
STATE VARCHAR(20) NULL,
TYPE VARCHAR(255) NULL,
WORKBASKETID VARCHAR(36) NULL,
WORKBASKETID CHAR(40) NULL,
OWNER VARCHAR(255) NULL,
PRIMARY_OBJ_REF_ID varchar(36) NULL,
PRIMARY_OBJ_REF_ID CHAR(40) NULL,
IS_READ BOOLEAN NOT NULL,
IS_TRANSFERRED BOOLEAN NOT NULL,
PRIMARY KEY (ID)
);
CREATE TABLE WORKBASKET(
ID VARCHAR(36) NOT NULL,
TENANT_ID VARCHAR(36) NULL,
ID CHAR(40) NOT NULL,
TENANT_ID VARCHAR(32) NULL,
CREATED TIMESTAMP NULL,
MODIFIED TIMESTAMP NULL,
NAME VARCHAR(255) NOT NULL,
@ -40,14 +40,14 @@ CREATE TABLE WORKBASKET(
);
CREATE TABLE DISTRIBUTION_TARGETS(
SOURCE_ID VARCHAR(36) NOT NULL,
TARGET_ID VARCHAR(36) NOT NULL,
SOURCE_ID CHAR(40) NOT NULL,
TARGET_ID CHAR(40) NOT NULL,
PRIMARY KEY (SOURCE_ID, TARGET_ID)
);
CREATE TABLE CLASSIFICATION(
ID VARCHAR(36) NOT NULL,
TENANT_ID VARCHAR(36) NULL,
ID CHAR(40) NOT NULL,
TENANT_ID VARCHAR(32) NULL,
PARENT_CLASSIFICATION_ID VARCHAR(255),
CATEGORY VARCHAR(255),
TYPE VARCHAR(255),
@ -61,8 +61,8 @@ CREATE TABLE CLASSIFICATION(
);
CREATE TABLE WORKBASKET_ACCESS_LIST(
ID VARCHAR(36) NOT NULL,
WORKBASKET_ID VARCHAR(36) NOT NULL,
ID CHAR(40) NOT NULL,
WORKBASKET_ID CHAR(40) NOT NULL,
USER_ID VARCHAR(255) NULL,
GROUP_ID VARCHAR(255) NULL,
READ BOOLEAN NOT NULL,
@ -72,3 +72,13 @@ CREATE TABLE WORKBASKET_ACCESS_LIST(
DISTRIBUTE BOOLEAN NOT NULL,
PRIMARY KEY (ID)
);
CREATE TABLE OBJECT_REFERENCE(
ID CHAR(40) NOT NULL,
TENANT_ID VARCHAR(32) NULL,
COMPANY VARCHAR(32) NOT NULL,
SYSTEM VARCHAR(32) NOT NULL,
SYSTEM_INSTANCE VARCHAR(32) NOT NULL,
TYPE VARCHAR(32) NOT NULL,
VALUE VARCHAR(128) NOT NULL
);