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

[16/17] airavata git commit: Changing the registry model and resource packages to comply with the new data models

Changing the registry model and resource packages to comply with the new data models


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

Branch: refs/heads/master
Commit: f366c38419ec63c19fa952abd3ea2cc4ebed8d2e
Parents: 709eab9
Author: Supun Nakandala <sc...@apache.org>
Authored: Fri Jun 19 02:18:10 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Fri Jun 19 02:18:11 2015 +0530

----------------------------------------------------------------------
 .../experiment/catalog/ExpCatResourceUtils.java | 167 +---
 .../core/experiment/catalog/ResourceType.java   |  29 +-
 .../model/AdvancedInputDataHandling.java        | 113 ---
 .../model/AdvancedOutputDataHandling.java       | 105 ---
 .../catalog/model/ApplicationInput.java         | 167 ----
 .../catalog/model/ApplicationInput_PK.java      |  65 --
 .../catalog/model/ApplicationOutput.java        | 143 ---
 .../catalog/model/ApplicationOutput_PK.java     |  64 --
 .../Computational_Resource_Scheduling.java      | 175 ----
 .../experiment/catalog/model/Configuration.java |  80 --
 .../catalog/model/Configuration_PK.java         |  74 --
 .../catalog/model/DataTransferDetail.java       |  93 --
 .../experiment/catalog/model/ErrorDetail.java   | 179 ----
 .../experiment/catalog/model/Experiment.java    | 387 ++++----
 .../catalog/model/ExperimentConfigData.java     | 142 ---
 .../catalog/model/ExperimentError.java          | 159 ++++
 .../catalog/model/ExperimentInput.java          | 236 +++++
 .../catalog/model/ExperimentOutput.java         | 182 ++++
 .../catalog/model/ExperimentStatus.java         | 113 +++
 .../catalog/model/ExperimentSummary.java        | 186 ++++
 .../catalog/model/Experiment_Input.java         | 170 ----
 .../catalog/model/Experiment_Input_PK.java      |  64 --
 .../catalog/model/Experiment_Output.java        | 143 ---
 .../catalog/model/Experiment_Output_PK.java     |  64 --
 .../core/experiment/catalog/model/Gateway.java  | 105 ++-
 .../experiment/catalog/model/GatewayWorker.java |  97 ++
 .../catalog/model/GatewayWorkerPK.java          |  74 ++
 .../catalog/model/Gateway_Worker.java           |  82 --
 .../catalog/model/Gateway_Worker_PK.java        |  64 --
 .../experiment/catalog/model/JobDetail.java     | 135 ---
 .../experiment/catalog/model/JobDetails_PK.java |  64 --
 .../experiment/catalog/model/NodeInput.java     | 163 ----
 .../experiment/catalog/model/NodeInput_PK.java  |  64 --
 .../experiment/catalog/model/NodeOutput.java    | 140 ---
 .../experiment/catalog/model/NodeOutput_PK.java |  64 --
 .../catalog/model/Notification_Email.java       |  81 --
 .../core/experiment/catalog/model/Process.java  | 217 +++++
 .../experiment/catalog/model/ProcessError.java  | 143 +++
 .../experiment/catalog/model/ProcessInput.java  | 238 +++++
 .../experiment/catalog/model/ProcessOutput.java | 184 ++++
 .../catalog/model/ProcessResourceSchedule.java  | 169 ++++
 .../experiment/catalog/model/ProcessStatus.java | 114 +++
 .../core/experiment/catalog/model/Project.java  | 152 ++--
 .../experiment/catalog/model/ProjectUser.java   |  80 +-
 .../catalog/model/ProjectUser_PK.java           |  64 --
 .../catalog/model/ProjectUsersPK.java           |  74 ++
 .../core/experiment/catalog/model/QosParam.java | 103 ---
 .../core/experiment/catalog/model/Status.java   | 146 ---
 .../core/experiment/catalog/model/Task.java     | 175 ++++
 .../experiment/catalog/model/TaskDetail.java    | 221 -----
 .../experiment/catalog/model/TaskError.java     | 142 +++
 .../experiment/catalog/model/TaskStatus.java    | 113 +++
 .../core/experiment/catalog/model/User.java     | 115 +++
 .../catalog/model/UserConfigurationData.java    | 250 ++++++
 .../core/experiment/catalog/model/Users.java    |  55 --
 .../catalog/model/WorkflowNodeDetail.java       | 155 ----
 .../resources/AbstractExpCatResource.java       | 302 +++----
 .../AdvanceInputDataHandlingResource.java       | 160 ----
 .../AdvancedOutputDataHandlingResource.java     | 150 ----
 .../resources/ApplicationInputResource.java     | 230 -----
 .../resources/ApplicationOutputResource.java    | 208 -----
 .../ComputationSchedulingResource.java          | 221 -----
 .../catalog/resources/ConfigDataResource.java   | 194 ----
 .../resources/ConfigurationResource.java        | 204 -----
 .../resources/DataTransferDetailResource.java   | 276 ------
 .../catalog/resources/ErrorDetailResource.java  | 215 -----
 .../resources/ExperimentErrorResource.java      | 150 ++++
 .../resources/ExperimentInputResource.java      | 240 +++--
 .../resources/ExperimentOutputResource.java     | 207 ++---
 .../catalog/resources/ExperimentResource.java   | 819 ++++++-----------
 .../resources/ExperimentStatusResource.java     | 130 +++
 .../resources/ExperimentSummaryResource.java    |  87 +-
 .../catalog/resources/GatewayResource.java      |  42 +-
 .../catalog/resources/JobDetailResource.java    | 376 --------
 .../catalog/resources/NodeInputResource.java    | 227 -----
 .../catalog/resources/NodeOutputResource.java   | 207 -----
 .../resources/NotificationEmailResource.java    | 119 ---
 .../catalog/resources/ProcessErrorResource.java | 150 ++++
 .../catalog/resources/ProcessInputResource.java | 221 +++++
 .../resources/ProcessOutputResource.java        | 181 ++++
 .../catalog/resources/ProcessResource.java      | 441 +++++++++
 .../ProcessResourceScheduleResource.java        | 170 ++++
 .../resources/ProcessStatusResource.java        | 130 +++
 .../catalog/resources/ProjectResource.java      |  35 +-
 .../catalog/resources/ProjectUserResource.java  |  18 +-
 .../catalog/resources/QosParamResource.java     | 144 ---
 .../catalog/resources/StatusResource.java       | 181 ----
 .../catalog/resources/TaskDetailResource.java   | 748 ----------------
 .../catalog/resources/TaskErrorResource.java    | 150 ++++
 .../catalog/resources/TaskResource.java         | 273 ++++++
 .../catalog/resources/TaskStatusResource.java   | 130 +++
 .../UserConfigurationDataResource.java          | 230 +++++
 .../catalog/resources/UserResource.java         |   8 +-
 .../experiment/catalog/resources/Utils.java     | 887 +++++--------------
 .../catalog/resources/WorkerResource.java       | 349 ++++----
 .../resources/WorkflowNodeDetailResource.java   | 515 -----------
 .../utils/ThriftDataModelConversion.java        |  55 +-
 .../src/main/resources/META-INF/persistence.xml |  40 +-
 98 files changed, 6893 insertions(+), 10270 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ExpCatResourceUtils.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ExpCatResourceUtils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ExpCatResourceUtils.java
