diff --git a/lib/taskana-core/pom.xml b/lib/taskana-core/pom.xml
index b2cfce021..73ba68c1d 100644
--- a/lib/taskana-core/pom.xml
+++ b/lib/taskana-core/pom.xml
@@ -128,7 +128,11 @@
slf4j-api
1.7.25
-
+
+ org.json
+ json
+ 20180130
+
junit
diff --git a/lib/taskana-core/src/main/java/pro/taskana/Attachment.java b/lib/taskana-core/src/main/java/pro/taskana/Attachment.java
index 04b48094e..403a16c54 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/Attachment.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/Attachment.java
@@ -103,7 +103,7 @@ public interface Attachment {
*
* @return customAttributes as {@link Map}
*/
- Map getCustomAttributes();
+ Map getCustomAttributes();
/**
* Sets the custom attribute Map of the attachment.
@@ -111,7 +111,8 @@ public interface Attachment {
* @param customAttributes
* a {@link Map} that contains the custom attributes of the attachment as key, value pairs
*/
- void setCustomAttributes(Map customAttributes);
+ void setCustomAttributes(Map customAttributes);
+
/**
* Return a summary of the current Attachment.
*
diff --git a/lib/taskana-core/src/main/java/pro/taskana/Task.java b/lib/taskana-core/src/main/java/pro/taskana/Task.java
index 15803c97c..9e01b07e7 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/Task.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/Task.java
@@ -220,7 +220,15 @@ public interface Task {
*
* @return customAttributes as {@link Map}
*/
- Map getCustomAttributes();
+ Map getCustomAttributes();
+
+ /**
+ * Sets a collection of customAttributes.
+ *
+ * @param customAttributes
+ * a {@link Map} that contains the custom attributes
+ */
+ void setCustomAttributes(Map customAttributes);
/**
* Return the value for the 1. customAttribute.
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java
index e08d44332..50b9e07cf 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java
@@ -24,7 +24,7 @@ public class AttachmentImpl implements Attachment {
private ObjectReference objectReference;
private String channel;
private Instant received;
- private Map customAttributes = Collections.emptyMap();
+ private Map customAttributes = Collections.emptyMap();
AttachmentImpl() {
}
@@ -116,12 +116,12 @@ public class AttachmentImpl implements Attachment {
}
@Override
- public Map getCustomAttributes() {
+ public Map getCustomAttributes() {
return customAttributes;
}
@Override
- public void setCustomAttributes(Map customAttributes) {
+ public void setCustomAttributes(Map customAttributes) {
this.customAttributes = customAttributes;
}
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java
index 068cde610..99664457c 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java
@@ -41,7 +41,7 @@ public class TaskImpl implements Task {
private boolean isRead;
private boolean isTransferred;
// All objects have to be serializable
- private Map customAttributes = Collections.emptyMap();
+ private Map customAttributes = Collections.emptyMap();
private List attachments = new ArrayList<>();
private String custom1;
private String custom2;
@@ -294,11 +294,12 @@ public class TaskImpl implements Task {
}
@Override
- public Map getCustomAttributes() {
+ public Map getCustomAttributes() {
return customAttributes;
}
- public void setCustomAttributes(Map customAttributes) {
+ @Override
+ public void setCustomAttributes(Map customAttributes) {
this.customAttributes = customAttributes;
}
diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/persistence/MapTypeHandler.java b/lib/taskana-core/src/main/java/pro/taskana/impl/persistence/MapTypeHandler.java
index 51ed0ef00..3c58bdef2 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/impl/persistence/MapTypeHandler.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/impl/persistence/MapTypeHandler.java
@@ -1,12 +1,7 @@
package pro.taskana.impl.persistence;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.sql.Blob;
import java.sql.CallableStatement;
+import java.sql.Clob;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -15,6 +10,7 @@ import java.util.Map;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
+import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,15 +28,11 @@ public class MapTypeHandler extends BaseTypeHandler