diff --git a/pom.xml b/pom.xml index d21619a..2c5ce33 100644 --- a/pom.xml +++ b/pom.xml @@ -46,6 +46,12 @@ provided + + com.fasterxml.jackson.core + jackson-databind + 2.6.3 + + org.gcube.core common-encryption diff --git a/src/main/java/org/gcube/common/workspacetaskexecutor/JsonUtil.java b/src/main/java/org/gcube/common/workspacetaskexecutor/JsonUtil.java new file mode 100644 index 0000000..f09ed3d --- /dev/null +++ b/src/main/java/org/gcube/common/workspacetaskexecutor/JsonUtil.java @@ -0,0 +1,55 @@ +/** + * + */ +package org.gcube.common.workspacetaskexecutor; + +import java.io.IOException; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + + + +/** + * The Class JsonUtil. + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * Apr 26, 2018 + * @param the generic type + */ +public class JsonUtil { + + private ObjectMapper mapper = new ObjectMapper(); + + + /** + * To json. + * + * @param obj the obj + * @return the string + * @throws JsonProcessingException the json processing exception + */ + public String toJSON(T obj) throws JsonProcessingException{ + + // Convert object to JSON string + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj); + } + + + /** + * Read object. + * + * @param json the json + * @param obj the obj + * @return the t + * @throws JsonParseException the json parse exception + * @throws JsonMappingException the json mapping exception + * @throws IOException Signals that an I/O exception has occurred. + */ + public T readObject(String json, Class obj) throws JsonParseException, JsonMappingException, IOException{ + // Convert JSON string from file to Object + return mapper.readValue(json, obj); + } +} diff --git a/src/main/java/org/gcube/common/workspacetaskexecutor/dataminer/WorkspaceDataMinerTaskExecutor.java b/src/main/java/org/gcube/common/workspacetaskexecutor/dataminer/WorkspaceDataMinerTaskExecutor.java index 7b0a832..463db75 100644 --- a/src/main/java/org/gcube/common/workspacetaskexecutor/dataminer/WorkspaceDataMinerTaskExecutor.java +++ b/src/main/java/org/gcube/common/workspacetaskexecutor/dataminer/WorkspaceDataMinerTaskExecutor.java @@ -4,6 +4,7 @@ import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; import org.gcube.common.workspacetaskexecutor.CheckableTask; import org.gcube.common.workspacetaskexecutor.ConfigurableTask; import org.gcube.common.workspacetaskexecutor.ExecutableTask; +import org.gcube.common.workspacetaskexecutor.JsonUtil; import org.gcube.common.workspacetaskexecutor.TaskConfiguration; import org.gcube.common.workspacetaskexecutor.WsUtil; import org.gcube.common.workspacetaskexecutor.shared.ItemNotExecutable; @@ -29,6 +30,8 @@ public class WorkspaceDataMinerTaskExecutor implements ExecutableTask jsonUtil = new JsonUtil(); + /** * Instantiates a new workspace data miner task executor. @@ -76,18 +79,25 @@ public class WorkspaceDataMinerTaskExecutor implements ExecutableTask