index fc86602..e8c5607 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ExpCatResourceUtils.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ExpCatResourceUtils.java
@@ -158,7 +158,7 @@ public class ExpCatResourceUtils {
         try {
             if (isUserExist(userName)) {
                 em = getEntityManager();
-                Users user =  em.find(Users.class, userName);
+                User user =  em.find(User.class, userName);
                 UserResource userResource = (UserResource)Utils.getResource(ResourceType.USER, user);
                 em.close();
                 return userResource;
@@ -182,7 +182,10 @@ public class ExpCatResourceUtils {
         EntityManager em = null;
         try {
             em = getEntityManager();
-            Gateway_Worker gatewayWorker = em.find(Gateway_Worker.class, new Gateway_Worker_PK(gatewayId, userName));
+            GatewayWorkerPK gatewayWorkerPK = new GatewayWorkerPK();
+            gatewayWorkerPK.setGatewayId(gatewayId);
+            gatewayWorkerPK.setUserName(userName);
+            GatewayWorker gatewayWorker = em.find(GatewayWorker.class, gatewayWorkerPK);
             WorkerResource workerResource = (WorkerResource) Utils.getResource(ResourceType.GATEWAY_WORKER, gatewayWorker);
             em.close();
             return workerResource;
@@ -310,8 +313,8 @@ public class ExpCatResourceUtils {
                 userResource.save();
             }
             Gateway gateway = em.find(Gateway.class, gatewayResource.getGatewayId());
-            Users user = em.find(Users.class, userResource.getUserName());
-            Gateway_Worker gatewayWorker = new Gateway_Worker();
+            User user = em.find(User.class, userResource.getUserName());
+            GatewayWorker gatewayWorker = new GatewayWorker();
             gatewayWorker.setGateway(gateway);
             gatewayWorker.setUser(user);
             em.persist(gatewayWorker);
@@ -363,160 +366,4 @@ public class ExpCatResourceUtils {
         }
 
     }
-
-    /**
-     * @param configKey
-     * @return
-     */
-    public static List<ConfigurationResource> getConfigurations(String configKey){
-        List<ConfigurationResource> list = new ArrayList<ConfigurationResource>();
-        EntityManager em = null;
-        try {
-            em = getEntityManager();
-            em.getTransaction().begin();
-            QueryGenerator generator = new QueryGenerator(AbstractExpCatResource.CONFIGURATION);
-            generator.setParameter(AbstractExpCatResource.ConfigurationConstants.CONFIG_KEY, configKey);
-            Query q = generator.selectQuery(em);
-            List<?> resultList = q.getResultList();
-            if (resultList.size() != 0) {
-                for (Object result : resultList) {
-                    ConfigurationResource configurationResource = createConfigurationResourceObject(result);
-                    list.add(configurationResource);
-                }
-            }
-            em.getTransaction().commit();
-            em.close();
-        }catch (Exception e) {
-            logger.error(e.getMessage(), e);
-        }finally {
-            if (em != null && em.isOpen()){
-                if (em.getTransaction().isActive()){
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-        return list;
-    }
-
-    /**
-     * @param configKey
-     * @return
-     */
-    public static ConfigurationResource getConfiguration(String configKey){
-        List<ConfigurationResource> configurations = getConfigurations(configKey);
-        return (configurations != null && configurations.size() > 0) ? configurations.get(0) : null;
-    }
-
-    /**
-     * @param configKey
-     * @return
-     */
-    public static boolean isConfigurationExist(String configKey){
-        List<ConfigurationResource> configurations = getConfigurations(configKey);
-        return (configurations != null && configurations.size() > 0);
-    }
-
-    /**
-     * @param configKey
-     * @return
-     */
-    public static ConfigurationResource createConfiguration(String configKey) {
-        ConfigurationResource config = new ConfigurationResource();
-        config.setConfigKey(configKey);
-        return config;
-    }
-
-    /**
-     * @param result
-     * @return
-     */
-    private static ConfigurationResource createConfigurationResourceObject(
-            Object result) {
-        Configuration configuration = (Configuration) result;
-        ConfigurationResource configurationResource = new ConfigurationResource(configuration.getConfig_key(), configuration.getConfig_val());
-        configurationResource.setExpireDate(configuration.getExpire_date());
-        return configurationResource;
-    }
-
-    /**
-     * @param configkey
-     * @param configValue
-     */
-    public static void removeConfiguration(String configkey, String configValue) throws RegistryException{
-        QueryGenerator queryGenerator = new QueryGenerator(AbstractExpCatResource.CONFIGURATION);
-        queryGenerator.setParameter(AbstractExpCatResource.ConfigurationConstants.CONFIG_KEY, configkey);
-        queryGenerator.setParameter(AbstractExpCatResource.ConfigurationConstants.CONFIG_VAL, configValue);
-        EntityManager em = null;
-        try {
-            if(isConfigurationExists(configkey, configValue)){
-                em = getEntityManager();
-                em.getTransaction().begin();
-                Query q = queryGenerator.deleteQuery(em);
-                q.executeUpdate();
-                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();
-            }
-        }
-    }
-
-    /**
-     * @param configkey
-     */
-    public static void removeConfiguration(String configkey) throws RegistryException{
-        QueryGenerator queryGenerator = new QueryGenerator(AbstractExpCatResource.CONFIGURATION);
-        queryGenerator.setParameter(AbstractExpCatResource.ConfigurationConstants.CONFIG_KEY, configkey);
-        EntityManager em = null;
-        try {
-            if(isConfigurationExist(configkey)){
-                em = getEntityManager();
-                em.getTransaction().begin();
-                Query q = queryGenerator.deleteQuery(em);
-                q.executeUpdate();
-                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();
-            }
-        }
-    }
-
-    public static boolean isConfigurationExists(String configKey, String configVal) throws RegistryException{
-        EntityManager em = null;
-        try{
-            //Currently categoryID is hardcoded value
-            em = ExpCatResourceUtils.getEntityManager();
-            Configuration existing = em.find(Configuration.class, new Configuration_PK(configKey, configVal, AbstractExpCatResource.ConfigurationConstants.CATEGORY_ID_DEFAULT_VALUE));
-            em.close();
-            return existing!= null;
-        } 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/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java
index 8224cf3..0aeaa95 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java
@@ -24,26 +24,21 @@ public enum ResourceType {
     PROJECT,
     USER,
     PROJECT_USER,
-    CONFIGURATION,
     GATEWAY_WORKER,
     EXPERIMENT,
     EXPERIMENT_SUMMARY,
-    NOTIFICATION_EMAIL,
+    TASK,
+    TASK_ERROR,
+    PROCESS_ERROR,
+    EXPERIMENT_ERROR,
+    PROCESS,
+    PROCESS_INPUT,
+    PROCESS_OUTPUT,
     EXPERIMENT_INPUT,
     EXPERIMENT_OUTPUT,
-    WORKFLOW_NODE_DETAIL,
-    TASK_DETAIL,
-    ERROR_DETAIL,
-    APPLICATION_INPUT,
-    APPLICATION_OUTPUT,
-    NODE_INPUT,
-    NODE_OUTPUT,
-    JOB_DETAIL,
-    DATA_TRANSFER_DETAIL,
-    STATUS,
-    CONFIG_DATA,
-    COMPUTATIONAL_RESOURCE_SCHEDULING,
-    ADVANCE_INPUT_DATA_HANDLING,
-    ADVANCE_OUTPUT_DATA_HANDLING,
-    QOS_PARAM
+    PROCESS_RESOURCE_SCHEDULE,
+    TASK_STATUS,
+    PROCESS_STATUS,
+    EXPERIMENT_STATUS,
+    USER_CONFIGURATION_DATA;
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/AdvancedInputDataHandling.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/AdvancedInputDataHandling.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/AdvancedInputDataHandling.java
deleted file mode 100644
index d128694..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/AdvancedInputDataHandling.java
+++ /dev/null
@@ -1,113 +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.model;
-
-import org.apache.openjpa.persistence.DataCache;
-
-import javax.persistence.*;
-import java.io.Serializable;
-
-@DataCache
-@Entity
-@Table(name = "ADVANCE_INPUT_DATA_HANDLING")
-public class AdvancedInputDataHandling implements Serializable {
-    @Id
-    @GeneratedValue
-    @Column(name = "INPUT_DATA_HANDLING_ID")
-    private int dataHandlingId;
-    @Column(name = "EXPERIMENT_ID")
-    private String expId;
-    @Column(name = "TASK_ID")
-    private String taskId;
-    @Column(name = "WORKING_DIR_PARENT")
-    private String parentWorkingDir;
-    @Column(name = "UNIQUE_WORKING_DIR")
-    private String workingDir;
-    @Column(name = "STAGE_INPUT_FILES_TO_WORKING_DIR")
-    private boolean stageInputsToWorkingDir;
-    @Column(name = "CLEAN_AFTER_JOB")
-    private boolean cleanAfterJob;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "EXPERIMENT_ID")
-    private Experiment experiment;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "TASK_ID")
-    private TaskDetail task;
-
-    public int getDataHandlingId() {
-        return dataHandlingId;
-    }
-
-    public void setDataHandlingId(int dataHandlingId) {
-        this.dataHandlingId = dataHandlingId;
-    }
-
-    public String getExpId() {
-        return expId;
-    }
-
-    public void setExpId(String expId) {
-        this.expId = expId;
-    }
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(String taskId) {
-        this.taskId = taskId;
-    }
-
-    public String getParentWorkingDir() {
-        return parentWorkingDir;
-    }
-
-    public void setParentWorkingDir(String parentWorkingDir) {
-        this.parentWorkingDir = parentWorkingDir;
-    }
-
-    public String getWorkingDir() {
-        return workingDir;
-    }
-
-    public void setWorkingDir(String workingDir) {
-        this.workingDir = workingDir;
-    }
-
-    public boolean isStageInputsToWorkingDir() {
-        return stageInputsToWorkingDir;
-    }
-
-    public void setStageInputsToWorkingDir(boolean stageInputsToWorkingDir) {
-        this.stageInputsToWorkingDir = stageInputsToWorkingDir;
-    }
-
-    public boolean isCleanAfterJob() {
-        return cleanAfterJob;
-    }
-
-    public void setCleanAfterJob(boolean cleanAfterJob) {
-        this.cleanAfterJob = cleanAfterJob;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/AdvancedOutputDataHandling.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/AdvancedOutputDataHandling.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/AdvancedOutputDataHandling.java
deleted file mode 100644
index cd0a1b7..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/AdvancedOutputDataHandling.java
+++ /dev/null
@@ -1,105 +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.model;
-
-import org.apache.airavata.registry.core.experiment.catalog.model.TaskDetail;
-import org.apache.openjpa.persistence.DataCache;
-
-import javax.persistence.*;
-import java.io.Serializable;
-
-@DataCache
-@Entity
-@Table(name = "ADVANCE_OUTPUT_DATA_HANDLING")
-public class AdvancedOutputDataHandling implements Serializable {
-    @Id
-    @GeneratedValue
-    @Column(name = "OUTPUT_DATA_HANDLING_ID")
-    private int outputDataHandlingId;
-    @Column(name = "EXPERIMENT_ID")
-    private String expId;
-    @Column(name = "TASK_ID")
-    private String taskId;
-    @Column(name = "OUTPUT_DATA_DIR")
-    private String outputDataDir;
-    @Column(name = "DATA_REG_URL")
-    private String dataRegUrl;
-    @Column(name = "PERSIST_OUTPUT_DATA")
-    private boolean persistOutputData;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "EXPERIMENT_ID")
-    private Experiment experiment;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "TASK_ID")
-    private TaskDetail task;
-
-    public int getOutputDataHandlingId() {
-        return outputDataHandlingId;
-    }
-
-    public void setOutputDataHandlingId(int outputDataHandlingId) {
-        this.outputDataHandlingId = outputDataHandlingId;
-    }
-
-    public String getExpId() {
-        return expId;
-    }
-
-    public void setExpId(String expId) {
-        this.expId = expId;
-    }
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(String taskId) {
-        this.taskId = taskId;
-    }
-
-    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;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationInput.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationInput.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationInput.java
deleted file mode 100644
index 61abde8..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationInput.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.registry.core.experiment.catalog.model;
-
-import org.apache.airavata.registry.core.experiment.catalog.model.ApplicationInput_PK;
-import org.apache.airavata.registry.core.experiment.catalog.model.TaskDetail;
-import org.apache.openjpa.persistence.DataCache;
-
-import javax.persistence.*;
-import java.io.Serializable;
-
-@DataCache
-@Entity
-@Table(name = "APPLICATION_INPUT")
-@IdClass(ApplicationInput_PK.class)
-public class ApplicationInput implements Serializable {
-    @Id
-    @Column(name = "TASK_ID")
-    private String taskId;
-    @Id
-    @Column(name = "INPUT_KEY")
-    private String inputKey;
-    @Column(name = "DATA_TYPE")
-    private String dataType;
-    @Column(name = "METADATA")
-    private String metadata;
-    @Lob
-    @Column(name = "VALUE")
-    private char[] value;
-    @Column(name = "APP_ARGUMENT")
-    private String appArgument;
-
-    @Column(name = "INPUT_ORDER")
-    private int inputOrder;
-
-    @Column(name = "STANDARD_INPUT")
-    private boolean standardInput;
-
-    @Column(name = "USER_FRIENDLY_DESC")
-    private String userFriendlyDesc;
-
-    @Column(name="IS_REQUIRED")
-    private boolean isRequired;
-    @Column(name="REQUIRED_TO_COMMANDLINE")
-    private boolean requiredToCMD;
-    @Column(name = "DATA_STAGED")
-    private boolean dataStaged;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "TASK_ID")
-    private TaskDetail task;
-
-    public int getInputOrder() {
-        return inputOrder;
-    }
-
-    public void setInputOrder(int inputOrder) {
-        this.inputOrder = inputOrder;
-    }
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(String taskId) {
-        this.taskId = taskId;
-    }
-
-    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 char[] getValue() {
-        return value;
-    }
-
-    public void setValue(char[] value) {
-        this.value = value;
-    }
-
-    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 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;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationInput_PK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationInput_PK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationInput_PK.java
deleted file mode 100644
index 0a75a04..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationInput_PK.java
+++ /dev/null
@@ -1,65 +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.model;
-
-import java.io.Serializable;
-
-public class ApplicationInput_PK implements Serializable {
-    private String taskId;
-    private String inputKey;
-
-    public ApplicationInput_PK(String inputKey, String taskId) {
-        this.inputKey = inputKey;
-        this.taskId = taskId;
-    }
-
-    public ApplicationInput_PK() {
-        ;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        return false;
-    }
-
-    @Override
-    public int hashCode() {
-        return 1;
-    }
-
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(String taskId) {
-        this.taskId = taskId;
-    }
-
-    public String getInputKey() {
-        return inputKey;
-    }
-
-    public void setInputKey(String inputKey) {
-        this.inputKey = inputKey;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationOutput.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationOutput.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationOutput.java
deleted file mode 100644
index 9f1dc5e..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationOutput.java
+++ /dev/null
@@ -1,143 +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.model;
-
-import org.apache.airavata.registry.core.experiment.catalog.model.TaskDetail;
-import org.apache.openjpa.persistence.DataCache;
-
-import javax.persistence.*;
-import java.io.Serializable;
-
-@DataCache
-@Entity
-@Table(name = "APPLICATION_OUTPUT")
-@IdClass(ApplicationOutput_PK.class)
-public class ApplicationOutput implements Serializable {
-    @Id
-    @Column(name = "TASK_ID")
-    private String taskId;
-    @Id
-    @Column(name = "OUTPUT_KEY")
-    private String outputKey;
-    @Column(name = "DATA_TYPE")
-    private String dataType;
-    @Lob
-    @Column(name = "VALUE")
-    private char[] value;
-
-    @Column(name = "IS_REQUIRED")
-    private boolean isRequired;
-    @Column(name="REQUIRED_TO_COMMANDLINE")
-    private boolean addedToCmd;
-    @Column(name = "DATA_MOVEMENT")
-    private boolean dataMovement;
-    @Column(name = "DATA_NAME_LOCATION")
-    private String dataNameLocation;
-    @Column(name = "SEARCH_QUERY")
-    private String searchQuery;
-    @Column(name = "APP_ARGUMENT")
-    private String applicationArgument;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "TASK_ID")
-    private TaskDetail task;
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(String taskId) {
-        this.taskId = taskId;
-    }
-
-    public char[] getValue() {
-        return value;
-    }
-
-    public void setValue(char[] value) {
-        this.value = value;
-    }
-
-    public String getOutputKey() {
-        return outputKey;
-    }
-
-    public void setOutputKey(String outputKey) {
-        this.outputKey = outputKey;
-    }
-
-    public String getDataType() {
-        return dataType;
-    }
-
-    public void setDataType(String dataType) {
-        this.dataType = dataType;
-    }
-
-    public boolean isRequired() {
-        return isRequired;
-    }
-
-    public void setRequired(boolean isRequired) {
-        this.isRequired = isRequired;
-    }
-
-    public boolean isAddedToCmd() {
-        return addedToCmd;
-    }
-
-    public void setAddedToCmd(boolean addedToCmd) {
-        this.addedToCmd = addedToCmd;
-    }
-
-    public boolean isDataMovement() {
-        return dataMovement;
-    }
-
-    public void setDataMovement(boolean dataMovement) {
-        this.dataMovement = dataMovement;
-    }
-
-    public String getDataNameLocation() {
-        return dataNameLocation;
-    }
-
-    public void setDataNameLocation(String dataNameLocation) {
-        this.dataNameLocation = dataNameLocation;
-    }
-
-    public String getSearchQuery() {
-        return searchQuery;
-    }
-
-    public void setSearchQuery(String searchQuery) {
-        this.searchQuery = searchQuery;
-    }
-
-    public String getApplicationArgument() {
-        return applicationArgument;
-    }
-
-    public void setApplicationArgument(String applicationArgument) {
-        this.applicationArgument = applicationArgument;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationOutput_PK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationOutput_PK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationOutput_PK.java
deleted file mode 100644
index 1138eb0..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ApplicationOutput_PK.java
+++ /dev/null
@@ -1,64 +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.model;
-
-import java.io.Serializable;
-
-public class ApplicationOutput_PK implements Serializable {
-    private String taskId;
-    private String outputKey;
-
-    public ApplicationOutput_PK(String outputKey, String taskId) {
-        this.outputKey = outputKey;
-        this.taskId = taskId;
-    }
-
-    public ApplicationOutput_PK() {
-        ;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        return false;
-    }
-
-    @Override
-    public int hashCode() {
-        return 1;
-    }
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(String taskId) {
-        this.taskId = taskId;
-    }
-
-    public String getOutputKey() {
-        return outputKey;
-    }
-
-    public void setOutputKey(String outputKey) {
-        this.outputKey = outputKey;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Computational_Resource_Scheduling.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Computational_Resource_Scheduling.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Computational_Resource_Scheduling.java
deleted file mode 100644
index 5dc6fbe..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Computational_Resource_Scheduling.java
+++ /dev/null
@@ -1,175 +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.model;
-
-import org.apache.airavata.registry.core.experiment.catalog.model.TaskDetail;
-import org.apache.openjpa.persistence.DataCache;
-
-import javax.persistence.*;
-import java.io.Serializable;
-import java.sql.Timestamp;
-
-@DataCache
-@Entity
-@Table(name = "COMPUTATIONAL_RESOURCE_SCHEDULING")
-public class Computational_Resource_Scheduling implements Serializable {
-    @Id
-    @GeneratedValue
-    @Column(name = "RESOURCE_SCHEDULING_ID")
-    private int schedulingId;
-    @Column(name = "EXPERIMENT_ID")
-    private String expId;
-    @Column(name = "TASK_ID")
-    private String taskId;
-    @Column(name = "RESOURCE_HOST_ID")
-    private String resourceHostId;
-    @Column(name = "CPU_COUNT")
-    private int cpuCount;
-    @Column(name = "NODE_COUNT")
-    private int nodeCount;
-    @Column(name = "NO_OF_THREADS")
-    private int numberOfThreads;
-    @Column(name = "QUEUE_NAME")
-    private String queueName;
-    @Column(name = "WALLTIME_LIMIT")
-    private int wallTimeLimit;
-    @Column(name = "JOB_START_TIME")
-    private Timestamp jobStartTime;
-    @Column(name = "TOTAL_PHYSICAL_MEMORY")
-    private int totalPhysicalmemory;
-    @Column(name = "COMPUTATIONAL_PROJECT_ACCOUNT")
-    private String projectName;
-    @Column(name = "CHESSIS_NAME")
-    private String chessisName;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "EXPERIMENT_ID")
-    private Experiment experiment;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "TASK_ID")
-    private TaskDetail task;
-
-    public String getChessisName() {
-        return chessisName;
-    }
-
-    public void setChessisName(String chessisName) {
-        this.chessisName = chessisName;
-    }
-
-    public int getSchedulingId() {
-        return schedulingId;
-    }
-
-    public void setSchedulingId(int schedulingId) {
-        this.schedulingId = schedulingId;
-    }
-
-    public String getExpId() {
-        return expId;
-    }
-
-    public void setExpId(String expId) {
-        this.expId = expId;
-    }
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(String taskId) {
-        this.taskId = taskId;
-    }
-
-    public String getResourceHostId() {
-        return resourceHostId;
-    }
-
-    public void setResourceHostId(String resourceHostId) {
-        this.resourceHostId = resourceHostId;
-    }
-
-    public int getCpuCount() {
-        return cpuCount;
-    }
-
-    public void setCpuCount(int cpuCount) {
-        this.cpuCount = cpuCount;
-    }
-
-    public int getNodeCount() {
-        return nodeCount;
-    }
-
-    public void setNodeCount(int nodeCount) {
-        this.nodeCount = nodeCount;
-    }
-
-    public int getNumberOfThreads() {
-        return numberOfThreads;
-    }
-
-    public void setNumberOfThreads(int numberOfThreads) {
-        this.numberOfThreads = numberOfThreads;
-    }
-
-    public String getQueueName() {
-        return queueName;
-    }
-
-    public void setQueueName(String queueName) {
-        this.queueName = queueName;
-    }
-
-    public int getWallTimeLimit() {
-        return wallTimeLimit;
-    }
-
-    public void setWallTimeLimit(int wallTimeLimit) {
-        this.wallTimeLimit = wallTimeLimit;
-    }
-
-    public Timestamp getJobStartTime() {
-        return jobStartTime;
-    }
-
-    public void setJobStartTime(Timestamp jobStartTime) {
-        this.jobStartTime = jobStartTime;
-    }
-
-    public int getTotalPhysicalmemory() {
-        return totalPhysicalmemory;
-    }
-
-    public void setTotalPhysicalmemory(int totalPhysicalmemory) {
-        this.totalPhysicalmemory = totalPhysicalmemory;
-    }
-
-    public String getProjectName() {
-        return projectName;
-    }
-
-    public void setProjectName(String projectName) {
-        this.projectName = projectName;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Configuration.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Configuration.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Configuration.java
deleted file mode 100644
index 8265456..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Configuration.java
+++ /dev/null
@@ -1,80 +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.model;
-
-import org.apache.openjpa.persistence.DataCache;
-
-import javax.persistence.*;
-import java.io.Serializable;
-import java.sql.Timestamp;
-
-@DataCache
-@Entity
-@Table(name ="CONFIGURATION")
-@IdClass(Configuration_PK.class)
-public class Configuration implements Serializable {
-    @Id
-    @Column(name = "CONFIG_KEY")
-    private String config_key;
-
-    @Id
-    @Column(name = "CONFIG_VAL")
-    private String config_val;
-
-    @Id
-    @Column(name = "CATEGORY_ID")
-    private String category_id;
-
-    @Column(name = "EXPIRE_DATE")
-    private Timestamp expire_date;
-
-    public String getConfig_key() {
-        return config_key;
-    }
-
-    public String getConfig_val() {
-        return config_val;
-    }
-
-    public Timestamp getExpire_date() {
-        return expire_date;
-    }
-
-    public void setConfig_key(String config_key) {
-        this.config_key = config_key;
-    }
-
-    public void setConfig_val(String config_val) {
-        this.config_val = config_val;
-    }
-
-    public void setExpire_date(Timestamp expire_date) {
-        this.expire_date = expire_date;
-    }
-
-    public String getCategory_id() {
-        return category_id;
-    }
-
-    public void setCategory_id(String category_id) {
-        this.category_id = category_id;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Configuration_PK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Configuration_PK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Configuration_PK.java
deleted file mode 100644
index e469844..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Configuration_PK.java
+++ /dev/null
@@ -1,74 +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.model;
-
-import java.io.Serializable;
-
-public class Configuration_PK implements Serializable {
-    private String config_key;
-    private String config_val;
-    private String category_id;
-
-    public Configuration_PK(String config_key, String config_val, String category_id) {
-        this.config_key = config_key;
-        this.config_val = config_val;
-        this.category_id = category_id;
-    }
-
-    public Configuration_PK() {
-        ;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        return false;
-    }
-
-    @Override
-    public int hashCode() {
-        return 1;
-    }
-
-    public String getConfig_key() {
-        return config_key;
-    }
-
-    public void setConfig_key(String config_key) {
-        this.config_key = config_key;
-    }
-
-    public void setConfig_val(String config_val) {
-        this.config_val = config_val;
-    }
-
-    public String getConfig_val() {
-        return config_val;
-    }
-
-    public String getCategory_id() {
-        return category_id;
-    }
-
-    public void setCategory_id(String category_id) {
-        this.category_id = category_id;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/DataTransferDetail.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/DataTransferDetail.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/DataTransferDetail.java
deleted file mode 100644
index 4b88845..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/DataTransferDetail.java
+++ /dev/null
@@ -1,93 +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.model;
-
-import org.apache.airavata.registry.core.experiment.catalog.model.Status;
-import org.apache.airavata.registry.core.experiment.catalog.model.TaskDetail;
-import org.apache.openjpa.persistence.DataCache;
-
-import javax.persistence.*;
-import java.io.Serializable;
-import java.sql.Timestamp;
-
-@DataCache
-@Entity
-@Table(name = "DATA_TRANSFER_DETAIL")
-public class DataTransferDetail implements Serializable {
-    @Id
-    @Column(name = "TRANSFER_ID")
-    private String transferId;
-    @Column(name = "TASK_ID")
-    private String taskId;
-    @Column(name = "CREATION_TIME")
-    private Timestamp creationTime;
-    @Lob
-    @Column(name = "TRANSFER_DESC")
-    private char[] transferDesc;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "TASK_ID")
-    private TaskDetail task;
-
-    @OneToOne (fetch = FetchType.LAZY, mappedBy = "transferDetail")
-    private Status dataTransferStatus;
-
-    public String getTransferId() {
-        return transferId;
-    }
-
-    public void setTransferId(String transferId) {
-        this.transferId = transferId;
-    }
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(String taskId) {
-        this.taskId = taskId;
-    }
-
-    public Timestamp getCreationTime() {
-        return creationTime;
-    }
-
-    public void setCreationTime(Timestamp creationTime) {
-        this.creationTime = creationTime;
-    }
-
-    public char[] getTransferDesc() {
-        return transferDesc;
-    }
-
-    public void setTransferDesc(char[] transferDesc) {
-        this.transferDesc = transferDesc;
-    }
-
-    public Status getDataTransferStatus() {
-        return dataTransferStatus;
-    }
-
-    public void setDataTransferStatus(Status dataTransferStatus) {
-        this.dataTransferStatus = dataTransferStatus;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ErrorDetail.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ErrorDetail.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ErrorDetail.java
deleted file mode 100644
index 7285fec..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ErrorDetail.java
+++ /dev/null
@@ -1,179 +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.model;
-
-import org.apache.airavata.registry.core.experiment.catalog.model.JobDetail;
-import org.apache.airavata.registry.core.experiment.catalog.model.TaskDetail;
-import org.apache.airavata.registry.core.experiment.catalog.model.WorkflowNodeDetail;
-import org.apache.openjpa.persistence.DataCache;
-
-import javax.persistence.*;
-
-import java.io.Serializable;
-import java.sql.Timestamp;
-
-@DataCache
-@Entity
-@Table(name = "ERROR_DETAIL")
-public class ErrorDetail implements Serializable {
-    @Id
-    @GeneratedValue
-    @Column(name = "ERROR_ID")
-    private int errorID;
-    @Column(name = "EXPERIMENT_ID")
-    private String expId;
-    @Column(name = "TASK_ID")
-    private String taskId;
-    @Column(name = "NODE_INSTANCE_ID")
-    private String nodeId;
-    @Column(name = "CREATION_TIME")
-    private Timestamp creationTime;
-    @Lob
-    @Column(name = "ACTUAL_ERROR_MESSAGE")
-    private char[] actualErrorMsg;
-    
-    @Column(name = "USER_FRIEDNLY_ERROR_MSG")
-    private String userFriendlyErrorMsg;
-    @Column(name = "TRANSIENT_OR_PERSISTENT")
-    private boolean transientPersistent;
-    @Column(name = "ERROR_CATEGORY")
-    private String errorCategory;
-    @Column(name = "CORRECTIVE_ACTION")
-    private String correctiveAction;
-    @Column(name = "ACTIONABLE_GROUP")
-    private String actionableGroup;
-    @Column(name = "JOB_ID")
-    private String jobId;
-
-
-    @ManyToOne(fetch = FetchType.LAZY, cascade= CascadeType.MERGE)
-    @JoinColumn(name = "EXPERIMENT_ID")
-    private Experiment experiment;
-
-    @ManyToOne(fetch = FetchType.LAZY, cascade= CascadeType.MERGE)
-    @JoinColumn(name = "TASK_ID")
-    private TaskDetail task;
-
-    @ManyToOne(fetch = FetchType.LAZY, cascade= CascadeType.MERGE)
-    @JoinColumn(name = "NODE_INSTANCE_ID")
-    private WorkflowNodeDetail nodeDetail;
-
-    @ManyToOne(fetch = FetchType.LAZY, cascade= CascadeType.MERGE)
-    @JoinColumn(name = "JOB_ID")
-    private JobDetail jobDetail;
-
-    public int getErrorID() {
-        return errorID;
-    }
-
-    public void setErrorID(int errorID) {
-        this.errorID = errorID;
-    }
-
-    public String getExpId() {
-        return expId;
-    }
-
-    public void setExpId(String expId) {
-        this.expId = expId;
-    }
-
-    public String getTaskId() {
-        return taskId;
-    }
-
-    public void setTaskId(String taskId) {
-        this.taskId = taskId;
-    }
-
-    public String getNodeId() {
-        return nodeId;
-    }
-
-    public void setNodeId(String nodeId) {
-        this.nodeId = nodeId;
-    }
-
-    public Timestamp getCreationTime() {
-        return creationTime;
-    }
-
-    public void setCreationTime(Timestamp creationTime) {
-        this.creationTime = creationTime;
-    }
-
-    public char[] getActualErrorMsg() {
-		return actualErrorMsg;
-	}
-
-	public void setActualErrorMsg(char[] actualErrorMsg) {
-		this.actualErrorMsg = actualErrorMsg;
-	}
-
-	public String getUserFriendlyErrorMsg() {
-        return userFriendlyErrorMsg;
-    }
-
-    public void setUserFriendlyErrorMsg(String userFriendlyErrorMsg) {
-        this.userFriendlyErrorMsg = userFriendlyErrorMsg;
-    }
-
-    public boolean isTransientPersistent() {
-        return transientPersistent;
-    }
-
-    public void setTransientPersistent(boolean transientPersistent) {
-        this.transientPersistent = transientPersistent;
-    }
-
-    public String getErrorCategory() {
-        return errorCategory;
-    }
-
-    public void setErrorCategory(String errorCategory) {
-        this.errorCategory = errorCategory;
-    }
-
-    public String getActionableGroup() {
-        return actionableGroup;
-    }
-
-    public void setActionableGroup(String actionableGroup) {
-        this.actionableGroup = actionableGroup;
-    }
-
-    public String getCorrectiveAction() {
-        return correctiveAction;
-    }
-
-    public void setCorrectiveAction(String correctiveAction) {
-        this.correctiveAction = correctiveAction;
-    }
-
-    public String getJobId() {
-        return jobId;
-    }
-
-    public void setJobId(String jobId) {
-        this.jobId = jobId;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Experiment.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Experiment.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Experiment.java
index 4eecf5c..16bdad9 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Experiment.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Experiment.java
@@ -1,158 +1,99 @@
 /*
-*
-* 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.
-*
+ *
+ * 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.model;
 
-import org.apache.openjpa.persistence.DataCache;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.persistence.*;
-import java.io.Serializable;
 import java.sql.Timestamp;
 import java.util.Collection;
-import java.util.List;
 
 @Entity
 @Table(name = "EXPERIMENT")
-@DataCache
-public class Experiment implements Serializable {
-    @Id
-    @Column(name = "EXPERIMENT_ID")
-    private String expId;
-    @Column(name = "GATEWAY_ID")
-    private String gatewayId;
-    @Column(name = "EXECUTION_USER")
-    private String executionUser;
-    @Column(name = "PROJECT_ID")
-    private String projectID;
-    @Column(name = "CREATION_TIME")
-    private Timestamp creationTime;
-    @Column(name = "EXPERIMENT_NAME")
-    private String expName;
-    @Column(name = "EXPERIMENT_DESCRIPTION")
-    private String expDesc;
-    @Column(name = "APPLICATION_ID")
+public class Experiment {
+    private final static Logger logger = LoggerFactory.getLogger(Experiment.class);
+    private String experimentId;
+    private String projectId;
+    private String experimentType;
+    private String userName;
     private String applicationId;
-    @Column(name = "APPLICATION_VERSION")
-    private String appVersion;
-    @Column(name = "WORKFLOW_TEMPLATE_ID")
-    private String workflowTemplateId;
-    @Column(name = "WORKFLOW_TEMPLATE_VERSION")
-    private String workflowTemplateVersion;
-    @Column(name = "WORKFLOW_EXECUTION_ID")
-    private String workflowExecutionId;
-    @Column(name = "ALLOW_NOTIFICATION")
-    private boolean allowNotification;
-    @Column(name = "GATEWAY_EXECUTION_ID")
+    private String experimentName;
+    private Timestamp creationTime;
+    private String description;
+    private String executionId;
     private String gatewayExecutionId;
+    private Boolean enableEmailNotification;
+    private String emailAddresses;
+    private User user;
+    private Project projectByProjectId;
+    private Collection<ExperimentError> experimentErrors;
+    private Collection<ExperimentInput> experimentInputs;
+    private Collection<ExperimentOutput> experimentOutputs;
+    private ExperimentStatus experimentStatus;
+    private Collection<Process> processes;
+    private UserConfigurationData userConfigurationData;
 
-    @ManyToOne(fetch=FetchType.LAZY, cascade=CascadeType.MERGE)
-    @JoinColumn(name = "GATEWAY_ID")
-    private Gateway gateway;
-
-    @ManyToOne(fetch=FetchType.LAZY, cascade=CascadeType.MERGE)
-    @JoinColumn(name = "PROJECT_ID")
-    private Project project;
-
-    @ManyToOne(fetch=FetchType.LAZY, cascade=CascadeType.MERGE)
-    @JoinColumn(name = "EXECUTION_USER", referencedColumnName = "USER_NAME")
-    private Users user;
-
-    @OneToMany (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private List<Experiment_Output> experimentOutputs;
-
-    @OneToMany (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private List<Experiment_Input> experimentInputs;
-
-    @OneToOne (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private Computational_Resource_Scheduling resourceScheduling;
-
-    @OneToOne (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private ExperimentConfigData userConfigurationData;
-
-    @OneToMany (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private List<WorkflowNodeDetail> workflowNodeDetails;
-
-    @OneToMany (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private List<Status> stateChangeList;
-
-    @OneToMany (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private List<ErrorDetail> errorDetails;
-
-    @OneToOne (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private Status experimentStatus;
-
-    @OneToMany (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private List<Notification_Email> notificationEmails;
-
-    @OneToMany(fetch=FetchType.LAZY, mappedBy = "experiment")
-    private Collection<Status> statuses;
-
-    public String getExpId() {
-        return expId;
-    }
-
-    public void setExpId(String expId) {
-        this.expId = expId;
-    }
-
-    public String getGatewayId() {
-        return gatewayId;
-    }
-
-    public void setGatewayId(String gatewayId) {
-        this.gatewayId = gatewayId;
-    }
-
-    public String getExecutionUser() {
-        return executionUser;
+    @Id
+    @Column(name = "EXPERIMENT_ID")
+    public String getExperimentId() {
+        return experimentId;
     }
 
-    public void setExecutionUser(String executionUser) {
-        this.executionUser = executionUser;
+    public void setExperimentId(String experimentId) {
+        this.experimentId = experimentId;
     }
 
-    public Timestamp getCreationTime() {
-        return creationTime;
+    @Basic
+    @Column(name = "PROJECT_ID")
+    public String getProjectId() {
+        return projectId;
     }
 
-    public void setCreationTime(Timestamp creationTime) {
-        this.creationTime = creationTime;
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
     }
 
-    public String getExpName() {
-        return expName;
+    @Basic
+    @Column(name = "EXPERIMENT_TYPE")
+    public String getExperimentType() {
+        return experimentType;
     }
 
-    public void setExpName(String expName) {
-        this.expName = expName;
+    public void setExperimentType(String experimentType) {
+        this.experimentType = experimentType;
     }
 
-    public String getExpDesc() {
-        return expDesc;
+    @Basic
+    @Column(name = "USER_NAME")
+    public String getUserName() {
+        return userName;
     }
 
-    public void setExpDesc(String expDesc) {
-        this.expDesc = expDesc;
+    public void setUserName(String userName) {
+        this.userName = userName;
     }
 
+    @Basic
+    @Column(name = "APPLICATION_ID")
     public String getApplicationId() {
         return applicationId;
     }
@@ -161,139 +102,193 @@ public class Experiment implements Serializable {
         this.applicationId = applicationId;
     }
 
-    public String getAppVersion() {
-        return appVersion;
-    }
-
-    public void setAppVersion(String appVersion) {
-        this.appVersion = appVersion;
-    }
-
-    public String getWorkflowTemplateId() {
-        return workflowTemplateId;
+    @Basic
+    @Column(name = "EXPERIMENT_NAME")
+    public String getExperimentName() {
+        return experimentName;
     }
 
-    public void setWorkflowTemplateId(String workflowTemplateId) {
-        this.workflowTemplateId = workflowTemplateId;
+    public void setExperimentName(String experimentName) {
+        this.experimentName = experimentName;
     }
 
-    public String getWorkflowTemplateVersion() {
-        return workflowTemplateVersion;
+    @Basic
+    @Column(name = "CREATION_TIME")
+    public Timestamp getCreationTime() {
+        return creationTime;
     }
 
-    public void setWorkflowTemplateVersion(String workflowTemplateVersion) {
-        this.workflowTemplateVersion = workflowTemplateVersion;
+    public void setCreationTime(Timestamp creationTime) {
+        this.creationTime = creationTime;
     }
 
-    public String getWorkflowExecutionId() {
-        return workflowExecutionId;
+    @Basic
+    @Column(name = "DESCRIPTION")
+    public String getDescription() {
+        return description;
     }
 
-    public void setWorkflowExecutionId(String workflowExecutionId) {
-        this.workflowExecutionId = workflowExecutionId;
+    public void setDescription(String description) {
+        this.description = description;
     }
 
-    public boolean isAllowNotification() {
-        return allowNotification;
+    @Basic
+    @Column(name = "EXECUTION_ID")
+    public String getExecutionId() {
+        return executionId;
     }
 
-    public void setAllowNotification(boolean allowNotification) {
-        this.allowNotification = allowNotification;
+    public void setExecutionId(String executionId) {
+        this.executionId = executionId;
     }
 
+    @Basic
+    @Column(name = "GATEWAY_EXECUTION_ID")
     public String getGatewayExecutionId() {
         return gatewayExecutionId;
     }
 
-    public String getProjectID() {
-        return projectID;
+    public void setGatewayExecutionId(String gatewayExecutionId) {
+        this.gatewayExecutionId = gatewayExecutionId;
     }
 
-    public void setProjectID(String projectID) {
-        this.projectID = projectID;
+    @Basic
+    @Column(name = "ENABLE_EMAIL_NOTIFICATION")
+    public Boolean getEnableEmailNotification() {
+        return enableEmailNotification;
     }
 
-    public List<Experiment_Output> getExperimentOutputs() {
-        return experimentOutputs;
+    public void setEnableEmailNotification(Boolean enableEmailNotification) {
+        this.enableEmailNotification = enableEmailNotification;
     }
 
-    public void setExperimentOutputs(List<Experiment_Output> experimentOutputs) {
-        this.experimentOutputs = experimentOutputs;
+    @Basic
+    @Column(name = "EMAIL_ADDRESSES")
+    public String getEmailAddresses() {
+        return emailAddresses;
     }
 
-    public List<Experiment_Input> getExperimentInputs() {
-        return experimentInputs;
+    public void setEmailAddresses(String emailAddresses) {
+        this.emailAddresses = emailAddresses;
     }
 
-    public void setExperimentInputs(List<Experiment_Input> experimentInputs) {
-        this.experimentInputs = experimentInputs;
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        Experiment that = (Experiment) o;
+
+        if (applicationId != null ? !applicationId.equals(that.applicationId) : that.applicationId != null)
+            return false;
+        if (creationTime != null ? !creationTime.equals(that.creationTime) : that.creationTime != null) return false;
+        if (description != null ? !description.equals(that.description) : that.description != null) return false;
+        if (emailAddresses != null ? !emailAddresses.equals(that.emailAddresses) : that.emailAddresses != null)
+            return false;
+        if (enableEmailNotification != null ? !enableEmailNotification.equals(that.enableEmailNotification) : that.enableEmailNotification != null)
+            return false;
+        if (executionId != null ? !executionId.equals(that.executionId) : that.executionId != null) return false;
+        if (experimentId != null ? !experimentId.equals(that.experimentId) : that.experimentId != null) return false;
+        if (experimentName != null ? !experimentName.equals(that.experimentName) : that.experimentName != null)
+            return false;
+        if (experimentType != null ? !experimentType.equals(that.experimentType) : that.experimentType != null)
+            return false;
+        if (gatewayExecutionId != null ? !gatewayExecutionId.equals(that.gatewayExecutionId) : that.gatewayExecutionId != null)
+            return false;
+        if (projectId != null ? !projectId.equals(that.projectId) : that.projectId != null) return false;
+        if (userName != null ? !userName.equals(that.userName) : that.userName != null) return false;
+
+        return true;
     }
 
-    public Computational_Resource_Scheduling getResourceScheduling() {
-        return resourceScheduling;
+    @Override
+    public int hashCode() {
+        int result = experimentId != null ? experimentId.hashCode() : 0;
+        result = 31 * result + (projectId != null ? projectId.hashCode() : 0);
+        result = 31 * result + (experimentType != null ? experimentType.hashCode() : 0);
+        result = 31 * result + (userName != null ? userName.hashCode() : 0);
+        result = 31 * result + (applicationId != null ? applicationId.hashCode() : 0);
+        result = 31 * result + (experimentName != null ? experimentName.hashCode() : 0);
+        result = 31 * result + (creationTime != null ? creationTime.hashCode() : 0);
+        result = 31 * result + (description != null ? description.hashCode() : 0);
+        result = 31 * result + (executionId != null ? executionId.hashCode() : 0);
+        result = 31 * result + (gatewayExecutionId != null ? gatewayExecutionId.hashCode() : 0);
+        result = 31 * result + (enableEmailNotification != null ? enableEmailNotification.hashCode() : 0);
+        result = 31 * result + (emailAddresses != null ? emailAddresses.hashCode() : 0);
+        return result;
     }
 
-    public void setResourceScheduling(Computational_Resource_Scheduling resourceScheduling) {
-        this.resourceScheduling = resourceScheduling;
+    @ManyToOne
+    @JoinColumn(name = "USER_NAME", referencedColumnName = "USER_NAME", nullable = false)
+    public User getUser() {
+        return user;
     }
 
-    public List<ErrorDetail> getErrorDetails() {
-        return errorDetails;
+    public void setUser(User userByUserName) {
+        this.user = userByUserName;
     }
 
-    public ExperimentConfigData getUserConfigurationData() {
-        return userConfigurationData;
+    @ManyToOne
+    @JoinColumn(name = "PROJECT_ID", referencedColumnName = "PROJECT_ID", nullable = false)
+    public Project getProjectByProjectId() {
+        return projectByProjectId;
     }
 
-    public void setUserConfigurationData(ExperimentConfigData userConfigurationData) {
-        this.userConfigurationData = userConfigurationData;
+    public void setProjectByProjectId(Project projectByProjectId) {
+        this.projectByProjectId = projectByProjectId;
     }
 
-    public List<WorkflowNodeDetail> getWorkflowNodeDetails() {
-        return workflowNodeDetails;
+    @OneToMany(mappedBy = "experiment")
+    public Collection<ExperimentError> getExperimentErrors() {
+        return experimentErrors;
     }
 
-    public void setWorkflowNodeDetails(List<WorkflowNodeDetail> workflowNodeDetails) {
-        this.workflowNodeDetails = workflowNodeDetails;
+    public void setExperimentErrors(Collection<ExperimentError> experimentErrorsByExperimentId) {
+        this.experimentErrors = experimentErrorsByExperimentId;
     }
 
-    public List<Status> getStateChangeList() {
-        return stateChangeList;
+    @OneToMany(mappedBy = "experiment")
+    public Collection<ExperimentInput> getExperimentInputs() {
+        return experimentInputs;
     }
 
-    public void setStateChangeList(List<Status> stateChangeList) {
-        this.stateChangeList = stateChangeList;
+    public void setExperimentInputs(Collection<ExperimentInput> experimentInputsByExperimentId) {
+        this.experimentInputs = experimentInputsByExperimentId;
     }
 
-    public void setErrorDetails(List<ErrorDetail> errorDetails) {
-        this.errorDetails = errorDetails;
+    @OneToMany(mappedBy = "experiment")
+    public Collection<ExperimentOutput> getExperimentOutputs() {
+        return experimentOutputs;
     }
 
-    public Status getExperimentStatus() {
-        return experimentStatus;
+    public void setExperimentOutputs(Collection<ExperimentOutput> experimentOutputsByExperimentId) {
+        this.experimentOutputs = experimentOutputsByExperimentId;
     }
 
-    public void setExperimentStatus(Status experimentStatus) {
-        this.experimentStatus = experimentStatus;
+    @OneToOne(mappedBy = "experiment")
+    public ExperimentStatus getExperimentStatus() {
+        return experimentStatus;
     }
 
-    public List<Notification_Email> getNotificationEmails() {
-        return notificationEmails;
+    public void setExperimentStatus(ExperimentStatus experimentStatusesByExperimentId) {
+        this.experimentStatus = experimentStatusesByExperimentId;
     }
 
-    public void setNotificationEmails(List<Notification_Email> notificationEmails) {
-        this.notificationEmails = notificationEmails;
+    @OneToMany(mappedBy = "experiment")
+    public Collection<Process> getProcesses() {
+        return processes;
     }
 
-    public void setGatewayExecutionId(String gatewayExecutionId) {
-        this.gatewayExecutionId = gatewayExecutionId;
+    public void setProcesses(Collection<Process> processesesByExperimentId) {
+        this.processes = processesesByExperimentId;
     }
 
-    public Collection<Status> getStatuses() {
-        return statuses;
+    @OneToOne(mappedBy = "experiment")
+    public UserConfigurationData getUserConfigurationData() {
+        return userConfigurationData;
     }
 
-    public void setStatuses(Collection<Status> statuses) {
-        this.statuses = statuses;
+    public void setUserConfigurationData(UserConfigurationData userConfigurationDataByExperimentId) {
+        this.userConfigurationData = userConfigurationDataByExperimentId;
     }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/f366c384/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ExperimentConfigData.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ExperimentConfigData.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ExperimentConfigData.java
deleted file mode 100644
index 8952196..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ExperimentConfigData.java
+++ /dev/null
@@ -1,142 +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.model;
-
-import org.apache.openjpa.persistence.DataCache;
-
-import javax.persistence.*;
-import java.io.Serializable;
-
-@DataCache
-@Entity
-@Table(name = "CONFIG_DATA")
-public class ExperimentConfigData implements Serializable {
-    @Id
-    @Column(name = "EXPERIMENT_ID")
-    private String expId;
-    @Column(name = "AIRAVATA_AUTO_SCHEDULE")
-    private boolean airavataAutoSchedule;
-    @Column(name = "OVERRIDE_MANUAL_SCHEDULE_PARAMS")
-    private boolean overrideManualParams;
-    @Column(name = "SHARE_EXPERIMENT")
-    private boolean shareExp;
-    @Column(name = "USER_DN")
-    private String userDn;
-    @Column(name = "GENERATE_CERT")
-    private boolean generateCert;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "EXPERIMENT_ID")
-    private Experiment experiment;
-
-    @OneToOne (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private Computational_Resource_Scheduling resourceScheduling;
-
-    @OneToOne (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private AdvancedInputDataHandling inputDataHandling;
-
-    @OneToOne (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private AdvancedOutputDataHandling outputDataHandling;
-
-    @OneToOne (fetch = FetchType.LAZY, mappedBy = "experiment")
-    private QosParam qosParam;
-
-    public String getExpId() {
-        return expId;
-    }
-
-    public void setExpId(String expId) {
-        this.expId = expId;
-    }
-
-    public boolean isAiravataAutoSchedule() {
-        return airavataAutoSchedule;
-    }
-
-    public void setAiravataAutoSchedule(boolean airavataAutoSchedule) {
-        this.airavataAutoSchedule = airavataAutoSchedule;
-    }
-
-    public boolean isOverrideManualParams() {
-        return overrideManualParams;
-    }
-
-    public void setOverrideManualParams(boolean overrideManualParams) {
-        this.overrideManualParams = overrideManualParams;
-    }
-
-    public boolean isShareExp() {
-        return shareExp;
-    }
-
-    public void setShareExp(boolean shareExp) {
-        this.shareExp = shareExp;
-    }
-
-    public String getUserDn() {
-        return userDn;
-    }
-
-    public void setUserDn(String userDn) {
-        this.userDn = userDn;
-    }
-
-    public boolean isGenerateCert() {
-        return generateCert;
-    }
-
-    public void setGenerateCert(boolean generateCert) {
-        this.generateCert = generateCert;
-    }
-
-    public AdvancedInputDataHandling getInputDataHandling() {
-        return inputDataHandling;
-    }
-
-    public void setInputDataHandling(AdvancedInputDataHandling inputDataHandling) {
-        this.inputDataHandling = inputDataHandling;
-    }
-
-    public AdvancedOutputDataHandling getOutputDataHandling() {
-        return outputDataHandling;
-    }
-
-    public void setOutputDataHandling(AdvancedOutputDataHandling outputDataHandling) {
-        this.outputDataHandling = outputDataHandling;
-    }
-
-    public QosParam getQosParam() {
-        return qosParam;
-    }
-
-    public void setQosParam(QosParam qosParam) {
-        this.qosParam = qosParam;
-    }
-
-    public Computational_Resource_Scheduling getResourceScheduling() {
-        return resourceScheduling;
-    }
-
-    public void setResourceScheduling(Computational_Resource_Scheduling resourceScheduling) {
-        this.resourceScheduling = resourceScheduling;
-    }
-}