From 4978626ce7578e4588dbac38fd630cedcf7f8edc Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Thu, 3 May 2018 09:58:32 +0000 Subject: [PATCH] Enhancement on Project Activity #11690 git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/Common/workspace-task-executor-library@167295 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../WorkspaceDataMinerTaskExecutor.java | 8 +-- .../shared/BaseTaskConfiguration.java | 4 +- .../shared/ExecutableTask.java | 10 ++-- ...eckableTask.java => IsItemExecutable.java} | 8 +-- .../shared/dataminer/TaskConfiguration.java | 22 +++---- .../TestDataMinerTaskExecutor.java | 58 ++++++++++++++++++- 6 files changed, 81 insertions(+), 29 deletions(-) rename src/main/java/org/gcube/common/workspacetaskexecutor/shared/{CheckableTask.java => IsItemExecutable.java} (81%) 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 a25660f..fa04c22 100644 --- a/src/main/java/org/gcube/common/workspacetaskexecutor/dataminer/WorkspaceDataMinerTaskExecutor.java +++ b/src/main/java/org/gcube/common/workspacetaskexecutor/dataminer/WorkspaceDataMinerTaskExecutor.java @@ -2,7 +2,7 @@ package org.gcube.common.workspacetaskexecutor.dataminer; import org.apache.commons.lang.Validate; import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; -import org.gcube.common.workspacetaskexecutor.shared.CheckableTask; +import org.gcube.common.workspacetaskexecutor.shared.IsItemExecutable; import org.gcube.common.workspacetaskexecutor.shared.ConfigurableTask; import org.gcube.common.workspacetaskexecutor.shared.ExecutableTask; import org.gcube.common.workspacetaskexecutor.shared.dataminer.TaskConfiguration; @@ -22,7 +22,7 @@ import org.slf4j.LoggerFactory; * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it * May 2, 2018 */ -public class WorkspaceDataMinerTaskExecutor implements ExecutableTask, ConfigurableTask, CheckableTask{ +public class WorkspaceDataMinerTaskExecutor implements ExecutableTask, ConfigurableTask, IsItemExecutable{ /** The logger. */ private static Logger logger = LoggerFactory.getLogger(WorkspaceDataMinerTaskExecutor.class); @@ -211,7 +211,7 @@ public class WorkspaceDataMinerTaskExecutor implements ExecutableTask the generic type + * May 3, 2018 + * @param the generic type must exteds {@link BaseTaskConfiguration} */ -public interface CheckableTask { +public interface IsItemExecutable { /** diff --git a/src/main/java/org/gcube/common/workspacetaskexecutor/shared/dataminer/TaskConfiguration.java b/src/main/java/org/gcube/common/workspacetaskexecutor/shared/dataminer/TaskConfiguration.java index 60eb847..d88cb85 100644 --- a/src/main/java/org/gcube/common/workspacetaskexecutor/shared/dataminer/TaskConfiguration.java +++ b/src/main/java/org/gcube/common/workspacetaskexecutor/shared/dataminer/TaskConfiguration.java @@ -6,6 +6,7 @@ package org.gcube.common.workspacetaskexecutor.shared.dataminer; import java.io.Serializable; import java.util.Map; +import java.util.Random; import org.gcube.common.workspacetaskexecutor.shared.BaseTaskConfiguration; @@ -33,7 +34,7 @@ public class TaskConfiguration implements BaseTaskConfiguration, Serializable { @JsonIgnoreProperties private Map mapParameters; //optional @JsonIgnoreProperties - private String accessKey; + private String configurationKey; /** @@ -65,21 +66,21 @@ public class TaskConfiguration implements BaseTaskConfiguration, Serializable { * @see org.gcube.common.workspacetaskexecutor.shared.BaseTaskConfiguration#getAccessKey() */ @Override - public String getAccessKey() { + public String getConfigurationKey() { - if(accessKey==null) - accessKey = hashCode()+""; + if(configurationKey==null) + configurationKey = hashCode()+""; - return accessKey; + return configurationKey; } /* (non-Javadoc) * @see org.gcube.common.workspacetaskexecutor.shared.BaseTaskConfiguration#setAccessKey(java.lang.String) */ @Override - public void setAccessKey(String accessKey) { + public void setConfigurationKey(String configurationKey) { - this.accessKey = accessKey; + this.configurationKey = configurationKey; } @@ -206,6 +207,7 @@ public class TaskConfiguration implements BaseTaskConfiguration, Serializable { int hash = 1; hash = hash * 13 + (taskId == null ? 0 : taskId.hashCode()); hash = hash * 17 + (workspaceItemId == null ? 0 : workspaceItemId.hashCode()); + hash = hash * new Random().nextInt(); return hash; } @@ -226,14 +228,12 @@ public class TaskConfiguration implements BaseTaskConfiguration, Serializable { builder.append(workspaceItemId); builder.append(", mapParameters="); builder.append(mapParameters); - builder.append(", accessKey="); - builder.append(accessKey); + builder.append(", configurationKey="); + builder.append(configurationKey); builder.append("]"); return builder.toString(); } - - } diff --git a/src/test/java/org/gcube/common/workspacetaskexecutor/TestDataMinerTaskExecutor.java b/src/test/java/org/gcube/common/workspacetaskexecutor/TestDataMinerTaskExecutor.java index 7d1d2e4..47f279f 100644 --- a/src/test/java/org/gcube/common/workspacetaskexecutor/TestDataMinerTaskExecutor.java +++ b/src/test/java/org/gcube/common/workspacetaskexecutor/TestDataMinerTaskExecutor.java @@ -10,10 +10,16 @@ import java.util.List; import java.util.Map; import java.util.UUID; +import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException; +import org.gcube.common.homelibrary.home.exceptions.InternalErrorException; +import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; +import org.gcube.common.homelibrary.home.workspace.exceptions.ItemNotFoundException; +import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.common.workspacetaskexecutor.dataminer.WorkspaceDataMinerTaskExecutor; import org.gcube.common.workspacetaskexecutor.shared.dataminer.TaskConfiguration; import org.gcube.common.workspacetaskexecutor.util.JsonUtil; +import org.gcube.common.workspacetaskexecutor.util.WsUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; @@ -32,13 +38,17 @@ public class TestDataMinerTaskExecutor { public static String WORKSPACE_FOLDER_ID = "f5c2f5ab-5c35-4418-8e60-d48d173538ed"; + private static JsonUtil jUtil = new JsonUtil(); + public static void main(String[] args) { ScopeProvider.instance.set(SCOPE); WorkspaceDataMinerTaskExecutor exec = WorkspaceDataMinerTaskExecutor.getInstance(); exec.withOwner(USERNAME); - jsonCheck(); + //jsonCheck(); + + checkGubeProperties(gelDummyListOfConfigurations()); // try { @@ -85,20 +95,62 @@ public class TestDataMinerTaskExecutor { } + public static void checkGubeProperties(List listConfigurations){ + + //SET + try { + WorkspaceItem workspaceItem = WsUtil.getItem(USERNAME, WORKSPACE_FOLDER_ID); + + String jsonArray = jUtil.toJSONArray(listConfigurations); + System.out.println("Json array to save: "+jsonArray); + WsUtil.setPropertyValue(workspaceItem, WorkspaceDataMinerTaskExecutor.WS_DM_TASK_TASK_CONF, jsonArray); + + //GET + jsonArray = WsUtil.getPropertyValue(workspaceItem, WorkspaceDataMinerTaskExecutor.WS_DM_TASK_TASK_CONF); + System.out.println("Json array read from "+WorkspaceDataMinerTaskExecutor.WS_DM_TASK_TASK_CONF+": "+jsonArray); + + + TypeReference> mapType = new TypeReference>() {}; + List listUnM = jUtil.readList(jsonArray, mapType); + System.out.println("Json array to listUnM..."); + for (TaskConfiguration taskConfiguration : listUnM) { + System.out.println(taskConfiguration); + } + } + catch (WorkspaceFolderNotFoundException | ItemNotFoundException + | InternalErrorException | HomeNotFoundException | JsonProcessingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + + } + public static TaskConfiguration createDummyConfiguration(){ Map mapParameters = new HashMap(); mapParameters.put("publiclink", "this is the public link"); return new TaskConfiguration(UUID.randomUUID().toString(), null, "my token", WORKSPACE_FOLDER_ID, mapParameters); } - public static void jsonCheck(){ + + public static List gelDummyListOfConfigurations(){ TaskConfiguration c1 = createDummyConfiguration(); TaskConfiguration c2 = createDummyConfiguration(); List listConfigurations = new ArrayList<>(); listConfigurations.add(c1); listConfigurations.add(c2); - JsonUtil jUtil = new JsonUtil(); + return listConfigurations; + } + public static void jsonCheck(){ + + + List listConfigurations = gelDummyListOfConfigurations(); try { String jsonArray = jUtil.toJSONArray(listConfigurations); System.out.println("Json array: "+jsonArray);