You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ra...@apache.org on 2014/02/18 20:21:12 UTC

[2/2] git commit: merged resource changes and add resource methods for input/output objects. AIRAVATA-1017

merged resource changes and add resource methods for input/output objects. AIRAVATA-1017


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/e8ac0389
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/e8ac0389
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/e8ac0389

Branch: refs/heads/master
Commit: e8ac03899a6140a1128f81973864b07cd0a4dd72
Parents: 4066c47 0e2e21c
Author: raminder <ra...@apache.org>
Authored: Tue Feb 18 14:20:50 2014 -0500
Committer: raminder <ra...@apache.org>
Committed: Tue Feb 18 14:20:50 2014 -0500

----------------------------------------------------------------------
 .../registry/jpa/model/ErrorDetail.java         | 178 ++++++++++
 .../registry/jpa/model/ErrorDetails.java        | 178 ----------
 .../registry/jpa/model/Experiment.java          |  12 +
 .../registry/jpa/model/TaskDetail.java          |  14 +-
 .../jpa/resources/ApplicationInputResource.java |  23 +-
 .../resources/ApplicationOutputResource.java    |  23 +-
 .../jpa/resources/ErrorDetailResource.java      |  54 +--
 .../jpa/resources/ExperimentResource.java       | 148 +++++++--
 .../jpa/resources/JobDetailResource.java        |  10 +-
 .../jpa/resources/NodeInputResource.java        |  36 +-
 .../jpa/resources/NodeOutputResource.java       |  62 +++-
 .../registry/jpa/resources/StatusResource.java  |  14 +-
 .../registry/jpa/resources/Utils.java           | 328 ++++++++++++-------
 .../src/main/resources/registry-mysql.sql       |  13 +-
 14 files changed, 674 insertions(+), 419 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/e8ac0389/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationInputResource.java
----------------------------------------------------------------------
diff --cc modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationInputResource.java
index ca3245a,d54f46a..51dd057
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationInputResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationInputResource.java
@@@ -21,23 -21,13 +21,22 @@@
  
  package org.apache.airavata.persistance.registry.jpa.resources;
  
 +import java.util.List;
 +
 +import javax.persistence.EntityManager;
 +
  import org.apache.airavata.persistance.registry.jpa.Resource;
  import org.apache.airavata.persistance.registry.jpa.ResourceType;
 -
 -import java.util.List;
 +import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
 +import org.apache.airavata.persistance.registry.jpa.model.ApplicationInput;
 +import org.apache.airavata.persistance.registry.jpa.model.ApplicationInput_PK;
 +import org.apache.airavata.persistance.registry.jpa.model.TaskDetail;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
  
  public class ApplicationInputResource extends AbstractResource {
 +	private static final Logger logger = LoggerFactory.getLogger(ApplicationInputResource.class);
- 
- 	private String taskId;
+     private TaskDetailResource taskDetailResource;
      private String inputKey;
      private String inputType;
      private String metadata;
@@@ -83,10 -65,17 +74,18 @@@
          this.value = value;
      }
  
+     public TaskDetailResource getTaskDetailResource() {
+         return taskDetailResource;
+     }
+ 
+     public void setTaskDetailResource(TaskDetailResource taskDetailResource) {
+         this.taskDetailResource = taskDetailResource;
+     }
+ 
      @Override
      public Resource create(ResourceType type) {
 -        return null;
 +        logger.error("Unsupported resource type for application input data resource.", new UnsupportedOperationException());
 +        throw new UnsupportedOperationException();
      }
  
      @Override
@@@ -109,33 -95,6 +108,33 @@@
  
      @Override
      public void save() {
 -
 +        EntityManager em = ResourceUtils.getEntityManager();
-         ApplicationInput existingInput = em.find(ApplicationInput.class, new ApplicationInput_PK(inputKey, taskId));
++        ApplicationInput existingInput = em.find(ApplicationInput.class, new ApplicationInput_PK(inputKey, taskDetailResource.getTaskId()));
 +        em.close();
 +
 +        em = ResourceUtils.getEntityManager();
 +        em.getTransaction().begin();
 +        ApplicationInput applicationInput = new ApplicationInput();
-         TaskDetail taskDetail = em.find(TaskDetail.class, taskId);
++        TaskDetail taskDetail = em.find(TaskDetail.class, taskDetailResource.getTaskId());
 +        applicationInput.setTask(taskDetail);
 +        applicationInput.setTaskId(taskDetail.getTaskId());
 +        applicationInput.setInputKey(inputKey);
 +        applicationInput.setInputKeyType(inputType);
 +        applicationInput.setValue(value);
 +        applicationInput.setMetadata(metadata);
 +        
 +        if (existingInput != null){
 +            existingInput.setTask(taskDetail);
 +            existingInput.setTaskId(taskDetail.getTaskId());
 +            existingInput.setInputKey(inputKey);
 +            existingInput.setInputKeyType(inputType);
 +            existingInput.setValue(value);
 +            existingInput.setMetadata(metadata);
 +            applicationInput = em.merge(existingInput);
 +        }else {
 +            em.persist(applicationInput);
 +        }
 +        em.getTransaction().commit();
 +        em.close();
      }
  }

