http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/WorkflowOutputResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/WorkflowOutputResource.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/WorkflowOutputResource.java
new file mode 100644
index 0000000..e4d7b5c
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/WorkflowOutputResource.java
@@ -0,0 +1,410 @@
+/**
+ * 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.registry.core.app.catalog.resources;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.registry.core.app.catalog.model.Workflow;
+import org.apache.airavata.registry.core.app.catalog.model.WorkflowOutput;
+import org.apache.airavata.registry.core.app.catalog.model.WorkflowOutput_PK;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
+import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
+import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class WorkflowOutputResource extends AppCatAbstractResource {
+    private final static Logger logger = 
LoggerFactory.getLogger(WorkflowOutputResource.class);
+
+    private String wfTemplateId;
+    private String outputKey;
+    private String outputVal;
+    private String dataType;
+    private String validityType;
+    private boolean dataMovement;
+    private String dataNameLocation;
+
+    private WorkflowResource workflowResource;
+
+    public void remove(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and 
it's value");
+            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(WORKFLOW_OUTPUT);
+            generator.setParameter(WFOutputConstants.WF_TEMPLATE_ID, 
ids.get(WFOutputConstants.WF_TEMPLATE_ID));
+            generator.setParameter(WFOutputConstants.OUTPUT_KEY, 
ids.get(WFOutputConstants.OUTPUT_KEY));
+            Query q = generator.deleteQuery(em);
+            q.executeUpdate();
+            em.getTransaction().commit();
+            em.close();
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public AppCatalogResource get(Object identifier) throws 
AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and 
it's value");
+            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(WORKFLOW_OUTPUT);
+            generator.setParameter(WFOutputConstants.WF_TEMPLATE_ID, 
ids.get(WFOutputConstants.WF_TEMPLATE_ID));
+            generator.setParameter(WFOutputConstants.OUTPUT_KEY, 
ids.get(WFOutputConstants.OUTPUT_KEY));
+            Query q = generator.selectQuery(em);
+            WorkflowOutput wfOutput = (WorkflowOutput) q.getSingleResult();
+            WorkflowOutputResource workflowOutputResource =
+                    (WorkflowOutputResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.WORKFLOW_OUTPUT
+                            , wfOutput);
+            em.getTransaction().commit();
+            em.close();
+            return workflowOutputResource;
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public List<AppCatalogResource> get(String fieldName, Object value) throws 
AppCatalogException {
+        List<AppCatalogResource> wfOutputResources = new 
ArrayList<AppCatalogResource>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(WORKFLOW_OUTPUT);
+            List results;
+            if (fieldName.equals(WFOutputConstants.WF_TEMPLATE_ID)) {
+                generator.setParameter(WFOutputConstants.WF_TEMPLATE_ID, 
value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        WorkflowOutput wfOutput = (WorkflowOutput) result;
+                        WorkflowOutputResource workflowOutputResource =
+                                (WorkflowOutputResource) 
AppCatalogJPAUtils.getResource(
+                                        
AppCatalogResourceType.WORKFLOW_OUTPUT, wfOutput);
+                        wfOutputResources.add(workflowOutputResource);
+                    }
+                }
+            } else if (fieldName.equals(WFOutputConstants.OUTPUT_KEY)) {
+                generator.setParameter(WFOutputConstants.OUTPUT_KEY, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        WorkflowOutput workflowOutput = (WorkflowOutput) 
result;
+                        WorkflowOutputResource workflowOutputResource =
+                                (WorkflowOutputResource) 
AppCatalogJPAUtils.getResource(
+                                        
AppCatalogResourceType.WORKFLOW_OUTPUT, workflowOutput);
+                        wfOutputResources.add(workflowOutputResource);
+                    }
+                }
+            } else if (fieldName.equals(WFOutputConstants.DATA_TYPE)) {
+                generator.setParameter(WFOutputConstants.DATA_TYPE, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        WorkflowOutput workflowOutput = (WorkflowOutput) 
result;
+                        WorkflowOutputResource workflowOutputResource =
+                                (WorkflowOutputResource) 
AppCatalogJPAUtils.getResource(
+                                        
AppCatalogResourceType.WORKFLOW_OUTPUT, workflowOutput);
+                        wfOutputResources.add(workflowOutputResource);
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                em.close();
+                logger.error("Unsupported field name for WF Output Resource.", 
new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for 
WF Output Resource.");
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return wfOutputResources;
+    }
+
+    public List<AppCatalogResource> getAll() throws AppCatalogException {
+        return null;
+    }
+
+    public List<String> getAllIds() throws AppCatalogException {
+        return null;
+    }
+
+    public List<String> getIds(String fieldName, Object value) throws 
AppCatalogException {
+        List<String> wfOutputResourceIDs = new ArrayList<String>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(WORKFLOW_OUTPUT);
+            List results;
+            if (fieldName.equals(WFOutputConstants.WF_TEMPLATE_ID)) {
+                generator.setParameter(WFOutputConstants.WF_TEMPLATE_ID, 
value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        WorkflowOutput workflowOutput = (WorkflowOutput) 
result;
+                        
wfOutputResourceIDs.add(workflowOutput.getWfTemplateId());
+                    }
+                }
+            }
+            if (fieldName.equals(WFOutputConstants.OUTPUT_KEY)) {
+                generator.setParameter(WFOutputConstants.OUTPUT_KEY, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        WorkflowOutput workflowOutput = (WorkflowOutput) 
result;
+                        
wfOutputResourceIDs.add(workflowOutput.getWfTemplateId());
+                    }
+                }
+            } else if (fieldName.equals(WFOutputConstants.DATA_TYPE)) {
+                generator.setParameter(WFOutputConstants.DATA_TYPE, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        WorkflowOutput workflowOutput = (WorkflowOutput) 
result;
+                        
wfOutputResourceIDs.add(workflowOutput.getWfTemplateId());
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                em.close();
+                logger.error("Unsupported field name for WF Output resource.", 
new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for 
WF Output Resource.");
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return wfOutputResourceIDs;
+    }
+
+    public void save() throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            WorkflowOutput existingWorkflowOutput = 
em.find(WorkflowOutput.class,
+                    new WorkflowOutput_PK(wfTemplateId, outputKey));
+            em.close();
+
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            if (existingWorkflowOutput != null) {
+                existingWorkflowOutput.setWfTemplateId(wfTemplateId);
+                Workflow workflow = em.find(Workflow.class, wfTemplateId);
+                existingWorkflowOutput.setWorkflow(workflow);
+                existingWorkflowOutput.setDataType(dataType);
+                existingWorkflowOutput.setOutputKey(outputKey);
+                if (outputVal != null){
+                    
existingWorkflowOutput.setOutputVal(outputVal.toCharArray());
+                }
+                existingWorkflowOutput.setValidityType(validityType);
+                existingWorkflowOutput.setDataMovement(dataMovement);
+                existingWorkflowOutput.setDataNameLocation(dataNameLocation);
+                em.merge(existingWorkflowOutput);
+            } else {
+                WorkflowOutput workflowOutput = new WorkflowOutput();
+                workflowOutput.setWfTemplateId(wfTemplateId);
+                Workflow workflow = em.find(Workflow.class, wfTemplateId);
+                workflowOutput.setWorkflow(workflow);
+                workflowOutput.setDataType(dataType);
+                workflowOutput.setOutputKey(outputKey);
+                if (outputVal != null){
+                    workflowOutput.setOutputVal(outputVal.toCharArray());
+                }
+                workflowOutput.setValidityType(validityType);
+                workflowOutput.setDataMovement(dataMovement);
+                workflowOutput.setDataNameLocation(dataNameLocation);
+                em.persist(workflowOutput);
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public boolean isExists(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and 
it's value");
+            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            WorkflowOutput workflowOutput = em.find(WorkflowOutput.class, new 
WorkflowOutput_PK(
+                    ids.get(WFOutputConstants.WF_TEMPLATE_ID),
+                    ids.get(WFOutputConstants.OUTPUT_KEY)));
+
+            em.close();
+            return workflowOutput != null;
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public String getWfTemplateId() {
+        return wfTemplateId;
+    }
+
+    public void setWfTemplateId(String wfTemplateId) {
+        this.wfTemplateId = wfTemplateId;
+    }
+
+    public String getOutputKey() {
+        return outputKey;
+    }
+
+    public void setOutputKey(String outputKey) {
+        this.outputKey = outputKey;
+    }
+
+    public String getOutputVal() {
+        return outputVal;
+    }
+
+    public void setOutputVal(String outputVal) {
+        this.outputVal = outputVal;
+    }
+
+    public String getDataType() {
+        return dataType;
+    }
+
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
+    }
+
+    public WorkflowResource getWorkflowResource() {
+        return workflowResource;
+    }
+
+    public void setWorkflowResource(WorkflowResource workflowResource) {
+        this.workflowResource = workflowResource;
+    }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public boolean isDataMovement() {
+        return dataMovement;
+    }
+
+    public void setDataMovement(boolean dataMovement) {
+        this.dataMovement = dataMovement;
+    }
+
+    public String getDataNameLocation() {
+        return dataNameLocation;
+    }
+
+    public void setDataNameLocation(String dataNameLocation) {
+        this.dataNameLocation = dataNameLocation;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/WorkflowResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/WorkflowResource.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/WorkflowResource.java
new file mode 100644
index 0000000..4c79ed1
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/WorkflowResource.java
@@ -0,0 +1,382 @@
+/*
+ *
+ * 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.registry.core.app.catalog.resources;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.AiravataUtils;
+import org.apache.airavata.registry.core.app.catalog.model.Workflow;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
+import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
+import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+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 WorkflowResource extends AppCatAbstractResource {
+    private final static Logger logger = 
LoggerFactory.getLogger(WorkflowResource.class);
+    private String wfName;
+    private String createdUser;
+    private String graph;
+    private String wfTemplateId;
+    private Timestamp createdTime;
+    private Timestamp updatedTime;
+    private String image;
+    private String gatewayId;
+
+    public Timestamp getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Timestamp createdTime) {
+        this.createdTime = createdTime;
+    }
+
+    public Timestamp getUpdatedTime() {
+        return updatedTime;
+    }
+
+    public void setUpdatedTime(Timestamp updatedTime) {
+        this.updatedTime = updatedTime;
+    }
+
+    public String getImage() {
+        return image;
+    }
+
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    @Override
+    public void remove(Object identifier) throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(WORKFLOW);
+            generator.setParameter(WorkflowConstants.WF_TEMPLATE_ID, 
identifier);
+            Query q = generator.deleteQuery(em);
+            q.executeUpdate();
+            em.getTransaction().commit();
+            em.close();
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    @Override
+    public AppCatalogResource get(Object identifier) throws 
AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(WORKFLOW);
+            generator.setParameter(WorkflowConstants.WF_TEMPLATE_ID, 
identifier);
+            Query q = generator.selectQuery(em);
+            Workflow workflow = (Workflow) q.getSingleResult();
+            WorkflowResource workflowResource = (WorkflowResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.WORKFLOW, workflow);
+            em.getTransaction().commit();
+            em.close();
+            return workflowResource;
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    @Override
+    public List<AppCatalogResource> get(String fieldName, Object value) throws 
AppCatalogException {
+        List<AppCatalogResource> workflowResources = new 
ArrayList<AppCatalogResource>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(WORKFLOW);
+            Query q;
+            if ((fieldName.equals(WorkflowConstants.WF_NAME)) || 
(fieldName.equals(WorkflowConstants.CREATED_USER)) || 
(fieldName.equals(WorkflowConstants.GRAPH)) || 
(fieldName.equals(WorkflowConstants.WF_TEMPLATE_ID))) {
+                generator.setParameter(fieldName, value);
+                q = generator.selectQuery(em);
+                List<?> results = q.getResultList();
+                for (Object result : results) {
+                    Workflow workflow = (Workflow) result;
+                    WorkflowResource workflowResource = (WorkflowResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.WORKFLOW, workflow);
+                    workflowResources.add(workflowResource);
+                }
+            } else {
+                em.getTransaction().commit();
+                em.close();
+                logger.error("Unsupported field name for Workflow Resource.", 
new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for 
Workflow Resource.");
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return workflowResources;
+    }
+
+    @Override
+    public List<AppCatalogResource> getAll() throws AppCatalogException {
+        List<AppCatalogResource> workflows = new 
ArrayList<AppCatalogResource>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(WORKFLOW);
+            generator.setParameter(WorkflowConstants.GATEWAY_ID, gatewayId);
+            Query q = generator.selectQuery(em);
+            List results = q.getResultList();
+            if (results.size() != 0) {
+                for (Object result : results) {
+                    Workflow workflow = (Workflow) result;
+                    WorkflowResource wfResource =
+                            (WorkflowResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.WORKFLOW, workflow);
+                    workflows.add(wfResource);
+                }
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return workflows;
+    }
+
+    @Override
+    public List<String> getAllIds() throws AppCatalogException {
+        List<String> workflowIds = new ArrayList<String>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(WORKFLOW);
+            generator.setParameter(WorkflowConstants.GATEWAY_ID, gatewayId);
+            Query q = generator.selectQuery(em);
+            List results = q.getResultList();
+            if (results.size() != 0) {
+                for (Object result : results) {
+                    Workflow workflow = (Workflow) result;
+                    workflowIds.add(workflow.getWfTemplateId());
+                }
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return workflowIds;
+    }
+
+    @Override
+    public List<String> getIds(String fieldName, Object value) throws 
AppCatalogException {
+        List<String> workflowResourceIDs = new ArrayList<String>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(WORKFLOW);
+            Query q;
+            if ((fieldName.equals(WorkflowConstants.WF_NAME)) || 
(fieldName.equals(WorkflowConstants.CREATED_USER)) || 
(fieldName.equals(WorkflowConstants.GRAPH)) || 
(fieldName.equals(WorkflowConstants.WF_TEMPLATE_ID))) {
+                generator.setParameter(fieldName, value);
+                q = generator.selectQuery(em);
+                List<?> results = q.getResultList();
+                for (Object result : results) {
+                    Workflow workflow = (Workflow) result;
+                    WorkflowResource workflowResource = (WorkflowResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.WORKFLOW, workflow);
+                    
workflowResourceIDs.add(workflowResource.getWfTemplateId());
+                }
+            } else {
+                em.getTransaction().commit();
+                em.close();
+                logger.error("Unsupported field name for Workflow Resource.", 
new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for 
Workflow Resource.");
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return workflowResourceIDs;
+    }
+
+    @Override
+    public void save() throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            Workflow existingWorkflow = em.find(Workflow.class, wfTemplateId);
+            em.close();
+            Workflow workflow;
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            if (existingWorkflow == null) {
+                workflow = new Workflow();
+                workflow.setCreationTime(AiravataUtils.getCurrentTimestamp());
+            } else {
+                workflow = existingWorkflow;
+                workflow.setUpdateTime(AiravataUtils.getCurrentTimestamp());
+            }
+            workflow.setWfName(getWfName());
+            workflow.setCreatedUser(getCreatedUser());
+            workflow.setGatewayId(gatewayId);
+            if (getGraph() != null){
+                workflow.setGraph(getGraph().toCharArray());
+            }
+            if (image != null){
+                workflow.setImage(image.getBytes());
+            }
+            workflow.setWfTemplateId(getWfTemplateId());
+            if (existingWorkflow == null) {
+                em.persist(workflow);
+            } else {
+                em.merge(workflow);
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    @Override
+    public boolean isExists(Object identifier) throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            Workflow workflow = em.find(Workflow.class, identifier);
+            em.close();
+            return workflow != null;
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public String getWfName() {
+        return wfName;
+    }
+
+    public String getCreatedUser() {
+        return createdUser;
+    }
+
+    public String getGraph() {
+        return graph;
+    }
+
+    public String getWfTemplateId() {
+        return wfTemplateId;
+    }
+
+    public void setWfName(String wfName) {
+        this.wfName=wfName;
+    }
+
+    public void setCreatedUser(String createdUser) {
+        this.createdUser=createdUser;
+    }
+
+    public void setGraph(String graph) {
+        this.graph=graph;
+    }
+
+    public void setWfTemplateId(String wfTemplateId) {
+        this.wfTemplateId=wfTemplateId;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
index f91c71d..7a40013 100644
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
@@ -31,6 +31,7 @@ import org.slf4j.LoggerFactory;
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
+import javax.persistence.PersistenceContext;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -43,6 +44,7 @@ public class AppCatalogJPAUtils {
     private static final String APPCATALOG_JDBC_PWD = 
"appcatalog.jdbc.password";
     private static final String APPCATALOG_VALIDATION_QUERY = 
"appcatalog.validationQuery";
     private static final String JPA_CACHE_SIZE = "jpa.cache.size";
+    @PersistenceContext(unitName="appcatalog_data")
     protected static EntityManagerFactory factory;
 
     public static EntityManager getEntityManager() throws 
ApplicationSettingsException {
@@ -375,7 +377,7 @@ public class AppCatalogJPAUtils {
     }
        
        private static AppCatalogResource 
createLocalDataMovement(LocalDataMovement o) {
-               LocalDataMovementAppCatalogResourceAppCat 
localDataMovementResource = new LocalDataMovementAppCatalogResourceAppCat();
+               LocalDataMovementResource localDataMovementResource = new 
LocalDataMovementResource();
         if (o != null){
             
localDataMovementResource.setDataMovementInterfaceId(o.getDataMovementInterfaceId());
         }
@@ -383,10 +385,10 @@ public class AppCatalogJPAUtils {
        }
        
     private static AppCatalogResource createLocalSubmission(LocalSubmission o) 
{
-               LocalSubmissionAppCatalogResourceAppCat localSubmissionResource 
= new LocalSubmissionAppCatalogResourceAppCat();
+               LocalSubmissionResource localSubmissionResource = new 
LocalSubmissionResource();
         if (o != null){
             
localSubmissionResource.setResourceJobManagerId(o.getResourceJobManagerId());
-            
localSubmissionResource.setResourceJobManagerResource((ResourceJobManagerAppCatalogResourceAppCat)createResourceJobManager(o.getResourceJobManager()));
+            
localSubmissionResource.setResourceJobManagerResource((ResourceJobManagerResource)createResourceJobManager(o.getResourceJobManager()));
             
localSubmissionResource.setJobSubmissionInterfaceId(o.getJobSubmissionInterfaceId());
             localSubmissionResource.setCreatedTime(o.getCreationTime());
             if (o.getUpdateTime() != null){
@@ -397,10 +399,10 @@ public class AppCatalogJPAUtils {
        }
     
     private static AppCatalogResource 
createJobManagerCommand(JobManagerCommand o) {
-               JobManagerCommandAppCatalogResourceAppCat 
jobManagerCommandResource = new JobManagerCommandAppCatalogResourceAppCat();
+               JobManagerCommandResource jobManagerCommandResource = new 
JobManagerCommandResource();
         if (o != null){
             
jobManagerCommandResource.setResourceJobManagerId(o.getResourceJobManagerId());
-            
jobManagerCommandResource.setResourceJobManagerResource((ResourceJobManagerAppCatalogResourceAppCat)createResourceJobManager(o.getResourceJobManager()));
+            
jobManagerCommandResource.setResourceJobManagerResource((ResourceJobManagerResource)createResourceJobManager(o.getResourceJobManager()));
             jobManagerCommandResource.setCommandType(o.getCommandType());
             jobManagerCommandResource.setCommand(o.getCommand());
         }
@@ -408,7 +410,7 @@ public class AppCatalogJPAUtils {
        }
     
     private static AppCatalogResource 
createResourceJobManager(ResourceJobManager o) {
-               ResourceJobManagerAppCatalogResourceAppCat 
resourceJobManagerResource = new ResourceJobManagerAppCatalogResourceAppCat();
+               ResourceJobManagerResource resourceJobManagerResource = new 
ResourceJobManagerResource();
         if (o != null) {
             
resourceJobManagerResource.setResourceJobManagerId(o.getResourceJobManagerId());
             
resourceJobManagerResource.setPushMonitoringEndpoint(o.getPushMonitoringEndpoint());
@@ -423,10 +425,10 @@ public class AppCatalogJPAUtils {
        }
     
     private static AppCatalogResource 
createDataMovementInterface(DataMovementInterface o) {
-               DataMovementInterfaceAppCatalogResourceAppCat 
dataMovementInterfaceResource = new 
DataMovementInterfaceAppCatalogResourceAppCat();
+               DataMovementInterfaceResource dataMovementInterfaceResource = 
new DataMovementInterfaceResource();
         if (o != null) {
             
dataMovementInterfaceResource.setComputeResourceId(o.getComputeResourceId());
-            
dataMovementInterfaceResource.setComputeHostResource((ComputeResourceAppCatalogResourceAppCat)createComputeResource(o.getComputeResource()));
+            
dataMovementInterfaceResource.setComputeHostResource((ComputeResourceResource)createComputeResource(o.getComputeResource()));
             
dataMovementInterfaceResource.setDataMovementProtocol(o.getDataMovementProtocol());
             
dataMovementInterfaceResource.setDataMovementInterfaceId(o.getDataMovementInterfaceId());
             
dataMovementInterfaceResource.setPriorityOrder(o.getPriorityOrder());
@@ -439,11 +441,11 @@ public class AppCatalogJPAUtils {
        }
     
     private static AppCatalogResource 
createJobSubmissionInterface(JobSubmissionInterface o) {
-               JobSubmissionInterfaceAppCatalogResourceAppCat 
jobSubmissionInterfaceResource = new 
JobSubmissionInterfaceAppCatalogResourceAppCat();
+               JobSubmissionInterfaceResource jobSubmissionInterfaceResource = 
new JobSubmissionInterfaceResource();
         if (o != null) {
             
jobSubmissionInterfaceResource.setJobSubmissionInterfaceId(o.getJobSubmissionInterfaceId());
             
jobSubmissionInterfaceResource.setComputeResourceId(o.getComputeResourceId());
-            
jobSubmissionInterfaceResource.setComputeHostResource((ComputeResourceAppCatalogResourceAppCat)createComputeResource(o.getComputeResource()));
+            
jobSubmissionInterfaceResource.setComputeHostResource((ComputeResourceResource)createComputeResource(o.getComputeResource()));
             
jobSubmissionInterfaceResource.setJobSubmissionProtocol(o.getJobSubmissionProtocol());
             
jobSubmissionInterfaceResource.setPriorityOrder(o.getPriorityOrder());
             jobSubmissionInterfaceResource.setCreatedTime(o.getCreationTime());
@@ -455,10 +457,10 @@ public class AppCatalogJPAUtils {
        }
     
     private static AppCatalogResource 
createComputeResourceFileSystem(ComputeResourceFileSystem o) {
-               ComputeResourceFileSystemAppCatalogResourceAppCat 
computeResourceFileSystemResource = new 
ComputeResourceFileSystemAppCatalogResourceAppCat();
+               ComputeResourceFileSystemResource 
computeResourceFileSystemResource = new ComputeResourceFileSystemResource();
         if (o != null){
             
computeResourceFileSystemResource.setComputeResourceId(o.getComputeResourceId());
-            
computeResourceFileSystemResource.setComputeHostResource((ComputeResourceAppCatalogResourceAppCat)createComputeResource(o.getComputeResource()));
+            
computeResourceFileSystemResource.setComputeHostResource((ComputeResourceResource)createComputeResource(o.getComputeResource()));
             computeResourceFileSystemResource.setPath(o.getPath());
             computeResourceFileSystemResource.setFileSystem(o.getFileSystem());
         }
@@ -466,10 +468,10 @@ public class AppCatalogJPAUtils {
        }
     
     private static AppCatalogResource createBatchQueue(BatchQueue o) {
-               BatchQueueAppCatalogResourceAppCat batchQueueResource = new 
BatchQueueAppCatalogResourceAppCat();
+               BatchQueueResource batchQueueResource = new 
BatchQueueResource();
         if (o != null){
             batchQueueResource.setComputeResourceId(o.getComputeResourceId());
-            
batchQueueResource.setComputeHostResource((ComputeResourceAppCatalogResourceAppCat)createComputeResource(o.getComputeResource()));
+            
batchQueueResource.setComputeHostResource((ComputeResourceResource)createComputeResource(o.getComputeResource()));
             batchQueueResource.setMaxRuntime(o.getMaxRuntime());
             batchQueueResource.setMaxJobInQueue(o.getMaxJobInQueue());
             batchQueueResource.setQueueDescription(o.getQueueDescription());
@@ -481,7 +483,7 @@ public class AppCatalogJPAUtils {
                return batchQueueResource;
        }
     private static AppCatalogResource createComputeResource(ComputeResource o) 
{
-               ComputeResourceAppCatalogResourceAppCat computeResourceResource 
= new ComputeResourceAppCatalogResourceAppCat();
+               ComputeResourceResource computeResourceResource = new 
ComputeResourceResource();
         if (o != null) {
             
computeResourceResource.setResourceDescription(o.getResourceDescription());
             computeResourceResource.setResourceId(o.getResourceId());
@@ -496,27 +498,27 @@ public class AppCatalogJPAUtils {
        }
 
     private static AppCatalogResource createHostAlias(HostAlias o) {
-        HostAliasAppCatalogResourceAppCat aliasResource = new 
HostAliasAppCatalogResourceAppCat();
+        HostAliasAppResource aliasResource = new HostAliasAppResource();
         if (o != null){
             aliasResource.setResourceID(o.getResourceID());
             aliasResource.setAlias(o.getAlias());
-            
aliasResource.setComputeHostResource((ComputeResourceAppCatalogResourceAppCat)createComputeResource(o.getComputeResource()));
+            
aliasResource.setComputeHostResource((ComputeResourceResource)createComputeResource(o.getComputeResource()));
         }
         return aliasResource;
     }
 
     private static AppCatalogResource createHostIPAddress(HostIPAddress o) {
-        HostIPAddressAppCatalogResourceAppCat ipAddressResource = new 
HostIPAddressAppCatalogResourceAppCat();
+        HostIPAddressResource ipAddressResource = new HostIPAddressResource();
         if (o != null){
             ipAddressResource.setResourceID(o.getResourceID());
             ipAddressResource.setIpaddress(o.getIpaddress());
-            
ipAddressResource.setComputeHostResource((ComputeResourceAppCatalogResourceAppCat)createComputeResource(o.getComputeResource()));
+            
ipAddressResource.setComputeHostResource((ComputeResourceResource)createComputeResource(o.getComputeResource()));
         }
         return ipAddressResource;
     }
 
     private static AppCatalogResource createGSSISSHSubmission(GSISSHSubmission 
o) {
-        GSISSHSubmissionAppCatalogResourceAppCat submissionResource = new 
GSISSHSubmissionAppCatalogResourceAppCat();
+        GSISSHSubmissionResource submissionResource = new 
GSISSHSubmissionResource();
         if (o != null) {
             submissionResource.setSubmissionID(o.getSubmissionID());
             
submissionResource.setResourceJobManager(o.getResourceJobManager());
@@ -529,7 +531,7 @@ public class AppCatalogJPAUtils {
     
     
     private static AppCatalogResource 
createUnicoreJobSubmission(UnicoreJobSubmission o) {
-        UnicoreJobSubmissionAppCatalogResourceAppCat submissionResource = new 
UnicoreJobSubmissionAppCatalogResourceAppCat();
+        UnicoreJobSubmissionResource submissionResource = new 
UnicoreJobSubmissionResource();
         if (o != null) {
             
submissionResource.setjobSubmissionInterfaceId(o.getSubmissionID());
             
submissionResource.setUnicoreEndpointUrl(o.getUnicoreEndpointUrl());
@@ -539,7 +541,7 @@ public class AppCatalogJPAUtils {
     }
 
     private static AppCatalogResource 
createUnicoreDataMovement(UnicoreDataMovement o) {
-        UnicoreDataMovementAppCatalogResourceAppCat dataMovementResource = new 
UnicoreDataMovementAppCatalogResourceAppCat();
+        UnicoreDataMovementResource dataMovementResource = new 
UnicoreDataMovementResource();
         if (o != null) {
             dataMovementResource.setDataMovementId(o.getDataMovementId());
             
dataMovementResource.setUnicoreEndpointUrl(o.getUnicoreEndpointUrl());
@@ -549,37 +551,37 @@ public class AppCatalogJPAUtils {
     }
     
     private static AppCatalogResource createGSISSHExport(GSISSHExport o){
-        GSISSHExportAppCatalogResourceAppCat resource = new 
GSISSHExportAppCatalogResourceAppCat();
+        GSISSHExportResource resource = new GSISSHExportResource();
         if (o != null) {
             resource.setSubmissionID(o.getSubmissionID());
             resource.setExport(o.getExport());
-            
resource.setGsisshSubmissionResource((GSISSHSubmissionAppCatalogResourceAppCat)createGSSISSHSubmission(o.getGsisshJobSubmission()));
+            
resource.setGsisshSubmissionResource((GSISSHSubmissionResource)createGSSISSHSubmission(o.getGsisshJobSubmission()));
         }
         return resource;
     }
 
     private static AppCatalogResource createPreJobCommand(PreJobCommand o){
-        PreJobCommandAppCatalogResourceAppCat resource = new 
PreJobCommandAppCatalogResourceAppCat();
+        PreJobCommandResource resource = new PreJobCommandResource();
         if (o != null) {
             resource.setAppDeploymentId(o.getDeploymentId());
             resource.setCommand(o.getCommand());
-            
resource.setAppDeploymentResource((AppDeploymentAppCatalogResourceAppCat) 
createApplicationDeployment(o.getApplicationDeployment()));
+            resource.setAppDeploymentResource((AppDeploymentResource) 
createApplicationDeployment(o.getApplicationDeployment()));
         }
         return resource;
     }
 
     private static AppCatalogResource createPostJObCommand(PostJobCommand o){
-        PostJobCommandAppCatalogResourceAppCat resource = new 
PostJobCommandAppCatalogResourceAppCat();
+        PostJobCommandResource resource = new PostJobCommandResource();
         if (o != null){
             resource.setAppDeploymentId(o.getDeploymentId());
             resource.setCommand(o.getCommand());
-            
resource.setAppDeploymentResource((AppDeploymentAppCatalogResourceAppCat) 
createApplicationDeployment(o.getDeployment()));
+            resource.setAppDeploymentResource((AppDeploymentResource) 
createApplicationDeployment(o.getDeployment()));
         }
         return resource;
     }
 
     private static AppCatalogResource 
createGlobusJobSubmission(GlobusJobSubmission o) {
-        GlobusJobSubmissionAppCatalogResourceAppCat resource = new 
GlobusJobSubmissionAppCatalogResourceAppCat();
+        GlobusJobSubmissionResource resource = new 
GlobusJobSubmissionResource();
         if (o != null){
             resource.setSubmissionID(o.getSubmissionID());
             resource.setResourceJobManager(o.getResourceJobManager());
@@ -589,20 +591,20 @@ public class AppCatalogJPAUtils {
     }
 
     private static AppCatalogResource createGlobusEndpoint(GlobusGKEndpoint o) 
{
-        GlobusGKEndpointAppCatalogResourceAppCat resource = new 
GlobusGKEndpointAppCatalogResourceAppCat();
+        GlobusGKEndpointResource resource = new GlobusGKEndpointResource();
         if (o != null){
             resource.setSubmissionID(o.getSubmissionID());
             resource.setEndpoint(o.getEndpoint());
-            
resource.setGlobusJobSubmissionResource((GlobusJobSubmissionAppCatalogResourceAppCat)createGlobusJobSubmission(o.getGlobusSubmission()));
+            
resource.setGlobusJobSubmissionResource((GlobusJobSubmissionResource)createGlobusJobSubmission(o.getGlobusSubmission()));
         }
         return resource;
     }
        
        private static AppCatalogResource 
createSshJobSubmission(SshJobSubmission o) {
-        SshJobSubmissionAppCatalogResourceAppCat sshJobSubmissionResource = 
new SshJobSubmissionAppCatalogResourceAppCat();
+        SshJobSubmissionResource sshJobSubmissionResource = new 
SshJobSubmissionResource();
         if (o != null) {
             
sshJobSubmissionResource.setResourceJobManagerId(o.getResourceJobManagerId());
-            
sshJobSubmissionResource.setResourceJobManagerResource((ResourceJobManagerAppCatalogResourceAppCat)
 createResourceJobManager(o.getResourceJobManager()));
+            
sshJobSubmissionResource.setResourceJobManagerResource((ResourceJobManagerResource)
 createResourceJobManager(o.getResourceJobManager()));
             
sshJobSubmissionResource.setJobSubmissionInterfaceId(o.getJobSubmissionInterfaceId());
             
sshJobSubmissionResource.setAlternativeSshHostname(o.getAlternativeSshHostname());
             
sshJobSubmissionResource.setSecurityProtocol(o.getSecurityProtocol());
@@ -617,7 +619,7 @@ public class AppCatalogJPAUtils {
     }
 
     private static AppCatalogResource createScpDataMovement(ScpDataMovement o) 
{
-               ScpDataMovementAppCatalogResourceAppCat scpDataMovementResource 
= new ScpDataMovementAppCatalogResourceAppCat();
+               ScpDataMovementResource scpDataMovementResource = new 
ScpDataMovementResource();
         if (o != null){
             
scpDataMovementResource.setQueueDescription(o.getQueueDescription());
             
scpDataMovementResource.setDataMovementInterfaceId(o.getDataMovementInterfaceId());
@@ -633,7 +635,7 @@ public class AppCatalogJPAUtils {
        }
 
     private static AppCatalogResource 
createGridftpDataMovement(GridftpDataMovement o) {
-               GridftpDataMovementAppCatalogResourceAppCat 
gridftpDataMovementResource = new GridftpDataMovementAppCatalogResourceAppCat();
+               GridftpDataMovementResource gridftpDataMovementResource = new 
GridftpDataMovementResource();
         if (o != null){
             
gridftpDataMovementResource.setDataMovementInterfaceId(o.getDataMovementInterfaceId());
             
gridftpDataMovementResource.setSecurityProtocol(o.getSecurityProtocol());
@@ -646,11 +648,11 @@ public class AppCatalogJPAUtils {
        }
 
     private static AppCatalogResource createGridftpEndpoint(GridftpEndpoint o) 
{
-               GridftpEndpointAppCatalogResourceAppCat gridftpEndpointResource 
= new GridftpEndpointAppCatalogResourceAppCat();
+               GridftpEndpointResource gridftpEndpointResource = new 
GridftpEndpointResource();
         if (o != null){
             gridftpEndpointResource.setEndpoint(o.getEndpoint());
             
gridftpEndpointResource.setDataMovementInterfaceId(o.getDataMovementInterfaceId());
-            
gridftpEndpointResource.setGridftpDataMovementResource((GridftpDataMovementAppCatalogResourceAppCat)createGridftpDataMovement(o.getGridftpDataMovement()));
+            
gridftpEndpointResource.setGridftpDataMovementResource((GridftpDataMovementResource)createGridftpDataMovement(o.getGridftpDataMovement()));
             gridftpEndpointResource.setCreatedTime(o.getCreationTime());
             if (o.getUpdateTime() != null){
                 gridftpEndpointResource.setUpdatedTime(o.getUpdateTime());
@@ -682,7 +684,7 @@ public class AppCatalogJPAUtils {
 //    }
 
     private static AppCatalogResource 
createApplicationModule(ApplicationModule o) {
-        AppModuleAppCatalogResourceAppCat moduleResource = new 
AppModuleAppCatalogResourceAppCat();
+        AppModuleResource moduleResource = new AppModuleResource();
         if (o != null){
             moduleResource.setModuleId(o.getModuleID());
             moduleResource.setModuleDesc(o.getModuleDesc());
@@ -698,7 +700,7 @@ public class AppCatalogJPAUtils {
     }
 
     private static AppCatalogResource 
createApplicationDeployment(ApplicationDeployment o) {
-        AppDeploymentAppCatalogResourceAppCat resource = new 
AppDeploymentAppCatalogResourceAppCat();
+        AppDeploymentResource resource = new AppDeploymentResource();
         if (o != null){
             resource.setDeploymentId(o.getDeploymentID());
             resource.setAppDes(o.getApplicationDesc());
@@ -707,8 +709,8 @@ public class AppCatalogJPAUtils {
             resource.setExecutablePath(o.getExecutablePath());
             resource.setGatewayId(o.getGatewayId());
             resource.setParallelism(o.getParallelism());
-            resource.setModuleResource((AppModuleAppCatalogResourceAppCat) 
createApplicationModule(o.getApplicationModule()));
-            resource.setHostResource((ComputeResourceAppCatalogResourceAppCat) 
createComputeResource(o.getComputeResource()));
+            resource.setModuleResource((AppModuleResource) 
createApplicationModule(o.getApplicationModule()));
+            resource.setHostResource((ComputeResourceResource) 
createComputeResource(o.getComputeResource()));
             resource.setCreatedTime(o.getCreationTime());
             if (o.getUpdateTime() != null){
                 resource.setUpdatedTime(o.getUpdateTime());
@@ -718,40 +720,40 @@ public class AppCatalogJPAUtils {
     }
 
     private static AppCatalogResource 
createLibraryPrepPathResource(LibraryPrepandPath o) {
-        LibraryPrepandPathAppCatalogResourceAppCat resource = new 
LibraryPrepandPathAppCatalogResourceAppCat();
+        LibraryPrepandPathResource resource = new LibraryPrepandPathResource();
         if (o != null){
             resource.setDeploymentId(o.getDeploymentID());
             resource.setName(o.getName());
             resource.setValue(o.getValue());
-            
resource.setAppDeploymentResource((AppDeploymentAppCatalogResourceAppCat) 
createApplicationDeployment(o.getApplicationDeployment()));
+            resource.setAppDeploymentResource((AppDeploymentResource) 
createApplicationDeployment(o.getApplicationDeployment()));
         }
         return resource;
     }
 
     private static AppCatalogResource 
createLibraryApendPathResource(LibraryApendPath o) {
-        LibraryApendPathAppCatalogResourceAppCat resource = new 
LibraryApendPathAppCatalogResourceAppCat();
+        LibraryApendPathResource resource = new LibraryApendPathResource();
         if (o != null){
             resource.setDeploymentId(o.getDeploymentID());
             resource.setName(o.getName());
             resource.setValue(o.getValue());
-            
resource.setAppDeploymentResource((AppDeploymentAppCatalogResourceAppCat)createApplicationDeployment(o.getApplicationDeployment()));
+            
resource.setAppDeploymentResource((AppDeploymentResource)createApplicationDeployment(o.getApplicationDeployment()));
         }
         return resource;
     }
 
     private static AppCatalogResource 
createAppEnvironmentResource(AppEnvironment o) {
-        AppEnvironmentAppCatalogResourceAppCat resource = new 
AppEnvironmentAppCatalogResourceAppCat();
+        AppEnvironmentResource resource = new AppEnvironmentResource();
         if (o != null){
             resource.setDeploymentId(o.getDeploymentID());
             resource.setName(o.getName());
             resource.setValue(o.getValue());
-            
resource.setAppDeploymentResource((AppDeploymentAppCatalogResourceAppCat)createApplicationDeployment(o.getApplicationDeployment()));
+            
resource.setAppDeploymentResource((AppDeploymentResource)createApplicationDeployment(o.getApplicationDeployment()));
         }
         return resource;
     }
 
     private static AppCatalogResource 
createAppInterfaceResource(ApplicationInterface o) {
-        AppInterfaceAppCatalogResourceAppCat resource = new 
AppInterfaceAppCatalogResourceAppCat();
+        AppInterfaceResource resource = new AppInterfaceResource();
         if (o != null){
             resource.setInterfaceId(o.getInterfaceID());
             resource.setAppName(o.getAppName());
@@ -775,7 +777,7 @@ public class AppCatalogJPAUtils {
     }
 
     private static AppCatalogResource createApplicationInput(ApplicationInput 
o) {
-        ApplicationInputAppCatalogResourceAppCat resource = new 
ApplicationInputAppCatalogResourceAppCat();
+        ApplicationInputResource resource = new ApplicationInputResource();
         if (o != null){
             resource.setInterfaceID(o.getInterfaceID());
             resource.setInputKey(o.getInputKey());
@@ -789,13 +791,13 @@ public class AppCatalogJPAUtils {
             resource.setRequired(o.isRequired());
             resource.setRequiredToCMD(o.isRequiredToCMD());
             resource.setDataStaged(o.isDataStaged());
-            
resource.setAppInterfaceResource((AppInterfaceAppCatalogResourceAppCat)createAppInterfaceResource(o.getApplicationInterface()));
+            
resource.setAppInterfaceResource((AppInterfaceResource)createAppInterfaceResource(o.getApplicationInterface()));
         }
         return resource;
     }
 
     private static AppCatalogResource createWorflowInput(WorkflowInput o) {
-        WorkflowInputAppCatalogResourceAppCat resource = new 
WorkflowInputAppCatalogResourceAppCat();
+        WorkflowInputResource resource = new WorkflowInputResource();
         if (o != null){
             resource.setWfTemplateId(o.getWfTemplateId());
             resource.setInputKey(o.getInputKey());
@@ -811,13 +813,13 @@ public class AppCatalogJPAUtils {
             resource.setRequired(o.isRequired());
             resource.setRequiredToCMD(o.isRequiredToCMD());
             resource.setDataStaged(o.isDataStaged());
-            
resource.setWorkflowResource((WorkflowAppCatalogResourceAppCat)createWorkflow(o.getWorkflow()));
+            
resource.setWorkflowResource((WorkflowResource)createWorkflow(o.getWorkflow()));
         }
         return resource;
     }
 
     private static AppCatalogResource 
createApplicationOutput(ApplicationOutput o) {
-        ApplicationOutputAppCatalogResourceAppCat resource = new 
ApplicationOutputAppCatalogResourceAppCat();
+        ApplicationOutputResource resource = new ApplicationOutputResource();
         if (o != null){
             resource.setInterfaceID(o.getInterfaceID());
             resource.setOutputKey(o.getOutputKey());
@@ -829,13 +831,13 @@ public class AppCatalogJPAUtils {
             resource.setDataNameLocation(o.getDataNameLocation());
             resource.setSearchQuery(o.getSearchQuery());
             resource.setAppArgument(o.getApplicationArgument());
-            
resource.setAppInterfaceResource((AppInterfaceAppCatalogResourceAppCat)createAppInterfaceResource(o.getApplicationInterface()));
+            
resource.setAppInterfaceResource((AppInterfaceResource)createAppInterfaceResource(o.getApplicationInterface()));
         }
         return resource;
     }
 
     private static AppCatalogResource createWorkflowOutput(WorkflowOutput o) {
-        WorkflowOutputAppCatalogResourceAppCat resource = new 
WorkflowOutputAppCatalogResourceAppCat();
+        WorkflowOutputResource resource = new WorkflowOutputResource();
         if (o != null){
             resource.setWfTemplateId(o.getWfTemplateId());
             resource.setOutputKey(o.getOutputKey());
@@ -846,13 +848,13 @@ public class AppCatalogJPAUtils {
             resource.setValidityType(o.getValidityType());
             resource.setDataMovement(o.isDataMovement());
             resource.setDataNameLocation(o.getDataNameLocation());
-            
resource.setWorkflowResource((WorkflowAppCatalogResourceAppCat)createWorkflow(o.getWorkflow()));
+            
resource.setWorkflowResource((WorkflowResource)createWorkflow(o.getWorkflow()));
         }
         return resource;
     }
 
     private static AppCatalogResource createGatewayProfile(GatewayProfile o) {
-        GatewayProfileAppCatalogResourceAppCat resource = new 
GatewayProfileAppCatalogResourceAppCat();
+        GatewayProfileResource resource = new GatewayProfileResource();
         if (o != null) {
             resource.setGatewayID(o.getGatewayID());
             resource.setCreatedTime(o.getCreationTime());
@@ -864,7 +866,7 @@ public class AppCatalogJPAUtils {
     }
 
     private static AppCatalogResource 
createComputeResourcePref(ComputeResourcePreference o) {
-        ComputeHostPreferenceAppCatalogResourceAppCat resource = new 
ComputeHostPreferenceAppCatalogResourceAppCat();
+        ComputeHostPreferenceResource resource = new 
ComputeHostPreferenceResource();
         if (o != null) {
             resource.setGatewayId(o.getGatewayId());
             resource.setResourceId(o.getResourceId());
@@ -875,24 +877,24 @@ public class AppCatalogJPAUtils {
             resource.setScratchLocation(o.getScratchLocation());
             resource.setProjectNumber(o.getProjectNumber());
             resource.setLoginUserName(o.getLoginUserName());
-            
resource.setComputeHostResource((ComputeResourceAppCatalogResourceAppCat) 
createComputeResource(o.getComputeHostResource()));
-            
resource.setGatewayProfile((GatewayProfileAppCatalogResourceAppCat) 
createGatewayProfile(o.getGatewayProfile()));
+            resource.setComputeHostResource((ComputeResourceResource) 
createComputeResource(o.getComputeHostResource()));
+            resource.setGatewayProfile((GatewayProfileResource) 
createGatewayProfile(o.getGatewayProfile()));
         }
         return resource;
     }
 
     private static AppCatalogResource createModuleLoadCmd(ModuleLoadCmd o) {
-        ModuleLoadCmdAppCatalogResourceAppCat moduleLoadCmdResource = new 
ModuleLoadCmdAppCatalogResourceAppCat();
+        ModuleLoadCmdResource moduleLoadCmdResource = new 
ModuleLoadCmdResource();
         if (o != null){
             moduleLoadCmdResource.setCmd(o.getCmd());
             moduleLoadCmdResource.setAppDeploymentId(o.getAppDeploymentId());
-            
moduleLoadCmdResource.setAppDeploymentResource((AppDeploymentAppCatalogResourceAppCat)createApplicationDeployment(o.getApplicationDeployment()));
+            
moduleLoadCmdResource.setAppDeploymentResource((AppDeploymentResource)createApplicationDeployment(o.getApplicationDeployment()));
         }
         return moduleLoadCmdResource;
     }
 
     private static AppCatalogResource createWorkflow(Workflow o) {
-        WorkflowAppCatalogResourceAppCat workflowResource = new 
WorkflowAppCatalogResourceAppCat();
+        WorkflowResource workflowResource = new WorkflowResource();
         workflowResource.setWfName(o.getWfName());
         workflowResource.setCreatedUser(o.getCreatedUser());
         if (o.getGraph() != null){

Reply via email to