airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From chath...@apache.org
Subject [6/6] git commit: Adding data models for execution - AIRAVATA-994 - Integration test failures can occur
Date Tue, 04 Feb 2014 19:52:21 GMT
Adding data models for execution - AIRAVATA-994 - Integration test failures can occur


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

Branch: refs/heads/master
Commit: 10b41d864bd3e9fe57802216bf2d5b11a9978539
Parents: 0f06c3c
Author: chathuri <chathuri@apache.org>
Authored: Tue Feb 4 14:52:04 2014 -0500
Committer: chathuri <chathuri@apache.org>
Committed: Tue Feb 4 14:52:04 2014 -0500

----------------------------------------------------------------------
 .../core/AbstractOrchestratorTest.java          |   2 +-
 .../orchestrator/core/util/Initialize.java      |   2 +-
 .../test/resources/airavata-registry-derby.sql  | 317 +++++++++
 .../src/test/resources/data-derby.sql           | 282 --------
 modules/registry/airavata-jpa-registry/pom.xml  |  91 +++
 .../persistance/registry/jpa/ResourceType.java  |   6 +-
 .../persistance/registry/jpa/ResourceUtils.java |   2 +-
 .../registry/jpa/impl/AiravataJPARegistry.java  | 125 ++--
 .../jpa/model/Application_Descriptor.java       |  10 +-
 .../registry/jpa/model/Configuration.java       |  44 +-
 .../registry/jpa/model/Execution_Error.java     |  42 +-
 .../registry/jpa/model/Experiment.java          | 178 ++---
 .../model/Experiment_Configuration_Data.java    | 225 ++++++
 .../registry/jpa/model/Experiment_Data.java     | 129 ++--
 .../registry/jpa/model/Experiment_Input.java    |  76 ++
 .../registry/jpa/model/Experiment_Input_PK.java |  61 ++
 .../registry/jpa/model/Experiment_Metadata.java | 127 +++-
 .../registry/jpa/model/Experiment_Output.java   |  75 ++
 .../jpa/model/Experiment_Output_PK.java         |  61 ++
 .../registry/jpa/model/Experiment_Summary.java  |  64 ++
 .../registry/jpa/model/GFac_Job_Data.java       |  27 +-
 .../registry/jpa/model/GFac_Job_Status.java     |   6 +-
 .../persistance/registry/jpa/model/Gateway.java |   5 +
 .../registry/jpa/model/Gateway_Worker.java      |   7 +-
 .../registry/jpa/model/Gram_Data.java           |  10 +-
 .../registry/jpa/model/Host_Descriptor.java     |   8 +-
 .../registry/jpa/model/Node_Data.java           |  18 +-
 .../registry/jpa/model/Orchestrator.java        |  25 +-
 .../persistance/registry/jpa/model/Project.java |   6 +-
 .../registry/jpa/model/Published_Workflow.java  |  11 +-
 .../registry/jpa/model/Service_Descriptor.java  |   8 +-
 .../registry/jpa/model/User_Workflow.java       |  10 +-
 .../persistance/registry/jpa/model/Users.java   |  10 +-
 .../registry/jpa/model/Workflow_Data.java       |  26 +-
 .../jpa/resources/AbstractResource.java         |  69 +-
 .../ApplicationDescriptorResource.java          |   2 +-
 .../jpa/resources/ExecutionErrorResource.java   |  18 +-
 .../resources/ExperimentConfigDataResource.java | 284 ++++++++
 .../jpa/resources/ExperimentDataResource.java   | 713 ++++++++++---------
 .../jpa/resources/ExperimentDataRetriever.java  | 134 ++--
 .../jpa/resources/ExperimentInputResource.java  | 111 +++
 .../resources/ExperimentMetadataResource.java   | 432 ++++++++++-
 .../jpa/resources/ExperimentOutputResource.java | 111 +++
 .../jpa/resources/ExperimentResource.java       | 571 +++++++--------
 .../resources/ExperimentSummaryResource.java    | 110 +++
 .../jpa/resources/GFacJobDataResource.java      |  26 +-
 .../jpa/resources/GFacJobStatusResource.java    |   1 -
 .../registry/jpa/resources/GatewayResource.java |  46 +-
 .../jpa/resources/HostDescriptorResource.java   |   3 -
 .../registry/jpa/resources/ProjectResource.java |  61 +-
 .../registry/jpa/resources/Utils.java           | 168 +++--
 .../registry/jpa/resources/WorkerResource.java  |  51 +-
 .../jpa/resources/WorkflowDataResource.java     |   2 +-
 .../src/main/resources/META-INF/persistence.xml |   7 +-
 .../main/resources/airavata-registry-derby.sql  | 317 +++++++++
 .../main/resources/airavata-registry-mysql.sql  | 319 +++++++++
 .../src/main/resources/data-derby.sql           | 282 --------
 .../src/main/resources/data-mysql.sql           | 279 --------
 .../registry/jpa/AbstractResourceTest.java      |  11 +-
 .../jpa/ExecutionErrorResourceTest.java         |  32 +-
 .../jpa/ExperimentDataResourceTest.java         | 214 +++---
 .../jpa/ExperimentMetadataResourceTest.java     |  42 +-
 .../registry/jpa/ExperimentResourceTest.java    | 162 ++---
 .../registry/jpa/GFacJobDataResourceTest.java   |  16 +-
 .../registry/jpa/GFacJobStatusResourceTest.java |  13 +-
 .../registry/jpa/GatewayResourceTest.java       |  18 +-
 .../registry/jpa/GramDataResourceTest.java      |  12 +-
 .../registry/jpa/NodeDataResourceTest.java      |  12 +-
 .../jpa/OrchestratorDataResourceTest.java       |  32 +-
 .../registry/jpa/PersistentDataTestSuite.java   |  49 --
 .../registry/jpa/ProjectResourceTest.java       |  38 +-
 .../registry/jpa/WorkerResourceTest.java        |  56 +-
 .../registry/jpa/WorkflowDataResourceTest.java  |  16 +-
 .../registry/jpa/util/Initialize.java           |   2 +-
 .../test/resources/airavata-registry-derby.sql  | 317 +++++++++
 .../src/test/resources/data-derby.sql           | 292 --------
 .../api/test/AiravataRegistryAPITest.java       |  76 +-
 .../registry/api/test/util/Initialize.java      |   2 +-
 .../test/resources/airavata-registry-derby.sql  | 317 +++++++++
 .../src/test/resources/data-derby.sql           | 283 --------
 pom.xml                                         |   2 +-
 81 files changed, 5143 insertions(+), 3084 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/AbstractOrchestratorTest.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/AbstractOrchestratorTest.java b/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/AbstractOrchestratorTest.java
