You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2015/06/05 18:26:01 UTC

[11/30] airavata git commit: registry refactoring changes

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/GatewayRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/GatewayRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/GatewayRegistry.java
index d97f0d4..4fb29e5 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/GatewayRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/GatewayRegistry.java
@@ -26,7 +26,7 @@ import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.model.workspace.Gateway;
 import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
 import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
-import org.apache.airavata.registry.core.experiment.catalog.resources.GatewayExperimentCatResource;
+import org.apache.airavata.registry.core.experiment.catalog.resources.GatewayResource;
 import org.apache.airavata.registry.core.experiment.catalog.utils.ThriftDataModelConversion;
 import org.apache.airavata.registry.cpi.RegistryException;
 import org.slf4j.Logger;
@@ -38,17 +38,17 @@ import java.util.List;
 public class GatewayRegistry {
 
     private final static Logger logger = LoggerFactory.getLogger(GatewayRegistry.class);
-    public GatewayExperimentCatResource getDefaultGateway () throws ApplicationSettingsException, RegistryException {
-        return (GatewayExperimentCatResource) ExpCatResourceUtils.getGateway(ServerSettings.getDefaultUserGateway());
+    public GatewayResource getDefaultGateway () throws ApplicationSettingsException, RegistryException {
+        return (GatewayResource) ExpCatResourceUtils.getGateway(ServerSettings.getDefaultUserGateway());
     }
 
-    public GatewayExperimentCatResource getExistingGateway (String gatewayName) throws RegistryException {
-        return (GatewayExperimentCatResource) ExpCatResourceUtils.getGateway(gatewayName);
+    public GatewayResource getExistingGateway (String gatewayName) throws RegistryException {
+        return (GatewayResource) ExpCatResourceUtils.getGateway(gatewayName);
     }
 
     public String addGateway (Gateway gateway) throws RegistryException{
         try {
-            GatewayExperimentCatResource resource = (GatewayExperimentCatResource) ExpCatResourceUtils.createGateway(gateway.getGatewayId());
+            GatewayResource resource = (GatewayResource) ExpCatResourceUtils.createGateway(gateway.getGatewayId());
             resource.setGatewayName(gateway.getGatewayName());
             resource.setEmailAddress(gateway.getEmailAddress());
             resource.setDomain(gateway.getDomain());
@@ -62,7 +62,7 @@ public class GatewayRegistry {
 
     public void updateGateway (String gatewayId, Gateway updatedGateway) throws RegistryException{
         try {
-            GatewayExperimentCatResource existingGateway = (GatewayExperimentCatResource) ExpCatResourceUtils.getGateway(gatewayId);
+            GatewayResource existingGateway = (GatewayResource) ExpCatResourceUtils.getGateway(gatewayId);
             existingGateway.setGatewayName(updatedGateway.getGatewayName());
             existingGateway.setEmailAddress(updatedGateway.getEmailAddress());
             existingGateway.setDomain(updatedGateway.getDomain());
@@ -75,7 +75,7 @@ public class GatewayRegistry {
 
     public Gateway getGateway (String gatewayId) throws RegistryException{
         try {
-            GatewayExperimentCatResource resource = (GatewayExperimentCatResource) ExpCatResourceUtils.getGateway(gatewayId);
+            GatewayResource resource = (GatewayResource) ExpCatResourceUtils.getGateway(gatewayId);
             return ThriftDataModelConversion.getGateway(resource);
         }catch (RegistryException e){
             logger.error("Error while getting gateway", e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ProjectRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ProjectRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ProjectRegistry.java
index f0c4965..9e6ec07 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ProjectRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ProjectRegistry.java
@@ -36,20 +36,20 @@ import org.slf4j.LoggerFactory;
 import java.util.*;
 
 public class ProjectRegistry {
-    private GatewayExperimentCatResource gatewayResource;
-    private WorkerExperimentCatResource workerResource;
+    private GatewayResource gatewayResource;
+    private WorkerResource workerResource;
     private final static Logger logger = LoggerFactory.getLogger(ProjectRegistry.class);
 
-    public ProjectRegistry(GatewayExperimentCatResource gatewayResource, UserExperimentCatResource user) throws RegistryException {
+    public ProjectRegistry(GatewayResource gatewayResource, UserResource user) throws RegistryException {
         if (!ExpCatResourceUtils.isGatewayExist(gatewayResource.getGatewayId())){
             this.gatewayResource = gatewayResource;
         }else {
-            this.gatewayResource = (GatewayExperimentCatResource) ExpCatResourceUtils.getGateway(gatewayResource.getGatewayId());
+            this.gatewayResource = (GatewayResource) ExpCatResourceUtils.getGateway(gatewayResource.getGatewayId());
         }
         if (!gatewayResource.isExists(ResourceType.GATEWAY_WORKER, user.getUserName())){
             workerResource = ExpCatResourceUtils.addGatewayWorker(gatewayResource, user);
         }else {
-            workerResource = (WorkerExperimentCatResource) ExpCatResourceUtils.getWorker(gatewayResource.getGatewayId(),
+            workerResource = (WorkerResource) ExpCatResourceUtils.getWorker(gatewayResource.getGatewayId(),
                     user.getUserName());
         }
     }
@@ -60,7 +60,7 @@ public class ProjectRegistry {
             if (!ExpCatResourceUtils.isUserExist(project.getOwner())){
                 ExpCatResourceUtils.addUser(project.getOwner(), null);
             }
-            ProjectExperimentCatResource projectResource = new ProjectExperimentCatResource();
+            ProjectResource projectResource = new ProjectResource();
             projectId = getProjectId(project.getName());
             projectResource.setId(projectId);
             project.setProjectID(projectId);
@@ -68,10 +68,10 @@ public class ProjectRegistry {
             projectResource.setDescription(project.getDescription());
             projectResource.setCreationTime(AiravataUtils.getTime(project.getCreationTime()));
             projectResource.setGatewayId(gatewayId);
-            WorkerExperimentCatResource worker = new WorkerExperimentCatResource(project.getOwner(), gatewayId);
+            WorkerResource worker = new WorkerResource(project.getOwner(), gatewayId);
             projectResource.setWorker(worker);
             projectResource.save();
-            ProjectUserExperimentCatResource resource = (ProjectUserExperimentCatResource)projectResource.create(
+            ProjectUserResource resource = (ProjectUserResource)projectResource.create(
                     ResourceType.PROJECT_USER);
             resource.setProjectId(project.getProjectID());
             resource.setUserName(project.getOwner());
@@ -87,7 +87,7 @@ public class ProjectRegistry {
             List<String> sharedUsers = project.getSharedUsers();
             if (sharedUsers != null && !sharedUsers.isEmpty()){
                 for (String username : sharedUsers){
-                    ProjectUserExperimentCatResource pr = (ProjectUserExperimentCatResource)projectResource.
+                    ProjectUserResource pr = (ProjectUserResource)projectResource.
                             create(ResourceType.PROJECT_USER);
                     pr.setUserName(username);
                     pr.save();
@@ -107,21 +107,21 @@ public class ProjectRegistry {
 
     public void updateProject (Project project, String projectId) throws RegistryException{
         try {
-            ProjectExperimentCatResource existingProject = workerResource.getProject(projectId);
+            ProjectResource existingProject = workerResource.getProject(projectId);
             existingProject.setDescription(project.getDescription());
             existingProject.setName(project.getName());
 //            existingProject.setGateway(gatewayResource);
-            UserExperimentCatResource user = (UserExperimentCatResource) ExpCatResourceUtils.getUser(project.getOwner());
+            UserResource user = (UserResource) ExpCatResourceUtils.getUser(project.getOwner());
             if (!gatewayResource.isExists(ResourceType.GATEWAY_WORKER, user.getUserName())){
                 workerResource = ExpCatResourceUtils.addGatewayWorker(gatewayResource, user);
             }else {
-                workerResource = (WorkerExperimentCatResource) ExpCatResourceUtils.getWorker(
+                workerResource = (WorkerResource) ExpCatResourceUtils.getWorker(
                         gatewayResource.getGatewayName(), user.getUserName());
             }
-            WorkerExperimentCatResource worker = new WorkerExperimentCatResource(project.getOwner(), gatewayResource.getGatewayId());
+            WorkerResource worker = new WorkerResource(project.getOwner(), gatewayResource.getGatewayId());
             existingProject.setWorker(worker);
             existingProject.save();
-            ProjectUserExperimentCatResource resource = (ProjectUserExperimentCatResource)existingProject.create(
+            ProjectUserResource resource = (ProjectUserResource)existingProject.create(
                     ResourceType.PROJECT_USER);
             resource.setProjectId(projectId);
             resource.setUserName(project.getOwner());
@@ -137,7 +137,7 @@ public class ProjectRegistry {
             List<String> sharedUsers = project.getSharedUsers();
             if (sharedUsers != null && !sharedUsers.isEmpty()){
                 for (String username : sharedUsers){
-                    ProjectUserExperimentCatResource pr = (ProjectUserExperimentCatResource)existingProject.create(
+                    ProjectUserResource pr = (ProjectUserResource)existingProject.create(
                             ResourceType.PROJECT_USER);
                     pr.setUserName(username);
                     pr.save();
@@ -151,7 +151,7 @@ public class ProjectRegistry {
 
     public Project getProject (String projectId) throws RegistryException{
         try {
-            ProjectExperimentCatResource project = workerResource.getProject(projectId);
+            ProjectResource project = workerResource.getProject(projectId);
             if (project != null){
                 return ThriftDataModelConversion.getProject(project);
             }
@@ -190,9 +190,9 @@ public class ProjectRegistry {
         try {
             if (fieldName.equals(Constants.FieldConstants.ProjectConstants.OWNER)){
                 workerResource.setUser((String)value);
-                List<ProjectExperimentCatResource> projectList = workerResource.getProjects();
+                List<ProjectResource> projectList = workerResource.getProjects();
                 if (projectList != null && !projectList.isEmpty()){
-                    for (ProjectExperimentCatResource pr : projectList){
+                    for (ProjectResource pr : projectList){
                         projects.add(ThriftDataModelConversion.getProject(pr));
                     }
                 }
@@ -237,19 +237,19 @@ public class ProjectRegistry {
             try {
                 for (String field : filters.keySet()){
                     if (field.equals(Constants.FieldConstants.ProjectConstants.PROJECT_NAME)){
-                        fil.put(AbstractExperimentCatResource.ProjectConstants.PROJECT_NAME, filters.get(field));
+                        fil.put(AbstractExpCatResource.ProjectConstants.PROJECT_NAME, filters.get(field));
                     }else if (field.equals(Constants.FieldConstants.ProjectConstants.OWNER)){
-                        fil.put(AbstractExperimentCatResource.ProjectConstants.USERNAME, filters.get(field));
+                        fil.put(AbstractExpCatResource.ProjectConstants.USERNAME, filters.get(field));
                     }else if (field.equals(Constants.FieldConstants.ProjectConstants.DESCRIPTION)){
-                        fil.put(AbstractExperimentCatResource.ProjectConstants.DESCRIPTION, filters.get(field));
+                        fil.put(AbstractExpCatResource.ProjectConstants.DESCRIPTION, filters.get(field));
                     }else if (field.equals(Constants.FieldConstants.ProjectConstants.GATEWAY_ID)){
-                        fil.put(AbstractExperimentCatResource.ProjectConstants.GATEWAY_ID, filters.get(field));
+                        fil.put(AbstractExpCatResource.ProjectConstants.GATEWAY_ID, filters.get(field));
                     }
                 }
-                List<ProjectExperimentCatResource> projectResources = workerResource
+                List<ProjectResource> projectResources = workerResource
                         .searchProjects(fil, limit, offset, orderByIdentifier, resultOrderType);
                 if (projectResources != null && !projectResources.isEmpty()){
-                    for (ProjectExperimentCatResource pr : projectResources){
+                    for (ProjectResource pr : projectResources){
                         projects.add(ThriftDataModelConversion.getProject(pr));
                     }
                 }
@@ -267,9 +267,9 @@ public class ProjectRegistry {
         try {
             if (fieldName.equals(Constants.FieldConstants.ProjectConstants.OWNER)){
                 workerResource.setUser((String)value);
-                List<ProjectExperimentCatResource> projectList = workerResource.getProjects();
+                List<ProjectResource> projectList = workerResource.getProjects();
                 if (projectList != null && !projectList.isEmpty()){
-                    for (ProjectExperimentCatResource pr : projectList){
+                    for (ProjectResource pr : projectList){
                         projectIds.add(pr.getName());
                     }
                 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java
index b54e0cf..9cea1c4 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java
@@ -24,12 +24,14 @@ package org.apache.airavata.registry.core.experiment.catalog.impl;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.registry.cpi.ExperimentCatalog;
+import org.apache.airavata.registry.cpi.Registry;
 import org.apache.airavata.registry.cpi.RegistryException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class RegistryFactory {
     private static ExperimentCatalog experimentCatalog;
+    private static Registry registry;
     private static Logger logger = LoggerFactory.getLogger(RegistryFactory.class);
 
     public static ExperimentCatalog getRegistry(String gateway, String username, String password) throws RegistryException {

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserReg.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserReg.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserReg.java
index e720df0..6dd6130 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserReg.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserReg.java
@@ -24,16 +24,16 @@ package org.apache.airavata.registry.core.experiment.catalog.impl;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
-import org.apache.airavata.registry.core.experiment.catalog.resources.WorkerExperimentCatResource;
+import org.apache.airavata.registry.core.experiment.catalog.resources.WorkerResource;
 import org.apache.airavata.registry.cpi.RegistryException;
 
 public class UserReg {
-    public WorkerExperimentCatResource getSystemUser() throws ApplicationSettingsException, RegistryException {
-        return (WorkerExperimentCatResource) ExpCatResourceUtils.getWorker(ServerSettings.getDefaultUserGateway(), ServerSettings.getDefaultUser());
+    public WorkerResource getSystemUser() throws ApplicationSettingsException, RegistryException {
+        return (WorkerResource) ExpCatResourceUtils.getWorker(ServerSettings.getDefaultUserGateway(), ServerSettings.getDefaultUser());
     }
 
-    public WorkerExperimentCatResource getExistingUser (String gatewayName, String userName) throws RegistryException {
-        return (WorkerExperimentCatResource) ExpCatResourceUtils.getWorker(gatewayName, userName);
+    public WorkerResource getExistingUser (String gatewayName, String userName) throws RegistryException {
+        return (WorkerResource) ExpCatResourceUtils.getWorker(gatewayName, userName);
     }
 
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
new file mode 100644
index 0000000..c1adb42
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
@@ -0,0 +1,317 @@
+/*
+ *
+ * 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.experiment.catalog.resources;
+
+import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
+import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
+import org.apache.airavata.registry.cpi.RegistryException;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class AbstractExpCatResource implements ExperimentCatResource {
+	// table names
+	public static final String GATEWAY = "Gateway";
+	public static final String CONFIGURATION = "Configuration";
+	public static final String USERS = "Users";
+	public static final String GATEWAY_WORKER = "Gateway_Worker";
+	public static final String PROJECT = "Project";
+	public static final String PROJECT_USER = "ProjectUser";
+	public static final String EXPERIMENT = "Experiment";
+	public static final String NOTIFICATION_EMAIL = "Notification_Email";
+	public static final String EXPERIMENT_CONFIG_DATA = "ExperimentConfigData";
+	public static final String EXPERIMENT_INPUT = "Experiment_Input";
+	public static final String EXPERIMENT_OUTPUT = "Experiment_Output";
+	public static final String WORKFLOW_NODE_DETAIL = "WorkflowNodeDetail";
+	public static final String TASK_DETAIL = "TaskDetail";
+	public static final String ERROR_DETAIL = "ErrorDetail";
+	public static final String APPLICATION_INPUT = "ApplicationInput";
+	public static final String APPLICATION_OUTPUT = "ApplicationOutput";
+	public static final String NODE_INPUT = "NodeInput";
+	public static final String NODE_OUTPUT = "NodeOutput";
+	public static final String JOB_DETAIL = "JobDetail";
+	public static final String DATA_TRANSFER_DETAIL = "DataTransferDetail";
+	public static final String STATUS = "Status";
+	public static final String CONFIG_DATA = "ExperimentConfigData";
+	public static final String COMPUTATIONAL_RESOURCE_SCHEDULING = "Computational_Resource_Scheduling";
+	public static final String ADVANCE_INPUT_DATA_HANDLING = "AdvancedInputDataHandling";
+	public static final String ADVANCE_OUTPUT_DATA_HANDLING = "AdvancedOutputDataHandling";
+	public static final String QOS_PARAMS = "QosParam";
+
+
+	// Gateway Table
+	public final class GatewayConstants {
+		public static final String GATEWAY_ID = "gateway_id";
+		public static final String GATEWAY_NAME = "gateway_name";
+		public static final String DOMAIN = "domain";
+		public static final String EMAIL_ADDRESS = "emailAddress";
+	}
+
+	// Configuration Table
+	public final class ConfigurationConstants {
+		// public static final String CONFIG_ID = "config_ID";
+		public static final String CONFIG_KEY = "config_key";
+		public static final String CONFIG_VAL = "config_val";
+		public static final String EXPIRE_DATE = "expire_date";
+		public static final String CATEGORY_ID = "category_id";
+		public static final String CATEGORY_ID_DEFAULT_VALUE = "SYSTEM";
+	}
+
+	// Users table
+	public final class UserConstants {
+		public static final String USERNAME = "user_name";
+		public static final String PASSWORD = "password";
+	}
+
+	// Gateway_Worker table
+	public final class GatewayWorkerConstants {
+		public static final String USERNAME = "user_name";
+		public static final String GATEWAY_ID = "gateway_id";
+	}
+
+	// Project table
+	public final class ProjectConstants {
+		public static final String GATEWAY_ID = "gateway_id";
+		public static final String USERNAME = "user_name";
+		public static final String PROJECT_NAME = "project_name";
+		public static final String PROJECT_ID = "project_id";
+		public static final String DESCRIPTION = "description";
+        public static final String CREATION_TIME = "creationTime";
+	}
+
+    // Project table
+    public final class ProjectUserConstants {
+        public static final String USERNAME = "userName";
+        public static final String PROJECT_ID = "projectID";
+    }
+
+	// Experiment table
+	public final class ExperimentConstants {
+		public static final String PROJECT_ID = "projectID";
+		public static final String EXECUTION_USER = "executionUser";
+		public static final String GATEWAY_ID = "gatewayId";
+		public static final String EXPERIMENT_ID = "expId";
+		public static final String EXPERIMENT_NAME = "expName";
+		public static final String DESCRIPTION = "expDesc";
+		public static final String CREATION_TIME = "creationTime";
+		public static final String APPLICATION_ID = "applicationId";
+		public static final String APPLICATION_VERSION = "appVersion";
+		public static final String WORKFLOW_TEMPLATE_ID = "workflowTemplateId";
+		public static final String WORKFLOW_TEMPLATE_VERSION = "workflowTemplateVersion";
+		public static final String WORKFLOW_EXECUTION_ID = "workflowExecutionId";
+	}
+
+    // Experiment Configuration Data table
+    public final class ExperimentConfigurationDataConstants {
+        public static final String EXPERIMENT_ID = "expId";
+        public static final String AIRAVATA_AUTO_SCHEDULE = "airavataAutoSchedule";
+        public static final String OVERRIDE_MANUAL_SCHEDULE = "overrideManualParams";
+        public static final String SHARE_EXPERIMENT = "shareExp";
+    }
+
+    public final class NotificationEmailConstants {
+        public static final String EXPERIMENT_ID = "experiment_id";
+        public static final String TASK_ID = "taskId";
+        public static final String EMAIL_ADDRESS = "emailAddress";
+    }
+
+    //Experiment Input table
+    public final class ExperimentInputConstants {
+        public static final String EXPERIMENT_ID = "experiment_id";
+        public static final String EXPERIMENT_INPUT_KEY = "ex_key";
+        public static final String EXPERIMENT_INPUT_VAL = "value";
+        public static final String INPUT_TYPE = "inputType";
+        public static final String METADATA = "metadata";
+    }
+
+    //Experiment Output table
+    public final class ExperimentOutputConstants {
+        public static final String EXPERIMENT_ID = "experiment_id";
+        public static final String EXPERIMENT_OUTPUT_KEY = "ex_key";
+        public static final String EXPERIMENT_OUTPUT_VAL = "value";
+        public static final String OUTPUT_TYPE = "outputKeyType";
+        public static final String METADATA = "metadata";
+    }
+
+	// Workflow_Data table
+	public final class WorkflowNodeDetailsConstants {
+		public static final String EXPERIMENT_ID = "expId";
+		public static final String NODE_INSTANCE_ID = "nodeId";
+		public static final String CREATION_TIME = "creationTime";
+		public static final String NODE_NAME = "nodeName";
+	}
+
+	// TaskDetail table
+	public final class TaskDetailConstants {
+		public static final String TASK_ID = "taskId";
+		public static final String NODE_INSTANCE_ID = "nodeId";
+		public static final String CREATION_TIME = "creationTime";
+		public static final String APPLICATION_ID = "appId";
+		public static final String APPLICATION_VERSION = "appVersion";
+	}
+
+	// ErrorDetails table
+	public final class ErrorDetailConstants {
+		public static final String ERROR_ID = "errorID";
+		public static final String EXPERIMENT_ID = "expId";
+		public static final String TASK_ID = "taskId";
+		public static final String JOB_ID = "jobId";
+		public static final String NODE_INSTANCE_ID = "nodeId";
+		public static final String CREATION_TIME = "creationTime";
+		public static final String ACTUAL_ERROR_MESSAGE = "actualErrorMsg";
+		public static final String USER_FRIEDNLY_ERROR_MSG = "userFriendlyErrorMsg";
+		public static final String TRANSIENT_OR_PERSISTENT = "transientPersistent";
+		public static final String ERROR_CATEGORY = "errorCategory";
+		public static final String CORRECTIVE_ACTION = "correctiveAction";
+		public static final String ACTIONABLE_GROUP = "actionableGroup";
+	}
+
+    // ApplicationInput table
+	public final class ApplicationInputConstants {
+		public static final String TASK_ID = "taskId";
+		public static final String INPUT_KEY = "inputKey";
+		public static final String INPUT_KEY_TYPE = "inputKeyType";
+		public static final String METADATA = "metadata";
+		public static final String VALUE = "value";
+	}
+
+    // ApplicationOutput table
+    public final class ApplicationOutputConstants {
+        public static final String TASK_ID = "taskId";
+        public static final String OUTPUT_KEY = "outputKey";
+        public static final String OUTPUT_KEY_TYPE = "outputKeyType";
+        public static final String METADATA = "metadata";
+        public static final String VALUE = "value";
+    }
+
+    // NodeInput table
+    public final class NodeInputConstants {
+        public static final String NODE_INSTANCE_ID = "nodeId";
+        public static final String INPUT_KEY = "inputKey";
+        public static final String INPUT_KEY_TYPE = "inputKeyType";
+        public static final String METADATA = "metadata";
+        public static final String VALUE = "value";
+    }
+
+    // NodeOutput table
+    public final class NodeOutputConstants {
+        public static final String NODE_INSTANCE_ID = "nodeId";
+        public static final String OUTPUT_KEY = "outputKey";
+        public static final String OUTPUT_KEY_TYPE = "outputKeyType";
+        public static final String METADATA = "metadata";
+        public static final String VALUE = "value";
+    }
+
+    // Job Details table constants
+    public final class JobDetailConstants{
+        public static final String JOB_ID = "jobId";
+        public static final String TASK_ID = "taskId";
+        public static final String JOB_DESCRIPTION = "jobDescription";
+        public static final String CREATION_TIME = "jobDescription";
+    }
+
+    // Data transfer Details table constants
+    public final class DataTransferDetailConstants{
+        public static final String TRANSFER_ID = "transferId";
+        public static final String TASK_ID = "taskId";
+        public static final String TRANSFER_DESC = "transferDesc";
+        public static final String CREATION_TIME = "creationTime";
+    }
+
+    // Status table constants
+    public final class StatusConstants {
+        public static final String STATUS_ID = "statusId";
+        public static final String EXPERIMENT_ID = "expId";
+        public static final String NODE_INSTANCE_ID = "nodeId";
+        public static final String TRANSFER_ID = "transferId";
+        public static final String TASK_ID = "taskId";
+        public static final String JOB_ID = "jobId";
+        public static final String STATE = "state";
+        public static final String STATUS_UPDATE_TIME = "statusUpdateTime";
+        public static final String STATUS_TYPE = "statusType";
+    }
+
+    public static final class ComputationalResourceSchedulingConstants{
+        public static final String RESOURCE_SCHEDULING_ID = "schedulingId";
+        public static final String EXPERIMENT_ID = "expId";
+        public static final String TASK_ID = "taskId";
+        public static final String RESOURCE_HOST_ID = "resourceHostId";
+        public static final String CPU_COUNT = "cpuCount";
+        public static final String NODE_COUNT = "nodeCount";
+        public static final String NO_OF_THREADS = "numberOfThreads";
+        public static final String QUEUE_NAME = "queueName";
+        public static final String WALLTIME_LIMIT = "wallTimeLimit";
+        public static final String JOB_START_TIME = "jobStartTime";
+        public static final String TOTAL_PHYSICAL_MEMORY = "totalPhysicalmemory";
+        public static final String COMPUTATIONAL_PROJECT_ACCOUNT = "projectName";
+    }
+
+    public static final class AdvancedInputDataHandlingConstants {
+        public static final String INPUT_DATA_HANDLING_ID = "dataHandlingId";
+        public static final String EXPERIMENT_ID = "expId";
+        public static final String TASK_ID = "taskId";
+        public static final String WORKING_DIR_PARENT = "parentWorkingDir";
+        public static final String UNIQUE_WORKING_DIR = "workingDir";
+        public static final String STAGE_INPUT_FILES_TO_WORKING_DIR = "stageInputsToWorkingDir";
+        public static final String CLEAN_AFTER_JOB = "cleanAfterJob";
+    }
+
+    public static final class AdvancedOutputDataHandlingConstants {
+        public static final String OUTPUT_DATA_HANDLING_ID = "outputDataHandlingId";
+        public static final String EXPERIMENT_ID = "expId";
+        public static final String TASK_ID = "taskId";
+        public static final String OUTPUT_DATA_DIR = "outputDataDir";
+        public static final String DATA_REG_URL = "dataRegUrl";
+        public static final String PERSIST_OUTPUT_DATA = "persistOutputData";
+    }
+
+    public static final class QosParamsConstants {
+        public static final String QOS_ID = "qosId";
+        public static final String EXPERIMENT_ID = "expId";
+        public static final String TASK_ID = "taskId";
+        public static final String START_EXECUTION_AT = "startExecutionAt";
+        public static final String EXECUTE_BEFORE = "executeBefore";
+        public static final String NO_OF_RETRIES = "noOfRetries";
+    }
+
+
+	protected AbstractExpCatResource() {
+	}
+
+	public boolean isExists(ResourceType type, Object name) throws RegistryException {
+		try {
+			return get(type, name) != null;
+		} catch (Exception e) {
+			return false;
+		}
+	}
+
+	@SuppressWarnings("unchecked")
+	public static <T> List<T> getResourceList(List<ExperimentCatResource> resources,
+			Class<?> T) {
+		List<T> list = new ArrayList<T>();
+		for (ExperimentCatResource o : resources) {
+			list.add((T) o);
+		}
+		return list;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExperimentCatResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExperimentCatResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExperimentCatResource.java
deleted file mode 100644
index 46bebb2..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExperimentCatResource.java
+++ /dev/null
@@ -1,317 +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.registry.core.experiment.catalog.resources;
-
-import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
-import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
-import org.apache.airavata.registry.cpi.RegistryException;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public abstract class AbstractExperimentCatResource implements ExperimentCatResource {
-	// table names
-	public static final String GATEWAY = "Gateway";
-	public static final String CONFIGURATION = "Configuration";
-	public static final String USERS = "Users";
-	public static final String GATEWAY_WORKER = "Gateway_Worker";
-	public static final String PROJECT = "Project";
-	public static final String PROJECT_USER = "ProjectUser";
-	public static final String EXPERIMENT = "Experiment";
-	public static final String NOTIFICATION_EMAIL = "Notification_Email";
-	public static final String EXPERIMENT_CONFIG_DATA = "ExperimentConfigData";
-	public static final String EXPERIMENT_INPUT = "Experiment_Input";
-	public static final String EXPERIMENT_OUTPUT = "Experiment_Output";
-	public static final String WORKFLOW_NODE_DETAIL = "WorkflowNodeDetail";
-	public static final String TASK_DETAIL = "TaskDetail";
-	public static final String ERROR_DETAIL = "ErrorDetail";
-	public static final String APPLICATION_INPUT = "ApplicationInput";
-	public static final String APPLICATION_OUTPUT = "ApplicationOutput";
-	public static final String NODE_INPUT = "NodeInput";
-	public static final String NODE_OUTPUT = "NodeOutput";
-	public static final String JOB_DETAIL = "JobDetail";
-	public static final String DATA_TRANSFER_DETAIL = "DataTransferDetail";
-	public static final String STATUS = "Status";
-	public static final String CONFIG_DATA = "ExperimentConfigData";
-	public static final String COMPUTATIONAL_RESOURCE_SCHEDULING = "Computational_Resource_Scheduling";
-	public static final String ADVANCE_INPUT_DATA_HANDLING = "AdvancedInputDataHandling";
-	public static final String ADVANCE_OUTPUT_DATA_HANDLING = "AdvancedOutputDataHandling";
-	public static final String QOS_PARAMS = "QosParam";
-
-
-	// Gateway Table
-	public final class GatewayConstants {
-		public static final String GATEWAY_ID = "gateway_id";
-		public static final String GATEWAY_NAME = "gateway_name";
-		public static final String DOMAIN = "domain";
-		public static final String EMAIL_ADDRESS = "emailAddress";
-	}
-
-	// Configuration Table
-	public final class ConfigurationConstants {
-		// public static final String CONFIG_ID = "config_ID";
-		public static final String CONFIG_KEY = "config_key";
-		public static final String CONFIG_VAL = "config_val";
-		public static final String EXPIRE_DATE = "expire_date";
-		public static final String CATEGORY_ID = "category_id";
-		public static final String CATEGORY_ID_DEFAULT_VALUE = "SYSTEM";
-	}
-
-	// Users table
-	public final class UserConstants {
-		public static final String USERNAME = "user_name";
-		public static final String PASSWORD = "password";
-	}
-
-	// Gateway_Worker table
-	public final class GatewayWorkerConstants {
-		public static final String USERNAME = "user_name";
-		public static final String GATEWAY_ID = "gateway_id";
-	}
-
-	// Project table
-	public final class ProjectConstants {
-		public static final String GATEWAY_ID = "gateway_id";
-		public static final String USERNAME = "user_name";
-		public static final String PROJECT_NAME = "project_name";
-		public static final String PROJECT_ID = "project_id";
-		public static final String DESCRIPTION = "description";
-        public static final String CREATION_TIME = "creationTime";
-	}
-
-    // Project table
-    public final class ProjectUserConstants {
-        public static final String USERNAME = "userName";
-        public static final String PROJECT_ID = "projectID";
-    }
-
-	// Experiment table
-	public final class ExperimentConstants {
-		public static final String PROJECT_ID = "projectID";
-		public static final String EXECUTION_USER = "executionUser";
-		public static final String GATEWAY_ID = "gatewayId";
-		public static final String EXPERIMENT_ID = "expId";
-		public static final String EXPERIMENT_NAME = "expName";
-		public static final String DESCRIPTION = "expDesc";
-		public static final String CREATION_TIME = "creationTime";
-		public static final String APPLICATION_ID = "applicationId";
-		public static final String APPLICATION_VERSION = "appVersion";
-		public static final String WORKFLOW_TEMPLATE_ID = "workflowTemplateId";
-		public static final String WORKFLOW_TEMPLATE_VERSION = "workflowTemplateVersion";
-		public static final String WORKFLOW_EXECUTION_ID = "workflowExecutionId";
-	}
-
-    // Experiment Configuration Data table
-    public final class ExperimentConfigurationDataConstants {
-        public static final String EXPERIMENT_ID = "expId";
-        public static final String AIRAVATA_AUTO_SCHEDULE = "airavataAutoSchedule";
-        public static final String OVERRIDE_MANUAL_SCHEDULE = "overrideManualParams";
-        public static final String SHARE_EXPERIMENT = "shareExp";
-    }
-
-    public final class NotificationEmailConstants {
-        public static final String EXPERIMENT_ID = "experiment_id";
-        public static final String TASK_ID = "taskId";
-        public static final String EMAIL_ADDRESS = "emailAddress";
-    }
-
-    //Experiment Input table
-    public final class ExperimentInputConstants {
-        public static final String EXPERIMENT_ID = "experiment_id";
-        public static final String EXPERIMENT_INPUT_KEY = "ex_key";
-        public static final String EXPERIMENT_INPUT_VAL = "value";
-        public static final String INPUT_TYPE = "inputType";
-        public static final String METADATA = "metadata";
-    }
-
-    //Experiment Output table
-    public final class ExperimentOutputConstants {
-        public static final String EXPERIMENT_ID = "experiment_id";
-        public static final String EXPERIMENT_OUTPUT_KEY = "ex_key";
-        public static final String EXPERIMENT_OUTPUT_VAL = "value";
-        public static final String OUTPUT_TYPE = "outputKeyType";
-        public static final String METADATA = "metadata";
-    }
-
-	// Workflow_Data table
-	public final class WorkflowNodeDetailsConstants {
-		public static final String EXPERIMENT_ID = "expId";
-		public static final String NODE_INSTANCE_ID = "nodeId";
-		public static final String CREATION_TIME = "creationTime";
-		public static final String NODE_NAME = "nodeName";
-	}
-
-	// TaskDetail table
-	public final class TaskDetailConstants {
-		public static final String TASK_ID = "taskId";
-		public static final String NODE_INSTANCE_ID = "nodeId";
-		public static final String CREATION_TIME = "creationTime";
-		public static final String APPLICATION_ID = "appId";
-		public static final String APPLICATION_VERSION = "appVersion";
-	}
-
-	// ErrorDetails table
-	public final class ErrorDetailConstants {
-		public static final String ERROR_ID = "errorID";
-		public static final String EXPERIMENT_ID = "expId";
-		public static final String TASK_ID = "taskId";
-		public static final String JOB_ID = "jobId";
-		public static final String NODE_INSTANCE_ID = "nodeId";
-		public static final String CREATION_TIME = "creationTime";
-		public static final String ACTUAL_ERROR_MESSAGE = "actualErrorMsg";
-		public static final String USER_FRIEDNLY_ERROR_MSG = "userFriendlyErrorMsg";
-		public static final String TRANSIENT_OR_PERSISTENT = "transientPersistent";
-		public static final String ERROR_CATEGORY = "errorCategory";
-		public static final String CORRECTIVE_ACTION = "correctiveAction";
-		public static final String ACTIONABLE_GROUP = "actionableGroup";
-	}
-
-    // ApplicationInput table
-	public final class ApplicationInputConstants {
-		public static final String TASK_ID = "taskId";
-		public static final String INPUT_KEY = "inputKey";
-		public static final String INPUT_KEY_TYPE = "inputKeyType";
-		public static final String METADATA = "metadata";
-		public static final String VALUE = "value";
-	}
-
-    // ApplicationOutput table
-    public final class ApplicationOutputConstants {
-        public static final String TASK_ID = "taskId";
-        public static final String OUTPUT_KEY = "outputKey";
-        public static final String OUTPUT_KEY_TYPE = "outputKeyType";
-        public static final String METADATA = "metadata";
-        public static final String VALUE = "value";
-    }
-
-    // NodeInput table
-    public final class NodeInputConstants {
-        public static final String NODE_INSTANCE_ID = "nodeId";
-        public static final String INPUT_KEY = "inputKey";
-        public static final String INPUT_KEY_TYPE = "inputKeyType";
-        public static final String METADATA = "metadata";
-        public static final String VALUE = "value";
-    }
-
-    // NodeOutput table
-    public final class NodeOutputConstants {
-        public static final String NODE_INSTANCE_ID = "nodeId";
-        public static final String OUTPUT_KEY = "outputKey";
-        public static final String OUTPUT_KEY_TYPE = "outputKeyType";
-        public static final String METADATA = "metadata";
-        public static final String VALUE = "value";
-    }
-
-    // Job Details table constants
-    public final class JobDetailConstants{
-        public static final String JOB_ID = "jobId";
-        public static final String TASK_ID = "taskId";
-        public static final String JOB_DESCRIPTION = "jobDescription";
-        public static final String CREATION_TIME = "jobDescription";
-    }
-
-    // Data transfer Details table constants
-    public final class DataTransferDetailConstants{
-        public static final String TRANSFER_ID = "transferId";
-        public static final String TASK_ID = "taskId";
-        public static final String TRANSFER_DESC = "transferDesc";
-        public static final String CREATION_TIME = "creationTime";
-    }
-
-    // Status table constants
-    public final class StatusConstants {
-        public static final String STATUS_ID = "statusId";
-        public static final String EXPERIMENT_ID = "expId";
-        public static final String NODE_INSTANCE_ID = "nodeId";
-        public static final String TRANSFER_ID = "transferId";
-        public static final String TASK_ID = "taskId";
-        public static final String JOB_ID = "jobId";
-        public static final String STATE = "state";
-        public static final String STATUS_UPDATE_TIME = "statusUpdateTime";
-        public static final String STATUS_TYPE = "statusType";
-    }
-
-    public static final class ComputationalResourceSchedulingConstants{
-        public static final String RESOURCE_SCHEDULING_ID = "schedulingId";
-        public static final String EXPERIMENT_ID = "expId";
-        public static final String TASK_ID = "taskId";
-        public static final String RESOURCE_HOST_ID = "resourceHostId";
-        public static final String CPU_COUNT = "cpuCount";
-        public static final String NODE_COUNT = "nodeCount";
-        public static final String NO_OF_THREADS = "numberOfThreads";
-        public static final String QUEUE_NAME = "queueName";
-        public static final String WALLTIME_LIMIT = "wallTimeLimit";
-        public static final String JOB_START_TIME = "jobStartTime";
-        public static final String TOTAL_PHYSICAL_MEMORY = "totalPhysicalmemory";
-        public static final String COMPUTATIONAL_PROJECT_ACCOUNT = "projectName";
-    }
-
-    public static final class AdvancedInputDataHandlingConstants {
-        public static final String INPUT_DATA_HANDLING_ID = "dataHandlingId";
-        public static final String EXPERIMENT_ID = "expId";
-        public static final String TASK_ID = "taskId";
-        public static final String WORKING_DIR_PARENT = "parentWorkingDir";
-        public static final String UNIQUE_WORKING_DIR = "workingDir";
-        public static final String STAGE_INPUT_FILES_TO_WORKING_DIR = "stageInputsToWorkingDir";
-        public static final String CLEAN_AFTER_JOB = "cleanAfterJob";
-    }
-
-    public static final class AdvancedOutputDataHandlingConstants {
-        public static final String OUTPUT_DATA_HANDLING_ID = "outputDataHandlingId";
-        public static final String EXPERIMENT_ID = "expId";
-        public static final String TASK_ID = "taskId";
-        public static final String OUTPUT_DATA_DIR = "outputDataDir";
-        public static final String DATA_REG_URL = "dataRegUrl";
-        public static final String PERSIST_OUTPUT_DATA = "persistOutputData";
-    }
-
-    public static final class QosParamsConstants {
-        public static final String QOS_ID = "qosId";
-        public static final String EXPERIMENT_ID = "expId";
-        public static final String TASK_ID = "taskId";
-        public static final String START_EXECUTION_AT = "startExecutionAt";
-        public static final String EXECUTE_BEFORE = "executeBefore";
-        public static final String NO_OF_RETRIES = "noOfRetries";
-    }
-
-
-	protected AbstractExperimentCatResource() {
-	}
-
-	public boolean isExists(ResourceType type, Object name) throws RegistryException {
-		try {
-			return get(type, name) != null;
-		} catch (Exception e) {
-			return false;
-		}
-	}
-
-	@SuppressWarnings("unchecked")
-	public static <T> List<T> getResourceList(List<ExperimentCatResource> resources,
-			Class<?> T) {
-		List<T> list = new ArrayList<T>();
-		for (ExperimentCatResource o : resources) {
-			list.add((T) o);
-		}
-		return list;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvanceInputDataHandlingExperimentCatResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvanceInputDataHandlingExperimentCatResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvanceInputDataHandlingExperimentCatResource.java
deleted file mode 100644
index 033d2e7..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvanceInputDataHandlingExperimentCatResource.java
+++ /dev/null
@@ -1,160 +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.registry.core.experiment.catalog.resources;
-
-import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
-import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
-import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
-import org.apache.airavata.registry.core.experiment.catalog.model.AdvancedInputDataHandling;
-import org.apache.airavata.registry.cpi.RegistryException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.EntityManager;
-import java.util.List;
-
-public class AdvanceInputDataHandlingExperimentCatResource extends AbstractExperimentCatResource {
-    private static final Logger logger = LoggerFactory.getLogger(AdvanceInputDataHandlingExperimentCatResource.class);
-    private int dataHandlingId = 0;
-    private String workingDirParent;
-    private String workingDir;
-    private boolean stageInputFiles;
-    private boolean cleanAfterJob;
-    private String experimentId;
-    private String taskId;
-
-    public String getExperimentId() {
-        return experimentId;
-    }
-
-    public void setExperimentId(String experimentId) {
-        this.experimentId = experimentId;
-    }
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(String taskId) {
-        this.taskId = taskId;
-    }
-
-    public int getDataHandlingId() {
-        return dataHandlingId;
-    }
-
-    public void setDataHandlingId(int dataHandlingId) {
-        this.dataHandlingId = dataHandlingId;
-    }
-
-    public String getWorkingDirParent() {
-        return workingDirParent;
-    }
-
-    public void setWorkingDirParent(String workingDirParent) {
-        this.workingDirParent = workingDirParent;
-    }
-
-    public String getWorkingDir() {
-        return workingDir;
-    }
-
-    public void setWorkingDir(String workingDir) {
-        this.workingDir = workingDir;
-    }
-
-    public boolean isStageInputFiles() {
-        return stageInputFiles;
-    }
-
-    public void setStageInputFiles(boolean stageInputFiles) {
-        this.stageInputFiles = stageInputFiles;
-    }
-
-    public boolean isCleanAfterJob() {
-        return cleanAfterJob;
-    }
-
-    public void setCleanAfterJob(boolean cleanAfterJob) {
-        this.cleanAfterJob = cleanAfterJob;
-    }
-
-    
-    public ExperimentCatResource create(ResourceType type) throws RegistryException {
-        logger.error("Unsupported resource type for input data handling resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    
-    public void remove(ResourceType type, Object name) throws RegistryException {
-        logger.error("Unsupported resource type for input data handling resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    
-    public ExperimentCatResource get(ResourceType type, Object name) throws RegistryException{
-        logger.error("Unsupported resource type for input data handling resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    
-    public List<ExperimentCatResource> get(ResourceType type) throws RegistryException {
-        logger.error("Unsupported resource type for input data handling resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    
-    public void save() throws RegistryException{
-        EntityManager em = null;
-        try {
-            em = ExpCatResourceUtils.getEntityManager();
-            em.getTransaction().begin();
-            AdvancedInputDataHandling dataHandling;
-            if (dataHandlingId != 0) {
-                dataHandling = em.find(AdvancedInputDataHandling.class, dataHandlingId);
-                dataHandling.setDataHandlingId(dataHandlingId);
-            } else {
-                dataHandling = new AdvancedInputDataHandling();
-            }
-            dataHandling.setWorkingDir(workingDir);
-            dataHandling.setParentWorkingDir(workingDirParent);
-            dataHandling.setStageInputsToWorkingDir(stageInputFiles);
-            dataHandling.setCleanAfterJob(cleanAfterJob);
-            dataHandling.setExpId(experimentId);
-            dataHandling.setTaskId(taskId);
-            em.persist(dataHandling);
-            dataHandlingId = dataHandling.getDataHandlingId();
-            em.getTransaction().commit();
-            em.close();
-        }catch (Exception e){
-            logger.error(e.getMessage(), e);
-            throw new RegistryException(e);
-        }finally {
-            if (em != null && em.isOpen()){
-                if (em.getTransaction().isActive()){
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvanceInputDataHandlingResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvanceInputDataHandlingResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvanceInputDataHandlingResource.java
new file mode 100644
index 0000000..727882f
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvanceInputDataHandlingResource.java
@@ -0,0 +1,160 @@
+/*
+ *
+ * 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.experiment.catalog.resources;
+
+import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
+import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
+import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
+import org.apache.airavata.registry.core.experiment.catalog.model.AdvancedInputDataHandling;
+import org.apache.airavata.registry.cpi.RegistryException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import java.util.List;
+
+public class AdvanceInputDataHandlingResource extends AbstractExpCatResource {
+    private static final Logger logger = LoggerFactory.getLogger(AdvanceInputDataHandlingResource.class);
+    private int dataHandlingId = 0;
+    private String workingDirParent;
+    private String workingDir;
+    private boolean stageInputFiles;
+    private boolean cleanAfterJob;
+    private String experimentId;
+    private String taskId;
+
+    public String getExperimentId() {
+        return experimentId;
+    }
+
+    public void setExperimentId(String experimentId) {
+        this.experimentId = experimentId;
+    }
+
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
+    public int getDataHandlingId() {
+        return dataHandlingId;
+    }
+
+    public void setDataHandlingId(int dataHandlingId) {
+        this.dataHandlingId = dataHandlingId;
+    }
+
+    public String getWorkingDirParent() {
+        return workingDirParent;
+    }
+
+    public void setWorkingDirParent(String workingDirParent) {
+        this.workingDirParent = workingDirParent;
+    }
+
+    public String getWorkingDir() {
+        return workingDir;
+    }
+
+    public void setWorkingDir(String workingDir) {
+        this.workingDir = workingDir;
+    }
+
+    public boolean isStageInputFiles() {
+        return stageInputFiles;
+    }
+
+    public void setStageInputFiles(boolean stageInputFiles) {
+        this.stageInputFiles = stageInputFiles;
+    }
+
+    public boolean isCleanAfterJob() {
+        return cleanAfterJob;
+    }
+
+    public void setCleanAfterJob(boolean cleanAfterJob) {
+        this.cleanAfterJob = cleanAfterJob;
+    }
+
+    
+    public ExperimentCatResource create(ResourceType type) throws RegistryException {
+        logger.error("Unsupported resource type for input data handling resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+    
+    public void remove(ResourceType type, Object name) throws RegistryException {
+        logger.error("Unsupported resource type for input data handling resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+    
+    public ExperimentCatResource get(ResourceType type, Object name) throws RegistryException{
+        logger.error("Unsupported resource type for input data handling resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+    
+    public List<ExperimentCatResource> get(ResourceType type) throws RegistryException {
+        logger.error("Unsupported resource type for input data handling resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+    
+    public void save() throws RegistryException{
+        EntityManager em = null;
+        try {
+            em = ExpCatResourceUtils.getEntityManager();
+            em.getTransaction().begin();
+            AdvancedInputDataHandling dataHandling;
+            if (dataHandlingId != 0) {
+                dataHandling = em.find(AdvancedInputDataHandling.class, dataHandlingId);
+                dataHandling.setDataHandlingId(dataHandlingId);
+            } else {
+                dataHandling = new AdvancedInputDataHandling();
+            }
+            dataHandling.setWorkingDir(workingDir);
+            dataHandling.setParentWorkingDir(workingDirParent);
+            dataHandling.setStageInputsToWorkingDir(stageInputFiles);
+            dataHandling.setCleanAfterJob(cleanAfterJob);
+            dataHandling.setExpId(experimentId);
+            dataHandling.setTaskId(taskId);
+            em.persist(dataHandling);
+            dataHandlingId = dataHandling.getDataHandlingId();
+            em.getTransaction().commit();
+            em.close();
+        }catch (Exception e){
+            logger.error(e.getMessage(), e);
+            throw new RegistryException(e);
+        }finally {
+            if (em != null && em.isOpen()){
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvancedOutputDataHandlingExperimentCatResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvancedOutputDataHandlingExperimentCatResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvancedOutputDataHandlingExperimentCatResource.java
deleted file mode 100644
index bc3045b..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvancedOutputDataHandlingExperimentCatResource.java
+++ /dev/null
@@ -1,150 +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.registry.core.experiment.catalog.resources;
-
-import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
-import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
-import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
-import org.apache.airavata.registry.core.experiment.catalog.model.AdvancedOutputDataHandling;
-import org.apache.airavata.registry.cpi.RegistryException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.EntityManager;
-import java.util.List;
-
-public class AdvancedOutputDataHandlingExperimentCatResource extends AbstractExperimentCatResource {
-    private static final Logger logger = LoggerFactory.getLogger(AdvancedOutputDataHandlingExperimentCatResource.class);
-    private int outputDataHandlingId = 0;
-    private  String outputDataDir;
-    private String dataRegUrl;
-    private boolean persistOutputData;
-    private String experimentId;
-    private String taskId;
-
-    public String getExperimentId() {
-        return experimentId;
-    }
-
-    public void setExperimentId(String experimentId) {
-        this.experimentId = experimentId;
-    }
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(String taskId) {
-        this.taskId = taskId;
-    }
-
-    public int getOutputDataHandlingId() {
-        return outputDataHandlingId;
-    }
-
-    public void setOutputDataHandlingId(int outputDataHandlingId) {
-        this.outputDataHandlingId = outputDataHandlingId;
-    }
-
-    public String getOutputDataDir() {
-        return outputDataDir;
-    }
-
-    public void setOutputDataDir(String outputDataDir) {
-        this.outputDataDir = outputDataDir;
-    }
-
-    public String getDataRegUrl() {
-        return dataRegUrl;
-    }
-
-    public void setDataRegUrl(String dataRegUrl) {
-        this.dataRegUrl = dataRegUrl;
-    }
-
-    public boolean isPersistOutputData() {
-        return persistOutputData;
-    }
-
-    public void setPersistOutputData(boolean persistOutputData) {
-        this.persistOutputData = persistOutputData;
-    }
-
-
-    public ExperimentCatResource create(ResourceType type) throws RegistryException {
-        logger.error("Unsupported resource type for output data handling resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-
-    public void remove(ResourceType type, Object name) throws RegistryException {
-        logger.error("Unsupported resource type for output data handling resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-
-    public ExperimentCatResource get(ResourceType type, Object name) throws RegistryException  {
-        logger.error("Unsupported resource type for output data handling resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-
-    public List<ExperimentCatResource> get(ResourceType type) throws RegistryException{
-        logger.error("Unsupported resource type for output data handling resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-
-    public void save() throws RegistryException {
-        EntityManager em = null;
-        try {
-            em = ExpCatResourceUtils.getEntityManager();
-            em.getTransaction().begin();
-            AdvancedOutputDataHandling dataHandling;
-            if (outputDataHandlingId != 0 ){
-                dataHandling = em.find(AdvancedOutputDataHandling.class, outputDataHandlingId);
-                dataHandling.setOutputDataHandlingId(outputDataHandlingId);
-            }else {
-                dataHandling = new AdvancedOutputDataHandling();
-            }
-            dataHandling.setDataRegUrl(dataRegUrl);
-            dataHandling.setOutputDataDir(outputDataDir);
-            dataHandling.setPersistOutputData(persistOutputData);
-            dataHandling.setExpId(experimentId);
-            dataHandling.setTaskId(taskId);
-            em.persist(dataHandling);
-            outputDataHandlingId = dataHandling.getOutputDataHandlingId();
-            em.getTransaction().commit();
-            em.close();
-        }catch (Exception e){
-            logger.error(e.getMessage(), e);
-            throw new RegistryException(e);
-        }finally {
-            if (em != null && em.isOpen()){
-                if (em.getTransaction().isActive()){
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvancedOutputDataHandlingResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvancedOutputDataHandlingResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvancedOutputDataHandlingResource.java
new file mode 100644
index 0000000..622eebd
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AdvancedOutputDataHandlingResource.java
@@ -0,0 +1,150 @@
+/*
+ *
+ * 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.experiment.catalog.resources;
+
+import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
+import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
+import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
+import org.apache.airavata.registry.core.experiment.catalog.model.AdvancedOutputDataHandling;
+import org.apache.airavata.registry.cpi.RegistryException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import java.util.List;
+
+public class AdvancedOutputDataHandlingResource extends AbstractExpCatResource {
+    private static final Logger logger = LoggerFactory.getLogger(AdvancedOutputDataHandlingResource.class);
+    private int outputDataHandlingId = 0;
+    private  String outputDataDir;
+    private String dataRegUrl;
+    private boolean persistOutputData;
+    private String experimentId;
+    private String taskId;
+
+    public String getExperimentId() {
+        return experimentId;
+    }
+
+    public void setExperimentId(String experimentId) {
+        this.experimentId = experimentId;
+    }
+
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
+    public int getOutputDataHandlingId() {
+        return outputDataHandlingId;
+    }
+
+    public void setOutputDataHandlingId(int outputDataHandlingId) {
+        this.outputDataHandlingId = outputDataHandlingId;
+    }
+
+    public String getOutputDataDir() {
+        return outputDataDir;
+    }
+
+    public void setOutputDataDir(String outputDataDir) {
+        this.outputDataDir = outputDataDir;
+    }
+
+    public String getDataRegUrl() {
+        return dataRegUrl;
+    }
+
+    public void setDataRegUrl(String dataRegUrl) {
+        this.dataRegUrl = dataRegUrl;
+    }
+
+    public boolean isPersistOutputData() {
+        return persistOutputData;
+    }
+
+    public void setPersistOutputData(boolean persistOutputData) {
+        this.persistOutputData = persistOutputData;
+    }
+
+
+    public ExperimentCatResource create(ResourceType type) throws RegistryException {
+        logger.error("Unsupported resource type for output data handling resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+
+    public void remove(ResourceType type, Object name) throws RegistryException {
+        logger.error("Unsupported resource type for output data handling resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+
+    public ExperimentCatResource get(ResourceType type, Object name) throws RegistryException  {
+        logger.error("Unsupported resource type for output data handling resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+
+    public List<ExperimentCatResource> get(ResourceType type) throws RegistryException{
+        logger.error("Unsupported resource type for output data handling resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+
+    public void save() throws RegistryException {
+        EntityManager em = null;
+        try {
+            em = ExpCatResourceUtils.getEntityManager();
+            em.getTransaction().begin();
+            AdvancedOutputDataHandling dataHandling;
+            if (outputDataHandlingId != 0 ){
+                dataHandling = em.find(AdvancedOutputDataHandling.class, outputDataHandlingId);
+                dataHandling.setOutputDataHandlingId(outputDataHandlingId);
+            }else {
+                dataHandling = new AdvancedOutputDataHandling();
+            }
+            dataHandling.setDataRegUrl(dataRegUrl);
+            dataHandling.setOutputDataDir(outputDataDir);
+            dataHandling.setPersistOutputData(persistOutputData);
+            dataHandling.setExpId(experimentId);
+            dataHandling.setTaskId(taskId);
+            em.persist(dataHandling);
+            outputDataHandlingId = dataHandling.getOutputDataHandlingId();
+            em.getTransaction().commit();
+            em.close();
+        }catch (Exception e){
+            logger.error(e.getMessage(), e);
+            throw new RegistryException(e);
+        }finally {
+            if (em != null && em.isOpen()){
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ApplicationInputExperimentCatResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ApplicationInputExperimentCatResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ApplicationInputExperimentCatResource.java
deleted file mode 100644
index 6481fea..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ApplicationInputExperimentCatResource.java
+++ /dev/null
@@ -1,230 +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.registry.core.experiment.catalog.resources;
-
-import java.util.List;
-
-import javax.persistence.EntityManager;
-
-import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
-import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
-import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
-import org.apache.airavata.registry.core.experiment.catalog.model.ApplicationInput;
-import org.apache.airavata.registry.core.experiment.catalog.model.ApplicationInput_PK;
-import org.apache.airavata.registry.cpi.RegistryException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ApplicationInputExperimentCatResource extends AbstractExperimentCatResource {
-	private static final Logger logger = LoggerFactory.getLogger(ApplicationInputExperimentCatResource.class);
-    private String inputKey;
-    private String dataType;
-    private String metadata;
-    private String value;
-    private String appArgument;
-    private boolean standardInput;
-    private String userFriendlyDesc;
-    private int inputOrder;
-    private boolean isRequired;
-    private boolean requiredToCMD;
-    private boolean dataStaged;
-    private String taskId;
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(String taskId) {
-        this.taskId = taskId;
-    }
-
-    public boolean isRequired() {
-        return isRequired;
-    }
-
-    public void setRequired(boolean isRequired) {
-        this.isRequired = isRequired;
-    }
-
-    public boolean isRequiredToCMD() {
-        return requiredToCMD;
-    }
-
-    public void setRequiredToCMD(boolean requiredToCMD) {
-        this.requiredToCMD = requiredToCMD;
-    }
-
-    public boolean isDataStaged() {
-        return dataStaged;
-    }
-
-    public void setDataStaged(boolean dataStaged) {
-        this.dataStaged = dataStaged;
-    }
-
-    public int getInputOrder() {
-        return inputOrder;
-    }
-
-    public void setInputOrder(int inputOrder) {
-        this.inputOrder = inputOrder;
-    }
-
-    public String getAppArgument() {
-        return appArgument;
-    }
-
-    public void setAppArgument(String appArgument) {
-        this.appArgument = appArgument;
-    }
-
-    public boolean isStandardInput() {
-        return standardInput;
-    }
-
-    public void setStandardInput(boolean standardInput) {
-        this.standardInput = standardInput;
-    }
-
-    public String getUserFriendlyDesc() {
-        return userFriendlyDesc;
-    }
-
-    public void setUserFriendlyDesc(String userFriendlyDesc) {
-        this.userFriendlyDesc = userFriendlyDesc;
-    }
-
-    public String getInputKey() {
-        return inputKey;
-    }
-
-    public void setInputKey(String inputKey) {
-        this.inputKey = inputKey;
-    }
-
-    public String getDataType() {
-        return dataType;
-    }
-
-    public void setDataType(String dataType) {
-        this.dataType = dataType;
-    }
-
-    public String getMetadata() {
-        return metadata;
-    }
-
-    public void setMetadata(String metadata) {
-        this.metadata = metadata;
-    }
-
-    public String getValue() {
-        return value;
-    }
-
-    public void setValue(String value) {
-        this.value = value;
-    }
-
-    public ExperimentCatResource create(ResourceType type) throws RegistryException {
-        logger.error("Unsupported resource type for application input data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    
-    public void remove(ResourceType type, Object name) throws RegistryException{
-        logger.error("Unsupported resource type for application input data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    
-    public ExperimentCatResource get(ResourceType type, Object name) throws RegistryException {
-        logger.error("Unsupported resource type for application input data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    
-    public List<ExperimentCatResource> get(ResourceType type) throws RegistryException{
-        logger.error("Unsupported resource type for application input data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
-    }
-
-    
-    public void save() throws RegistryException {
-        EntityManager em = null;
-        try {
-            em = ExpCatResourceUtils.getEntityManager();
-            ApplicationInput existingInput = em.find(ApplicationInput.class, new ApplicationInput_PK(inputKey, taskId));
-            em.close();
-
-            em = ExpCatResourceUtils.getEntityManager();
-            em.getTransaction().begin();
-            ApplicationInput applicationInput = new ApplicationInput();
-            applicationInput.setTaskId(taskId);
-            applicationInput.setInputKey(inputKey);
-            applicationInput.setDataType(dataType);
-            applicationInput.setAppArgument(appArgument);
-            applicationInput.setStandardInput(standardInput);
-            applicationInput.setUserFriendlyDesc(userFriendlyDesc);
-            applicationInput.setInputOrder(inputOrder);
-            applicationInput.setRequiredToCMD(requiredToCMD);
-            applicationInput.setRequired(isRequired);
-            applicationInput.setDataStaged(dataStaged);
-            if (value != null) {
-                applicationInput.setValue(value.toCharArray());
-            }
-
-            applicationInput.setMetadata(metadata);
-
-            if (existingInput != null) {
-                existingInput.setTaskId(taskId);
-                existingInput.setInputKey(inputKey);
-                existingInput.setDataType(dataType);
-                existingInput.setAppArgument(appArgument);
-                existingInput.setStandardInput(standardInput);
-                existingInput.setUserFriendlyDesc(userFriendlyDesc);
-                existingInput.setInputOrder(inputOrder);
-                existingInput.setRequiredToCMD(requiredToCMD);
-                existingInput.setRequired(isRequired);
-                existingInput.setDataStaged(dataStaged);
-                if (value != null) {
-                    existingInput.setValue(value.toCharArray());
-                }
-                existingInput.setMetadata(metadata);
-                applicationInput = em.merge(existingInput);
-            } else {
-                em.persist(applicationInput);
-            }
-            em.getTransaction().commit();
-            em.close();
-        } catch (Exception e) {
-            throw new RegistryException(e.getMessage());
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-    }
-}