http://git-wip-us.apache.org/repos/asf/airavata/blob/e8ac0389/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationOutputResource.java
----------------------------------------------------------------------
diff --cc modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationOutputResource.java
index 7fe7b3d,5edd3bf..6a0f43e
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationOutputResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationOutputResource.java
@@@ -21,23 -21,13 +21,22 @@@
  
  package org.apache.airavata.persistance.registry.jpa.resources;
  
 +import java.util.List;
 +
 +import javax.persistence.EntityManager;
 +
  import org.apache.airavata.persistance.registry.jpa.Resource;
  import org.apache.airavata.persistance.registry.jpa.ResourceType;
 -
 -import java.util.List;
 +import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
 +import org.apache.airavata.persistance.registry.jpa.model.ApplicationOutput;
 +import org.apache.airavata.persistance.registry.jpa.model.ApplicationOutput_PK;
 +import org.apache.airavata.persistance.registry.jpa.model.TaskDetail;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
  
  public class ApplicationOutputResource extends AbstractResource {
 +	private static final Logger logger = LoggerFactory.getLogger(ApplicationOutputResource.class);
- 
- 	private String taskId;
+     private TaskDetailResource taskDetailResource;
      private String outputKey;
      private String outputType;
      private String metadata;
@@@ -83,10 -65,17 +74,18 @@@
          this.value = value;
      }
  
+     public TaskDetailResource getTaskDetailResource() {
+         return taskDetailResource;
+     }
+ 
+     public void setTaskDetailResource(TaskDetailResource taskDetailResource) {
+         this.taskDetailResource = taskDetailResource;
+     }
+ 
      @Override
      public Resource create(ResourceType type) {
 -        return null;
 +        logger.error("Unsupported resource type for application output data resource.", new UnsupportedOperationException());
 +        throw new UnsupportedOperationException();
      }
  
      @Override
@@@ -109,35 -95,6 +108,35 @@@
  
      @Override
      public void save() {
 +        EntityManager em = ResourceUtils.getEntityManager();
-         ApplicationOutput existingOutput = em.find(ApplicationOutput.class, new ApplicationOutput_PK(outputKey, taskId));
++        ApplicationOutput existingOutput = em.find(ApplicationOutput.class, new ApplicationOutput_PK(outputKey, taskDetailResource.getTaskId()));
 +        em.close();
 +
 +        em = ResourceUtils.getEntityManager();
 +        em.getTransaction().begin();
 +        ApplicationOutput applicationOutput = new ApplicationOutput();
-         TaskDetail taskDetail = em.find(TaskDetail.class, taskId);
++        TaskDetail taskDetail = em.find(TaskDetail.class, taskDetailResource.getTaskId());
 +        applicationOutput.setTask(taskDetail);
 +        applicationOutput.setTaskId(taskDetail.getTaskId());
 +        applicationOutput.setOutputKey(outputKey);
 +        applicationOutput.setOutputKeyType(outputType);
 +        applicationOutput.setValue(value);
 +        applicationOutput.setMetadata(metadata);
 +        
 +        if (existingOutput != null){
 +        	existingOutput.setTask(taskDetail);
 +        	existingOutput.setTaskId(taskDetail.getTaskId());
 +        	existingOutput.setOutputKey(outputKey);
 +        	existingOutput.setOutputKeyType(outputType);
 +        	existingOutput.setValue(value);
 +        	existingOutput.setMetadata(metadata);
 +        	applicationOutput = em.merge(existingOutput);
 +        }else {
 +            em.persist(applicationOutput);
 +        }
 +        em.getTransaction().commit();
 +        em.close();
 +
  
      }
  }

http://git-wip-us.apache.org/repos/asf/airavata/blob/e8ac0389/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeInputResource.java
----------------------------------------------------------------------
diff --cc modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeInputResource.java
index e483d8f,2ada52f..2b12c95
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeInputResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeInputResource.java
@@@ -21,22 -21,13 +21,23 @@@
  
  package org.apache.airavata.persistance.registry.jpa.resources;
  
 +import java.util.List;
 +
 +import javax.persistence.EntityManager;
 +
  import org.apache.airavata.persistance.registry.jpa.Resource;
  import org.apache.airavata.persistance.registry.jpa.ResourceType;
 -
 -import java.util.List;
 +import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
 +import org.apache.airavata.persistance.registry.jpa.model.NodeInput;
 +import org.apache.airavata.persistance.registry.jpa.model.NodeInput_PK;
