airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From chath...@apache.org
Subject git commit: adding workflow related implemetation to app-catalog
Date Thu, 07 Aug 2014 15:18:21 GMT
Repository: airavata
Updated Branches:
  refs/heads/master 40c44779c -> d9e82a34d


adding workflow related implemetation to app-catalog


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

Branch: refs/heads/master
Commit: d9e82a34d65bf4b35ce56fa6ab1d27421fafb0f3
Parents: 40c4477
Author: Chathuri Wimalasena <kamalasini@gmail.com>
Authored: Thu Aug 7 11:18:16 2014 -0400
Committer: Chathuri Wimalasena <kamalasini@gmail.com>
Committed: Thu Aug 7 11:18:16 2014 -0400

----------------------------------------------------------------------
 .../server/handler/WorkflowServerHandler.java   |  18 +-
 .../api/server/util/DataModelUtils.java         |   3 -
 .../client/samples/CreateLaunchExperiment.java  |   4 +-
 .../org/airavata/appcatalog/cpi/AppCatalog.java |   7 +
 .../catalog/data/impl/AppCatalogImpl.java       |   5 +
 .../catalog/data/impl/WorkflowCatalogImpl.java  | 137 ++++++++
 .../catalog/data/model/Workflow.java            |  80 +++++
 .../data/resources/AbstractResource.java        |  11 +-
 .../data/resources/WorkflowResource.java        | 336 +++++++++++++++++++
 .../catalog/data/util/AppCatalogJPAUtils.java   | 101 ++----
 .../data/util/AppCatalogResourceType.java       |   3 +-
 .../data/util/AppCatalogThriftConversion.java   |   9 +
 .../src/main/resources/META-INF/persistence.xml |   1 +
 .../src/main/resources/appcatalog-derby.sql     |   9 +
 .../src/main/resources/appcatalog-mysql.sql     |   9 +
 .../src/test/resources/appcatalog-derby.sql     |   9 +
 modules/app-catalog/pom.xml                     |   1 -
 .../main/java/generators/JPAClassGenerator.java |   2 +-
 .../src/main/java/generators/SQLGenerator.java  |   2 +-
 modules/workflow-model/workflow-engine/pom.xml  |  10 +
 .../workflow/catalog/WorkflowCatalog.java       |  53 ---
 .../catalog/WorkflowCatalogException.java       |  17 -
 .../catalog/WorkflowCatalogFactory.java         |  24 +-
 .../workflow/catalog/WorkflowCatalogImpl.java   | 167 ---------
 .../workflow/engine/WorkflowEngineImpl.java     |   2 +-
 .../airavata/workflow/engine/WorkflowUtils.java |   3 -
 .../RegistryWorkflowPublisherWindow.java        |   2 -
 27 files changed, 681 insertions(+), 344 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/WorkflowServerHandler.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/WorkflowServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/WorkflowServerHandler.java
index 8cb57d6..5efc7e0 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/WorkflowServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/WorkflowServerHandler.java
@@ -23,14 +23,14 @@ package org.apache.airavata.api.server.handler;
 
 import java.util.List;
 
+import org.airavata.appcatalog.cpi.AppCatalogException;
+import org.airavata.appcatalog.cpi.WorkflowCatalog;
 import org.apache.airavata.api.workflow.Workflow.Iface;
 import org.apache.airavata.model.Workflow;
 import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.airavata.model.error.AiravataErrorType;
 import org.apache.airavata.model.error.AiravataSystemException;
 import org.apache.airavata.model.error.InvalidRequestException;
-import org.apache.airavata.workflow.catalog.WorkflowCatalog;
-import org.apache.airavata.workflow.catalog.WorkflowCatalogException;
 import org.apache.airavata.workflow.catalog.WorkflowCatalogFactory;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
