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

[4/8] new datamodels for AIRAVATA-1017

http://git-wip-us.apache.org/repos/asf/airavata/blob/a0c1cbde/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentMetadataResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentMetadataResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentMetadataResource.java
index b313c15..1178336 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentMetadataResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentMetadataResource.java
@@ -1,482 +1,482 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-package org.apache.airavata.persistance.registry.jpa.resources;
-
-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.*;
-import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ExperimentMetadataResource extends AbstractResource {
-    private static final Logger logger = LoggerFactory.getLogger(ExperimentMetadataResource.class);
-    private String expID;
-    private String experimentName;
-    private String description;
-    private Timestamp submittedDate;
-    private String executionUser;
-    private GatewayResource gateway;
-    private ProjectResource project;
-    private boolean shareExp;
-
-    public static Logger getLogger() {
-        return logger;
-    }
-
-    public String getExpID() {
-        return expID;
-    }
-
-    public void setExpID(String expID) {
-        this.expID = expID;
-    }
-
-    public String getExperimentName() {
-        return experimentName;
-    }
-
-    public void setExperimentName(String experimentName) {
-        this.experimentName = experimentName;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public Timestamp getSubmittedDate() {
-        return submittedDate;
-    }
-
-    public void setSubmittedDate(Timestamp submittedDate) {
-        this.submittedDate = submittedDate;
-    }
-
-    public String getExecutionUser() {
-        return executionUser;
-    }
-
-    public void setExecutionUser(String executionUser) {
-        this.executionUser = executionUser;
-    }
-
-    public GatewayResource getGateway() {
-        return gateway;
-    }
-
-    public void setGateway(GatewayResource gateway) {
-        this.gateway = gateway;
-    }
-
-    public ProjectResource getProject() {
-        return project;
-    }
-
-    public void setProject(ProjectResource project) {
-        this.project = project;
-    }
-
-    public boolean isShareExp() {
-        return shareExp;
-    }
-
-    public void setShareExp(boolean shareExp) {
-        this.shareExp = shareExp;
-    }
-
-    public Resource create(ResourceType type) {
-        switch (type) {
-            case EXPERIMENT_CONFIG_DATA:
-                ExperimentConfigDataResource configDataResource = new ExperimentConfigDataResource();
-                configDataResource.setExMetadata(this);
-                return configDataResource;
-            case EXPERIMENT_SUMMARY:
-                ExperimentSummaryResource summaryResource = new ExperimentSummaryResource();
-                summaryResource.setExperimentMetadataResource(this);
-                return summaryResource;
-            case EXPERIMENT_INPUT:
-                ExperimentInputResource exInputResource = new ExperimentInputResource();
-                exInputResource.setExperimentMetadataResource(this);
-                return exInputResource;
-            case EXPERIMENT_OUTPUT:
-                ExperimentOutputResource exOutputResouce = new ExperimentOutputResource();
-                exOutputResouce.setExperimentMetadataResource(this);
-                return exOutputResouce;
-            case WORKFLOW_DATA:
-                WorkflowDataResource workflowDataResource = new WorkflowDataResource();
-                workflowDataResource.setExperimentID(expID);
-                return workflowDataResource;
-            case EXECUTION_ERROR:
-                ExecutionErrorResource executionErrorResource = new ExecutionErrorResource();
-                executionErrorResource.setMetadataResource(this);
-                return executionErrorResource;
-            case GFAC_JOB_DATA:
-                GFacJobDataResource gFacJobDataResource = new GFacJobDataResource();
-                gFacJobDataResource.setMetadataResource(this);
-                return gFacJobDataResource;
-            default:
-                logger.error("Unsupported resource type for experiment metadata resource.", new IllegalArgumentException());
-                throw new IllegalArgumentException("Unsupported resource type for gateway resource.");
-            }
-    }
-
-    public void remove(ResourceType type, Object name) {
-        EntityManager em = ResourceUtils.getEntityManager();
-        em.getTransaction().begin();
-        Query q;
-        QueryGenerator generator;
-        switch (type){
-            case EXPERIMENT_CONFIG_DATA:
-                generator = new QueryGenerator(EXPERIMENT_CONFIG_DATA);
-                generator.setParameter(ExperimentConfigurationDataConstants.EXPERIMENT_ID, name);
-                q = generator.deleteQuery(em);
-                q.executeUpdate();
-                break;
-            case EXPERIMENT_SUMMARY:
-                generator = new QueryGenerator(EXPERIMENT_SUMMARY);
-                generator.setParameter(ExperimentSummaryConstants.EXPERIMENT_ID, name);
-                q = generator.deleteQuery(em);
-                q.executeUpdate();
-                break;
-            case EXPERIMENT_INPUT:
-                generator = new QueryGenerator(EXPERIMENT_INPUT);
-                generator.setParameter(ExperimentInputConstants.EXPERIMENT_ID, name);
-                q = generator.deleteQuery(em);
-                q.executeUpdate();
-                break;
-            case EXPERIMENT_OUTPUT:
-                generator = new QueryGenerator(EXPERIMENT_OUTPUT);
-                generator.setParameter(ExperimentOutputConstants.EXPERIMENT_ID, name);
-                q = generator.deleteQuery(em);
-                q.executeUpdate();
-                break;
-            case WORKFLOW_DATA:
-                generator = new QueryGenerator(WORKFLOW_DATA);
-                generator.setParameter(WorkflowDataConstants.WORKFLOW_INSTANCE_ID, name);
-                q = generator.deleteQuery(em);
-                q.executeUpdate();
-                break;
-            case GFAC_JOB_DATA:
-                generator = new QueryGenerator(GFAC_JOB_DATA);
-                generator.setParameter(GFacJobDataConstants.LOCAL_JOB_ID, name);
-                q = generator.deleteQuery(em);
-                q.executeUpdate();
-                break;
-            default:
-                logger.error("Unsupported operation for experiment metadata resource "
-                + "since there are no child resources generated by experiment metadata resource.. ",
-                new UnsupportedOperationException());
-                throw new UnsupportedOperationException();
-        }
-        em.getTransaction().commit();
-        em.close();
-    }
-
-    public Resource get(ResourceType type, Object name) {
-        EntityManager em = ResourceUtils.getEntityManager();
-        em.getTransaction().begin();
-        QueryGenerator generator;
-        Query q;
-        switch (type) {
-            case EXPERIMENT_CONFIG_DATA:
-                generator = new QueryGenerator(EXPERIMENT_CONFIG_DATA);
-                generator.setParameter(ExperimentConfigurationDataConstants.EXPERIMENT_ID, name);
-                q = generator.selectQuery(em);
-                Experiment_Configuration_Data exConfigData = (Experiment_Configuration_Data) q.getSingleResult();
-                ExperimentConfigDataResource experimentConfigDataResource =
-                        (ExperimentConfigDataResource)Utils.getResource(ResourceType.EXPERIMENT_CONFIG_DATA, exConfigData);
-                em.getTransaction().commit();
-                em.close();
-                return experimentConfigDataResource;
-            case EXPERIMENT_SUMMARY:
-                generator = new QueryGenerator(EXPERIMENT_SUMMARY);
-                generator.setParameter(ExperimentSummaryConstants.EXPERIMENT_ID, name);
-                q = generator.selectQuery(em);
-                Experiment_Summary exSummaryData = (Experiment_Summary) q.getSingleResult();
-                ExperimentSummaryResource exSummary =
-                        (ExperimentSummaryResource)Utils.getResource(ResourceType.EXPERIMENT_SUMMARY, exSummaryData);
-                em.getTransaction().commit();
-                em.close();
-                return exSummary;
-            case EXPERIMENT_INPUT:
-                generator = new QueryGenerator(EXPERIMENT_INPUT);
-                generator.setParameter(ExperimentInputConstants.EXPERIMENT_ID, name);
-                q = generator.selectQuery(em);
-                Experiment_Input exInput = (Experiment_Input) q.getSingleResult();
-                ExperimentInputResource experimentInput =
-                        (ExperimentInputResource)Utils.getResource(ResourceType.EXPERIMENT_INPUT, exInput);
-                em.getTransaction().commit();
-                em.close();
-                return experimentInput;
-            case EXPERIMENT_OUTPUT:
-                generator = new QueryGenerator(EXPERIMENT_OUTPUT);
-                generator.setParameter(ExperimentOutputConstants.EXPERIMENT_ID, name);
-                q = generator.selectQuery(em);
-                Experiment_Output exOutput = (Experiment_Output) q.getSingleResult();
-                ExperimentOutputResource experimentOutput =
-                        (ExperimentOutputResource)Utils.getResource(ResourceType.EXPERIMENT_OUTPUT, exOutput);
-                em.getTransaction().commit();
-                em.close();
-                return experimentOutput;
-            case WORKFLOW_DATA:
-                generator = new QueryGenerator(WORKFLOW_DATA);
-//                generator.setParameter(WorkflowDataConstants.EXPERIMENT_ID, experimentID);
-                generator.setParameter(WorkflowDataConstants.WORKFLOW_INSTANCE_ID, name);
-                q = generator.selectQuery(em);
-                Workflow_Data eworkflowData = (Workflow_Data)q.getSingleResult();
-                WorkflowDataResource workflowDataResource = (WorkflowDataResource)Utils.getResource(ResourceType.WORKFLOW_DATA, eworkflowData);
-                em.getTransaction().commit();
-                em.close();
-                return workflowDataResource;
-            case GFAC_JOB_DATA:
-                generator = new QueryGenerator(GFAC_JOB_DATA);
-                generator.setParameter(GFacJobDataConstants.LOCAL_JOB_ID, name);
-                q = generator.selectQuery(em);
-                GFac_Job_Data gFacJobData = (GFac_Job_Data)q.getSingleResult();
-                GFacJobDataResource gFacJobDataResource = (GFacJobDataResource)Utils.getResource(ResourceType.GFAC_JOB_DATA, gFacJobData);
-                em.getTransaction().commit();
-                em.close();
-                return gFacJobDataResource;
-            default:
-                logger.error("Unsupported operation for experiment metadata resource "
-                        + "since there are no child resources generated by experiment metadata resource.. ",
-                        new UnsupportedOperationException());
-                throw new UnsupportedOperationException();
-        }
-    }
-
-    public List<Resource> get(ResourceType type) {
-        List<Resource> resourceList = new ArrayList<Resource>();
-        EntityManager em = ResourceUtils.getEntityManager();
-        em.getTransaction().begin();
-        Query q;
-        QueryGenerator generator;
-        List results;
-        switch (type){
-            case EXPERIMENT_INPUT:
-                generator = new QueryGenerator(EXPERIMENT_INPUT);
-                generator.setParameter(ExperimentInputConstants.EXPERIMENT_ID, expID);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        Experiment_Input expInput = (Experiment_Input) result;
-                        ExperimentInputResource experimentResource =
-                                (ExperimentInputResource)Utils.getResource(ResourceType.EXPERIMENT_INPUT, expInput);
-                        resourceList.add(experimentResource);
-                    }
-                }
-                break;
-            case EXPERIMENT_OUTPUT:
-                generator = new QueryGenerator(EXPERIMENT_OUTPUT);
-                generator.setParameter(ExperimentOutputConstants.EXPERIMENT_ID, expID);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        Experiment_Output expOutput = (Experiment_Output) result;
-                        ExperimentOutputResource experimentResource =
-                                (ExperimentOutputResource)Utils.getResource(ResourceType.EXPERIMENT_INPUT, expOutput);
-                        resourceList.add(experimentResource);
-                    }
-                }
-                break;
-            case WORKFLOW_DATA:
-                generator = new QueryGenerator(WORKFLOW_DATA);
-//                generator.setParameter(WorkflowDataConstants.EXPERIMENT_ID, experimentID);
-                Experiment_Metadata experiment_metadata = em.find(Experiment_Metadata.class, expID);
-                generator.setParameter("experiment_metadata", experiment_metadata);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        Workflow_Data workflowData = (Workflow_Data) result;
-                        WorkflowDataResource workflowDataResource = (WorkflowDataResource)Utils.getResource(ResourceType.WORKFLOW_DATA, workflowData);
-                        resourceList.add(workflowDataResource);
-                    }
-                }
-                break;
-            case EXECUTION_ERROR:
-                generator = new QueryGenerator(EXECUTION_ERROR);
-                generator.setParameter(ExecutionErrorConstants.EXPERIMENT_ID, expID);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        Execution_Error executionError = (Execution_Error)result;
-                        ExecutionErrorResource executionErrorResource = (ExecutionErrorResource)Utils.getResource(ResourceType.EXECUTION_ERROR, executionError);
-                        resourceList.add(executionErrorResource);
-                    }
-                }
-                break;
-            case GFAC_JOB_DATA:
-                generator = new QueryGenerator(GFAC_JOB_DATA);
-                generator.setParameter(GFacJobDataConstants.EXPERIMENT_ID, expID);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        GFac_Job_Data gFacJobData = (GFac_Job_Data)result;
-                        GFacJobDataResource gFacJobDataResource = (GFacJobDataResource)Utils.getResource(ResourceType.GFAC_JOB_DATA, gFacJobData);
-                        resourceList.add(gFacJobDataResource);
-                    }
-                }
-                break;
-            default:
-                logger.error("Unsupported operation for experiment metadata resource "
-                        + "since there are no child resources generated by experiment metadata resource.. ",
-                        new UnsupportedOperationException());
-                throw new UnsupportedOperationException();
-        }
-        em.getTransaction().commit();
-        em.close();
-        return resourceList;
-    }
-
-    public void save() {
-        EntityManager em = ResourceUtils.getEntityManager();
-        Experiment_Metadata existingExpMetaData = em.find(Experiment_Metadata.class, expID);
-        em.close();
-
-        em = ResourceUtils.getEntityManager();
-        em.getTransaction().begin();
-        Experiment_Metadata experimentMetadata = new Experiment_Metadata();
-        experimentMetadata.setExperiment_id(expID);
-        experimentMetadata.setExperiment_name(experimentName);
-        experimentMetadata.setShare_experiment(shareExp);
-        experimentMetadata.setDescription(description);
-        Gateway gatewayModel = em.find(Gateway.class, gateway.getGatewayName());
-        experimentMetadata.setGateway(gatewayModel);
-        Project projectModel = em.find(Project.class, project.getName());
-        experimentMetadata.setProject(projectModel);
-        experimentMetadata.setExecution_user(executionUser);
-        experimentMetadata.setSubmitted_date(submittedDate);
-        if (existingExpMetaData != null) {
-            existingExpMetaData.setExperiment_id(expID);
-            existingExpMetaData.setDescription(description);
-            existingExpMetaData.setExperiment_name(experimentName);
-            existingExpMetaData.setGateway(gatewayModel);
-            existingExpMetaData.setExecution_user(executionUser);
-            existingExpMetaData.setProject(projectModel);
-            existingExpMetaData.setShare_experiment(shareExp);
-            existingExpMetaData.setSubmitted_date(submittedDate);
-            experimentMetadata = em.merge(existingExpMetaData);
-        } else {
-            em.persist(experimentMetadata);
-        }
-        em.getTransaction().commit();
-        em.close();
-
-    }
-
-    public boolean isWorkflowInstancePresent(String workflowInstanceId){
-        return isExists(ResourceType.WORKFLOW_DATA, workflowInstanceId);
-    }
-
-    public boolean isGFacJobPresent(String jobId){
-        return isExists(ResourceType.GFAC_JOB_DATA, jobId);
-    }
-
-    public WorkflowDataResource getWorkflowInstance(String workflowInstanceId){
-        return (WorkflowDataResource)get(ResourceType.WORKFLOW_DATA, workflowInstanceId);
-    }
-
-    public List<Resource> getGFacJobs(){
-        return get(ResourceType.GFAC_JOB_DATA);
-    }
-
-    public List<WorkflowDataResource> getWorkflowInstances(){
-        return getResourceList(get(ResourceType.WORKFLOW_DATA),WorkflowDataResource.class);
-    }
-
-    public WorkflowDataResource createWorkflowInstanceResource(String workflowInstanceID){
-        WorkflowDataResource r=(WorkflowDataResource)create(ResourceType.WORKFLOW_DATA);
-        r.setWorkflowInstanceID(workflowInstanceID);
-        return r;
-    }
-
-    public GFacJobDataResource createGFacJob(String jobID){
-        GFacJobDataResource r=(GFacJobDataResource)create(ResourceType.GFAC_JOB_DATA);
-        r.setLocalJobID(jobID);
-        return r;
-    }
-
-    public ExperimentMetadataResource createExperimentMetadata(){
-        return (ExperimentMetadataResource)create(ResourceType.EXPERIMENT_METADATA);
-    }
-
-    public ExecutionErrorResource createExecutionError(){
-        return (ExecutionErrorResource) create(ResourceType.EXECUTION_ERROR);
-    }
-
-    public void removeWorkflowInstance(String workflowInstanceId){
-        remove(ResourceType.WORKFLOW_DATA, workflowInstanceId);
-    }
-
-    public List<ExecutionErrorResource> getExecutionErrors(String type, String experimentId, String workflowInstanceId, String nodeId, String gfacJobId){
-        List<ExecutionErrorResource> resourceList = new ArrayList<ExecutionErrorResource>();
-        EntityManager em = ResourceUtils.getEntityManager();
-        em.getTransaction().begin();
-        Query q;
-        QueryGenerator generator;
-        List<?> results;
-        generator = new QueryGenerator(EXECUTION_ERROR);
-        if (experimentId!=null){
-            generator.setParameter(ExecutionErrorConstants.EXPERIMENT_ID, experimentId);
-        }
-        if (type!=null){
-            generator.setParameter(ExecutionErrorConstants.SOURCE_TYPE, type);
-        }
-        if (workflowInstanceId!=null){
-            generator.setParameter(ExecutionErrorConstants.WORKFLOW_ID, workflowInstanceId);
-        }
-        if (nodeId!=null){
-            generator.setParameter(ExecutionErrorConstants.NODE_ID, nodeId);
-        }
-        if (gfacJobId!=null){
-            generator.setParameter(ExecutionErrorConstants.GFAC_JOB_ID, gfacJobId);
-        }
-        q = generator.selectQuery(em);
-        results = q.getResultList();
-        if (results.size() != 0) {
-            for (Object result : results) {
-                Execution_Error executionError = (Execution_Error)result;
-                ExecutionErrorResource executionErrorResource = (ExecutionErrorResource)Utils.getResource(ResourceType.EXECUTION_ERROR, executionError);
-                resourceList.add(executionErrorResource);
-            }
-        }
-        em.getTransaction().commit();
-        em.close();
-        return resourceList;
-    }
-}
+///*
+// *
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements.  See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership.  The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License.  You may obtain a copy of the License at
+// *
+// *   http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing,
+// * software distributed under the License is distributed on an
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// * KIND, either express or implied.  See the License for the
+// * specific language governing permissions and limitations
+// * under the License.
+// *
+//*/
+//
+//package org.apache.airavata.persistance.registry.jpa.resources;
+//
+//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.*;
+//import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//
+//import javax.persistence.EntityManager;
+//import javax.persistence.Query;
+//import java.sql.Timestamp;
+//import java.util.ArrayList;
+//import java.util.List;
+//
+//public class ExperimentMetadataResource extends AbstractResource {
+//    private static final Logger logger = LoggerFactory.getLogger(ExperimentMetadataResource.class);
+//    private String expID;
+//    private String experimentName;
+//    private String description;
+//    private Timestamp submittedDate;
+//    private String executionUser;
+//    private GatewayResource gateway;
+//    private ProjectResource project;
+//    private boolean shareExp;
+//
+//    public static Logger getLogger() {
+//        return logger;
+//    }
+//
+//    public String getExpID() {
+//        return expID;
+//    }
+//
+//    public void setExpID(String expID) {
+//        this.expID = expID;
+//    }
+//
+//    public String getExperimentName() {
+//        return experimentName;
+//    }
+//
+//    public void setExperimentName(String experimentName) {
+//        this.experimentName = experimentName;
+//    }
+//
+//    public String getDescription() {
+//        return description;
+//    }
+//
+//    public void setDescription(String description) {
+//        this.description = description;
+//    }
+//
+//    public Timestamp getSubmittedDate() {
+//        return submittedDate;
+//    }
+//
+//    public void setSubmittedDate(Timestamp submittedDate) {
+//        this.submittedDate = submittedDate;
+//    }
+//
+//    public String getExecutionUser() {
+//        return executionUser;
+//    }
+//
+//    public void setExecutionUser(String executionUser) {
+//        this.executionUser = executionUser;
+//    }
+//
+//    public GatewayResource getGateway() {
+//        return gateway;
+//    }
+//
+//    public void setGateway(GatewayResource gateway) {
+//        this.gateway = gateway;
+//    }
+//
+//    public ProjectResource getProject() {
+//        return project;
+//    }
+//
+//    public void setProject(ProjectResource project) {
+//        this.project = project;
+//    }
+//
+//    public boolean isShareExp() {
+//        return shareExp;
+//    }
+//
+//    public void setShareExp(boolean shareExp) {
+//        this.shareExp = shareExp;
+//    }
+//
+//    public Resource create(ResourceType type) {
+//        switch (type) {
+//            case EXPERIMENT_CONFIG_DATA:
+//                ExperimentConfigDataResource configDataResource = new ExperimentConfigDataResource();
+//                configDataResource.setExMetadata(this);
+//                return configDataResource;
+//            case EXPERIMENT_SUMMARY:
+//                ExperimentSummaryResource summaryResource = new ExperimentSummaryResource();
+//                summaryResource.setExperimentMetadataResource(this);
+//                return summaryResource;
+//            case EXPERIMENT_INPUT:
+//                ExperimentInputResource exInputResource = new ExperimentInputResource();
+//                exInputResource.setExperimentMetadataResource(this);
+//                return exInputResource;
+//            case EXPERIMENT_OUTPUT:
+//                ExperimentOutputResource exOutputResouce = new ExperimentOutputResource();
+//                exOutputResouce.setExperimentMetadataResource(this);
+//                return exOutputResouce;
+//            case WORKFLOW_DATA:
+//                WorkflowDataResource workflowDataResource = new WorkflowDataResource();
+//                workflowDataResource.setExperimentID(expID);
+//                return workflowDataResource;
+//            case EXECUTION_ERROR:
+//                ExecutionErrorResource executionErrorResource = new ExecutionErrorResource();
+//                executionErrorResource.setMetadataResource(this);
+//                return executionErrorResource;
+//            case GFAC_JOB_DATA:
+//                GFacJobDataResource gFacJobDataResource = new GFacJobDataResource();
+//                gFacJobDataResource.setMetadataResource(this);
+//                return gFacJobDataResource;
+//            default:
+//                logger.error("Unsupported resource type for experiment metadata resource.", new IllegalArgumentException());
+//                throw new IllegalArgumentException("Unsupported resource type for gateway resource.");
+//            }
+//    }
+//
+//    public void remove(ResourceType type, Object name) {
+//        EntityManager em = ResourceUtils.getEntityManager();
+//        em.getTransaction().begin();
+//        Query q;
+//        QueryGenerator generator;
+//        switch (type){
+//            case EXPERIMENT_CONFIG_DATA:
+//                generator = new QueryGenerator(EXPERIMENT_CONFIG_DATA);
+//                generator.setParameter(ExperimentConfigurationDataConstants.EXPERIMENT_ID, name);
+//                q = generator.deleteQuery(em);
+//                q.executeUpdate();
+//                break;
+//            case EXPERIMENT_SUMMARY:
+//                generator = new QueryGenerator(EXPERIMENT_SUMMARY);
+//                generator.setParameter(ExperimentSummaryConstants.EXPERIMENT_ID, name);
+//                q = generator.deleteQuery(em);
+//                q.executeUpdate();
+//                break;
+//            case EXPERIMENT_INPUT:
+//                generator = new QueryGenerator(EXPERIMENT_INPUT);
+//                generator.setParameter(ExperimentInputConstants.EXPERIMENT_ID, name);
+//                q = generator.deleteQuery(em);
+//                q.executeUpdate();
+//                break;
+//            case EXPERIMENT_OUTPUT:
+//                generator = new QueryGenerator(EXPERIMENT_OUTPUT);
+//                generator.setParameter(ExperimentOutputConstants.EXPERIMENT_ID, name);
+//                q = generator.deleteQuery(em);
+//                q.executeUpdate();
+//                break;
+//            case WORKFLOW_DATA:
+//                generator = new QueryGenerator(WORKFLOW_DATA);
+//                generator.setParameter(WorkflowDataConstants.WORKFLOW_INSTANCE_ID, name);
+//                q = generator.deleteQuery(em);
+//                q.executeUpdate();
+//                break;
+//            case GFAC_JOB_DATA:
+//                generator = new QueryGenerator(GFAC_JOB_DATA);
+//                generator.setParameter(GFacJobDataConstants.LOCAL_JOB_ID, name);
+//                q = generator.deleteQuery(em);
+//                q.executeUpdate();
+//                break;
+//            default:
+//                logger.error("Unsupported operation for experiment metadata resource "
+//                + "since there are no child resources generated by experiment metadata resource.. ",
+//                new UnsupportedOperationException());
+//                throw new UnsupportedOperationException();
+//        }
+//        em.getTransaction().commit();
+//        em.close();
+//    }
+//
+//    public Resource get(ResourceType type, Object name) {
+//        EntityManager em = ResourceUtils.getEntityManager();
+//        em.getTransaction().begin();
+//        QueryGenerator generator;
+//        Query q;
+//        switch (type) {
+//            case EXPERIMENT_CONFIG_DATA:
+//                generator = new QueryGenerator(EXPERIMENT_CONFIG_DATA);
+//                generator.setParameter(ExperimentConfigurationDataConstants.EXPERIMENT_ID, name);
+//                q = generator.selectQuery(em);
+//                Experiment_Configuration_Data exConfigData = (Experiment_Configuration_Data) q.getSingleResult();
+//                ExperimentConfigDataResource experimentConfigDataResource =
+//                        (ExperimentConfigDataResource)Utils.getResource(ResourceType.EXPERIMENT_CONFIG_DATA, exConfigData);
+//                em.getTransaction().commit();
+//                em.close();
+//                return experimentConfigDataResource;
+//            case EXPERIMENT_SUMMARY:
+//                generator = new QueryGenerator(EXPERIMENT_SUMMARY);
+//                generator.setParameter(ExperimentSummaryConstants.EXPERIMENT_ID, name);
+//                q = generator.selectQuery(em);
+//                Experiment_Summary exSummaryData = (Experiment_Summary) q.getSingleResult();
+//                ExperimentSummaryResource exSummary =
+//                        (ExperimentSummaryResource)Utils.getResource(ResourceType.EXPERIMENT_SUMMARY, exSummaryData);
+//                em.getTransaction().commit();
+//                em.close();
+//                return exSummary;
+//            case EXPERIMENT_INPUT:
+//                generator = new QueryGenerator(EXPERIMENT_INPUT);
+//                generator.setParameter(ExperimentInputConstants.EXPERIMENT_ID, name);
+//                q = generator.selectQuery(em);
+//                Experiment_Input exInput = (Experiment_Input) q.getSingleResult();
+//                ExperimentInputResource experimentInput =
+//                        (ExperimentInputResource)Utils.getResource(ResourceType.EXPERIMENT_INPUT, exInput);
+//                em.getTransaction().commit();
+//                em.close();
+//                return experimentInput;
+//            case EXPERIMENT_OUTPUT:
+//                generator = new QueryGenerator(EXPERIMENT_OUTPUT);
+//                generator.setParameter(ExperimentOutputConstants.EXPERIMENT_ID, name);
+//                q = generator.selectQuery(em);
+//                Experiment_Output exOutput = (Experiment_Output) q.getSingleResult();
+//                ExperimentOutputResource experimentOutput =
+//                        (ExperimentOutputResource)Utils.getResource(ResourceType.EXPERIMENT_OUTPUT, exOutput);
+//                em.getTransaction().commit();
+//                em.close();
+//                return experimentOutput;
+//            case WORKFLOW_DATA:
+//                generator = new QueryGenerator(WORKFLOW_DATA);
+////                generator.setParameter(WorkflowDataConstants.EXPERIMENT_ID, experimentID);
+//                generator.setParameter(WorkflowDataConstants.WORKFLOW_INSTANCE_ID, name);
+//                q = generator.selectQuery(em);
+//                Workflow_Data eworkflowData = (Workflow_Data)q.getSingleResult();
+//                WorkflowDataResource workflowDataResource = (WorkflowDataResource)Utils.getResource(ResourceType.WORKFLOW_DATA, eworkflowData);
+//                em.getTransaction().commit();
+//                em.close();
+//                return workflowDataResource;
+//            case GFAC_JOB_DATA:
+//                generator = new QueryGenerator(GFAC_JOB_DATA);
+//                generator.setParameter(GFacJobDataConstants.LOCAL_JOB_ID, name);
+//                q = generator.selectQuery(em);
+//                GFac_Job_Data gFacJobData = (GFac_Job_Data)q.getSingleResult();
+//                GFacJobDataResource gFacJobDataResource = (GFacJobDataResource)Utils.getResource(ResourceType.GFAC_JOB_DATA, gFacJobData);
+//                em.getTransaction().commit();
+//                em.close();
+//                return gFacJobDataResource;
+//            default:
+//                logger.error("Unsupported operation for experiment metadata resource "
+//                        + "since there are no child resources generated by experiment metadata resource.. ",
+//                        new UnsupportedOperationException());
+//                throw new UnsupportedOperationException();
+//        }
+//    }
+//
+//    public List<Resource> get(ResourceType type) {
+//        List<Resource> resourceList = new ArrayList<Resource>();
+//        EntityManager em = ResourceUtils.getEntityManager();
+//        em.getTransaction().begin();
+//        Query q;
+//        QueryGenerator generator;
+//        List results;
+//        switch (type){
+//            case EXPERIMENT_INPUT:
+//                generator = new QueryGenerator(EXPERIMENT_INPUT);
+//                generator.setParameter(ExperimentInputConstants.EXPERIMENT_ID, expID);
+//                q = generator.selectQuery(em);
+//                results = q.getResultList();
+//                if (results.size() != 0) {
+//                    for (Object result : results) {
+//                        Experiment_Input expInput = (Experiment_Input) result;
+//                        ExperimentInputResource experimentResource =
+//                                (ExperimentInputResource)Utils.getResource(ResourceType.EXPERIMENT_INPUT, expInput);
+//                        resourceList.add(experimentResource);
+//                    }
+//                }
+//                break;
+//            case EXPERIMENT_OUTPUT:
+//                generator = new QueryGenerator(EXPERIMENT_OUTPUT);
+//                generator.setParameter(ExperimentOutputConstants.EXPERIMENT_ID, expID);
+//                q = generator.selectQuery(em);
+//                results = q.getResultList();
+//                if (results.size() != 0) {
+//                    for (Object result : results) {
+//                        Experiment_Output expOutput = (Experiment_Output) result;
+//                        ExperimentOutputResource experimentResource =
+//                                (ExperimentOutputResource)Utils.getResource(ResourceType.EXPERIMENT_INPUT, expOutput);
+//                        resourceList.add(experimentResource);
+//                    }
+//                }
+//                break;
+//            case WORKFLOW_DATA:
+//                generator = new QueryGenerator(WORKFLOW_DATA);
+////                generator.setParameter(WorkflowDataConstants.EXPERIMENT_ID, experimentID);
+//                Experiment_Metadata experiment_metadata = em.find(Experiment_Metadata.class, expID);
+//                generator.setParameter("experiment_metadata", experiment_metadata);
+//                q = generator.selectQuery(em);
+//                results = q.getResultList();
+//                if (results.size() != 0) {
+//                    for (Object result : results) {
+//                        Workflow_Data workflowData = (Workflow_Data) result;
+//                        WorkflowDataResource workflowDataResource = (WorkflowDataResource)Utils.getResource(ResourceType.WORKFLOW_DATA, workflowData);
+//                        resourceList.add(workflowDataResource);
+//                    }
+//                }
+//                break;
+//            case EXECUTION_ERROR:
+//                generator = new QueryGenerator(EXECUTION_ERROR);
+//                generator.setParameter(ExecutionErrorConstants.EXPERIMENT_ID, expID);
+//                q = generator.selectQuery(em);
+//                results = q.getResultList();
+//                if (results.size() != 0) {
+//                    for (Object result : results) {
+//                        Execution_Error executionError = (Execution_Error)result;
+//                        ExecutionErrorResource executionErrorResource = (ExecutionErrorResource)Utils.getResource(ResourceType.EXECUTION_ERROR, executionError);
+//                        resourceList.add(executionErrorResource);
+//                    }
+//                }
+//                break;
+//            case GFAC_JOB_DATA:
+//                generator = new QueryGenerator(GFAC_JOB_DATA);
+//                generator.setParameter(GFacJobDataConstants.EXPERIMENT_ID, expID);
+//                q = generator.selectQuery(em);
+//                results = q.getResultList();
+//                if (results.size() != 0) {
+//                    for (Object result : results) {
+//                        GFac_Job_Data gFacJobData = (GFac_Job_Data)result;
+//                        GFacJobDataResource gFacJobDataResource = (GFacJobDataResource)Utils.getResource(ResourceType.GFAC_JOB_DATA, gFacJobData);
+//                        resourceList.add(gFacJobDataResource);
+//                    }
+//                }
+//                break;
+//            default:
+//                logger.error("Unsupported operation for experiment metadata resource "
+//                        + "since there are no child resources generated by experiment metadata resource.. ",
+//                        new UnsupportedOperationException());
+//                throw new UnsupportedOperationException();
+//        }
+//        em.getTransaction().commit();
+//        em.close();
+//        return resourceList;
+//    }
+//
+//    public void save() {
+//        EntityManager em = ResourceUtils.getEntityManager();
+//        Experiment_Metadata existingExpMetaData = em.find(Experiment_Metadata.class, expID);
+//        em.close();
+//
+//        em = ResourceUtils.getEntityManager();
+//        em.getTransaction().begin();
+//        Experiment_Metadata experimentMetadata = new Experiment_Metadata();
+//        experimentMetadata.setExperiment_id(expID);
+//        experimentMetadata.setExperiment_name(experimentName);
+//        experimentMetadata.setShare_experiment(shareExp);
+//        experimentMetadata.setDescription(description);
+//        Gateway gatewayModel = em.find(Gateway.class, gateway.getGatewayName());
+//        experimentMetadata.setGateway(gatewayModel);
+//        Project projectModel = em.find(Project.class, project.getName());
+//        experimentMetadata.setProject(projectModel);
+//        experimentMetadata.setExecution_user(executionUser);
+//        experimentMetadata.setSubmitted_date(submittedDate);
+//        if (existingExpMetaData != null) {
+//            existingExpMetaData.setExperiment_id(expID);
+//            existingExpMetaData.setDescription(description);
+//            existingExpMetaData.setExperiment_name(experimentName);
+//            existingExpMetaData.setGateway(gatewayModel);
+//            existingExpMetaData.setExecution_user(executionUser);
+//            existingExpMetaData.setProject(projectModel);
+//            existingExpMetaData.setShare_experiment(shareExp);
+//            existingExpMetaData.setSubmitted_date(submittedDate);
+//            experimentMetadata = em.merge(existingExpMetaData);
+//        } else {
+//            em.persist(experimentMetadata);
+//        }
+//        em.getTransaction().commit();
+//        em.close();
+//
+//    }
+//
+//    public boolean isWorkflowInstancePresent(String workflowInstanceId){
+//        return isExists(ResourceType.WORKFLOW_DATA, workflowInstanceId);
+//    }
+//
+//    public boolean isGFacJobPresent(String jobId){
+//        return isExists(ResourceType.GFAC_JOB_DATA, jobId);
+//    }
+//
+//    public WorkflowDataResource getWorkflowInstance(String workflowInstanceId){
+//        return (WorkflowDataResource)get(ResourceType.WORKFLOW_DATA, workflowInstanceId);
+//    }
+//
+//    public List<Resource> getGFacJobs(){
+//        return get(ResourceType.GFAC_JOB_DATA);
+//    }
+//
+//    public List<WorkflowDataResource> getWorkflowInstances(){
+//        return getResourceList(get(ResourceType.WORKFLOW_DATA),WorkflowDataResource.class);
+//    }
+//
+//    public WorkflowDataResource createWorkflowInstanceResource(String workflowInstanceID){
+//        WorkflowDataResource r=(WorkflowDataResource)create(ResourceType.WORKFLOW_DATA);
+//        r.setWorkflowInstanceID(workflowInstanceID);
+//        return r;
+//    }
+//
+//    public GFacJobDataResource createGFacJob(String jobID){
+//        GFacJobDataResource r=(GFacJobDataResource)create(ResourceType.GFAC_JOB_DATA);
+//        r.setLocalJobID(jobID);
+//        return r;
+//    }
+//
+//    public ExperimentMetadataResource createExperimentMetadata(){
+//        return (ExperimentMetadataResource)create(ResourceType.EXPERIMENT_METADATA);
+//    }
+//
+//    public ExecutionErrorResource createExecutionError(){
+//        return (ExecutionErrorResource) create(ResourceType.EXECUTION_ERROR);
+//    }
+//
+//    public void removeWorkflowInstance(String workflowInstanceId){
+//        remove(ResourceType.WORKFLOW_DATA, workflowInstanceId);
+//    }
+//
+//    public List<ExecutionErrorResource> getExecutionErrors(String type, String experimentId, String workflowInstanceId, String nodeId, String gfacJobId){
+//        List<ExecutionErrorResource> resourceList = new ArrayList<ExecutionErrorResource>();
+//        EntityManager em = ResourceUtils.getEntityManager();
+//        em.getTransaction().begin();
+//        Query q;
+//        QueryGenerator generator;
+//        List<?> results;
+//        generator = new QueryGenerator(EXECUTION_ERROR);
+//        if (experimentId!=null){
+//            generator.setParameter(ExecutionErrorConstants.EXPERIMENT_ID, experimentId);
+//        }
+//        if (type!=null){
+//            generator.setParameter(ExecutionErrorConstants.SOURCE_TYPE, type);
+//        }
+//        if (workflowInstanceId!=null){
+//            generator.setParameter(ExecutionErrorConstants.WORKFLOW_ID, workflowInstanceId);
+//        }
+//        if (nodeId!=null){
+//            generator.setParameter(ExecutionErrorConstants.NODE_ID, nodeId);
+//        }
+//        if (gfacJobId!=null){
+//            generator.setParameter(ExecutionErrorConstants.GFAC_JOB_ID, gfacJobId);
+//        }
+//        q = generator.selectQuery(em);
+//        results = q.getResultList();
+//        if (results.size() != 0) {
+//            for (Object result : results) {
+//                Execution_Error executionError = (Execution_Error)result;
+//                ExecutionErrorResource executionErrorResource = (ExecutionErrorResource)Utils.getResource(ResourceType.EXECUTION_ERROR, executionError);
+//                resourceList.add(executionErrorResource);
+//            }
+//        }
+//        em.getTransaction().commit();
+//        em.close();
+//        return resourceList;
+//    }
+//}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a0c1cbde/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentOutputResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentOutputResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentOutputResource.java
index 6aa5fee..bcd70e8 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentOutputResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentOutputResource.java
@@ -1,113 +1,113 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.persistance.registry.jpa.resources;
-
-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.Experiment_Metadata;
-import org.apache.airavata.persistance.registry.jpa.model.Experiment_Output;
-import org.apache.airavata.persistance.registry.jpa.model.Experiment_Output_PK;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.EntityManager;
-import java.util.List;
-
-public class ExperimentOutputResource extends AbstractResource {
-    private static final Logger logger = LoggerFactory.getLogger(ExperimentOutputResource.class);
-
-    private ExperimentMetadataResource experimentMetadataResource;
-    private String experimentKey;
-    private String value;
-
-    public ExperimentMetadataResource getExperimentMetadataResource() {
-        return experimentMetadataResource;
-    }
-
-    public void setExperimentMetadataResource(ExperimentMetadataResource experimentMetadataResource) {
-        this.experimentMetadataResource = experimentMetadataResource;
-    }
-
-    public String getExperimentKey() {
-        return experimentKey;
-    }
-
-    public void setExperimentKey(String experimentKey) {
-        this.experimentKey = experimentKey;
-    }
-
-    public String getValue() {
-        return value;
-    }
-
-    public void setValue(String value) {
-        this.value = value;
-    }
-
-    public Resource create(ResourceType type) {
-        logger.error("Unsupported resource type for experiment output data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    public void remove(ResourceType type, Object name) {
-        logger.error("Unsupported resource type for experiment output data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    public Resource get(ResourceType type, Object name) {
-        logger.error("Unsupported resource type for experiment output data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    public List<Resource> get(ResourceType type) {
-        logger.error("Unsupported resource type for experiment output data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    public void save() {
-        EntityManager em = ResourceUtils.getEntityManager();
-        Experiment_Output existingOutput = em.find(Experiment_Output.class, new Experiment_Output_PK(experimentMetadataResource.getExpID(), experimentKey));
-        em.close();
-
-        em = ResourceUtils.getEntityManager();
-        em.getTransaction().begin();
-        Experiment_Output exOutput = new Experiment_Output();
-        exOutput.setEx_key(experimentKey);
-        Experiment_Metadata metadata = em.find(Experiment_Metadata.class, experimentMetadataResource.getExpID());
-        exOutput.setExperiment_metadata(metadata);
-        exOutput.setExperiment_id(metadata.getExperiment_id());
-        exOutput.setValue(value);
-
-        if (existingOutput != null){
-            existingOutput.setEx_key(experimentKey);
-            existingOutput.setExperiment_metadata(metadata);
-            existingOutput.setValue(value);
-            existingOutput.setExperiment_id(metadata.getExperiment_id());
-            exOutput = em.merge(existingOutput);
-        }else {
-            em.persist(exOutput);
-        }
-        em.getTransaction().commit();
-        em.close();
-    }
-}
+///*
+// *
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements.  See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership.  The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License.  You may obtain a copy of the License at
+// *
+// *   http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing,
+// * software distributed under the License is distributed on an
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// * KIND, either express or implied.  See the License for the
+// * specific language governing permissions and limitations
+// * under the License.
+// *
+// */
+//
+//package org.apache.airavata.persistance.registry.jpa.resources;
+//
+//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.Experiment_Metadata;
+//import org.apache.airavata.persistance.registry.jpa.model.Experiment_Output;
+//import org.apache.airavata.persistance.registry.jpa.model.Experiment_Output_PK;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//
+//import javax.persistence.EntityManager;
+//import java.util.List;
+//
+//public class ExperimentOutputResource extends AbstractResource {
+//    private static final Logger logger = LoggerFactory.getLogger(ExperimentOutputResource.class);
+//
+//    private ExperimentMetadataResource experimentMetadataResource;
+//    private String experimentKey;
+//    private String value;
+//
+//    public ExperimentMetadataResource getExperimentMetadataResource() {
+//        return experimentMetadataResource;
+//    }
+//
+//    public void setExperimentMetadataResource(ExperimentMetadataResource experimentMetadataResource) {
+//        this.experimentMetadataResource = experimentMetadataResource;
+//    }
+//
+//    public String getExperimentKey() {
+//        return experimentKey;
+//    }
+//
+//    public void setExperimentKey(String experimentKey) {
+//        this.experimentKey = experimentKey;
+//    }
+//
+//    public String getValue() {
+//        return value;
+//    }
+//
+//    public void setValue(String value) {
+//        this.value = value;
+//    }
+//
+//    public Resource create(ResourceType type) {
+//        logger.error("Unsupported resource type for experiment output data resource.", new UnsupportedOperationException());
+//        throw new UnsupportedOperationException();
+//    }
+//
+//    public void remove(ResourceType type, Object name) {
+//        logger.error("Unsupported resource type for experiment output data resource.", new UnsupportedOperationException());
+//        throw new UnsupportedOperationException();
+//    }
+//
+//    public Resource get(ResourceType type, Object name) {
+//        logger.error("Unsupported resource type for experiment output data resource.", new UnsupportedOperationException());
+//        throw new UnsupportedOperationException();
+//    }
+//
+//    public List<Resource> get(ResourceType type) {
+//        logger.error("Unsupported resource type for experiment output data resource.", new UnsupportedOperationException());
+//        throw new UnsupportedOperationException();
+//    }
+//
+//    public void save() {
+//        EntityManager em = ResourceUtils.getEntityManager();
+//        Experiment_Output existingOutput = em.find(Experiment_Output.class, new Experiment_Output_PK(experimentMetadataResource.getExpID(), experimentKey));
+//        em.close();
+//
+//        em = ResourceUtils.getEntityManager();
+//        em.getTransaction().begin();
+//        Experiment_Output exOutput = new Experiment_Output();
+//        exOutput.setEx_key(experimentKey);
+//        Experiment_Metadata metadata = em.find(Experiment_Metadata.class, experimentMetadataResource.getExpID());
+//        exOutput.setExperiment_metadata(metadata);
+//        exOutput.setExperiment_id(metadata.getExperiment_id());
+//        exOutput.setValue(value);
+//
+//        if (existingOutput != null){
+//            existingOutput.setEx_key(experimentKey);
+//            existingOutput.setExperiment_metadata(metadata);
+//            existingOutput.setValue(value);
+//            existingOutput.setExperiment_id(metadata.getExperiment_id());
+//            exOutput = em.merge(existingOutput);
+//        }else {
+//            em.persist(exOutput);
+//        }
+//        em.getTransaction().commit();
+//        em.close();
+//    }
+//}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a0c1cbde/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentSummaryResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentSummaryResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentSummaryResource.java
index 6e841b9..08a2aed 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentSummaryResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentSummaryResource.java
@@ -1,112 +1,112 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.persistance.registry.jpa.resources;
-
-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.Experiment_Metadata;
-import org.apache.airavata.persistance.registry.jpa.model.Experiment_Summary;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.EntityManager;
-import java.sql.Timestamp;
-import java.util.List;
-
-public class ExperimentSummaryResource extends AbstractResource {
-    private static final Logger logger = LoggerFactory.getLogger(ExperimentSummaryResource.class);
-    private ExperimentMetadataResource experimentMetadataResource;
-    private String status;
-    private Timestamp lastUpdateTime;
-
-    public ExperimentMetadataResource getExperimentMetadataResource() {
-        return experimentMetadataResource;
-    }
-
-    public void setExperimentMetadataResource(ExperimentMetadataResource experimentMetadataResource) {
-        this.experimentMetadataResource = experimentMetadataResource;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public Timestamp getLastUpdateTime() {
-        return lastUpdateTime;
-    }
-
-    public void setLastUpdateTime(Timestamp lastUpdateTime) {
-        this.lastUpdateTime = lastUpdateTime;
-    }
-
-    public Resource create(ResourceType type) {
-        logger.error("Unsupported resource type for experiment summary data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    public void remove(ResourceType type, Object name) {
-        logger.error("Unsupported resource type for experiment summary data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    public Resource get(ResourceType type, Object name) {
-        logger.error("Unsupported resource type for experiment summary data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    public List<Resource> get(ResourceType type) {
-        logger.error("Unsupported resource type for experiment summary data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    public void save() {
-        EntityManager em = ResourceUtils.getEntityManager();
-        Experiment_Summary existingExSummary = em.find(Experiment_Summary.class, experimentMetadataResource.getExpID());
-        em.close();
-
-        em = ResourceUtils.getEntityManager();
-        em.getTransaction().begin();
-        Experiment_Summary exSummary = new Experiment_Summary();
-        exSummary.setLast_update_time(lastUpdateTime);
-        exSummary.setStatus(status);
-        Experiment_Metadata metadata = em.find(Experiment_Metadata.class, experimentMetadataResource.getExpID());
-        exSummary.setExperiment_metadata(metadata);
-        exSummary.setExperimentID(metadata.getExperiment_id());
-
-        if (existingExSummary != null){
-            existingExSummary.setLast_update_time(lastUpdateTime);
-            existingExSummary.setStatus(status);
-            existingExSummary.setExperiment_metadata(metadata);
-            existingExSummary.setExperimentID(metadata.getExperiment_id());
-            exSummary = em.merge(existingExSummary);
-        }  else {
-            em.persist(exSummary);
-        }
-        em.getTransaction().commit();
-        em.close();
-    }
-}
+///*
+// *
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements.  See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership.  The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License.  You may obtain a copy of the License at
+// *
+// *   http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing,
+// * software distributed under the License is distributed on an
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// * KIND, either express or implied.  See the License for the
+// * specific language governing permissions and limitations
+// * under the License.
+// *
+// */
+//
+//package org.apache.airavata.persistance.registry.jpa.resources;
+//
+//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.Experiment_Metadata;
+//import org.apache.airavata.persistance.registry.jpa.model.Experiment_Summary;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//
+//import javax.persistence.EntityManager;
+//import java.sql.Timestamp;
+//import java.util.List;
+//
+//public class ExperimentSummaryResource extends AbstractResource {
+//    private static final Logger logger = LoggerFactory.getLogger(ExperimentSummaryResource.class);
+//    private ExperimentMetadataResource experimentMetadataResource;
+//    private String status;
+//    private Timestamp lastUpdateTime;
+//
+//    public ExperimentMetadataResource getExperimentMetadataResource() {
+//        return experimentMetadataResource;
+//    }
+//
+//    public void setExperimentMetadataResource(ExperimentMetadataResource experimentMetadataResource) {
+//        this.experimentMetadataResource = experimentMetadataResource;
+//    }
+//
+//    public String getStatus() {
+//        return status;
+//    }
+//
+//    public void setStatus(String status) {
+//        this.status = status;
+//    }
+//
+//    public Timestamp getLastUpdateTime() {
+//        return lastUpdateTime;
+//    }
+//
+//    public void setLastUpdateTime(Timestamp lastUpdateTime) {
+//        this.lastUpdateTime = lastUpdateTime;
+//    }
+//
+//    public Resource create(ResourceType type) {
+//        logger.error("Unsupported resource type for experiment summary data resource.", new UnsupportedOperationException());
+//        throw new UnsupportedOperationException();
+//    }
+//
+//    public void remove(ResourceType type, Object name) {
+//        logger.error("Unsupported resource type for experiment summary data resource.", new UnsupportedOperationException());
+//        throw new UnsupportedOperationException();
+//    }
+//
+//    public Resource get(ResourceType type, Object name) {
+//        logger.error("Unsupported resource type for experiment summary data resource.", new UnsupportedOperationException());
+//        throw new UnsupportedOperationException();
+//    }
+//
+//    public List<Resource> get(ResourceType type) {
+//        logger.error("Unsupported resource type for experiment summary data resource.", new UnsupportedOperationException());
+//        throw new UnsupportedOperationException();
+//    }
+//
+//    public void save() {
+//        EntityManager em = ResourceUtils.getEntityManager();
+//        Experiment_Summary existingExSummary = em.find(Experiment_Summary.class, experimentMetadataResource.getExpID());
+//        em.close();
+//
+//        em = ResourceUtils.getEntityManager();
+//        em.getTransaction().begin();
+//        Experiment_Summary exSummary = new Experiment_Summary();
+//        exSummary.setLast_update_time(lastUpdateTime);
+//        exSummary.setStatus(status);
+//        Experiment_Metadata metadata = em.find(Experiment_Metadata.class, experimentMetadataResource.getExpID());
+//        exSummary.setExperiment_metadata(metadata);
+//        exSummary.setExperimentID(metadata.getExperiment_id());
+//
+//        if (existingExSummary != null){
+//            existingExSummary.setLast_update_time(lastUpdateTime);
+//            existingExSummary.setStatus(status);
+//            existingExSummary.setExperiment_metadata(metadata);
+//            existingExSummary.setExperimentID(metadata.getExperiment_id());
+//            exSummary = em.merge(existingExSummary);
+//        }  else {
+//            em.persist(exSummary);
+//        }
+//        em.getTransaction().commit();
+//        em.close();
+//    }
+//}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a0c1cbde/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/GFacJobDataResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/GFacJobDataResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/GFacJobDataResource.java
index 35ea727..16a476d 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/GFacJobDataResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/GFacJobDataResource.java
@@ -1,257 +1,257 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.persistance.registry.jpa.resources;
-
-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.*;
-import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.List;
-
-public class GFacJobDataResource extends AbstractResource {
-    private final static Logger logger = LoggerFactory.getLogger(GFacJobDataResource.class);
-    private ExperimentMetadataResource metadataResource;
-    private WorkflowDataResource workflowDataResource;
-    private String nodeID;
-    private String applicationDescID;
-    private String hostDescID;
-    private String serviceDescID;
-    private String jobData;
-    private String localJobID;
-    private Timestamp submittedTime;
-    private Timestamp statusUpdateTime;
-    private String status;
-    private String metadata;
-
-    public ExperimentMetadataResource getMetadataResource() {
-        return metadataResource;
-    }
-
-    public WorkflowDataResource getWorkflowDataResource() {
-        return workflowDataResource;
-    }
-
-    public String getNodeID() {
-        return nodeID;
-    }
-
-    public String getApplicationDescID() {
-        return applicationDescID;
-    }
-
-    public String getHostDescID() {
-        return hostDescID;
-    }
-
-    public String getServiceDescID() {
-        return serviceDescID;
-    }
-
-    public String getJobData() {
-        return jobData;
-    }
-
-    public String getLocalJobID() {
-        return localJobID;
-    }
-
-    public Timestamp getSubmittedTime() {
-        return submittedTime;
-    }
-
-    public Timestamp getStatusUpdateTime() {
-        return statusUpdateTime;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public String getMetadata() {
-        return metadata;
-    }
-
-    public void setMetadataResource(ExperimentMetadataResource metadataResource) {
-        this.metadataResource = metadataResource;
-    }
-
-    public void setWorkflowDataResource(WorkflowDataResource workflowDataResource) {
-        this.workflowDataResource = workflowDataResource;
-    }
-
-    public void setNodeID(String nodeID) {
-        this.nodeID = nodeID;
-    }
-
-    public void setApplicationDescID(String applicationDescID) {
-        this.applicationDescID = applicationDescID;
-    }
-
-    public void setHostDescID(String hostDescID) {
-        this.hostDescID = hostDescID;
-    }
-
-    public void setServiceDescID(String serviceDescID) {
-        this.serviceDescID = serviceDescID;
-    }
-
-    public void setJobData(String jobData) {
-        this.jobData = jobData;
-    }
-
-    public void setLocalJobID(String localJobID) {
-        this.localJobID = localJobID;
-    }
-
-    public void setSubmittedTime(Timestamp submittedTime) {
-        this.submittedTime = submittedTime;
-    }
-
-    public void setStatusUpdateTime(Timestamp statusUpdateTime) {
-        this.statusUpdateTime = statusUpdateTime;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public void setMetadata(String metadata) {
-        this.metadata = metadata;
-    }
-
-    @Override
-    public Resource create(ResourceType type) {
-        switch (type){
-            case GFAC_JOB_STATUS:
-                GFacJobStatusResource gFacJobStatusResource = new GFacJobStatusResource();
-                gFacJobStatusResource.setLocalJobID(localJobID);
-                gFacJobStatusResource.setgFacJobDataResource(this);
-                return gFacJobStatusResource;
-            default:
-                logger.error("Unsupported resource type for GFac Job status resource" ,new UnsupportedOperationException() );
-                throw new UnsupportedOperationException();
-        }
-    }
-
-    @Override
-    public void remove(ResourceType type, Object name) {
-        logger.error("Unsupported resource type for GFac Job data resource" ,new UnsupportedOperationException() );
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public Resource get(ResourceType type, Object name) {
-        logger.error("Unsupported resource type for GFac Job data resource" ,new UnsupportedOperationException() );
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public List<Resource> get(ResourceType type) {
-        List<Resource> resourceList = new ArrayList<Resource>();
-        EntityManager em = ResourceUtils.getEntityManager();
-        em.getTransaction().begin();
-        Query q;
-        QueryGenerator generator;
-        List results;
-        switch (type){
-            case GFAC_JOB_STATUS:
-                generator = new QueryGenerator(GFAC_JOB_STATUS);
-                generator.setParameter(GFacJobStatusConstants.LOCAL_JOB_ID, localJobID);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        GFac_Job_Status gFacJobStatus = (GFac_Job_Status) result;
-                        GFacJobStatusResource gFacJobStatusResource =
-                                (GFacJobStatusResource)Utils.getResource(ResourceType.GFAC_JOB_STATUS, gFacJobStatus);
-                        resourceList.add(gFacJobStatusResource);
-                    }
-                }
-                break;
-            default:
-                em.getTransaction().commit();
-                em.close();
-                logger.error("Unsupported resource type for gfac job data resource.", new IllegalArgumentException());
-                throw new IllegalArgumentException("Unsupported resource type for gfac job data resource.");
-        }
-        em.getTransaction().commit();
-        em.close();
-        return resourceList;
-    }
-
-    @Override
-    public void save() {
-        EntityManager em = ResourceUtils.getEntityManager();
-        GFac_Job_Data existingGfacJobData = em.find(GFac_Job_Data.class, localJobID);
-        em.close();
-
-        em = ResourceUtils.getEntityManager();
-        em.getTransaction().begin();
-        GFac_Job_Data gFacJobData = new GFac_Job_Data();
-        Experiment_Metadata experiment_data = em.find(Experiment_Metadata.class, metadataResource.getExpID());
-        gFacJobData.setExperiment_metadata(experiment_data);
-        gFacJobData.setExperiment_ID(metadataResource.getExpID());
-        Workflow_Data workflow_data = em.find(Workflow_Data.class, workflowDataResource.getWorkflowInstanceID());
-        gFacJobData.setWorkflow_Data(workflow_data);
-        gFacJobData.setWorkflow_instanceID(workflowDataResource.getWorkflowInstanceID());
-        gFacJobData.setNode_id(nodeID);
-        gFacJobData.setApplication_descriptor_ID(applicationDescID);
-        gFacJobData.setLocal_Job_ID(localJobID);
-        gFacJobData.setService_descriptor_ID(serviceDescID);
-        gFacJobData.setHost_descriptor_ID(hostDescID);
-        gFacJobData.setJob_data(jobData);
-        gFacJobData.setSubmitted_time(submittedTime);
-        gFacJobData.setStatus_update_time(statusUpdateTime);
-        gFacJobData.setStatus(status);
-        gFacJobData.setMetadata(metadata);
-        if(existingGfacJobData != null){
-            existingGfacJobData.setExperiment_metadata(experiment_data);
-            existingGfacJobData.setExperiment_ID(metadataResource.getExpID());
-            Workflow_Data workflow_data1 = em.find(Workflow_Data.class, workflowDataResource.getWorkflowInstanceID());
-            existingGfacJobData.setWorkflow_Data(workflow_data1);
-            existingGfacJobData.setWorkflow_instanceID(workflowDataResource.getWorkflowInstanceID());
-            existingGfacJobData.setNode_id(nodeID);
-            existingGfacJobData.setApplication_descriptor_ID(applicationDescID);
-            existingGfacJobData.setLocal_Job_ID(localJobID);
-            existingGfacJobData.setService_descriptor_ID(serviceDescID);
-            existingGfacJobData.setHost_descriptor_ID(hostDescID);
-            existingGfacJobData.setJob_data(jobData);
-            existingGfacJobData.setSubmitted_time(submittedTime);
-            existingGfacJobData.setStatus_update_time(statusUpdateTime);
-            existingGfacJobData.setStatus(status);
-            existingGfacJobData.setMetadata(metadata);
-            gFacJobData = em.merge(existingGfacJobData);
-        }  else {
-            em.persist(gFacJobData);
-        }
-        em.getTransaction().commit();
-        em.close();
-    }
-
-}
+///*
+// *
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements.  See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership.  The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License.  You may obtain a copy of the License at
+// *
+// *   http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing,
+// * software distributed under the License is distributed on an
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// * KIND, either express or implied.  See the License for the
+// * specific language governing permissions and limitations
+// * under the License.
+// *
+//*/
+//package org.apache.airavata.persistance.registry.jpa.resources;
+//
+//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.*;
+//import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//
+//import javax.persistence.EntityManager;
+//import javax.persistence.Query;
+//import java.sql.Timestamp;
+//import java.util.ArrayList;
+//import java.util.List;
+//
+//public class GFacJobDataResource extends AbstractResource {
+//    private final static Logger logger = LoggerFactory.getLogger(GFacJobDataResource.class);
+//    private ExperimentMetadataResource metadataResource;
+//    private WorkflowDataResource workflowDataResource;
+//    private String nodeID;
+//    private String applicationDescID;
+//    private String hostDescID;
+//    private String serviceDescID;
+//    private String jobData;
+//    private String localJobID;
+//    private Timestamp submittedTime;
+//    private Timestamp statusUpdateTime;
+//    private String status;
+//    private String metadata;
+//
+//    public ExperimentMetadataResource getMetadataResource() {
+//        return metadataResource;
+//    }
+//
+//    public WorkflowDataResource getWorkflowDataResource() {
+//        return workflowDataResource;
+//    }
+//
+//    public String getNodeID() {
+//        return nodeID;
+//    }
+//
+//    public String getApplicationDescID() {
+//        return applicationDescID;
+//    }
+//
+//    public String getHostDescID() {
+//        return hostDescID;
+//    }
+//
+//    public String getServiceDescID() {
+//        return serviceDescID;
+//    }
+//
+//    public String getJobData() {
+//        return jobData;
+//    }
+//
+//    public String getLocalJobID() {
+//        return localJobID;
+//    }
+//
+//    public Timestamp getSubmittedTime() {
+//        return submittedTime;
+//    }
+//
+//    public Timestamp getStatusUpdateTime() {
+//        return statusUpdateTime;
+//    }
+//
+//    public String getStatus() {
+//        return status;
+//    }
+//
+//    public String getMetadata() {
+//        return metadata;
+//    }
+//
+//    public void setMetadataResource(ExperimentMetadataResource metadataResource) {
+//        this.metadataResource = metadataResource;
+//    }
+//
+//    public void setWorkflowDataResource(WorkflowDataResource workflowDataResource) {
+//        this.workflowDataResource = workflowDataResource;
+//    }
+//
+//    public void setNodeID(String nodeID) {
+//        this.nodeID = nodeID;
+//    }
+//
+//    public void setApplicationDescID(String applicationDescID) {
+//        this.applicationDescID = applicationDescID;
+//    }
+//
+//    public void setHostDescID(String hostDescID) {
+//        this.hostDescID = hostDescID;
+//    }
+//
+//    public void setServiceDescID(String serviceDescID) {
+//        this.serviceDescID = serviceDescID;
+//    }
+//
+//    public void setJobData(String jobData) {
+//        this.jobData = jobData;
+//    }
+//
+//    public void setLocalJobID(String localJobID) {
+//        this.localJobID = localJobID;
+//    }
+//
+//    public void setSubmittedTime(Timestamp submittedTime) {
+//        this.submittedTime = submittedTime;
+//    }
+//
+//    public void setStatusUpdateTime(Timestamp statusUpdateTime) {
+//        this.statusUpdateTime = statusUpdateTime;
+//    }
+//
+//    public void setStatus(String status) {
+//        this.status = status;
+//    }
+//
+//    public void setMetadata(String metadata) {
+//        this.metadata = metadata;
+//    }
+//
+//    @Override
+//    public Resource create(ResourceType type) {
+//        switch (type){
+//            case GFAC_JOB_STATUS:
+//                GFacJobStatusResource gFacJobStatusResource = new GFacJobStatusResource();
+//                gFacJobStatusResource.setLocalJobID(localJobID);
+//                gFacJobStatusResource.setgFacJobDataResource(this);
+//                return gFacJobStatusResource;
+//            default:
+//                logger.error("Unsupported resource type for GFac Job status resource" ,new UnsupportedOperationException() );
+//                throw new UnsupportedOperationException();
+//        }
+//    }
+//
+//    @Override
+//    public void remove(ResourceType type, Object name) {
+//        logger.error("Unsupported resource type for GFac Job data resource" ,new UnsupportedOperationException() );
+//        throw new UnsupportedOperationException();
+//    }
+//
+//    @Override
+//    public Resource get(ResourceType type, Object name) {
+//        logger.error("Unsupported resource type for GFac Job data resource" ,new UnsupportedOperationException() );
+//        throw new UnsupportedOperationException();
+//    }
+//
+//    @Override
+//    public List<Resource> get(ResourceType type) {
+//        List<Resource> resourceList = new ArrayList<Resource>();
+//        EntityManager em = ResourceUtils.getEntityManager();
+//        em.getTransaction().begin();
+//        Query q;
+//        QueryGenerator generator;
+//        List results;
+//        switch (type){
+//            case GFAC_JOB_STATUS:
+//                generator = new QueryGenerator(GFAC_JOB_STATUS);
+//                generator.setParameter(GFacJobStatusConstants.LOCAL_JOB_ID, localJobID);
+//                q = generator.selectQuery(em);
+//                results = q.getResultList();
+//                if (results.size() != 0) {
+//                    for (Object result : results) {
+//                        GFac_Job_Status gFacJobStatus = (GFac_Job_Status) result;
+//                        GFacJobStatusResource gFacJobStatusResource =
+//                                (GFacJobStatusResource)Utils.getResource(ResourceType.GFAC_JOB_STATUS, gFacJobStatus);
+//                        resourceList.add(gFacJobStatusResource);
+//                    }
+//                }
+//                break;
+//            default:
+//                em.getTransaction().commit();
+//                em.close();
+//                logger.error("Unsupported resource type for gfac job data resource.", new IllegalArgumentException());
+//                throw new IllegalArgumentException("Unsupported resource type for gfac job data resource.");
+//        }
+//        em.getTransaction().commit();
+//        em.close();
+//        return resourceList;
+//    }
+//
+//    @Override
+//    public void save() {
+//        EntityManager em = ResourceUtils.getEntityManager();
+//        GFac_Job_Data existingGfacJobData = em.find(GFac_Job_Data.class, localJobID);
+//        em.close();
+//
+//        em = ResourceUtils.getEntityManager();
+//        em.getTransaction().begin();
+//        GFac_Job_Data gFacJobData = new GFac_Job_Data();
+//        Experiment_Metadata experiment_data = em.find(Experiment_Metadata.class, metadataResource.getExpID());
+//        gFacJobData.setExperiment_metadata(experiment_data);
+//        gFacJobData.setExperiment_ID(metadataResource.getExpID());
+//        Workflow_Data workflow_data = em.find(Workflow_Data.class, workflowDataResource.getWorkflowInstanceID());
+//        gFacJobData.setWorkflow_Data(workflow_data);
+//        gFacJobData.setWorkflow_instanceID(workflowDataResource.getWorkflowInstanceID());
+//        gFacJobData.setNode_id(nodeID);
+//        gFacJobData.setApplication_descriptor_ID(applicationDescID);
+//        gFacJobData.setLocal_Job_ID(localJobID);
+//        gFacJobData.setService_descriptor_ID(serviceDescID);
+//        gFacJobData.setHost_descriptor_ID(hostDescID);
+//        gFacJobData.setJob_data(jobData);
+//        gFacJobData.setSubmitted_time(submittedTime);
+//        gFacJobData.setStatus_update_time(statusUpdateTime);
+//        gFacJobData.setStatus(status);
+//        gFacJobData.setMetadata(metadata);
+//        if(existingGfacJobData != null){
+//            existingGfacJobData.setExperiment_metadata(experiment_data);
+//            existingGfacJobData.setExperiment_ID(metadataResource.getExpID());
+//            Workflow_Data workflow_data1 = em.find(Workflow_Data.class, workflowDataResource.getWorkflowInstanceID());
+//            existingGfacJobData.setWorkflow_Data(workflow_data1);
+//            existingGfacJobData.setWorkflow_instanceID(workflowDataResource.getWorkflowInstanceID());
+//            existingGfacJobData.setNode_id(nodeID);
+//            existingGfacJobData.setApplication_descriptor_ID(applicationDescID);
+//            existingGfacJobData.setLocal_Job_ID(localJobID);
+//            existingGfacJobData.setService_descriptor_ID(serviceDescID);
+//            existingGfacJobData.setHost_descriptor_ID(hostDescID);
+//            existingGfacJobData.setJob_data(jobData);
+//            existingGfacJobData.setSubmitted_time(submittedTime);
+//            existingGfacJobData.setStatus_update_time(statusUpdateTime);
+//            existingGfacJobData.setStatus(status);
+//            existingGfacJobData.setMetadata(metadata);
+//            gFacJobData = em.merge(existingGfacJobData);
+//        }  else {
+//            em.persist(gFacJobData);
+//        }
+//        em.getTransaction().commit();
+//        em.close();
+//    }
+//
+//}