++import org.apache.airavata.persistance.registry.jpa.model.WorkflowNodeDetail;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
  
  public class NodeInputResource extends AbstractResource {
 +	private static final Logger logger = LoggerFactory.getLogger(NodeInputResource.class);
 +
-     private String nodeInstanceId;
+     private WorkflowNodeDetailResource nodeDetailResource;
      private String inputKey;
      private String inputType;
      private String metadata;
@@@ -108,12 -95,6 +109,33 @@@
  
      @Override
      public void save() {
 -
 +        EntityManager em = ResourceUtils.getEntityManager();
-         NodeInput existingInput = em.find(NodeInput.class, new NodeInput_PK(inputKey, nodeInstanceId));
++        NodeInput existingInput = em.find(NodeInput.class, new NodeInput_PK(inputKey, nodeDetailResource.getNodeInstanceId()));
 +        em.close();
 +
 +        em = ResourceUtils.getEntityManager();
 +        em.getTransaction().begin();
-        
++        NodeInput nodeInput = new NodeInput();
++        WorkflowNodeDetail nodeDetail = em.find(WorkflowNodeDetail.class, nodeDetailResource.getNodeInstanceId());
++        nodeInput.setNodeDetails(nodeDetail);
++        nodeInput.setNodeId(nodeDetail.getNodeId());
++        nodeInput.setInputKey(inputKey);
++        nodeInput.setInputKeyType(inputType);
++        nodeInput.setValue(value);
++        nodeInput.setMetadata(metadata);
++        
++        if (existingInput != null){
++            existingInput.setNodeDetails(nodeDetail);
++            existingInput.setNodeId(nodeDetail.getNodeId());
++            existingInput.setInputKey(inputKey);
++            existingInput.setInputKeyType(inputType);
++            existingInput.setValue(value);
++            existingInput.setMetadata(metadata);
++            nodeInput = em.merge(existingInput);
++        }else {
++            em.persist(nodeInput);
++        }
++        em.getTransaction().commit();
++        em.close();
      }
  }

http://git-wip-us.apache.org/repos/asf/airavata/blob/e8ac0389/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
----------------------------------------------------------------------
diff --cc modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
index 9d27c22,b105157..c4ab7c0
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
@@@ -23,11 -23,11 +23,23 @@@ package org.apache.airavata.persistance
  
  import org.apache.airavata.persistance.registry.jpa.Resource;
  import org.apache.airavata.persistance.registry.jpa.ResourceType;
++import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
++import org.apache.airavata.persistance.registry.jpa.model.NodeInput;
++import org.apache.airavata.persistance.registry.jpa.model.NodeInput_PK;
++import org.apache.airavata.persistance.registry.jpa.model.NodeOutput;
++import org.apache.airavata.persistance.registry.jpa.model.NodeOutput_PK;
++import org.apache.airavata.persistance.registry.jpa.model.WorkflowNodeDetail;
++import org.slf4j.Logger;
++import org.slf4j.LoggerFactory;
  
  import java.util.List;
  
++import javax.persistence.EntityManager;
++
  public class NodeOutputResource extends AbstractResource {
-     private String nodeInstanceId;
++	private static final Logger logger = LoggerFactory.getLogger(NodeOutputResource.class);
++	
+     private WorkflowNodeDetailResource nodeDetailResource;
      private String outputKey;
      private String outputType;
      private String metadata;
@@@ -75,26 -75,26 +87,58 @@@
  
      @Override
      public Resource create(ResourceType type) {
--        return null;
++        logger.error("Unsupported resource type for node output data resource.", new UnsupportedOperationException());
++        throw new UnsupportedOperationException();
      }
  
      @Override
      public void remove(ResourceType type, Object name) {
--
++        logger.error("Unsupported resource type for node output data resource.", new UnsupportedOperationException());
++        throw new UnsupportedOperationException();
      }
  
      @Override
      public Resource get(ResourceType type, Object name) {
--        return null;
++        logger.error("Unsupported resource type for node output data resource.", new UnsupportedOperationException());
++        throw new UnsupportedOperationException();
      }
  
      @Override
      public List<Resource> get(ResourceType type) {
--        return null;
++        logger.error("Unsupported resource type for node output data resource.", new UnsupportedOperationException());
++        throw new UnsupportedOperationException();
      }
  
      @Override
      public void save() {
  
++        EntityManager em = ResourceUtils.getEntityManager();
++        NodeOutput existingOutput = em.find(NodeOutput.class, new NodeOutput_PK(outputKey, nodeDetailResource.getNodeInstanceId()));
++        em.close();
++
++        em = ResourceUtils.getEntityManager();
++        em.getTransaction().begin();
++        NodeOutput nodeOutput = new NodeOutput();
++        WorkflowNodeDetail nodeDetail = em.find(WorkflowNodeDetail.class, nodeDetailResource.getNodeInstanceId());
++        nodeOutput.setNode(nodeDetail);
++        nodeOutput.setNodeId(nodeDetail.getNodeId());
++        nodeOutput.setOutputKey(outputKey);
++        nodeOutput.setOutputKeyType(outputType);
++        nodeOutput.setValue(value);
++        nodeOutput.setMetadata(metadata);
++        
++        if (existingOutput != null){
++            existingOutput.setNode(nodeDetail);
++            existingOutput.setNodeId(nodeDetail.getNodeId());
++            existingOutput.setOutputKey(outputKey);
++            existingOutput.setOutputKeyType(outputType);
++            existingOutput.setValue(value);
++            existingOutput.setMetadata(metadata);
++            nodeOutput = em.merge(existingOutput);
++        }else {
++            em.persist(nodeOutput);
++        }
++        em.getTransaction().commit();
++        em.close();
      }
  }