@@ -46,7 +46,7 @@ public class WorkflowServerHandler implements Iface {
 			AiravataClientException, AiravataSystemException, TException {
 		try {
 			return getWorkflowCatalog().getAllWorkflows();
-		} catch (WorkflowCatalogException e) {
+		} catch (AppCatalogException e) {
 			String msg = "Error in retrieving all workflow template Ids.";
 			log.error(msg, e);
 			AiravataSystemException exception = new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
@@ -61,7 +61,7 @@ public class WorkflowServerHandler implements Iface {
 			AiravataSystemException, TException {
 		try {
 			return getWorkflowCatalog().getWorkflow(workflowTemplateId);
-		} catch (WorkflowCatalogException e) {
+		} catch (AppCatalogException e) {
 			String msg = "Error in retrieving the workflow "+workflowTemplateId+".";
 			log.error(msg, e);
 			AiravataSystemException exception = new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
@@ -76,7 +76,7 @@ public class WorkflowServerHandler implements Iface {
 			AiravataSystemException, TException {
 		try {
 			getWorkflowCatalog().deleteWorkflow(workflowTemplateId);
-		} catch (WorkflowCatalogException e) {
+		} catch (AppCatalogException e) {
 			String msg = "Error in deleting the workflow "+workflowTemplateId+".";
 			log.error(msg, e);
 			AiravataSystemException exception = new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
@@ -91,7 +91,7 @@ public class WorkflowServerHandler implements Iface {
 			AiravataSystemException, TException {
 		try {
 			return getWorkflowCatalog().registerWorkflow(workflow);
-		} catch (WorkflowCatalogException e) {
+		} catch (AppCatalogException e) {
 			String msg = "Error in registering the workflow "+workflow.getName()+".";
 			log.error(msg, e);
 			AiravataSystemException exception = new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
@@ -106,7 +106,7 @@ public class WorkflowServerHandler implements Iface {
 			AiravataSystemException, TException {
 		try {
 			getWorkflowCatalog().updateWorkflow(workflowTemplateId, workflow);
-		} catch (WorkflowCatalogException e) {
+		} catch (AppCatalogException e) {
 			String msg = "Error in updating the workflow "+workflow.getName()+".";
 			log.error(msg, e);
 			AiravataSystemException exception = new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
@@ -121,7 +121,7 @@ public class WorkflowServerHandler implements Iface {
 			AiravataSystemException, TException {
 		try {
 			return getWorkflowCatalog().getWorkflowTemplateId(workflowName);
-		} catch (WorkflowCatalogException e) {
+		} catch (AppCatalogException e) {
 			String msg = "Error in retrieving the workflow template id for "+workflowName+".";
 			log.error(msg, e);
 			AiravataSystemException exception = new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
@@ -136,7 +136,7 @@ public class WorkflowServerHandler implements Iface {
 			AiravataSystemException, TException {
 		try {
 			return getWorkflowCatalog().isWorkflowExistWithName(workflowName);
-		} catch (WorkflowCatalogException e) {
+		} catch (AppCatalogException e) {
 			String msg = "Error in veriying the workflow for workflow name "+workflowName+".";
 			log.error(msg, e);
 			AiravataSystemException exception = new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java
index 9a0536c..88cca19 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java
@@ -28,7 +28,6 @@ import org.airavata.appcatalog.cpi.ApplicationInterface;
 import org.apache.aiaravata.application.catalog.data.impl.AppCatalogFactory;
 import org.apache.airavata.model.util.ExecutionType;
 import org.apache.airavata.model.workspace.experiment.Experiment;
-import org.apache.airavata.workflow.catalog.WorkflowCatalogException;
 import org.apache.airavata.workflow.catalog.WorkflowCatalogFactory;
 
 public class DataModelUtils {
@@ -48,8 +47,6 @@ public class DataModelUtils {
 			}
 		} catch (AppCatalogException e) {
 			e.printStackTrace();
-		} catch (WorkflowCatalogException e) {
-			e.printStackTrace();
 		}
 		return ExecutionType.UNKNOWN;
 	}

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
index f00dc31..967577c 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
@@ -58,9 +58,9 @@ public class CreateLaunchExperiment {
     private static final String DEFAULT_USER = "default.registry.user";
     private static final String DEFAULT_GATEWAY = "default.registry.gateway";
     private static Airavata.Client client;
-    private static String localHostAppId = "localhost_2342b39f-5870-4704-9a52-e631dc790af7,SimpleEcho0_17c5e56e-beda-42f2-a7ec-5c7654177bc";
+    private static String localHostAppId = "localhost_9c5b098c-8906-4be1-9ef3-a7706c9b1e2c,SimpleEcho0_315d9b93-2cdb-4c1b-8dc3-d2077936f5ae";
     private static String sshHostAppId;
-    private static String pbsEchoAppId = "trestles.sdsc.edu_341ee4f1-1c49-4499-8dbd-b99188c5632c,SimpleEcho2_752663ba-2cb3-46e9-8e25-34e2fbdfad03";
+    private static String pbsEchoAppId = "trestles.sdsc.edu_849a1136-7e0a-4f4a-b835-322a83b967b6,SimpleEcho2_f89d3b8c-6f22-4a77-a9f5-a4df88785ab6";
     private static String pbsWRFAppId = "trestles.sdsc.edu_00482169-8fc4-4633-b779-5ca1f66f27c1,WRF_0f1e90d3-5915-4629-a5a4-73346c1e7535";
     private static String slurmAppId = "stampede.tacc.xsede.org_b2ef59cb-f626-4767-9ca0-601f94c42ba4,SimpleEcho3_b81c2559-a088-42a3-84ce-40119d874918";
     private static String sgeAppId;

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java
index c1eb2f7..8ae92c9 100644
--- a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java
+++ b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java
@@ -44,4 +44,11 @@ public interface AppCatalog {
      * @throws AppCatalogException
      */
     GwyResourceProfile getGatewayProfile() throws AppCatalogException;
+
+    /**
+     * Get workflow catalog interface
+     * @return workflow catalog interface
+     * @throws AppCatalogException
+     */
+    WorkflowCatalog getWorkflowCatalog() throws AppCatalogException;
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogImpl.java
index c2806a2..246554b 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogImpl.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogImpl.java
@@ -44,4 +44,9 @@ public class AppCatalogImpl implements AppCatalog {
 	public GwyResourceProfile getGatewayProfile() throws AppCatalogException {
 		return new GwyResourceProfileImpl();
 	}
+
+    @Override
+    public WorkflowCatalog getWorkflowCatalog() throws AppCatalogException {
+        return new WorkflowCatalogImpl();
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java
new file mode 100644
index 0000000..df230fe
--- /dev/null
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java
@@ -0,0 +1,137 @@
+/*
+ *
+ * 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.aiaravata.application.catalog.data.impl;
+
+import org.airavata.appcatalog.cpi.AppCatalogException;
+import org.airavata.appcatalog.cpi.WorkflowCatalog;
+import org.apache.aiaravata.application.catalog.data.resources.AbstractResource;
+import org.apache.aiaravata.application.catalog.data.resources.Resource;
+import org.apache.aiaravata.application.catalog.data.resources.WorkflowResource;
+import org.apache.aiaravata.application.catalog.data.util.AppCatalogThriftConversion;
+import org.apache.aiaravata.application.catalog.data.util.AppCatalogUtils;
+import org.apache.airavata.model.Workflow;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class WorkflowCatalogImpl implements WorkflowCatalog {
+    private final static Logger logger = LoggerFactory.getLogger(WorkflowCatalogImpl.class);
+
+    @Override
+    public List<String> getAllWorkflows() throws AppCatalogException {
+        List<String> workflowIds = new ArrayList<String>();
+        try {
+            WorkflowResource resource = new WorkflowResource();
+            workflowIds = resource.getAllIds();
+        } catch (Exception e) {
+            logger.error("Error while retrieving all the workflow template ids...", e);
+            throw new AppCatalogException(e);
+        }
+        return workflowIds;
+    }
+
+    @Override
+    public Workflow getWorkflow(String workflowTemplateId) throws AppCatalogException {
+        try {
+            WorkflowResource resource = new WorkflowResource();
+            WorkflowResource wfResource = (WorkflowResource)resource.get(workflowTemplateId);
+            return AppCatalogThriftConversion.getWorkflow(wfResource);
+        } catch (Exception e) {
+            logger.error("Error while retrieving the workflow...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    @Override
+    public void deleteWorkflow(String workflowTemplateId) throws AppCatalogException {
+        try {
+            WorkflowResource resource = new WorkflowResource();
+            resource.remove(workflowTemplateId);
+        } catch (Exception e) {
+            logger.error("Error while deleting the workflow...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    @Override
+    public String registerWorkflow(Workflow workflow) throws AppCatalogException {
+        try {
+            WorkflowResource resource = new WorkflowResource();
+            resource.setWfTemplateId(AppCatalogUtils.getID(workflow.getName()));
+            resource.setWfName(workflow.getName());
+            resource.setGraph(workflow.getGraph());
+            resource.save();
+            workflow.setTemplateId(resource.getWfTemplateId());
+            return resource.getWfTemplateId();
+        } catch (Exception e) {
+            logger.error("Error while saving the workflow...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    @Override
+    public void updateWorkflow(String workflowTemplateId, Workflow workflow) throws AppCatalogException {
+        try {
+            WorkflowResource resource = new WorkflowResource();
+            WorkflowResource existingWF = (WorkflowResource)resource.get(workflowTemplateId);
+            existingWF.setWfName(workflow.getName());
+            existingWF.setGraph(workflow.getGraph());
+            existingWF.save();
+        } catch (Exception e) {
+            logger.error("Error while updating the workflow...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    @Override
+    public String getWorkflowTemplateId(String workflowName) throws AppCatalogException {
+        try {
+            WorkflowResource resource = new WorkflowResource();
+            List<Resource> resourceList = resource.get(AbstractResource.WorkflowConstants.WF_NAME, workflowName);
+            if (resourceList != null && !resourceList.isEmpty()){
+                WorkflowResource wfResource = (WorkflowResource)resourceList.get(0);
+                return wfResource.getWfTemplateId();
+            }
+        } catch (Exception e) {
+            logger.error("Error while retrieving the workflow with the workflow name...", e);
+            throw new AppCatalogException(e);
+        }
+        return null;
+    }
+
+    @Override
+    public boolean isWorkflowExistWithName(String workflowName) throws AppCatalogException {
+        try {
+            WorkflowResource resource = new WorkflowResource();
+            List<Resource> resourceList = resource.get(AbstractResource.WorkflowConstants.WF_NAME, workflowName);
+            if (resourceList != null && !resourceList.isEmpty()){
+                return true;
+            }
+        } catch (Exception e) {
+            logger.error("Error while retrieving the workflow with the workflow name...", e);
+            throw new AppCatalogException(e);
+        }
+        return false;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/Workflow.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/Workflow.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/Workflow.java
new file mode 100644
index 0000000..585b2ad
--- /dev/null
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/Workflow.java
@@ -0,0 +1,80 @@
+/*
+ *
+ * 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.aiaravata.application.catalog.data.model;
+
+import org.apache.openjpa.persistence.DataCache;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+@DataCache
+@Entity
+@Table(name = "WORKFLOW")
+public class Workflow implements Serializable {
+
+    @Column(name = "WF_NAME")
+    private String wfName;
+
+    @Column(name = "CREATED_USER")
+    private String createdUser;
+
+    @Lob
+    @Column(name = "GRAPH")
+    private char[] graph;
+
+    @Id
+    @Column(name = "WF_TEMPLATE_ID")
+    private String wfTemplateId;
+
+    public String getWfName() {
+        return wfName;
+    }
+
+    public String getCreatedUser() {
+        return createdUser;
+    }
+
+    public char[] 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(char[] graph) {
+        this.graph=graph;
+    }
+
+    public void setWfTemplateId(String wfTemplateId) {
+        this.wfTemplateId=wfTemplateId;
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
index d280b71..005f12b 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
@@ -60,7 +60,8 @@ public abstract class AbstractResource implements Resource {
 	public static final String SSH_JOB_SUBMISSION = "SshJobSubmission";
     public static final String CLOUD_JOB_SUBMISSION = "CloudJobSubmission";
     public static final String MODULE_LOAD_CMD = "ModuleLoadCmd";
-	
+    public static final String WORKFLOW = "Workflow";
+
 	// Compute Resource Table
 	public final class ComputeResourceConstants {
 		public static final String RESOURCE_DESCRIPTION = "resourceDescription";
@@ -325,4 +326,12 @@ public abstract class AbstractResource implements Resource {
         public static final String CMD = "cmd";
         public static final String APP_DEPLOYMENT_ID = "appDeploymentId";
     }
+
+    // Workflow Table
+    public final class WorkflowConstants {
+        public static final String WF_NAME = "wfName";
+        public static final String CREATED_USER = "createdUser";
+        public static final String GRAPH = "graph";
+        public static final String WF_TEMPLATE_ID = "wfTemplateId";
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowResource.java
new file mode 100644
index 0000000..c9a14fc
--- /dev/null
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowResource.java
@@ -0,0 +1,336 @@
+/*
+ *
+ * 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.aiaravata.application.catalog.data.resources;
+
+import org.airavata.appcatalog.cpi.AppCatalogException;
+import org.apache.aiaravata.application.catalog.data.model.Workflow;
+import org.apache.aiaravata.application.catalog.data.util.AppCatalogJPAUtils;
+import org.apache.aiaravata.application.catalog.data.util.AppCatalogQueryGenerator;
+import org.apache.aiaravata.application.catalog.data.util.AppCatalogResourceType;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.util.ArrayList;
+import java.util.List;
+
+public class WorkflowResource extends AbstractResource {
+    private final static Logger logger = LoggerFactory.getLogger(WorkflowResource.class);
+    private String wfName;
+    private String createdUser;
+    private String graph;
+    private String wfTemplateId;
+
+    @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 Resource 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<Resource> get(String fieldName, Object value) throws AppCatalogException {
+        List<Resource> workflowResources = new ArrayList<Resource>();
+        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<Resource> getAll() throws AppCatalogException {
+        List<Resource> workflows = new ArrayList<Resource>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(WORKFLOW);
+            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);
+            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();
+            } else {
+                workflow = existingWorkflow;
+            }
+            workflow.setWfName(getWfName());
+            workflow.setCreatedUser(getCreatedUser());
+            if (getGraph() != null){
+                workflow.setGraph(getGraph().toCharArray());
+            }
+            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/d9e82a34/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
index ddcc527..367cfc3 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
@@ -28,77 +28,8 @@ import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
 
-import org.apache.aiaravata.application.catalog.data.model.AppEnvironment;
-import org.apache.aiaravata.application.catalog.data.model.AppModuleMapping;
-import org.apache.aiaravata.application.catalog.data.model.ApplicationDeployment;
-import org.apache.aiaravata.application.catalog.data.model.ApplicationInput;
-import org.apache.aiaravata.application.catalog.data.model.ApplicationInterface;
-import org.apache.aiaravata.application.catalog.data.model.ApplicationModule;
-import org.apache.aiaravata.application.catalog.data.model.ApplicationOutput;
-import org.apache.aiaravata.application.catalog.data.model.BatchQueue;
-import org.apache.aiaravata.application.catalog.data.model.ComputeResource;
-import org.apache.aiaravata.application.catalog.data.model.ComputeResourceFileSystem;
-import org.apache.aiaravata.application.catalog.data.model.ComputeResourcePreference;
-import org.apache.aiaravata.application.catalog.data.model.DataMovementInterface;
-import org.apache.aiaravata.application.catalog.data.model.DataMovementProtocol;
-import org.apache.aiaravata.application.catalog.data.model.GSISSHExport;
-import org.apache.aiaravata.application.catalog.data.model.GSISSHPostJobCommand;
-import org.apache.aiaravata.application.catalog.data.model.GSISSHPreJobCommand;
-import org.apache.aiaravata.application.catalog.data.model.GSISSHSubmission;
-import org.apache.aiaravata.application.catalog.data.model.GatewayProfile;
-import org.apache.aiaravata.application.catalog.data.model.GlobusGKEndpoint;
-import org.apache.aiaravata.application.catalog.data.model.GlobusJobSubmission;
-import org.apache.aiaravata.application.catalog.data.model.GridftpDataMovement;
-import org.apache.aiaravata.application.catalog.data.model.GridftpEndpoint;
-import org.apache.aiaravata.application.catalog.data.model.HostAlias;
-import org.apache.aiaravata.application.catalog.data.model.HostIPAddress;
-import org.apache.aiaravata.application.catalog.data.model.JobManagerCommand;
-import org.apache.aiaravata.application.catalog.data.model.JobSubmissionInterface;
-import org.apache.aiaravata.application.catalog.data.model.JobSubmissionProtocol;
-import org.apache.aiaravata.application.catalog.data.model.LibraryApendPath;
-import org.apache.aiaravata.application.catalog.data.model.LibraryPrepandPath;
-import org.apache.aiaravata.application.catalog.data.model.LocalDataMovement;
-import org.apache.aiaravata.application.catalog.data.model.LocalSubmission;
-import org.apache.aiaravata.application.catalog.data.model.ModuleLoadCmd;
-import org.apache.aiaravata.application.catalog.data.model.ResourceJobManager;
-import org.apache.aiaravata.application.catalog.data.model.ScpDataMovement;
-import org.apache.aiaravata.application.catalog.data.model.SshJobSubmission;
-import org.apache.aiaravata.application.catalog.data.resources.AppDeploymentResource;
-import org.apache.aiaravata.application.catalog.data.resources.AppEnvironmentResource;
-import org.apache.aiaravata.application.catalog.data.resources.AppInterfaceResource;
-import org.apache.aiaravata.application.catalog.data.resources.AppModuleMappingResource;
-import org.apache.aiaravata.application.catalog.data.resources.AppModuleResource;
-import org.apache.aiaravata.application.catalog.data.resources.ApplicationInputResource;
-import org.apache.aiaravata.application.catalog.data.resources.ApplicationOutputResource;
-import org.apache.aiaravata.application.catalog.data.resources.BatchQueueResource;
-import org.apache.aiaravata.application.catalog.data.resources.ComputeHostPreferenceResource;
-import org.apache.aiaravata.application.catalog.data.resources.ComputeResourceFileSystemResource;
-import org.apache.aiaravata.application.catalog.data.resources.ComputeResourceResource;
-import org.apache.aiaravata.application.catalog.data.resources.DataMovementInterfaceResource;
-import org.apache.aiaravata.application.catalog.data.resources.DataMovementProtocolResource;
-import org.apache.aiaravata.application.catalog.data.resources.GSISSHExportResource;
-import org.apache.aiaravata.application.catalog.data.resources.GSISSHPostJobCommandResource;
-import org.apache.aiaravata.application.catalog.data.resources.GSISSHPreJobCommandResource;
-import org.apache.aiaravata.application.catalog.data.resources.GSISSHSubmissionResource;
-import org.apache.aiaravata.application.catalog.data.resources.GatewayProfileResource;
-import org.apache.aiaravata.application.catalog.data.resources.GlobusGKEndpointResource;
-import org.apache.aiaravata.application.catalog.data.resources.GlobusJobSubmissionResource;
-import org.apache.aiaravata.application.catalog.data.resources.GridftpDataMovementResource;
-import org.apache.aiaravata.application.catalog.data.resources.GridftpEndpointResource;
-import org.apache.aiaravata.application.catalog.data.resources.HostAliasResource;
-import org.apache.aiaravata.application.catalog.data.resources.HostIPAddressResource;
-import org.apache.aiaravata.application.catalog.data.resources.JobManagerCommandResource;
-import org.apache.aiaravata.application.catalog.data.resources.JobSubmissionInterfaceResource;
-import org.apache.aiaravata.application.catalog.data.resources.JobSubmissionProtocolResource;
-import org.apache.aiaravata.application.catalog.data.resources.LibraryApendPathResource;
-import org.apache.aiaravata.application.catalog.data.resources.LibraryPrepandPathResource;
-import org.apache.aiaravata.application.catalog.data.resources.LocalDataMovementResource;
-import org.apache.aiaravata.application.catalog.data.resources.LocalSubmissionResource;
-import org.apache.aiaravata.application.catalog.data.resources.ModuleLoadCmdResource;
-import org.apache.aiaravata.application.catalog.data.resources.Resource;
-import org.apache.aiaravata.application.catalog.data.resources.ResourceJobManagerResource;
-import org.apache.aiaravata.application.catalog.data.resources.ScpDataMovementResource;
-import org.apache.aiaravata.application.catalog.data.resources.SshJobSubmissionResource;
+import org.apache.aiaravata.application.catalog.data.model.*;
+import org.apache.aiaravata.application.catalog.data.resources.*;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.ServerSettings;
 import org.slf4j.Logger;
@@ -394,11 +325,18 @@ public class AppCatalogJPAUtils {
 					throw new IllegalArgumentException("Object should be a Local Data Movement.");
 				}
             case MODULE_LOAD_CMD:
-                        if (o instanceof ModuleLoadCmd){
-                            return createModuleLoadCmd((ModuleLoadCmd) o);
-                        }else{
-                            logger.error("Object should be a Module Load Cmd.", new IllegalArgumentException());
-                            throw new IllegalArgumentException("Object should be a Module Load Cmd.");
+                if (o instanceof ModuleLoadCmd) {
+                    return createModuleLoadCmd((ModuleLoadCmd) o);
+                } else {
+                    logger.error("Object should be a Module Load Cmd.", new IllegalArgumentException());
+                    throw new IllegalArgumentException("Object should be a Module Load Cmd.");
+                }
+            case WORKFLOW:
+                if (o instanceof Workflow) {
+                    return createWorkflow((Workflow) o);
+                } else {
+                    logger.error("Object should be a Workflow.", new IllegalArgumentException());
+                    throw new IllegalArgumentException("Object should be a Workflow.");
                 }
             default:
                 logger.error("Illegal data type..", new IllegalArgumentException());
@@ -795,4 +733,15 @@ public class AppCatalogJPAUtils {
         }
         return moduleLoadCmdResource;
     }
+
+    private static Resource createWorkflow(Workflow o) {
+        WorkflowResource workflowResource = new WorkflowResource();
+        workflowResource.setWfName(o.getWfName());
+        workflowResource.setCreatedUser(o.getCreatedUser());
+        if (o.getGraph() != null){
+            workflowResource.setGraph(new String(o.getGraph()));
+        }
+        workflowResource.setWfTemplateId(o.getWfTemplateId());
+        return workflowResource;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogResourceType.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogResourceType.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogResourceType.java
index e4ee980..eea1426 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogResourceType.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogResourceType.java
@@ -57,5 +57,6 @@ public enum AppCatalogResourceType {
 	LOCAL_SUBMISSION,
 	LOCAL_DATA_MOVEMENT,
     MODULE_LOAD_CMD,
-    ClOUD_SUBMISSION
+    ClOUD_SUBMISSION,
+    WORKFLOW
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
index 1d89a94..24830c8 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
@@ -30,6 +30,7 @@ import java.util.Set;
 
 import org.airavata.appcatalog.cpi.AppCatalogException;
 import org.apache.aiaravata.application.catalog.data.resources.*;
+import org.apache.airavata.model.Workflow;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
@@ -677,4 +678,12 @@ public class AppCatalogThriftConversion {
         gatewayProfile.setComputeResourcePreferences(preferences);
         return gatewayProfile;
     }
+
+    public static Workflow getWorkflow (WorkflowResource resource){
+        Workflow workflow = new Workflow();
+        workflow.setTemplateId(resource.getWfTemplateId());
+        workflow.setGraph(resource.getGraph());
+        workflow.setName(resource.getWfName());
+        return workflow;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/app-catalog-data/src/main/resources/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/META-INF/persistence.xml b/modules/app-catalog/app-catalog-data/src/main/resources/META-INF/persistence.xml
index 64937a2..3bf5daa 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/META-INF/persistence.xml
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/META-INF/persistence.xml
@@ -58,6 +58,7 @@
         <class>org.apache.aiaravata.application.catalog.data.model.JobManagerCommand</class>
         <class>org.apache.aiaravata.application.catalog.data.model.LocalSubmission</class>
         <class>org.apache.aiaravata.application.catalog.data.model.LocalDataMovement</class>
+        <class>org.apache.aiaravata.application.catalog.data.model.Workflow</class>
         <exclude-unlisted-classes>true</exclude-unlisted-classes>
     </persistence-unit>
 </persistence>

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
index e5cac0f..ca423ab 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
@@ -341,3 +341,12 @@ CREATE TABLE LOCAL_DATA_MOVEMENT
 	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
+CREATE TABLE WORKFLOW
+(
+	WF_TEMPLATE_ID VARCHAR (255) NOT NULL,
+	WF_NAME VARCHAR (255) NOT NULL,
+	GRAPH CLOB,
+	OWNER VARCHAR(255),
+	PRIMARY KEY (WF_TEMPLATE_ID)
+);
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
index ea196c2..bb72c7f 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
@@ -334,3 +334,12 @@ CREATE TABLE LOCAL_DATA_MOVEMENT
 	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
+CREATE TABLE WORKFLOW
+(
+	WF_TEMPLATE_ID VARCHAR (255) NOT NULL,
+	WF_NAME VARCHAR (255) NOT NULL,
+	GRAPH LONGTEXT,
+	OWNER VARCHAR(255),
+	PRIMARY KEY (WF_TEMPLATE_ID)
+);
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
index e5cac0f..ca423ab 100644
--- a/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
+++ b/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
@@ -341,3 +341,12 @@ CREATE TABLE LOCAL_DATA_MOVEMENT
 	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
+CREATE TABLE WORKFLOW
+(
+	WF_TEMPLATE_ID VARCHAR (255) NOT NULL,
+	WF_NAME VARCHAR (255) NOT NULL,
+	GRAPH CLOB,
+	OWNER VARCHAR(255),
+	PRIMARY KEY (WF_TEMPLATE_ID)
+);
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/app-catalog/pom.xml
----------------------------------------------------------------------
diff --git a/modules/app-catalog/pom.xml b/modules/app-catalog/pom.xml
index bf9dea0..d196ac9 100644
--- a/modules/app-catalog/pom.xml
+++ b/modules/app-catalog/pom.xml
@@ -32,7 +32,6 @@
             <modules>
                 <module>app-catalog-data</module>
                 <module>app-catalog-cpi</module>
-                <!--<module>app-catalog-jpa</module>-->
             </modules>
         </profile>
     </profiles>

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/registry/jpa-gen/src/main/java/generators/JPAClassGenerator.java
----------------------------------------------------------------------
diff --git a/modules/registry/jpa-gen/src/main/java/generators/JPAClassGenerator.java b/modules/registry/jpa-gen/src/main/java/generators/JPAClassGenerator.java
index 0fd5e74..a83e43e 100644
--- a/modules/registry/jpa-gen/src/main/java/generators/JPAClassGenerator.java
+++ b/modules/registry/jpa-gen/src/main/java/generators/JPAClassGenerator.java
@@ -53,7 +53,7 @@ public class JPAClassGenerator extends AbstractGenerator{
 		    	dataType="boolean"; break;
 		    case TIMESTAMP: 
 		    	dataType="Timestamp"; break;
-		    case BLOB:
+		    case CLOB:
 		    	dataType="String"; break;
 		    }
 		    String fieldTitleString = convertToJavaTitleCaseStringConvention(field);

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/registry/jpa-gen/src/main/java/generators/SQLGenerator.java
----------------------------------------------------------------------
diff --git a/modules/registry/jpa-gen/src/main/java/generators/SQLGenerator.java b/modules/registry/jpa-gen/src/main/java/generators/SQLGenerator.java
index 847bd89..3d326ca 100644
--- a/modules/registry/jpa-gen/src/main/java/generators/SQLGenerator.java
+++ b/modules/registry/jpa-gen/src/main/java/generators/SQLGenerator.java
@@ -37,7 +37,7 @@ public class SQLGenerator extends AbstractGenerator {
 		INTEGER,
 		LONGTEXT,
 		SMALLINT,
-		BLOB,
+		CLOB,
 	}
 	
 	public String generateSQLCreateQuery(SQLData sqlData){

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/workflow-model/workflow-engine/pom.xml
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/pom.xml b/modules/workflow-model/workflow-engine/pom.xml
index ef6681b..0c138b0 100644
--- a/modules/workflow-model/workflow-engine/pom.xml
+++ b/modules/workflow-model/workflow-engine/pom.xml
@@ -206,6 +206,16 @@
         </dependency>
         <dependency>
             <groupId>org.apache.airavata</groupId>
+            <artifactId>app-catalog-cpi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>app-catalog-data</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
             <artifactId>airavata-workflow-model-component</artifactId>
             <version>${project.version}</version>
         </dependency>

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalog.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalog.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalog.java
deleted file mode 100644
index 9d825e8..0000000
--- a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalog.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- *
- * 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.workflow.catalog;
-
-import java.util.List;
-
-import org.apache.airavata.model.Workflow;
-import org.apache.airavata.model.error.AiravataClientException;
-import org.apache.airavata.model.error.AiravataSystemException;
-import org.apache.airavata.model.error.InvalidRequestException;
-import org.apache.thrift.TException;
-
-public interface WorkflowCatalog {
-	public List<String> getAllWorkflows() throws WorkflowCatalogException;
-
-	public Workflow getWorkflow(String workflowTemplateId)
-			throws WorkflowCatalogException;
-
-	public void deleteWorkflow(String workflowTemplateId)
-			throws WorkflowCatalogException;
-
-	public String registerWorkflow(Workflow workflow)
-			throws WorkflowCatalogException;
-
-	public void updateWorkflow(String workflowTemplateId, Workflow workflow)
-			throws WorkflowCatalogException;
-
-	public String getWorkflowTemplateId(String workflowName)
-			throws WorkflowCatalogException;
-
-	public boolean isWorkflowExistWithName(String workflowName)
-			throws WorkflowCatalogException;
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogException.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogException.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogException.java
deleted file mode 100644
index b6caa5f..0000000
--- a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogException.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.apache.airavata.workflow.catalog;
-
-public class WorkflowCatalogException extends Exception{
-    private static final long serialVersionUID = -2849422320139467602L;
-
-    public WorkflowCatalogException(Throwable e) {
-        super(e);
-    }
-
-    public WorkflowCatalogException(String message) {
-        super(message, null);
-    }
-
-    public WorkflowCatalogException(String message, Throwable e) {
-        super(message, e);
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogFactory.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogFactory.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogFactory.java
index 3b4e747..021baf6 100644
--- a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogFactory.java
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogFactory.java
@@ -21,13 +21,25 @@
 
 package org.apache.airavata.workflow.catalog;
 
+import org.airavata.appcatalog.cpi.AppCatalogException;
+import org.airavata.appcatalog.cpi.WorkflowCatalog;
+import org.apache.aiaravata.application.catalog.data.impl.AppCatalogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 public class WorkflowCatalogFactory {
+    private static Logger logger = LoggerFactory.getLogger(WorkflowCatalogFactory.class);
 	private static WorkflowCatalog workflowCatalog;
 	
-	public static WorkflowCatalog getWorkflowCatalog(){
-		if (workflowCatalog==null) {
-			workflowCatalog = new WorkflowCatalogImpl();
-		}
-		return workflowCatalog;
-	}
+	public static WorkflowCatalog getWorkflowCatalog() throws AppCatalogException{
+		try {
+            if (workflowCatalog==null) {
+                workflowCatalog = AppCatalogFactory.getAppCatalog().getWorkflowCatalog();
+            }
+            return workflowCatalog;
+        } catch (AppCatalogException e) {
+            logger.error("Unable to create workflow catalog instance", e);
+            throw new AppCatalogException(e);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogImpl.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogImpl.java
deleted file mode 100644
index 16009eb..0000000
--- a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/catalog/WorkflowCatalogImpl.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- *
- * 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.workflow.catalog;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.model.Workflow;
-import org.apache.airavata.registry.api.AiravataRegistry2;
-import org.apache.airavata.registry.api.AiravataRegistryFactory;
-import org.apache.airavata.registry.api.AiravataUser;
-import org.apache.airavata.registry.api.Gateway;
-import org.apache.airavata.registry.api.exception.RegException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class WorkflowCatalogImpl implements WorkflowCatalog {
-    private static final Logger log = LoggerFactory.getLogger(WorkflowCatalogImpl.class);
-
-	private AiravataRegistry2 registry;
-	
-	public List<String> getAllWorkflows() throws WorkflowCatalogException{
-		try {
-			return Arrays.asList(getRegistry().getWorkflows().keySet().toArray(new String[]{}));
-		} catch (RegException e) {
-			String msg = "Error in retrieving all workflow template Ids.";
-			log.error(msg, e);
-			WorkflowCatalogException exception = new WorkflowCatalogException(msg + " More info : " + e.getMessage());
-			throw exception;
-		}
-	}
-
-	@Override
-	public Workflow getWorkflow(String workflowTemplateId)
-			throws WorkflowCatalogException{
-		try {
-			Workflow workflow = new Workflow();
-			workflow.setTemplateId(workflowTemplateId);
-			workflow.setGraph(getRegistry().getWorkflowGraphXML(workflowTemplateId));
-			workflow.setName(workflowTemplateId);
-			return workflow;
-		} catch (RegException e) {
-			String msg = "Error in retrieving the workflow "
-					+ workflowTemplateId + ".";
-			log.error(msg, e);
-			WorkflowCatalogException exception = new WorkflowCatalogException(msg + " More info : " + e.getMessage());
-			throw exception;
-		}
-	}
-
-	@Override
-	public void deleteWorkflow(String workflowTemplateId)
-			throws WorkflowCatalogException{
-		try {
-			getRegistry().removeWorkflow(workflowTemplateId);
-		} catch (RegException e) {
-			String msg = "Error in deleting the workflow " + workflowTemplateId
-					+ ".";
-			log.error(msg, e);
-			WorkflowCatalogException exception = new WorkflowCatalogException(msg + " More info : " + e.getMessage());
-			throw exception;
-		}
-	}
-
-	@Override
-	public String registerWorkflow(Workflow workflow)
-			throws WorkflowCatalogException {
-		try {
-			getRegistry().addWorkflow(workflow.getName(),workflow.getGraph());
-			return workflow.getName();
-		} catch (RegException e) {
-			String msg = "Error in registering the workflow "
-					+ workflow.getName() + ".";
-			log.error(msg, e);
-			WorkflowCatalogException exception = new WorkflowCatalogException(msg + " More info : " + e.getMessage());
-			throw exception;
-		}
-	}
-
-	@Override
-	public void updateWorkflow(String workflowTemplateId, Workflow workflow)
-			throws WorkflowCatalogException {
-		try {
-			getRegistry().updateWorkflow(workflowTemplateId, workflow.getGraph());
-		} catch (RegException e) {
-			String msg = "Error in updating the workflow " + workflow.getName()
-					+ ".";
-			log.error(msg, e);
-			WorkflowCatalogException exception = new WorkflowCatalogException(msg + " More info : " + e.getMessage());
-			throw exception;
-		}
-	}
-
-	@Override
-	public String getWorkflowTemplateId(String workflowName)
-			throws WorkflowCatalogException {
-		try {
-			if (getRegistry().isWorkflowExists(workflowName)) {
-				return workflowName;
-			}
-			WorkflowCatalogException airavataClientException = new WorkflowCatalogException("No worklfow exists with the name "
-							+ workflowName);
-			throw airavataClientException;
-		} catch (RegException e) {
-			String msg = "Error in retrieving the workflow template id for "
-					+ workflowName + ".";
-			log.error(msg, e);
-			WorkflowCatalogException exception = new WorkflowCatalogException(msg + " More info : " + e.getMessage());
-			throw exception;
-		}
-	}
-
-	@Override
-	public boolean isWorkflowExistWithName(String workflowName)
-			throws WorkflowCatalogException {
-		try {
-			return getRegistry().isWorkflowExists(workflowName);
-		} catch (RegException e) {
-			String msg = "Error in veriying the workflow for workflow name "
-					+ workflowName + ".";
-			log.error(msg, e);
-			WorkflowCatalogException exception = new WorkflowCatalogException(msg + " More info : " + e.getMessage());
-			throw exception;
-		}
-	}
-
-	private String getAiravataUserName() throws ApplicationSettingsException {
-		return ServerSettings.getDefaultUser();
-	}
-
-	private String getGatewayName() throws ApplicationSettingsException {
-		return ServerSettings.getDefaultUserGateway();
-	}
-
-	private AiravataRegistry2 getRegistry() {
-		if (registry == null) {
-			try {
-				registry = AiravataRegistryFactory.getRegistry(new Gateway(getGatewayName()),
-						new AiravataUser(getAiravataUserName()));
-			} catch (Exception e) {
-				log.error("Unable to create Airavata API", e);
-			}
-		}
-		return registry;
-	}
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowEngineImpl.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowEngineImpl.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowEngineImpl.java
index 84045ab..8254ff9 100644
--- a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowEngineImpl.java
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowEngineImpl.java
@@ -21,6 +21,7 @@
 
 package org.apache.airavata.workflow.engine;
 
+import org.airavata.appcatalog.cpi.WorkflowCatalog;
 import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.model.workspace.experiment.Experiment;
 import org.apache.airavata.orchestrator.client.OrchestratorClientFactory;
@@ -29,7 +30,6 @@ import org.apache.airavata.persistance.registry.jpa.impl.RegistryFactory;
 import org.apache.airavata.registry.cpi.Registry;
 import org.apache.airavata.registry.cpi.RegistryException;
 import org.apache.airavata.registry.cpi.RegistryModelType;
-import org.apache.airavata.workflow.catalog.WorkflowCatalog;
 import org.apache.airavata.workflow.catalog.WorkflowCatalogFactory;
 import org.apache.airavata.workflow.engine.interpretor.WorkflowInterpreter;
 import org.apache.airavata.workflow.engine.interpretor.WorkflowInterpreterConfiguration;

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowUtils.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowUtils.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowUtils.java
index e21a2e2..b1d6073 100644
--- a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowUtils.java
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowUtils.java
@@ -28,7 +28,6 @@ import org.airavata.appcatalog.cpi.ApplicationInterface;
 import org.apache.aiaravata.application.catalog.data.impl.AppCatalogFactory;
 import org.apache.airavata.model.util.ExecutionType;
 import org.apache.airavata.model.workspace.experiment.Experiment;
-import org.apache.airavata.workflow.catalog.WorkflowCatalogException;
 import org.apache.airavata.workflow.catalog.WorkflowCatalogFactory;
 
 public class WorkflowUtils {
@@ -48,8 +47,6 @@ public class WorkflowUtils {
 			}
 		} catch (AppCatalogException e) {
 			e.printStackTrace();
-		} catch (WorkflowCatalogException e) {
-			e.printStackTrace();
 		}
 		return ExecutionType.UNKNOWN;
 	}

http://git-wip-us.apache.org/repos/asf/airavata/blob/d9e82a34/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/RegistryWorkflowPublisherWindow.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/RegistryWorkflowPublisherWindow.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/RegistryWorkflowPublisherWindow.java
index 59aef22..7b7410d 100644
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/RegistryWorkflowPublisherWindow.java
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/RegistryWorkflowPublisherWindow.java
@@ -39,8 +39,6 @@ import org.apache.airavata.model.error.AiravataClientConnectException;
 import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.airavata.model.error.AiravataSystemException;
 import org.apache.airavata.model.error.InvalidRequestException;
-import org.apache.airavata.workflow.catalog.WorkflowCatalog;
-import org.apache.airavata.workflow.catalog.WorkflowCatalogException;
 import org.apache.airavata.workflow.catalog.WorkflowCatalogFactory;
 import org.apache.airavata.workflow.model.wf.Workflow;
 import org.apache.airavata.xbaya.ThriftClientData;


Mime
View raw message