index eba66b7..87ad701 100644
--- a/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/AbstractOrchestratorTest.java
+++ b/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/AbstractOrchestratorTest.java
@@ -35,7 +35,7 @@ public class AbstractOrchestratorTest {
     private Initialize initialize;
 
     public void setUp() throws Exception {
-        initialize = new Initialize("data-derby.sql");
+        initialize = new Initialize("airavata-registry-derby.sql");
         initialize.initializeDB();
         gatewayResource = (GatewayResource) ResourceUtils.getGateway("default");
         workerResource = (WorkerResource) ResourceUtils.getWorker(gatewayResource.getGatewayName(), "admin");

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/util/Initialize.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/util/Initialize.java b/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/util/Initialize.java
index f402c69..e4f7cd5 100644
--- a/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/util/Initialize.java
+++ b/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/util/Initialize.java
@@ -42,7 +42,7 @@ import java.util.StringTokenizer;
 public class Initialize {
     private static final Logger logger = LoggerFactory.getLogger(Initialize.class);
     public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer";
-    public  String scriptName = "data-derby.sql";
+    public  String scriptName = "airavata-registry-derby.sql";
     private NetworkServerControl server;
     private static final String delimiter = ";";
     public static final String PERSISTANT_DATA = "Configuration";

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/orchestrator/orchestrator-core/src/test/resources/airavata-registry-derby.sql
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/test/resources/airavata-registry-derby.sql b/modules/orchestrator/orchestrator-core/src/test/resources/airavata-registry-derby.sql
new file mode 100644
index 0000000..c5a9065
--- /dev/null
+++ b/modules/orchestrator/orchestrator-core/src/test/resources/airavata-registry-derby.sql
@@ -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.
+ *
+ */
+CREATE TABLE GATEWAY
+(
+        GATEWAY_NAME VARCHAR(255),
+	      OWNER VARCHAR(255),
+        PRIMARY KEY (GATEWAY_NAME)
+);
+
+CREATE TABLE CONFIGURATION
+(
+        CONFIG_KEY VARCHAR(255),
+        CONFIG_VAL VARCHAR(255),
+        EXPIRE_DATE TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        CATEGORY_ID VARCHAR (255),
+        PRIMARY KEY(CONFIG_KEY, CONFIG_VAL, CATEGORY_ID)
+);
+
+INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL, EXPIRE_DATE, CATEGORY_ID) VALUES('registry.version', '0.12', CURRENT_TIMESTAMP ,'SYSTEM');
+
+CREATE TABLE USERS
+(
+        USER_NAME VARCHAR(255),
+        PASSWORD VARCHAR(255),
+        PRIMARY KEY(USER_NAME)
+);
+
+CREATE TABLE GATEWAY_WORKER
+(
+        GATEWAY_NAME VARCHAR(255),
+        USER_NAME VARCHAR(255),
+        PRIMARY KEY (GATEWAY_NAME, USER_NAME),
+        FOREIGN KEY (GATEWAY_NAME) REFERENCES GATEWAY(GATEWAY_NAME) ON DELETE CASCADE,
+        FOREIGN KEY (USER_NAME) REFERENCES USERS(USER_NAME) ON DELETE CASCADE
+);
+
+CREATE TABLE PROJECT
+(
+         GATEWAY_NAME VARCHAR(255),
+         USER_NAME VARCHAR(255),
+         PROJECT_NAME VARCHAR(255),
+         PRIMARY KEY (PROJECT_NAME),
+         FOREIGN KEY (GATEWAY_NAME) REFERENCES GATEWAY(GATEWAY_NAME) ON DELETE CASCADE,
+         FOREIGN KEY (USER_NAME) REFERENCES USERS(USER_NAME) ON DELETE CASCADE
+);
+
+CREATE TABLE PUBLISHED_WORKFLOW
+(
+         GATEWAY_NAME VARCHAR(255),
+         CREATED_USER VARCHAR(255),
+         PUBLISH_WORKFLOW_NAME VARCHAR(255),
+         VERSION VARCHAR(255),
+         PUBLISHED_DATE TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+         PATH VARCHAR (255),
+         WORKFLOW_CONTENT BLOB,
+         PRIMARY KEY(GATEWAY_NAME, PUBLISH_WORKFLOW_NAME),
+         FOREIGN KEY (GATEWAY_NAME) REFERENCES GATEWAY(GATEWAY_NAME) ON DELETE CASCADE,
+         FOREIGN KEY (CREATED_USER) REFERENCES USERS(USER_NAME) ON DELETE CASCADE
+);
+
+CREATE TABLE USER_WORKFLOW
+(
+         GATEWAY_NAME VARCHAR(255),
+         OWNER VARCHAR(255),
+         TEMPLATE_NAME VARCHAR(255),
+         LAST_UPDATED_TIME TIMESTAMP DEFAULT CURRENT TIMESTAMP,
+         PATH VARCHAR (255),
+         WORKFLOW_GRAPH BLOB,
+         PRIMARY KEY(GATEWAY_NAME, OWNER, TEMPLATE_NAME),
+         FOREIGN KEY (GATEWAY_NAME) REFERENCES GATEWAY(GATEWAY_NAME) ON DELETE CASCADE,
+         FOREIGN KEY (OWNER) REFERENCES USERS(USER_NAME) ON DELETE CASCADE
+);
+
+CREATE TABLE HOST_DESCRIPTOR
+(
+         GATEWAY_NAME VARCHAR(255),
+         UPDATED_USER VARCHAR(255),
+         HOST_DESCRIPTOR_ID VARCHAR(255),
+         HOST_DESCRIPTOR_XML BLOB,
+         PRIMARY KEY(GATEWAY_NAME, HOST_DESCRIPTOR_ID),
+         FOREIGN KEY (GATEWAY_NAME) REFERENCES GATEWAY(GATEWAY_NAME) ON DELETE CASCADE,
+         FOREIGN KEY (UPDATED_USER) REFERENCES USERS(USER_NAME) ON DELETE CASCADE
+);
+
+CREATE TABLE SERVICE_DESCRIPTOR
+(
+         GATEWAY_NAME VARCHAR(255),
+         UPDATED_USER VARCHAR(255),
+         SERVICE_DESCRIPTOR_ID VARCHAR(255),
+         SERVICE_DESCRIPTOR_XML BLOB,
+         PRIMARY KEY(GATEWAY_NAME,SERVICE_DESCRIPTOR_ID),
+         FOREIGN KEY (GATEWAY_NAME) REFERENCES GATEWAY(GATEWAY_NAME) ON DELETE CASCADE,
+         FOREIGN KEY (UPDATED_USER) REFERENCES USERS(USER_NAME) ON DELETE CASCADE
+);
+
+CREATE TABLE APPLICATION_DESCRIPTOR
+(
+         GATEWAY_NAME VARCHAR(255),
+         UPDATED_USER VARCHAR(255),
+         APPLICATION_DESCRIPTOR_ID VARCHAR(255),
+         HOST_DESCRIPTOR_ID VARCHAR(255),
+         SERVICE_DESCRIPTOR_ID VARCHAR(255),
+         APPLICATION_DESCRIPTOR_XML BLOB,
+         PRIMARY KEY(GATEWAY_NAME,APPLICATION_DESCRIPTOR_ID),
+         FOREIGN KEY (GATEWAY_NAME) REFERENCES GATEWAY(GATEWAY_NAME) ON DELETE CASCADE,
+         FOREIGN KEY (UPDATED_USER) REFERENCES USERS(USER_NAME) ON DELETE CASCADE
+);
+
+CREATE TABLE EXPERIMENT_METADATA
+(
+          EXPERIMENT_ID VARCHAR(255) NOT NULL,
+          EXPERIMENT_NAME VARCHAR(255) NOT NULL,
+          DESCRIPTION VARCHAR(255),
+          SUBMITTED_DATE TIMESTAMP DEFAULT CURRENT TIMESTAMP,
+          EXECUTION_USER VARCHAR(255),
+          GATEWAY_NAME VARCHAR(255),
+          PROJECT_NAME VARCHAR(255),
+          SHARE_EXPERIMENT SMALLINT,
+          PRIMARY KEY (EXPERIMENT_ID),
+          FOREIGN KEY (GATEWAY_NAME) REFERENCES GATEWAY(GATEWAY_NAME) ON DELETE CASCADE,
+          FOREIGN KEY (PROJECT_NAME) REFERENCES PROJECT(PROJECT_NAME) ON DELETE CASCADE
+);
+
+CREATE TABLE EXPERIMENT_SUMMARY
+(
+          EXPERIMENT_ID VARCHAR(255) NOT NULL,
+          STATUS VARCHAR(255),
+          LAST_UPDATED_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+          PRIMARY KEY(EXPERIMENT_ID),
+          FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT_METADATA(EXPERIMENT_ID) ON DELETE CASCADE
+);
+
+CREATE TABLE EXPERIMENT_CONFIGURATION_DATA
+(
+          EXPERIMENT_ID VARCHAR(255) NOT NULL,
+          RESOURCE_HOST_ID VARCHAR (255),
+          TOTAL_CPU_COUNT INTEGER,
+          NODE_COUNT INTEGER,
+          NUMBER_OF_THREADS INTEGER,
+          QUEUE_NAME VARCHAR (255),
+          WALLTIME_LIMIT INTEGER,
+          JOB_START_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+          TOTAL_PHYSICAL_MEMORY INTEGER,
+          COMPUTATIONAL_PROJECT_ACCOUNT VARCHAR(255),
+          AIRAVATA_AUTO_SCHEDULE SMALLINT,
+          OVERRIDE_MANUAL_SCHEDULE_PARAMS SMALLINT,
+          WORKING_DIR VARCHAR(255),
+          STAGE_INPUT_FILES_TO_WORKING_DIR SMALLINT,
+          OUTPUT_DATA_DIR VARCHAR(255),
+          DATA_REG_URL VARCHAR (255),
+          PERSIST_OUTPUT_DATA SMALLINT,
+          CLEAN_AFTER_JOB SMALLINT,
+          EXPERIMENT_CONFIG_DATA BLOB,
+          PRIMARY KEY (EXPERIMENT_ID),
+          FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT_METADATA(EXPERIMENT_ID) ON DELETE CASCADE
+);
+
+CREATE TABLE EXPERIMENT_INPUT
+(
+        EXPERIMENT_ID VARCHAR(255) NOT NULL,
+        EX_KEY VARCHAR (255) NOT NULL,
+        VALUE VARCHAR (255),
+        PRIMARY KEY (EXPERIMENT_ID, EX_KEY),
+        FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT_METADATA(EXPERIMENT_ID) ON DELETE CASCADE
+);
+
+CREATE TABLE EXPERIMENT_OUTPUT
+(
+        EXPERIMENT_ID VARCHAR(255) NOT NULL,
+        EX_KEY VARCHAR (255) NOT NULL,
+        VALUE VARCHAR (255),
+        PRIMARY KEY (EXPERIMENT_ID, EX_KEY),
+        FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT_METADATA(EXPERIMENT_ID) ON DELETE CASCADE
+);
+
+CREATE TABLE WORKFLOW_DATA
+(
+       EXPERIMENT_ID VARCHAR(255),
+       WORKFLOW_INSTANCE_ID VARCHAR(255),
+       TEMPLATE_NAME VARCHAR(255),
+       STATUS VARCHAR(255),
+       START_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+       LAST_UPDATE_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+       PRIMARY KEY(WORKFLOW_INSTANCE_ID),
+       FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT_METADATA(EXPERIMENT_ID) ON DELETE CASCADE
+);
+
+CREATE TABLE NODE_DATA
+(
+       WORKFLOW_INSTANCE_ID VARCHAR(255),
+       NODE_ID VARCHAR(255),
+       NODE_TYPE VARCHAR(255),
+       INPUTS BLOB,
+       OUTPUTS BLOB,
+       STATUS VARCHAR(255),
+       START_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+       LAST_UPDATE_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+       EXECUTION_INDEX INTEGER NOT NULL,
+       PRIMARY KEY(WORKFLOW_INSTANCE_ID, NODE_ID, EXECUTION_INDEX),
+       FOREIGN KEY (WORKFLOW_INSTANCE_ID) REFERENCES WORKFLOW_DATA(WORKFLOW_INSTANCE_ID) ON DELETE CASCADE
+);
+
+-- need to remove this in future
+CREATE TABLE GRAM_DATA
+(
+       WORKFLOW_INSTANCE_ID VARCHAR(255),
+       NODE_ID VARCHAR(255),
+       RSL BLOB,
+       INVOKED_HOST VARCHAR(255),
+       LOCAL_JOB_ID VARCHAR(255),
+       PRIMARY KEY(WORKFLOW_INSTANCE_ID, NODE_ID),
+       FOREIGN KEY (WORKFLOW_INSTANCE_ID) REFERENCES WORKFLOW_DATA(WORKFLOW_INSTANCE_ID) ON DELETE CASCADE
+);
+
+CREATE TABLE GFAC_JOB_DATA
+(
+       EXPERIMENT_ID VARCHAR(255),
+       WORKFLOW_INSTANCE_ID VARCHAR(255),
+       NODE_ID VARCHAR(255),
+       APPLICATION_DESC_ID VARCHAR(255),
+       HOST_DESC_ID VARCHAR(255),
+       SERVICE_DESC_ID VARCHAR(255),
+       JOB_DATA CLOB,
+       LOCAL_JOB_ID VARCHAR(255) NOT NULL,
+       SUBMITTED_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+       STATUS_UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+       STATUS VARCHAR(255),
+       METADATA CLOB,
+       PRIMARY KEY(LOCAL_JOB_ID),
+       FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT_METADATA(EXPERIMENT_ID),
+       FOREIGN KEY (WORKFLOW_INSTANCE_ID) REFERENCES WORKFLOW_DATA(WORKFLOW_INSTANCE_ID)
+);
+
+CREATE TABLE GFAC_JOB_STATUS
+(
+       LOCAL_JOB_ID VARCHAR(255) NOT NULL,
+       STATUS_UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+       STATUS VARCHAR(255),
+       FOREIGN KEY (LOCAL_JOB_ID) REFERENCES GFAC_JOB_DATA(LOCAL_JOB_ID)
+);
+
+
+CREATE TABLE COMMUNITY_USER
+(
+        GATEWAY_NAME VARCHAR(256) NOT NULL,
+        COMMUNITY_USER_NAME VARCHAR(256) NOT NULL,
+        TOKEN_ID VARCHAR(256) NOT NULL,
+        COMMUNITY_USER_EMAIL VARCHAR(256) NOT NULL,
+        PRIMARY KEY (GATEWAY_NAME, COMMUNITY_USER_NAME, TOKEN_ID)
+);
+
+
+CREATE TABLE CREDENTIALS
+(
+        GATEWAY_ID VARCHAR(256) NOT NULL,
+        TOKEN_ID VARCHAR(256) NOT NULL,
+        CREDENTIAL BLOB NOT NULL,
+        PORTAL_USER_ID VARCHAR(256) NOT NULL,
+        TIME_PERSISTED TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        PRIMARY KEY (GATEWAY_ID, TOKEN_ID)
+);
+
+CREATE TABLE EXECUTION_ERROR
+(
+       ERROR_ID INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+       EXPERIMENT_ID VARCHAR(255),
+       WORKFLOW_INSTANCE_ID VARCHAR(255),
+       NODE_ID VARCHAR(255),
+       GFAC_JOB_ID VARCHAR(255),
+       SOURCE_TYPE VARCHAR(255),
+       ERROR_DATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+       ERROR_MSG CLOB,
+       ERROR_DESC CLOB,
+       ERROR_CODE VARCHAR(255),
+       ERROR_REPORTER VARCHAR(255),
+       ERROR_LOCATION VARCHAR(255),
+       ACTION_TAKEN VARCHAR(255),
+       ERROR_REFERENCE INTEGER,
+       PRIMARY KEY(ERROR_ID),
+       FOREIGN KEY (WORKFLOW_INSTANCE_ID) REFERENCES WORKFLOW_DATA(WORKFLOW_INSTANCE_ID) ON DELETE CASCADE,
+       FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT_METADATA(EXPERIMENT_ID) ON DELETE CASCADE
+);
+
+CREATE TABLE ORCHESTRATOR
+(
+        EXPERIMENT_ID VARCHAR(255) NOT NULL,
+        USERNAME VARCHAR(255),
+        STATUS VARCHAR(255),
+        STATE VARCHAR(255),
+        GFAC_EPR VARCHAR(255),
+        APPLICATION_NAME VARCHAR(255),
+        JOBREQUEST CLOB,
+        SUBMITTED_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        STATUS_UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (EXPERIMENT_ID),
+        FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT_METADATA(EXPERIMENT_ID) ON DELETE CASCADE
+);
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/orchestrator/orchestrator-core/src/test/resources/data-derby.sql
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/test/resources/data-derby.sql b/modules/orchestrator/orchestrator-core/src/test/resources/data-derby.sql
deleted file mode 100644
index 3264302..0000000
--- a/modules/orchestrator/orchestrator-core/src/test/resources/data-derby.sql
+++ /dev/null
@@ -1,282 +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.
- *
- */
-create table Gateway
-(
-        gateway_name varchar(255),
-	      owner varchar(255),
-        PRIMARY KEY (gateway_name)
-);
-
-
-create table Configuration
-(
-        config_key varchar(255),
-        config_val varchar(255),
-        expire_date TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-        category_id varchar (255),
-        PRIMARY KEY(config_key, config_val, category_id)
-);
-
-INSERT INTO CONFIGURATION (config_key, config_val, expire_date, category_id) VALUES('registry.version', '0.11', CURRENT_TIMESTAMP ,'SYSTEM');
-
-create table Users
-(
-        user_name varchar(255),
-        password varchar(255),
-        PRIMARY KEY(user_name)
-);
-
-create table Gateway_Worker
-(
-      gateway_name varchar(255),
-      user_name varchar(255),
-      PRIMARY KEY (gateway_name, user_name),
-      FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
-      FOREIGN KEY (user_name) REFERENCES Users(user_name) ON DELETE CASCADE
-
-);
-
-create table Project
-(
-       gateway_name varchar(255),
-       user_name varchar(255),
-       project_name varchar(255),
-       PRIMARY KEY (project_name),
-       FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
-       FOREIGN KEY (user_name) REFERENCES Users(user_name) ON DELETE CASCADE
-);
-
-create table Published_Workflow
-(
-       gateway_name varchar(255),
-       created_user varchar(255),
-       publish_workflow_name varchar(255),
-       version varchar(255),
-       published_date TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-       path varchar (255),
-       workflow_content BLOB,
-       PRIMARY KEY(gateway_name, publish_workflow_name),
-       FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
-       FOREIGN KEY (created_user) REFERENCES Users(user_name) ON DELETE CASCADE
-);
-
-create table User_Workflow
-
-(
-       gateway_name varchar(255),
-       owner varchar(255),
-       template_name varchar(255),
-       last_updated_date TIMESTAMP DEFAULT CURRENT TIMESTAMP,
-       path varchar (255),
-       workflow_graph BLOB,
-       PRIMARY KEY(gateway_name, owner, template_name),
-       FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
-       FOREIGN KEY (owner) REFERENCES Users(user_name) ON DELETE CASCADE
-);
-
-
-create table Host_Descriptor
-(
-       gateway_name varchar(255),
-       updated_user varchar(255),
-       host_descriptor_ID varchar(255),
-       host_descriptor_xml BLOB,
-       PRIMARY KEY(gateway_name, host_descriptor_ID),
-       FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
-       FOREIGN KEY (updated_user) REFERENCES Users(user_name) ON DELETE CASCADE
-);
-
-create table Service_Descriptor
-(
-         gateway_name varchar(255),
-         updated_user varchar(255),
-         service_descriptor_ID varchar(255),
-         service_descriptor_xml BLOB,
-         PRIMARY KEY(gateway_name,service_descriptor_ID),
-         FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
-         FOREIGN KEY (updated_user) REFERENCES Users(user_name) ON DELETE CASCADE
-);
-
-create table Application_Descriptor
-(
-         gateway_name varchar(255),
-         updated_user varchar(255),
-         application_descriptor_ID varchar(255),
-         host_descriptor_ID varchar(255),
-         service_descriptor_ID varchar(255),
-         application_descriptor_xml BLOB,
-         PRIMARY KEY(gateway_name,application_descriptor_ID),
-         FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
-         FOREIGN KEY (updated_user) REFERENCES Users(user_name) ON DELETE CASCADE
-);
-
-create table Experiment
-(
-          project_name varchar(255),
-	        gateway_name varchar(255),
-          user_name varchar(255),
-          experiment_ID varchar(255),
-          submitted_date TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-          PRIMARY KEY(experiment_ID),
-          FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
-          FOREIGN KEY (project_name) REFERENCES Project(project_name) ON DELETE CASCADE,
-          FOREIGN KEY (user_name) REFERENCES Users(user_name) ON DELETE CASCADE
-);
-
-create table Experiment_Data
-(
-        experiment_ID varchar(255),
-        name varchar(255),
-        username varchar(255),
-        PRIMARY KEY (experiment_ID)
-);
-
-create table Experiment_Metadata
-(
-        experiment_ID varchar(255),
-        metadata BLOB,
-        PRIMARY KEY (experiment_ID)
-);
-
-
-create table Workflow_Data
-(
-       experiment_ID varchar(255),
-       workflow_instanceID varchar(255),
-       template_name varchar(255),
-       status varchar(255),
-       start_time TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-       last_update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-       PRIMARY KEY(workflow_instanceID),
-       FOREIGN KEY (experiment_ID) REFERENCES Experiment_Data(experiment_ID) ON DELETE CASCADE
-);
-
-create table Node_Data
-(
-       workflow_instanceID varchar(255),
-       node_id varchar(255),
-       node_type varchar(255),
-       inputs BLOB,
-       outputs BLOB,
-       status varchar(255),
-       start_time TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-       last_update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-       execution_index int NOT NULL,
-       PRIMARY KEY(workflow_instanceID, node_id, execution_index),
-       FOREIGN KEY (workflow_instanceID) REFERENCES Workflow_Data(workflow_instanceID) ON DELETE CASCADE
-);
-
--- need to remove this in future
-create table Gram_Data
-(
-       workflow_instanceID varchar(255),
-       node_id varchar(255),
-       rsl BLOB,
-       invoked_host varchar(255),
-       local_Job_ID varchar(255),
-       PRIMARY KEY(workflow_instanceID, node_id),
-       FOREIGN KEY (workflow_instanceID) REFERENCES Workflow_Data(workflow_instanceID) ON DELETE CASCADE
-);
-
-create table GFac_Job_Data
-(
-       experiment_ID varchar(255),
-       workflow_instanceID varchar(255),
-       node_id varchar(255),
-       application_descriptor_ID varchar(255),
-       host_descriptor_ID varchar(255),
-       service_descriptor_ID varchar(255),
-       job_data CLOB,
-       local_Job_ID varchar(255),
-       submitted_time TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-       status_update_time TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-       status varchar(255),
-       metadata CLOB,
-       PRIMARY KEY(local_Job_ID),
-       FOREIGN KEY (experiment_ID) REFERENCES Experiment_Data(experiment_ID),
-       FOREIGN KEY (workflow_instanceID) REFERENCES Workflow_Data(workflow_instanceID)
-);
-
-create table GFac_Job_Status
-(
-       local_Job_ID varchar(255),
-       status_update_time TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-       status varchar(255),
-       FOREIGN KEY (local_Job_ID) REFERENCES GFac_Job_Data(local_Job_ID)
-);
-
-
-CREATE TABLE community_user
-(
-        GATEWAY_NAME VARCHAR(256) NOT NULL,
-        COMMUNITY_USER_NAME VARCHAR(256) NOT NULL,
-        TOKEN_ID VARCHAR(256) NOT NULL,
-        COMMUNITY_USER_EMAIL VARCHAR(256) NOT NULL,
-        PRIMARY KEY (GATEWAY_NAME, COMMUNITY_USER_NAME, TOKEN_ID)
-);
-
-
-CREATE TABLE credentials
-(
-        GATEWAY_ID VARCHAR(256) NOT NULL,
-        TOKEN_ID VARCHAR(256) NOT NULL,
-        CREDENTIAL BLOB NOT NULL,
-        PORTAL_USER_ID VARCHAR(256) NOT NULL,
-        TIME_PERSISTED TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-        PRIMARY KEY (GATEWAY_ID, TOKEN_ID)
-);
-
-CREATE TABLE Execution_Error
-(
-       error_id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY,
-       experiment_ID varchar(255),
-       workflow_instanceID varchar(255),
-       node_id varchar(255),
-       gfacJobID varchar(255),
-       source_type varchar(255),
-       error_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-       error_msg CLOB,
-       error_des CLOB,
-       error_code varchar(255),
-       error_reporter varchar(255),
-       error_location varchar(255),
-       action_taken varchar(255),
-       error_reference INTEGER,
-       PRIMARY KEY(error_id),
-       FOREIGN KEY (workflow_instanceID) REFERENCES Workflow_Data(workflow_instanceID) ON DELETE CASCADE,
-       FOREIGN KEY (experiment_ID) REFERENCES Experiment_Data(experiment_ID) ON DELETE CASCADE
-);
-
-create table Orchestrator
-(
-        experiment_ID varchar(255) NOT NULL,
-        username varchar(255),
-        status varchar(255),
-        state varchar(255),
-        gfacEPR varchar(255),
-        applicationName varchar(255),
-        jobRequest CLOB,
-        submitted_time TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-        status_update_time TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-		PRIMARY KEY (experiment_ID)
-);
-
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/registry/airavata-jpa-registry/pom.xml
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/pom.xml b/modules/registry/airavata-jpa-registry/pom.xml
index a500f13..2487894 100644
--- a/modules/registry/airavata-jpa-registry/pom.xml
+++ b/modules/registry/airavata-jpa-registry/pom.xml
@@ -123,6 +123,97 @@
                     </execution>
                 </executions>
             </plugin>
+            <!--<plugin>-->
+                <!--<groupId>org.apache.maven.plugins</groupId>-->
+                <!--<artifactId>maven-antrun-plugin</artifactId>-->
+                <!--<version>1.7</version>-->
+                <!--<executions>-->
+                    <!--<execution>-->
+                        <!--<phase>compile</phase>-->
+                        <!--<configuration>-->
+                            <!--<tasks>-->
+                                <!--<path id="enhance.path.ref">-->
+                                    <!--<fileset dir="${project.build.outputDirectory}">-->
+                                        <!--<include name="Application_Descriptor.class" />-->
+                                        <!--<include name="Application_Descriptor_PK.class" />-->
+                                        <!--<include name="Configuration.class" />-->
+                                        <!--<include name="Configuration_PK.class" />-->
+                                        <!--<include name="Execution_Error.class" />-->
+                                        <!--<include name="Experiment_Configuration_Data.class" />-->
+                                        <!--<include name="Experiment_Input.class" />-->
+                                        <!--<include name="Experiment_Input_PK.class" />-->
+                                        <!--<include name="Experiment_Metadata.class" />-->
+                                        <!--<include name="Experiment_Output.class" />-->
+                                        <!--<include name="Experiment_Output_PK.class" />-->
+                                        <!--<include name="Experiment_Output.class" />-->
+                                        <!--<include name="Gateway.class" />-->
+                                        <!--<include name="Gateway_Worker.class" />-->
+                                        <!--<include name="Gateway_Worker_PK.class" />-->
+                                        <!--<include name="GFac_Job_Data.class" />-->
+                                        <!--<include name="GFac_Job_Status.class" />-->
+                                        <!--<include name="Gram_Data.class" />-->
+                                        <!--<include name="Gram_Data_PK.class" />-->
+                                        <!--<include name="Host_Descriptor.class" />-->
+                                        <!--<include name="Host_Descriptor_PK.class" />-->
+                                        <!--<include name="Node_Data.class" />-->
+                                        <!--<include name="Node_Data_PK.class" />-->
+                                        <!--<include name="Orchestrator.class" />-->
+                                        <!--<include name="Project.class" />-->
+                                        <!--<include name="Published_Workflow.class" />-->
+                                        <!--<include name="Published_Workflow_PK.class" />-->
+                                        <!--<include name="Service_Descriptor.class" />-->
+                                        <!--<include name="Service_Descriptor_PK.class" />-->
+                                        <!--<include name="User_Workflow.class" />-->
+                                        <!--<include name="User_Workflow_PK.class" />-->
+                                        <!--<include name="Users.class" />-->
+                                        <!--<include name="Workflow_Data.class" />-->
+                                    <!--</fileset>-->
+                                <!--</path>-->
+                                <!--<pathconvert property="enhance.files" refid="enhance.path.ref" pathsep=" " />-->
+                                <!--<java classname="org.apache.openjpa.enhance.PCEnhancer">-->
+                                    <!--<arg line="-p persistence.xml" />-->
+                                    <!--<arg line="${enhance.files}" />-->
+                                    <!--<classpath>-->
+                                        <!--<path refid="maven.dependency.classpath" />-->
+                                        <!--<path refid="maven.compile.classpath" />-->
+                                    <!--</classpath>-->
+                                <!--</java>-->
+                            <!--</tasks>-->
+                        <!--</configuration>-->
+                        <!--<goals>-->
+                            <!--<goal>run</goal>-->
+                        <!--</goals>-->
+                    <!--</execution>-->
+                <!--</executions>-->
+            <!--</plugin>-->
+            <!--<plugin>-->
+                <!--<groupId>org.apache.openjpa</groupId>-->
+                <!--<artifactId>openjpa-maven-plugin</artifactId>-->
+                <!--<version>2.2.0</version>-->
+                <!--<configuration>-->
+                    <!--<includes>**/model/*.class</includes>-->
+                    <!--<excludes>**/model/XML*.class</excludes>-->
+                    <!--<addDefaultConstructor>true</addDefaultConstructor>-->
+                    <!--<enforcePropertyRestrictions>true</enforcePropertyRestrictions>-->
+                <!--</configuration>-->
+                <!--<executions>-->
+                    <!--<execution>-->
+                        <!--<id>enhancer</id>-->
+                        <!--<phase>process-classes</phase>-->
+                        <!--<goals>-->
+                            <!--<goal>enhance</goal>-->
+                        <!--</goals>-->
+                    <!--</execution>-->
+                <!--</executions>-->
+                <!--<dependencies>-->
+                    <!--<dependency>-->
+                        <!--<groupId>org.apache.openjpa</groupId>-->
+                        <!--<artifactId>openjpa</artifactId>-->
+                        <!--&lt;!&ndash; set the version to be the same as the level in your runtime &ndash;&gt;-->
+                        <!--<version>1.2.2</version>-->
+                    <!--</dependency>-->
+                <!--</dependencies>-->
+            <!--</plugin>-->
         </plugins>
     </build>
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceType.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceType.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceType.java
index 3c848cb..3a11184 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceType.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceType.java
@@ -29,11 +29,13 @@ public enum ResourceType {
     USER_WORKFLOW,
     HOST_DESCRIPTOR,
     APPLICATION_DESCRIPTOR,
-    EXPERIMENT,
     CONFIGURATION,
     GATEWAY_WORKER,
-    EXPERIMENT_DATA,
     EXPERIMENT_METADATA,
+    EXPERIMENT_CONFIG_DATA,
+    EXPERIMENT_SUMMARY,
+    EXPERIMENT_INPUT,
+    EXPERIMENT_OUTPUT,
     WORKFLOW_DATA,
     NODE_DATA,
     GRAM_DATA,

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java
index 129085b..fe94062 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java
@@ -64,7 +64,7 @@ public class ResourceUtils {
             properties.put("openjpa.DynamicEnhancementAgent", "true");
             properties.put("openjpa.RuntimeUnenhancedClasses", "unsupported");
             properties.put("openjpa.Log", "SQL=ERROR");
-//            properties.put("openjpa.Log","DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE");
+//            properties.put("openjpa.Log","DefaultLevel=TRACE, Runtime=TRACE, Tool=INFO, SQL=TRACE");
             properties.put("openjpa.ReadLockLevel", "none");
             properties.put("openjpa.WriteLockLevel", "none");
             properties.put("openjpa.LockTimeout", "30000");

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
index d44c4fe..14fb95a 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
@@ -54,10 +54,10 @@ import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
 import org.apache.airavata.persistance.registry.jpa.resources.ApplicationDescriptorResource;
 import org.apache.airavata.persistance.registry.jpa.resources.ConfigurationResource;
 import org.apache.airavata.persistance.registry.jpa.resources.ExecutionErrorResource;
-import org.apache.airavata.persistance.registry.jpa.resources.ExperimentDataResource;
+//import org.apache.airavata.persistance.registry.jpa.resources.ExperimentDataResource;
 import org.apache.airavata.persistance.registry.jpa.resources.ExperimentDataRetriever;
 import org.apache.airavata.persistance.registry.jpa.resources.ExperimentMetadataResource;
-import org.apache.airavata.persistance.registry.jpa.resources.ExperimentResource;
+//import org.apache.airavata.persistance.registry.jpa.resources.ExperimentResource;
 import org.apache.airavata.persistance.registry.jpa.resources.GFacJobDataResource;
 import org.apache.airavata.persistance.registry.jpa.resources.GFacJobStatusResource;
 import org.apache.airavata.persistance.registry.jpa.resources.GatewayResource;
@@ -134,7 +134,7 @@ public class AiravataJPARegistry extends AiravataRegistry2{
     private static int CONNECT_FAIL_WAIT_TIME=1000;
     private static int MAX_TRIES=15;
     private static final String DEFAULT_PROJECT_NAME = "default";
-    private static final Version API_VERSION=new Version("Airavata Registry API",0,11,null,null,null);
+    private static final Version API_VERSION=new Version("Airavata Registry API",0,12,null,null,null);
 
     private JPAResourceAccessor jpa;
     private boolean active=false;
@@ -207,6 +207,7 @@ public class AiravataJPARegistry extends AiravataRegistry2{
         compatibleVersionMap.put("0.9", new String[]{"0.9","0.8"});
         compatibleVersionMap.put("0.10", new String[]{"0.10","0.9", "0.8"});
         compatibleVersionMap.put("0.11", new String[]{"0.11","0.10","0.9", "0.8"});
+        compatibleVersionMap.put("0.12", new String[]{"0.12"});
     }
 
     /**
@@ -991,7 +992,11 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             if (isExperimentExists(experimentId)){
                 throw new ExperimentDoesNotExistsException(experimentId);
             }
-            ExperimentResource experimentResource = project.createExperiment(experimentId);
+            ExperimentMetadataResource experimentResource = project.createExperiment(experimentId);
+            experimentResource.setExperimentName(experimentId);
+            experimentResource.setGateway(jpa.getGateway());
+            experimentResource.setProject(project);
+            experimentResource.setExecutionUser(jpa.getWorker().getUser());
             if (experiment.getSubmittedDate()!=null) {
                 experimentResource.setSubmittedDate(new Timestamp(experiment.getSubmittedDate().getTime()));
             }
@@ -1017,8 +1022,8 @@ public class AiravataJPARegistry extends AiravataRegistry2{
         }
         WorkerResource worker = jpa.getWorker();
     	List<AiravataExperiment> result=new ArrayList<AiravataExperiment>();
-    	List<ExperimentResource> experiments = worker.getExperiments();
-    	for (ExperimentResource resource : experiments) {
+    	List<ExperimentMetadataResource> experiments = worker.getExperiments();
+    	for (ExperimentMetadataResource resource : experiments) {
 			AiravataExperiment e = createAiravataExperimentObj(resource);
 			result.add(e);
 		}
@@ -1026,10 +1031,10 @@ public class AiravataJPARegistry extends AiravataRegistry2{
     }
 
 	private AiravataExperiment createAiravataExperimentObj(
-			ExperimentResource resource) {
+			ExperimentMetadataResource resource) {
 		AiravataExperiment e = new AiravataExperiment();
 		e.setExperimentId(resource.getExpID());
-		e.setUser(new AiravataUser(resource.getWorker().getUser()));
+		e.setUser(new AiravataUser(resource.getExecutionUser()));
 		e.setSubmittedDate(new Date(resource.getSubmittedDate().getTime()));
 		e.setGateway(new Gateway(resource.getGateway().getGatewayName()));
 		e.setProject(new WorkspaceProject(getProjName(resource.getProject().getName()), this));
@@ -1041,9 +1046,9 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             return projectsRegistry.getExperiments(projectName);
         }
         ProjectResource project = jpa.getWorker().getProject(createProjName(projectName));
-    	List<ExperimentResource> experiments = project.getExperiments();
+    	List<ExperimentMetadataResource> experiments = project.getExperiments();
     	List<AiravataExperiment> result=new ArrayList<AiravataExperiment>();
-    	for (ExperimentResource resource : experiments) {
+    	for (ExperimentMetadataResource resource : experiments) {
 			AiravataExperiment e = createAiravataExperimentObj(resource);
 			result.add(e);
 		}
@@ -1312,10 +1317,9 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             if (!isExperimentExists(experimentId, true)){
                 throw new ExperimentDoesNotExistsException(experimentId);
             }
-            ExperimentResource experiment = jpa.getWorker().getExperiment(experimentId);
-            ExperimentDataResource data = experiment.getData();
-            data.setUserName(user);
-            data.save();
+            ExperimentMetadataResource experiment = jpa.getWorker().getExperiment(experimentId);
+            experiment.setExecutionUser(user);
+            experiment.save();
         }
 	}
 
@@ -1329,8 +1333,8 @@ public class AiravataJPARegistry extends AiravataRegistry2{
 		if (!isExperimentExists(experimentId)){
 			throw new ExperimentDoesNotExistsException(experimentId);
 		}
-		ExperimentResource experiment = jpa.getWorker().getExperiment(experimentId);
-		return experiment.getData().getUserName();
+		ExperimentMetadataResource experiment = jpa.getWorker().getExperiment(experimentId);
+		return experiment.getExecutionUser();
 	}
 
     @Override
@@ -1364,14 +1368,14 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             if (!isExperimentExists(experimentId, true)){
                 throw new ExperimentDoesNotExistsException(experimentId);
             }
-            ExperimentResource experiment = jpa.getWorker().getExperiment(experimentId);
-            ExperimentDataResource data = experiment.getData();
-            data.setExpName(experimentName);
-            data.save();
+            ExperimentMetadataResource experiment = jpa.getWorker().getExperiment(experimentId);
+            experiment.setExperimentName(experimentName);
+            experiment.save();
         }
 	}
 
 
+    // FIXME : Need to replace with new Experiment_Generated_Data
 	@Override
 	public String getExperimentMetadata(String experimentId)
 			throws RegistryException {
@@ -1381,15 +1385,16 @@ public class AiravataJPARegistry extends AiravataRegistry2{
 		if (!isExperimentExists(experimentId, true)){
 			throw new ExperimentDoesNotExistsException(experimentId);
 		}
-		ExperimentResource experiment = jpa.getWorker().getExperiment(experimentId);
-		ExperimentDataResource data = experiment.getData();
-		if (data.isExperimentMetadataPresent()){
-			return data.getExperimentMetadata().getMetadata();
-		}
+		ExperimentMetadataResource experiment = jpa.getWorker().getExperiment(experimentId);
+//		ExperimentDataResource data = experiment.getData();
+//		if (data.isExperimentMetadataPresent()){
+//			return data.getExperimentMetadata().getMetadata();
+//		}
 		return null;
 	}
 
 
+    // FIXME : Need to replace with new Experiment_Generated_Data
 	@Override
 	public void updateExperimentMetadata(String experimentId, String metadata)
 			throws RegistryException {
@@ -1399,17 +1404,17 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             if (!isExperimentExists(experimentId, true)){
                 throw new ExperimentDoesNotExistsException(experimentId);
             }
-            ExperimentResource experiment = jpa.getWorker().getExperiment(experimentId);
-            ExperimentDataResource data = experiment.getData();
-            ExperimentMetadataResource experimentMetadata;
-            if (data.isExperimentMetadataPresent()){
-                experimentMetadata = data.getExperimentMetadata();
-                experimentMetadata.setMetadata(metadata);
-            }else{
-                experimentMetadata = data.createExperimentMetadata();
-                experimentMetadata.setMetadata(metadata);
-            }
-            experimentMetadata.save();
+//            ExperimentResource experiment = jpa.getWorker().getExperiment(experimentId);
+//            ExperimentDataResource data = experiment.getData();
+//            ExperimentMetadataResource experimentMetadata;
+//            if (data.isExperimentMetadataPresent()){
+//                experimentMetadata = data.getExperimentMetadata();
+//                experimentMetadata.setMetadata(metadata);
+//            }else{
+//                experimentMetadata = data.createExperimentMetadata();
+//                experimentMetadata.setMetadata(metadata);
+//            }
+//            experimentMetadata.save();
         }
 	}
 
@@ -1452,10 +1457,9 @@ public class AiravataJPARegistry extends AiravataRegistry2{
 		if (!isExperimentExists(experimentId)){
 			throw new ExperimentDoesNotExistsException(experimentId);
 		}
-		ExperimentResource experiment = jpa.getWorker().getExperiment(experimentId);
-		ExperimentDataResource data = experiment.getData();
+		ExperimentMetadataResource experiment = jpa.getWorker().getExperiment(experimentId);
 		List<WorkflowExecution> result=new ArrayList<WorkflowExecution>();
-		List<WorkflowDataResource> workflowInstances = data.getWorkflowInstances();
+		List<WorkflowDataResource> workflowInstances = experiment.getWorkflowInstances();
 		for (WorkflowDataResource resource : workflowInstances) {
 			WorkflowExecution workflowInstance = new WorkflowExecution(resource.getExperimentID(), resource.getWorkflowInstanceID());
 			workflowInstance.setTemplateName(resource.getTemplateName());
@@ -1699,7 +1703,9 @@ public class AiravataJPARegistry extends AiravataRegistry2{
 		if (!isExperimentExists(experimentId)){
 			throw new ExperimentDoesNotExistsException(experimentId);
 		}
+        // FIXME : We dont have the data structure for experiment generated data at the moment
         return (new ExperimentDataRetriever()).getExperiment(experimentId);
+
 	}
 
 
@@ -1954,9 +1960,8 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             if (isWorkflowInstanceExists(workflowInstanceId)){
                 throw new WorkflowInstanceAlreadyExistsException(workflowInstanceId);
             }
-            ExperimentResource experiment = jpa.getWorker().getExperiment(experimentId);
-            ExperimentDataResource data = experiment.getData();
-            WorkflowDataResource workflowInstanceResource = data.createWorkflowInstanceResource(workflowInstanceId);
+            ExperimentMetadataResource experiment = jpa.getWorker().getExperiment(experimentId);
+            WorkflowDataResource workflowInstanceResource = experiment.createWorkflowInstanceResource(workflowInstanceId);
             workflowInstanceResource.setTemplateName(templateName);
             workflowInstanceResource.save();
         }
@@ -2077,11 +2082,11 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             return provenanceRegistry.getExperimentExecutionErrors(experimentId);
         }
 		List<ExperimentExecutionError> result=new ArrayList<ExperimentExecutionError>();
-		List<ExecutionErrorResource> executionErrors = jpa.getWorker().getExperiment(experimentId).getData().getExecutionErrors(Source.EXPERIMENT.toString(), experimentId, null, null, null);
+		List<ExecutionErrorResource> executionErrors = jpa.getWorker().getExperiment(experimentId).getExecutionErrors(Source.EXPERIMENT.toString(), experimentId, null, null, null);
 		for (ExecutionErrorResource errorResource : executionErrors) {
 			ExperimentExecutionError error = new ExperimentExecutionError();
 			setupValues(errorResource, error);
-			error.setExperimentId(errorResource.getExperimentDataResource().getExperimentID());
+			error.setExperimentId(errorResource.getMetadataResource().getExpID());
 			result.add(error);
 		}
 		return result;
@@ -2095,11 +2100,11 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             return provenanceRegistry.getWorkflowExecutionErrors(experimentId, workflowInstanceId);
         }
 		List<WorkflowExecutionError> result=new ArrayList<WorkflowExecutionError>();
-		List<ExecutionErrorResource> executionErrors = jpa.getWorker().getExperiment(experimentId).getData().getExecutionErrors(Source.WORKFLOW.toString(), experimentId, workflowInstanceId, null, null);
+		List<ExecutionErrorResource> executionErrors = jpa.getWorker().getExperiment(experimentId).getExecutionErrors(Source.WORKFLOW.toString(), experimentId, workflowInstanceId, null, null);
 		for (ExecutionErrorResource errorResource : executionErrors) {
 			WorkflowExecutionError error = new WorkflowExecutionError();
 			setupValues(errorResource, error);
-			error.setExperimentId(errorResource.getExperimentDataResource().getExperimentID());
+			error.setExperimentId(errorResource.getMetadataResource().getExpID());
 			error.setWorkflowInstanceId(errorResource.getWorkflowDataResource().getWorkflowInstanceID());
 			result.add(error);
 		}
@@ -2113,11 +2118,11 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             return provenanceRegistry.getNodeExecutionErrors(experimentId, workflowInstanceId, nodeId);
         }
 		List<NodeExecutionError> result=new ArrayList<NodeExecutionError>();
-		List<ExecutionErrorResource> executionErrors = jpa.getWorker().getExperiment(experimentId).getData().getExecutionErrors(Source.NODE.toString(), experimentId, workflowInstanceId, nodeId, null);
+		List<ExecutionErrorResource> executionErrors = jpa.getWorker().getExperiment(experimentId).getExecutionErrors(Source.NODE.toString(), experimentId, workflowInstanceId, nodeId, null);
 		for (ExecutionErrorResource errorResource : executionErrors) {
 			NodeExecutionError error = new NodeExecutionError();
 			setupValues(errorResource, error);
-			error.setExperimentId(errorResource.getExperimentDataResource().getExperimentID());
+			error.setExperimentId(errorResource.getMetadataResource().getExpID());
 			error.setNodeId(errorResource.getNodeID());
 			error.setWorkflowInstanceId(errorResource.getWorkflowDataResource().getWorkflowInstanceID());
 			result.add(error);
@@ -2133,11 +2138,11 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             return provenanceRegistry.getApplicationJobErrors(experimentId, workflowInstanceId, nodeId, gfacJobId);
         }
 		List<ApplicationJobExecutionError> result=new ArrayList<ApplicationJobExecutionError>();
-		List<ExecutionErrorResource> executionErrors = jpa.getWorker().getExperiment(experimentId).getData().getExecutionErrors(Source.APPLICATION.toString(), experimentId, workflowInstanceId, nodeId, gfacJobId);
+		List<ExecutionErrorResource> executionErrors = jpa.getWorker().getExperiment(experimentId).getExecutionErrors(Source.APPLICATION.toString(), experimentId, workflowInstanceId, nodeId, gfacJobId);
 		for (ExecutionErrorResource errorResource : executionErrors) {
 			ApplicationJobExecutionError error = new ApplicationJobExecutionError();
 			setupValues(errorResource, error);
-			error.setExperimentId(errorResource.getExperimentDataResource().getExperimentID());
+			error.setExperimentId(errorResource.getMetadataResource().getExpID());
 			error.setJobId(errorResource.getGfacJobID());
 			error.setNodeId(errorResource.getNodeID());
 			error.setWorkflowInstanceId(errorResource.getWorkflowDataResource().getWorkflowInstanceID());
@@ -2212,7 +2217,7 @@ public class AiravataJPARegistry extends AiravataRegistry2{
 		if (!isExperimentExists(experimentId)){
 			throw new ExperimentDoesNotExistsException(experimentId);
 		}
-		ExecutionErrorResource executionError = jpa.getWorker().getExperiment(experimentId).getData().createExecutionError();
+		ExecutionErrorResource executionError = jpa.getWorker().getExperiment(experimentId).createExecutionError();
 		setupValues(errorSource, executionError);
 		executionError.setSourceType(type.toString());
 		return executionError;
@@ -2237,7 +2242,7 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             return provenanceRegistry.addWorkflowExecutionError(error);
         }
 		ExecutionErrorResource executionError = createNewExecutionErrorResource(error.getExperimentId(),error,ExecutionErrors.Source.WORKFLOW);
-		executionError.setWorkflowDataResource(jpa.getWorker().getExperiment(error.getExperimentId()).getData().getWorkflowInstance(error.getWorkflowInstanceId()));
+		executionError.setWorkflowDataResource(jpa.getWorker().getExperiment(error.getExperimentId()).getWorkflowInstance(error.getWorkflowInstanceId()));
 		executionError.save();
 		return executionError.getErrorID();
 	}
@@ -2249,7 +2254,7 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             return provenanceRegistry.addNodeExecutionError(error);
         }
 		ExecutionErrorResource executionError = createNewExecutionErrorResource(error.getExperimentId(),error, Source.NODE);
-		executionError.setWorkflowDataResource(jpa.getWorker().getExperiment(error.getExperimentId()).getData().getWorkflowInstance(error.getWorkflowInstanceId()));
+		executionError.setWorkflowDataResource(jpa.getWorker().getExperiment(error.getExperimentId()).getWorkflowInstance(error.getWorkflowInstanceId()));
 		executionError.setNodeID(error.getNodeId());
 		executionError.save();
 		return executionError.getErrorID();
@@ -2262,7 +2267,7 @@ public class AiravataJPARegistry extends AiravataRegistry2{
             return provenanceRegistry.addApplicationJobExecutionError(error);
         }
 		ExecutionErrorResource executionError = createNewExecutionErrorResource(error.getExperimentId(),error, Source.APPLICATION);
-		executionError.setWorkflowDataResource(jpa.getWorker().getExperiment(error.getExperimentId()).getData().getWorkflowInstance(error.getWorkflowInstanceId()));
+		executionError.setWorkflowDataResource(jpa.getWorker().getExperiment(error.getExperimentId()).getWorkflowInstance(error.getWorkflowInstanceId()));
 		executionError.setNodeID(error.getNodeId());
 		executionError.setGfacJobID(error.getJobId());
 		executionError.save();
@@ -2283,9 +2288,9 @@ public class AiravataJPARegistry extends AiravataRegistry2{
 //		if (!isWorkflowInstanceNodePresent(job.getWorkflowExecutionId(), job.getNodeId())){
 //			throw new WorkflowInstanceNodeDoesNotExistsException(job.getWorkflowExecutionId(), job.getNodeId());
 //		}
-		ExperimentDataResource expData = jpa.getWorker().getExperiment(job.getExperimentId()).getData();
+		ExperimentMetadataResource expData = jpa.getWorker().getExperiment(job.getExperimentId());
 		GFacJobDataResource gfacJob = expData.createGFacJob(job.getJobId());
-		gfacJob.setExperimentDataResource(expData);
+		gfacJob.setMetadataResource(expData);
 		gfacJob.setWorkflowDataResource(expData.getWorkflowInstance(job.getWorkflowExecutionId()));
 		gfacJob.setNodeID(job.getNodeId());
 		setupValues(job, gfacJob);
@@ -2377,7 +2382,7 @@ public class AiravataJPARegistry extends AiravataRegistry2{
 	private void setupValues(GFacJobDataResource gfacJob, ApplicationJob job) {
 		job.setApplicationDescriptionId(gfacJob.getApplicationDescID());
 		job.setStatusUpdateTime(gfacJob.getStatusUpdateTime());
-		job.setExperimentId(gfacJob.getExperimentDataResource().getExperimentID());
+		job.setExperimentId(gfacJob.getMetadataResource().getExpID());
 		job.setHostDescriptionId(gfacJob.getHostDescID());
 		job.setJobData(gfacJob.getJobData());
 		job.setJobId(gfacJob.getLocalJobID());
@@ -2412,17 +2417,17 @@ public class AiravataJPARegistry extends AiravataRegistry2{
 			if (!isExperimentExists(experimentId)){
 				throw new ExperimentDoesNotExistsException(experimentId);
 			}
-			gFacJobs = jpa.getWorker().getExperiment(experimentId).getData().getGFacJobs();
+			gFacJobs = jpa.getWorker().getExperiment(experimentId).getGFacJobs();
 		}else if (nodeId==null){
 			if (!isWorkflowInstanceExists(workflowExecutionId)){
 				throw new WorkflowInstanceDoesNotExistsException(workflowExecutionId);
 			}
-			gFacJobs = jpa.getWorker().getExperiment(experimentId).getData().getWorkflowInstance(workflowExecutionId).getGFacJobs();
+			gFacJobs = jpa.getWorker().getExperiment(experimentId).getWorkflowInstance(workflowExecutionId).getGFacJobs();
 		}else{
 			if (!isWorkflowInstanceNodePresent(workflowExecutionId, nodeId)){
 				throw new WorkflowInstanceNodeDoesNotExistsException(workflowExecutionId, nodeId);
 			}
-			gFacJobs = jpa.getWorker().getExperiment(experimentId).getData().getWorkflowInstance(workflowExecutionId).getNodeData(nodeId).getGFacJobs();
+			gFacJobs = jpa.getWorker().getExperiment(experimentId).getWorkflowInstance(workflowExecutionId).getNodeData(nodeId).getGFacJobs();
 		}
 		for (Resource resource : gFacJobs) {
 			ApplicationJob job = new ApplicationJob();

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Application_Descriptor.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Application_Descriptor.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Application_Descriptor.java
index 40093b3..ee4b536 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Application_Descriptor.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Application_Descriptor.java
@@ -25,24 +25,30 @@ import javax.persistence.*;
 
 @Entity
 @IdClass(Application_Descriptor_PK.class)
+@Table(name ="APPLICATION_DESCRIPTOR")
 public class Application_Descriptor {
     @Id
+    @Column(name = "APPLICATION_DESCRIPTOR_ID")
     private String application_descriptor_ID;
     @Id
+    @Column(name = "GATEWAY_NAME")
     private String gateway_name;
 
+    @Column(name = "HOST_DESCRIPTOR_ID")
     private String host_descriptor_ID;
+    @Column(name = "SERVICE_DESCRIPTOR_ID")
     private String service_descriptor_ID;
 
     @Lob
+    @Column(name = "APPLICATION_DESCRIPTOR_XML")
     private byte[] application_descriptor_xml;
 
     @ManyToOne(cascade=CascadeType.PERSIST)
-    @JoinColumn(name = "gateway_name")
+    @JoinColumn(name = "GATEWAY_NAME")
     private Gateway gateway;
 
     @ManyToOne(cascade=CascadeType.PERSIST)
-    @JoinColumn(name = "updated_user", referencedColumnName = "user_name")
+    @JoinColumn(name = "UPDATED_USER", referencedColumnName = "USER_NAME")
     private Users user;
 
     public String getApplication_descriptor_ID() {

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Configuration.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Configuration.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Configuration.java
index a9362b6..14570db 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Configuration.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Configuration.java
@@ -1,22 +1,22 @@
 /*
- *
- * 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.persistance.registry.jpa.model;
 
@@ -25,14 +25,22 @@ import java.io.Serializable;
 import java.sql.Timestamp;
 
 @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() {

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Execution_Error.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Execution_Error.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Execution_Error.java
index 7ae1e00..fa34ede 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Execution_Error.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Execution_Error.java
@@ -23,40 +23,52 @@ package org.apache.airavata.persistance.registry.jpa.model;
 
 import java.sql.Timestamp;
 
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
+import javax.persistence.*;
 
 @Entity
+@Table(name="EXECUTION_ERROR")
 public class Execution_Error {
     @Id @GeneratedValue
+    @Column(name = "ERROR_ID")
     private int error_id;
+
+    @Column(name = "EXPERIMENT_ID")
     private String experiment_ID;
+    @Column(name = "WORKFLOW_INSTANCE_ID")
     private String workflow_instanceID;
+    @Column(name = "NODE_ID")
     private String node_id;
+    @Column(name = "GFAC_JOB_ID")
     private String gfacJobID;
+    @Column(name = "SOURCE_TYPE")
     private String source_type;
+    @Column(name = "ERROR_DATE")
     private Timestamp error_date;
+
+    @Column(name = "ERROR_REPORTER")
     private String error_reporter;
+    @Column(name = "ERROR_LOCATION")
     private String error_location;
+    @Column(name = "ACTION_TAKEN")
     private String action_taken;
+    @Column(name = "ERROR_REFERENCE")
     private int error_reference;
 
     @ManyToOne()
-    @JoinColumn(name = "experiment_ID")
-    private Experiment_Data experiment_data;
+    @JoinColumn(name = "EXPERIMENT_ID")
+    private Experiment_Metadata experiment_metadata;
 
     @ManyToOne()
-    @JoinColumn(name = "workflow_instanceID")
+    @JoinColumn(name = "WORKFLOW_INSTANCE_ID")
     private Workflow_Data workflow_Data;
 
     @Lob
+    @Column(name = "ERROR_MSG")
     private String error_msg;
     @Lob
+    @Column(name = "ERROR_DESC")
     private String error_des;
+    @Column(name = "ERROR_CODE")
     private String error_code;
 
     public String getWorkflow_instanceID() {
@@ -127,8 +139,8 @@ public class Execution_Error {
         return error_date;
     }
 
-    public Experiment_Data getExperiment_Data() {
-        return experiment_data;
+    public Experiment_Metadata getExperiment_MetaData() {
+        return experiment_metadata;
     }
 
     public void setError_id(int error_id) {
@@ -151,8 +163,8 @@ public class Execution_Error {
         this.error_date = error_date;
     }
 
-    public void setExperiment_data(Experiment_Data experiment_data) {
-        this.experiment_data = experiment_data;
+    public void setExperiment_Metadata(Experiment_Metadata experiment_metadata) {
+        this.experiment_metadata = experiment_metadata;
     }
 
     public String getError_reporter() {
@@ -167,8 +179,8 @@ public class Execution_Error {
         return action_taken;
     }
 
-    public Experiment_Data getExperiment_data() {
-        return experiment_data;
+    public Experiment_Metadata getExperiment_Metadata() {
+        return experiment_metadata;
     }
 
     public void setError_reporter(String error_reporter) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment.java
index 134252d..0577a3d 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment.java
@@ -1,87 +1,91 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-package org.apache.airavata.persistance.registry.jpa.model;
-
-import javax.persistence.*;
-import java.sql.Timestamp;
-
-@Entity
-public class Experiment {
-    @Id
-    private String experiment_ID;
-    private Timestamp submitted_date;
-    private String user_name;
-    private String gateway_name;
-    private String project_name;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "user_name")
-    private Users user;
-
-    @ManyToOne(cascade=CascadeType.MERGE)
-    @JoinColumn(name = "gateway_name")
-    private Gateway gateway;
-
-    @ManyToOne(cascade=CascadeType.MERGE)
-    @JoinColumn(name = "project_name")
-    private Project project;
-
-    public String getExperiment_ID() {
-        return experiment_ID;
-    }
-
-    public Timestamp getSubmitted_date() {
-        return submitted_date;
-    }
-
-    public Users getUser() {
-        return user;
-    }
-
-    public Project getProject() {
-        return project;
-    }
-
-    public void setExperiment_ID(String experiment_ID) {
-        this.experiment_ID = experiment_ID;
-    }
-
-    public void setSubmitted_date(Timestamp submitted_date) {
-        this.submitted_date = submitted_date;
-    }
-
-    public void setUser(Users user) {
-        this.user = user;
-    }
-
-    public void setProject(Project project) {
-        this.project = project;
-    }
-
-    public Gateway getGateway() {
-        return gateway;
-    }
-
-    public void setGateway(Gateway gateway) {
-        this.gateway = gateway;
-    }
-}
+///*
+// *
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements.  See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership.  The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License.  You may obtain a copy of the License at
+// *
+// *   http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing,
+// * software distributed under the License is distributed on an
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// * KIND, either express or implied.  See the License for the
+// * specific language governing permissions and limitations
+// * under the License.
+// *
+//*/
+//
+//package org.apache.airavata.persistance.registry.jpa.model;
+//
+//import javax.persistence.*;
+//import java.sql.Timestamp;
+//
+///**
+// * @deprecated use Experiment_Metadata instead
+// */
+//
+//@Entity
+//public class Experiment {
+//    @Id
+//    private String experiment_ID;
+//    private Timestamp submitted_date;
+//    private String user_name;
+//    private String gateway_name;
+//    private String project_name;
+//
+//    @ManyToOne(cascade= CascadeType.MERGE)
+//    @JoinColumn(name = "user_name")
+//    private Users user;
+//
+//    @ManyToOne(cascade=CascadeType.MERGE)
+//    @JoinColumn(name = "gateway_name")
+//    private Gateway gateway;
+//
+//    @ManyToOne(cascade=CascadeType.MERGE)
+//    @JoinColumn(name = "project_name")
+//    private Project project;
+//
+//    public String getExperiment_ID() {
+//        return experiment_ID;
+//    }
+//
+//    public Timestamp getSubmitted_date() {
+//        return submitted_date;
+//    }
+//
+//    public Users getUser() {
+//        return user;
+//    }
+//
+//    public Project getProject() {
+//        return project;
+//    }
+//
+//    public void setExperiment_ID(String experiment_ID) {
+//        this.experiment_ID = experiment_ID;
+//    }
+//
+//    public void setSubmitted_date(Timestamp submitted_date) {
+//        this.submitted_date = submitted_date;
+//    }
+//
+//    public void setUser(Users user) {
+//        this.user = user;
+//    }
+//
+//    public void setProject(Project project) {
+//        this.project = project;
+//    }
+//
+//    public Gateway getGateway() {
+//        return gateway;
+//    }
+//
+//    public void setGateway(Gateway gateway) {
+//        this.gateway = gateway;
+//    }
+//}

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Configuration_Data.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Configuration_Data.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Configuration_Data.java
new file mode 100644
index 0000000..8ba17d4
--- /dev/null
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Configuration_Data.java
@@ -0,0 +1,225 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.persistance.registry.jpa.model;
+
+import javax.persistence.*;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name ="EXPERIMENT_CONFIGURATION_DATA")
+public class Experiment_Configuration_Data {
+    @Id
+    @ManyToOne(cascade= CascadeType.MERGE)
+    @JoinColumn(name = "EXPERIMENT_ID")
+    private Experiment_Metadata experiment_metadata;
+    @Column(name = "RESOURCE_HOST_ID")
+    private String resource_host_id;
+    @Column(name = "TOTAL_CPU_COUNT")
+    private int total_cpu_count;
+    @Column(name = "NODE_COUNT")
+    private int node_count;
+
+    @Column(name = "NUMBER_OF_THREADS")
+    private int number_of_threads;
+    @Column(name = "QUEUE_NAME")
+    private String queue_name;
+    @Column(name = "WALLTIME_LIMIT")
+    private int walltime_limit;
+    @Column(name = "JOB_START_TIME")
+    private Timestamp job_start_time;
+    @Column(name = "TOTAL_PHYSICAL_MEMORY")
+    private int total_physical_memory;
+    @Column(name = "COMPUTATIONAL_PROJECT_ACCOUNT")
+    private String computational_project_account;
+
+    @Column(name = "AIRAVATA_AUTO_SCHEDULE")
+    private boolean airavata_auto_schedule;
+    @Column(name = "OVERRIDE_MANUAL_SCHEDULE_PARAMS")
+    private boolean override_manual_schedule;
+    @Column(name = "WORKING_DIR")
+    private String working_dir;
+    @Column(name = "STAGE_INPUT_FILES_TO_WORKING_DIR")
+    private boolean stage_input_files_to_working_dir;
+    @Column(name = "OUTPUT_DATA_DIR")
+    private String output_data_dir;
+    @Column(name = "DATA_REG_URL")
+    private String data_reg_url;
+    @Column(name = "PERSIST_OUTPUT_DATA")
+    private boolean persist_output_data;
+    @Column(name = "CLEAN_AFTER_JOB")
+    private boolean clean_after_job;
+    @Lob
+    @Column(name = "EXPERIMENT_CONFIG_DATA")
+    private byte[] experiment_config_data;
+
+    public Experiment_Metadata getExperiment_metadata() {
+        return experiment_metadata;
+    }
+
+    public void setExperiment_metadata(Experiment_Metadata experiment_metadata) {
+        this.experiment_metadata = experiment_metadata;
+    }
+
+    public String getResource_host_id() {
+        return resource_host_id;
+    }
+
+    public void setResource_host_id(String resource_host_id) {
+        this.resource_host_id = resource_host_id;
+    }
+
+    public int getTotal_cpu_count() {
+        return total_cpu_count;
+    }
+
+    public void setTotal_cpu_count(int total_cpu_count) {
+        this.total_cpu_count = total_cpu_count;
+    }
+
+    public int getNode_count() {
+        return node_count;
+    }
+
+    public void setNode_count(int node_count) {
+        this.node_count = node_count;
+    }
+
+    public int getNumber_of_threads() {
+        return number_of_threads;
+    }
+
+    public void setNumber_of_threads(int number_of_threads) {
+        this.number_of_threads = number_of_threads;
+    }
+
+    public String getQueue_name() {
+        return queue_name;
+    }
+
+    public void setQueue_name(String queue_name) {
+        this.queue_name = queue_name;
+    }
+
+    public int getWalltime_limit() {
+        return walltime_limit;
+    }
+
+    public void setWalltime_limit(int walltime_limit) {
+        this.walltime_limit = walltime_limit;
+    }
+
+    public Timestamp getJob_start_time() {
+        return job_start_time;
+    }
+
+    public void setJob_start_time(Timestamp job_start_time) {
+        this.job_start_time = job_start_time;
+    }
+
+    public int getTotal_physical_memory() {
+        return total_physical_memory;
+    }
+
+    public void setTotal_physical_memory(int total_physical_memory) {
+        this.total_physical_memory = total_physical_memory;
+    }
+
+    public String getComputational_project_account() {
+        return computational_project_account;
+    }
+
+    public void setComputational_project_account(String computational_project_account) {
+        this.computational_project_account = computational_project_account;
+    }
+
+    public boolean isAiravata_auto_schedule() {
+        return airavata_auto_schedule;
+    }
+
+    public void setAiravata_auto_schedule(boolean airavata_auto_schedule) {
+        this.airavata_auto_schedule = airavata_auto_schedule;
+    }
+
+    public boolean isOverride_manual_schedule() {
+        return override_manual_schedule;
+    }
+
+    public void setOverride_manual_schedule(boolean override_manual_schedule) {
+        this.override_manual_schedule = override_manual_schedule;
+    }
+
+    public String getWorking_dir() {
+        return working_dir;
+    }
+
+    public void setWorking_dir(String working_dir) {
+        this.working_dir = working_dir;
+    }
+
+    public boolean isStage_input_files_to_working_dir() {
+        return stage_input_files_to_working_dir;
+    }
+
+    public void setStage_input_files_to_working_dir(boolean stage_input_files_to_working_dir) {
+        this.stage_input_files_to_working_dir = stage_input_files_to_working_dir;
+    }
+
+    public String getOutput_data_dir() {
+        return output_data_dir;
+    }
+
+    public void setOutput_data_dir(String output_data_dir) {
+        this.output_data_dir = output_data_dir;
+    }
+
+    public String getData_reg_url() {
+        return data_reg_url;
+    }
+
+    public void setData_reg_url(String data_reg_url) {
+        this.data_reg_url = data_reg_url;
+    }
+
+    public boolean isPersist_output_data() {
+        return persist_output_data;
+    }
+
+    public void setPersist_output_data(boolean persist_output_data) {
+        this.persist_output_data = persist_output_data;
+    }
+
+    public boolean isClean_after_job() {
+        return clean_after_job;
+    }
+
+    public void setClean_after_job(boolean clean_after_job) {
+        this.clean_after_job = clean_after_job;
+    }
+
+    public byte[] getExperiment_config_data() {
+        return experiment_config_data;
+    }
+
+    public void setExperiment_config_data(byte[] experiment_config_data) {
+        this.experiment_config_data = experiment_config_data;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/10b41d86/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Data.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Data.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Data.java
index 2eb10f8..d070fe8 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Data.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Data.java
@@ -1,63 +1,66 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.persistance.registry.jpa.model;
-
-import javax.persistence.Entity;
-import javax.persistence.Id;
-
-@Entity
-public class Experiment_Data {
-	@Id
-	private String experiment_ID;
-	private String name;
-    private String username;
-
-	/*@OneToMany(cascade=CascadeType.ALL, mappedBy = "Experiment_Data")
-	private final List<Workflow_Data> workflows = new ArrayList<Workflow_Data>();*/
-
-	public String getExperiment_ID() {
-		return experiment_ID;
-	}
-
-	public void setExperiment_ID(String experiment_ID) {
-		this.experiment_ID = experiment_ID;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-    public String getUsername() {
-        return username;
-    }
-
-    public void setUsername(String username) {
-        this.username = username;
-    }
-
-    /*public List<Workflow_Data> getWorkflows() {
-        return workflows;
-    }*/
-}
+///*
+// *
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements.  See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership.  The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License.  You may obtain a copy of the License at
+// *
+// *   http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing,
+// * software distributed under the License is distributed on an
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// * KIND, either express or implied.  See the License for the
+// * specific language governing permissions and limitations
+// * under the License.
+// *
+//*/
+//package org.apache.airavata.persistance.registry.jpa.model;
+//
+//import javax.persistence.Entity;
+//import javax.persistence.Id;
+//
+///**
+// * @deprecated user Experiment_Configuration_Data
+// */
+//@Entity
+//public class Experiment_Data {
+//	@Id
+//	private String experiment_ID;
+//	private String name;
+//    private String username;
+//
+//	/*@OneToMany(cascade=CascadeType.ALL, mappedBy = "Experiment_Data")
+//	private final List<Workflow_Data> workflows = new ArrayList<Workflow_Data>();*/
+//
+//	public String getExperiment_ID() {
+//		return experiment_ID;
+//	}
+//
+//	public void setExperiment_ID(String experiment_ID) {
+//		this.experiment_ID = experiment_ID;
+//	}
+//
+//	public String getName() {
+//		return name;
+//	}
+//
+//	public void setName(String name) {
+//		this.name = name;
+//	}
+//
+//    public String getUsername() {
+//        return username;
+//    }
+//
+//    public void setUsername(String username) {
+//        this.username = username;
+//    }
+//
+//    /*public List<Workflow_Data> getWorkflows() {
+//        return workflows;
+//    }*/
+//}


Mime
View raw message