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 2016/03/24 16:25:27 UTC

[01/10] airavata git commit: renaming data-catalog to replica catalog

Repository: airavata
Updated Branches:
  refs/heads/develop a2ff43253 -> 04f6f5934


http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ThriftDataModelConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ThriftDataModelConversion.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ThriftDataModelConversion.java
new file mode 100644
index 0000000..ece579c
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ThriftDataModelConversion.java
@@ -0,0 +1,215 @@
+/*
+*
+* 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.replica.catalog.utils;
+
+import org.apache.airavata.model.data.replica.*;
+import org.apache.airavata.registry.core.replica.catalog.model.DataProduct;
+import org.apache.airavata.registry.core.replica.catalog.model.DataProductMetaData;
+import org.apache.airavata.registry.core.replica.catalog.model.DataReplicaLocation;
+import org.apache.airavata.registry.core.replica.catalog.model.DataReplicaMetaData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+public class ThriftDataModelConversion {
+
+    private final static Logger logger = LoggerFactory.getLogger(ThriftDataModelConversion.class);
+
+    public static DataProductModel getDataProductModel(DataProduct dataProduct){
+        if (dataProduct != null) {
+            DataProductModel dataProductModel = new DataProductModel();
+            dataProductModel.setProductUri(dataProduct.getProductUri());
+            dataProductModel.setLogicalPath(dataProduct.getLogicalPath());
+            dataProductModel.setGatewayId(dataProduct.getGatewayId());
+            dataProductModel.setParentProductUri(dataProduct.getParentProductUri());
+            dataProductModel.setProductName(dataProduct.getProductName());
+            if(dataProduct.getDataProductType() != null)
+                dataProductModel.setDataProductType(DataProductType.valueOf(dataProduct.getDataProductType()));
+            else
+                dataProductModel.setDataProductType(DataProductType.FILE);
+            dataProductModel.setProductDescription(dataProduct.getProductDescription());
+            dataProductModel.setOwnerName(dataProduct.getOwnerName());
+            dataProductModel.setProductSize(dataProduct.getProductSize());
+            if(dataProduct.getCreationTime() != null)
+                dataProductModel.setCreationTime(dataProduct.getCreationTime().getTime());
+            if(dataProduct.getLastModifiedTime() != null)
+                dataProductModel.setLastModifiedTime(dataProduct.getLastModifiedTime().getTime());
+            dataProductModel.setProductMetadata(getResourceMetaData(dataProduct.getDataProductMetaData()));
+            if(dataProduct.getDataReplicaLocations() != null){
+                ArrayList<DataReplicaLocationModel> dataReplicaLocationModels = new ArrayList<>();
+                dataProduct.getDataReplicaLocations().stream().forEach(r->dataReplicaLocationModels
+                        .add(getDataReplicaLocationModel(r)));
+                dataProductModel.setReplicaLocations(dataReplicaLocationModels);
+            }
+            if(dataProductModel.getDataProductType().equals(DataProductType.COLLECTION) && dataProduct.getChildDataProducts() != null){
+                ArrayList<DataProductModel> childDataProducts = new ArrayList<>();
+                dataProduct.getChildDataProducts().stream().forEach(r->childDataProducts.add(getDataProductModel(r)));
+                dataProductModel.setChildProducts(childDataProducts);
+            }
+            return dataProductModel;
+        }
+        return null;
+    }
+
+    public static DataProduct getDataProduct(DataProductModel dataProductModel){
+        if(dataProductModel != null){
+            DataProduct dataProduct = new DataProduct();
+            return getUpdatedDataProduct(dataProductModel, dataProduct);
+        }
+        return null;
+    }
+
+    public static DataProduct getUpdatedDataProduct(DataProductModel dataProductModel, DataProduct dataProduct){
+        dataProduct.setProductUri(dataProductModel.getProductUri());
+        dataProduct.setLogicalPath(dataProductModel.getLogicalPath());
+        dataProduct.setGatewayId(dataProductModel.getGatewayId());
+        dataProduct.setProductName(dataProductModel.getProductName());
+        dataProduct.setParentProductUri(dataProductModel.getParentProductUri());
+        if(dataProductModel.getDataProductType() != null)
+            dataProduct.setDataProductType(dataProductModel.getDataProductType().toString());
+        else
+            dataProduct.setDataProductType(DataProductType.FILE.toString());
+        dataProduct.setProductDescription(dataProductModel.getProductDescription());
+        dataProduct.setOwnerName(dataProductModel.getOwnerName());
+        dataProduct.setProductSize(dataProductModel.getProductSize());
+        if(dataProductModel.getCreationTime() > 0)
+            dataProduct.setCreationTime(new Timestamp(dataProductModel.getCreationTime()));
+        if(dataProductModel.getLastModifiedTime() > 0)
+            dataProduct.setLastModifiedTime(new Timestamp(dataProductModel.getLastModifiedTime()));
+        ArrayList<DataProductMetaData> dataProductMetaData = new ArrayList<>();
+        if(dataProductModel.getProductMetadata() != null) {
+            dataProductModel.getProductMetadata().keySet().stream().forEach(k -> {
+                String v = dataProductModel.getProductMetadata().get(k);
+                DataProductMetaData temp = new DataProductMetaData();
+                temp.setProductUri(dataProduct.getProductUri());
+                temp.setKey(k);
+                temp.setValue(v);
+                dataProductMetaData.add(temp);
+            });
+            dataProduct.setDataProductMetaData(dataProductMetaData);
+        }
+        if(dataProductModel.getReplicaLocations() != null){
+            ArrayList<DataReplicaLocation> dataReplicaLocations = new ArrayList<>();
+            dataProductModel.getReplicaLocations().stream().forEach(r->{
+                DataReplicaLocation dataReplicaLocationModel = getDataReplicaLocation(r);
+                dataReplicaLocationModel.setProductUri(dataProductModel.getProductUri());
+                dataReplicaLocations.add(dataReplicaLocationModel);
+            });
+            dataProduct.setDataReplicaLocations(dataReplicaLocations);
+        }
+        if(dataProductModel.getDataProductType() == DataProductType.COLLECTION && dataProductModel.getChildProducts() != null){
+            ArrayList<DataProduct> childDataProducts = new ArrayList<>();
+            dataProductModel.getChildProducts().stream().forEach(r->childDataProducts.add(getDataProduct(r)));
+            dataProduct.setChildDataProducts(childDataProducts);
+        }
+        return dataProduct;
+    }
+
+    public static DataReplicaLocationModel getDataReplicaLocationModel(DataReplicaLocation replicaLocation){
+        if (replicaLocation != null) {
+            DataReplicaLocationModel replicaLocationModel = new DataReplicaLocationModel();
+            replicaLocationModel.setReplicaId(replicaLocation.getReplicaId());
+            replicaLocationModel.setProductUri(replicaLocation.getProductUri());
+            replicaLocationModel.setReplicaName(replicaLocation.getReplicaName());
+            replicaLocationModel.setReplicaDescription(replicaLocation.getReplicaDescription());
+            replicaLocationModel.setStorageResourceId(replicaLocation.getStorageResourceId());
+            if(replicaLocation.getValidUntilTime() != null)
+                replicaLocationModel.setValidUntilTime(replicaLocation.getValidUntilTime().getTime());
+            replicaLocationModel.setFilePath(replicaLocation.getFilePath());
+            if(replicaLocation.getCreationTime() != null)
+                replicaLocationModel.setCreationTime(replicaLocation.getCreationTime().getTime());
+            if(replicaLocation.getLastModifiedTime() != null)
+                replicaLocationModel.setLastModifiedTime(replicaLocation.getLastModifiedTime().getTime());
+            if(replicaLocation.getReplicaLocationCategory() != null)
+                replicaLocationModel.setReplicaLocationCategory(ReplicaLocationCategory.valueOf(replicaLocation
+                        .getReplicaLocationCategory().toString()));
+            if(replicaLocation.getReplicaPersistentType() != null)
+                replicaLocationModel.setReplicaPersistentType(ReplicaPersistentType.valueOf(replicaLocation
+                        .getReplicaPersistentType().toString()));
+            replicaLocationModel.setReplicaMetadata(getReplicaMetaData(replicaLocation.getDataReplicaMetaData()));
+            return replicaLocationModel;
+        }
+        return null;
+    }
+
+    public static DataReplicaLocation getDataReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel){
+        if(dataReplicaLocationModel != null){
+            DataReplicaLocation dataReplicaLocation = new DataReplicaLocation();
+            return getUpdatedDataReplicaLocation(dataReplicaLocationModel, dataReplicaLocation);
+        }
+        return null;
+    }
+
+    public static DataReplicaLocation getUpdatedDataReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel,
+                                                                    DataReplicaLocation dataReplicaLocation){
+        dataReplicaLocation.setReplicaId(dataReplicaLocationModel.getReplicaId());
+        dataReplicaLocation.setProductUri(dataReplicaLocationModel.getProductUri());
+        dataReplicaLocation.setReplicaName(dataReplicaLocationModel.getReplicaName());
+        dataReplicaLocation.setReplicaDescription(dataReplicaLocationModel.getReplicaDescription());
+        dataReplicaLocation.setStorageResourceId(dataReplicaLocationModel.getStorageResourceId());
+        dataReplicaLocation.setFilePath(dataReplicaLocationModel.getFilePath());
+        if(dataReplicaLocationModel.getValidUntilTime() > 0)
+            dataReplicaLocation.setValidUntilTime(new Timestamp(dataReplicaLocationModel.getValidUntilTime()));
+        if(dataReplicaLocationModel.getCreationTime() > 0)
+            dataReplicaLocation.setCreationTime(new Timestamp(dataReplicaLocationModel.getCreationTime()));
+        if(dataReplicaLocationModel.getLastModifiedTime() > 0)
+            dataReplicaLocation.setLastModifiedTime(new Timestamp(dataReplicaLocationModel.getLastModifiedTime()));
+        if(dataReplicaLocationModel.getReplicaLocationCategory() != null)
+            dataReplicaLocation.setReplicaLocationCategory(dataReplicaLocationModel.getReplicaLocationCategory().toString());
+        if(dataReplicaLocationModel.getReplicaPersistentType() != null)
+            dataReplicaLocation.setReplicaPersistentType(dataReplicaLocationModel.getReplicaPersistentType().toString());
+        ArrayList<DataReplicaMetaData> dataReplicaMetadata = new ArrayList<>();
+        if(dataReplicaLocation.getDataReplicaMetaData() != null){
+            dataReplicaLocationModel.getReplicaMetadata().keySet().stream().forEach(k -> {
+                String v = dataReplicaLocationModel.getReplicaMetadata().get(k);
+                DataReplicaMetaData temp = new DataReplicaMetaData();
+                temp.setReplicaId(dataReplicaLocationModel.getProductUri());
+                temp.setKey(k);
+                temp.setValue(v);
+                dataReplicaMetadata.add(temp);
+            });
+            dataReplicaLocation.setDataReplicaMetaData(dataReplicaMetadata);
+        }
+        return dataReplicaLocation;
+    }
+
+    public static Map<String, String> getResourceMetaData(Collection<DataProductMetaData> dataProductMetaData){
+        HashMap<String, String> metadata = new HashMap<>();
+        if(dataProductMetaData!=null && !dataProductMetaData.isEmpty()) {
+            dataProductMetaData.stream().forEach(m -> metadata.put(m.getKey(),m.getValue()));
+        }
+        return metadata;
+    }
+
+    public static Map<String, String> getReplicaMetaData(Collection<DataReplicaMetaData> dataReplicaMetaData){
+        HashMap<String, String> metadata = new HashMap<>();
+        if(dataReplicaMetaData!=null && !dataReplicaMetaData.isEmpty()) {
+            dataReplicaMetaData.stream().forEach(m -> metadata.put(m.getKey(),m.getValue()));
+        }
+        return metadata;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml b/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
index 54215fa..2d8eb7d 100644
--- a/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
+++ b/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
@@ -95,11 +95,11 @@
     </persistence-unit>
     <persistence-unit name="datacatalog_data">
         <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
-        <class>org.apache.airavata.registry.core.data.catalog.model.DataProduct</class>
-        <class>org.apache.airavata.registry.core.data.catalog.model.DataReplicaLocation</class>
-        <class>org.apache.airavata.registry.core.data.catalog.model.DataProductMetaData</class>
-        <class>org.apache.airavata.registry.core.data.catalog.model.DataReplicaMetaData</class>
-        <class>org.apache.airavata.registry.core.data.catalog.model.Configuration</class>
+        <class>org.apache.airavata.registry.core.replica.catalog.model.DataProduct</class>
+        <class>org.apache.airavata.registry.core.replica.catalog.model.DataReplicaLocation</class>
+        <class>org.apache.airavata.registry.core.replica.catalog.model.DataProductMetaData</class>
+        <class>org.apache.airavata.registry.core.replica.catalog.model.DataReplicaMetaData</class>
+        <class>org.apache.airavata.registry.core.replica.catalog.model.Configuration</class>
         <exclude-unlisted-classes>true</exclude-unlisted-classes>
     </persistence-unit>
     <persistence-unit name="workflowcatalog_data">

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/test/java/org/apache/airavata/data/catalog/DataCatalogTest.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/test/java/org/apache/airavata/data/catalog/DataCatalogTest.java b/modules/registry/registry-core/src/test/java/org/apache/airavata/data/catalog/DataCatalogTest.java
deleted file mode 100644
index 627a6e6..0000000
--- a/modules/registry/registry-core/src/test/java/org/apache/airavata/data/catalog/DataCatalogTest.java
+++ /dev/null
@@ -1,100 +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.data.catalog;
-
-import org.apache.airavata.data.catalog.util.Initialize;
-import org.apache.airavata.model.data.product.*;
-import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
-import org.apache.airavata.registry.cpi.DataCatalog;
-import org.apache.airavata.registry.cpi.DataCatalogException;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.HashMap;
-
-public class DataCatalogTest {
-    private final static Logger logger = LoggerFactory.getLogger(DataCatalogTest.class);
-    private static Initialize initialize;
-    private static DataCatalog datacatalog;
-    private static DataProductModel dataProductModel;
-    private static DataReplicaLocationModel replicaLocationModel;
-
-    @BeforeClass
-    public static void setUp() {
-        try {
-            System.out.println("********** SET UP ************");
-            initialize = new Initialize("datacatalog-derby.sql");
-            initialize.initializeDB();
-            datacatalog = RegistryFactory.getDataCatalog();
-            dataProductModel = new DataProductModel();
-            dataProductModel.setProductName("test-file.txt");
-            dataProductModel.setOwnerName("scnakandala");
-            dataProductModel.setGatewayId("default");
-            dataProductModel.setLogicalPath("/test/test/test");
-            dataProductModel.setDataProductType(DataProductType.FILE);
-            HashMap<String, String> resMetadata = new HashMap<>();
-            resMetadata.put("name", "name");
-            dataProductModel.setProductMetadata(resMetadata);
-
-            replicaLocationModel = new DataReplicaLocationModel();
-            replicaLocationModel.setReplicaName("1-st-replica");
-            replicaLocationModel.setReplicaLocationCategory(ReplicaLocationCategory.COMPUTE_RESOURCE);
-            replicaLocationModel.setReplicaPersistentType(ReplicaPersistentType.PERSISTENT);
-            HashMap<String, String> rMetadata = new HashMap<>();
-            rMetadata.put("name", "name");
-            replicaLocationModel.setReplicaMetadata(rMetadata);
-            dataProductModel.addToReplicaLocations(replicaLocationModel);
-        } catch (DataCatalogException e) {
-            logger.error(e.getMessage(), e);
-        }
-    }
-
-    @AfterClass
-    public static void tearDown() throws Exception {
-        System.out.println("********** TEAR DOWN ************");
-        initialize.stopDerbyServer();
-    }
-
-    @Test
-    public void testDataCatalog(){
-        try {
-            String productUri = datacatalog.registerDataProduct(dataProductModel);
-            org.junit.Assert.assertNotNull(productUri);
-            dataProductModel = datacatalog.getDataProduct(productUri);
-            Assert.assertNotNull(dataProductModel);
-            boolean result = datacatalog.removeDataProduct(productUri);
-            Assert.assertTrue(result);
-            productUri = datacatalog.registerDataProduct(dataProductModel);
-            Assert.assertNotNull(productUri);
-            result = datacatalog.removeDataProduct(productUri);
-            Assert.assertTrue(result);
-            result = datacatalog.removeDataProduct(productUri);
-            Assert.assertFalse(result);
-        } catch (DataCatalogException e) {
-            e.printStackTrace();
-            Assert.fail();
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/test/java/org/apache/airavata/data/catalog/util/Initialize.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/test/java/org/apache/airavata/data/catalog/util/Initialize.java b/modules/registry/registry-core/src/test/java/org/apache/airavata/data/catalog/util/Initialize.java
deleted file mode 100644
index 002e51e..0000000
--- a/modules/registry/registry-core/src/test/java/org/apache/airavata/data/catalog/util/Initialize.java
+++ /dev/null
@@ -1,315 +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.data.catalog.util;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.registry.core.data.catalog.utils.DataCatalogConstants;
-import org.apache.derby.drda.NetworkServerControl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.InetAddress;
-import java.net.URI;
-import java.sql.*;
-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 = "datacatalog-derby.sql";
-    private NetworkServerControl server;
-    private static final String delimiter = ";";
-    private String jdbcUrl = null;
-    private String jdbcDriver = null;
-    private String jdbcUser = null;
-    private String jdbcPassword = null;
-
-    public Initialize(String scriptName) {
-        this.scriptName = scriptName;
-    }
-
-    public static boolean checkStringBufferEndsWith(StringBuffer buffer, String suffix) {
-        if (suffix.length() > buffer.length()) {
-            return false;
-        }
-        // this loop is done on purpose to avoid memory allocation performance
-        // problems on various JDKs
-        // StringBuffer.lastIndexOf() was introduced in jdk 1.4 and
-        // implementation is ok though does allocation/copying
-        // StringBuffer.toString().endsWith() does massive memory
-        // allocation/copying on JDK 1.5
-        // See http://issues.apache.org/bugzilla/show_bug.cgi?id=37169
-        int endIndex = suffix.length() - 1;
-        int bufferIndex = buffer.length() - 1;
-        while (endIndex >= 0) {
-            if (buffer.charAt(bufferIndex) != suffix.charAt(endIndex)) {
-                return false;
-            }
-            bufferIndex--;
-            endIndex--;
-        }
-        return true;
-    }
-
-    private static boolean isServerStarted(NetworkServerControl server, int ntries)
-    {
-        for (int i = 1; i <= ntries; i ++)
-        {
-            try {
-                Thread.sleep(500);
-                server.ping();
-                return true;
-            }
-            catch (Exception e) {
-                if (i == ntries)
-                    return false;
-            }
-        }
-        return false;
-    }
-
-    public void initializeDB() {
-        try{
-            jdbcDriver = ServerSettings.getSetting("datacatalog.jdbc.driver");
-            jdbcUrl = ServerSettings.getSetting("datacatalog.jdbc.url");
-            jdbcUser = ServerSettings.getSetting("datacatalog.jdbc.user");
-            jdbcPassword = ServerSettings.getSetting("datacatalog.jdbc.password");
-            jdbcUrl = jdbcUrl + "?" + "user=" + jdbcUser + "&" + "password=" + jdbcPassword;
-        } catch (ApplicationSettingsException e) {
-            logger.error("Unable to read properties", e);
-        }
-
-        startDerbyInServerMode();
-        if(!isServerStarted(server, 20)){
-           throw new RuntimeException("Derby server could not started within five seconds...");
-        }
-        Connection conn = null;
-        try {
-            Class.forName(jdbcDriver).newInstance();
-            conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
-            if (!isDatabaseStructureCreated(DataCatalogConstants.CONFIGURATION, conn)) {
-                executeSQLScript(conn);
-                logger.info("New Database created for Data Catalog !!!");
-            } else {
-                logger.debug("Database already created for Data Catalog!");
-            }
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new RuntimeException("Database failure", e);
-        } finally {
-            try {
-                if (conn != null){
-                    if (!conn.getAutoCommit()) {
-                        conn.commit();
-                    }
-                    conn.close();
-                }
-            } catch (SQLException e) {
-                logger.error(e.getMessage(), e);
-            }
-        }
-    }
-
-    public static boolean isDatabaseStructureCreated(String tableName, Connection conn) {
-        try {
-            System.out.println("Running a query to test the database tables existence.");
-            // check whether the tables are already created with a query
-            Statement statement = null;
-            try {
-                statement = conn.createStatement();
-                ResultSet rs = statement.executeQuery("select * from " + tableName);
-                if (rs != null) {
-                    rs.close();
-                }
-            } finally {
-                try {
-                    if (statement != null) {
-                        statement.close();
-                    }
-                } catch (SQLException e) {
-                    return false;
-                }
-            }
-        } catch (SQLException e) {
-            return false;
-        }
-
-        return true;
-    }
-
-    private void executeSQLScript(Connection conn) throws Exception {
-        StringBuffer sql = new StringBuffer();
-        BufferedReader reader = null;
-        try{
-
-        InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(scriptName);
-        reader = new BufferedReader(new InputStreamReader(inputStream));
-        String line;
-        while ((line = reader.readLine()) != null) {
-            line = line.trim();
-            if (line.startsWith("//")) {
-                continue;
-            }
-            if (line.startsWith("--")) {
-                continue;
-            }
-            StringTokenizer st = new StringTokenizer(line);
-            if (st.hasMoreTokens()) {
-                String token = st.nextToken();
-                if ("REM".equalsIgnoreCase(token)) {
-                    continue;
-                }
-            }
-            sql.append(" ").append(line);
-
-            // SQL defines "--" as a comment to EOL
-            // and in Oracle it may contain a hint
-            // so we cannot just remove it, instead we must end it
-            if (line.indexOf("--") >= 0) {
-                sql.append("\n");
-            }
-            if ((checkStringBufferEndsWith(sql, delimiter))) {
-                executeSQL(sql.substring(0, sql.length() - delimiter.length()), conn);
-                sql.replace(0, sql.length(), "");
-            }
-        }
-        // Catch any statements not followed by ;
-        if (sql.length() > 0) {
-            executeSQL(sql.toString(), conn);
-        }
-        }catch (IOException e){
-            logger.error("Error occurred while executing SQL script for creating Airavata Data Catalog database", e);
-            throw new Exception("Error occurred while executing SQL script for creating Airavata Data Catalog database", e);
-        }finally {
-            if (reader != null) {
-                reader.close();
-            }
-        }
-    }
-
-    private static void executeSQL(String sql, Connection conn) throws Exception {
-        // Check and ignore empty statements
-        if ("".equals(sql.trim())) {
-            return;
-        }
-
-        Statement statement = null;
-        try {
-            logger.debug("SQL : " + sql);
-
-            boolean ret;
-            int updateCount = 0, updateCountTotal = 0;
-            statement = conn.createStatement();
-            ret = statement.execute(sql);
-            updateCount = statement.getUpdateCount();
-            do {
-                if (!ret) {
-                    if (updateCount != -1) {
-                        updateCountTotal += updateCount;
-                    }
-                }
-                ret = statement.getMoreResults();
-                if (ret) {
-                    updateCount = statement.getUpdateCount();
-                }
-            } while (ret);
-
-            logger.debug(sql + " : " + updateCountTotal + " rows affected");
-
-            SQLWarning warning = conn.getWarnings();
-            while (warning != null) {
-                logger.warn(warning + " sql warning");
-                warning = warning.getNextWarning();
-            }
-            conn.clearWarnings();
-        } catch (SQLException e) {
-            if (e.getSQLState().equals("X0Y32")) {
-                // eliminating the table already exception for the derby
-                // database
-                logger.info("Table Already Exists", e);
-            } else {
-                throw new Exception("Error occurred while executing : " + sql, e);
-            }
-        } finally {
-            if (statement != null) {
-                try {
-                    statement.close();
-                } catch (SQLException e) {
-                    logger.error("Error occurred while closing result set.", e);
-                }
-            }
-        }
-    }
-
-    private void startDerbyInServerMode() {
-        try {
-            System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true");
-            server = new NetworkServerControl(InetAddress.getByName("0.0.0.0"),
-                    20000,
-                    jdbcUser, jdbcPassword);
-            java.io.PrintWriter consoleWriter = new java.io.PrintWriter(System.out, true);
-            server.start(consoleWriter);
-        } catch (IOException e) {
-            logger.error("Unable to start Apache derby in the server mode! Check whether " +
-                    "specified port is available");
-        } catch (Exception e) {
-            logger.error("Unable to start Apache derby in the server mode! Check whether " +
-                    "specified port is available");
-        }
-
-    }
-
-    public static int getPort(String jdbcURL){
-        try{
-            String cleanURI = jdbcURL.substring(5);
-            URI uri = URI.create(cleanURI);
-            return uri.getPort();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            return -1;
-        }
-    }
-
-    private void startDerbyInEmbeddedMode(){
-        try {
-            Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
-            DriverManager.getConnection("jdbc:derby:memory:unit-testing-jpa;create=true").close();
-        } catch (ClassNotFoundException e) {
-            logger.error(e.getMessage(), e);
-        } catch (SQLException e) {
-            logger.error(e.getMessage(), e);
-        }
-    }
-
-    public void stopDerbyServer() {
-        try {
-            server.shutdown();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/ReplicaCatalogTest.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/ReplicaCatalogTest.java b/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/ReplicaCatalogTest.java
new file mode 100644
index 0000000..f787ee4
--- /dev/null
+++ b/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/ReplicaCatalogTest.java
@@ -0,0 +1,100 @@
+/*
+ *
+ * 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.replica.catalog;
+
+import org.apache.airavata.replica.catalog.util.Initialize;
+import org.apache.airavata.model.data.replica.*;
+import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
+import org.apache.airavata.registry.cpi.ReplicaCatalog;
+import org.apache.airavata.registry.cpi.ReplicaCatalogException;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashMap;
+
+public class ReplicaCatalogTest {
+    private final static Logger logger = LoggerFactory.getLogger(ReplicaCatalogTest.class);
+    private static Initialize initialize;
+    private static ReplicaCatalog datacatalog;
+    private static DataProductModel dataProductModel;
+    private static DataReplicaLocationModel replicaLocationModel;
+
+    @BeforeClass
+    public static void setUp() {
+        try {
+            System.out.println("********** SET UP ************");
+            initialize = new Initialize("datacatalog-derby.sql");
+            initialize.initializeDB();
+            datacatalog = RegistryFactory.getReplicaCatalog();
+            dataProductModel = new DataProductModel();
+            dataProductModel.setProductName("test-file.txt");
+            dataProductModel.setOwnerName("scnakandala");
+            dataProductModel.setGatewayId("default");
+            dataProductModel.setLogicalPath("/test/test/test");
+            dataProductModel.setDataProductType(DataProductType.FILE);
+            HashMap<String, String> resMetadata = new HashMap<>();
+            resMetadata.put("name", "name");
+            dataProductModel.setProductMetadata(resMetadata);
+
+            replicaLocationModel = new DataReplicaLocationModel();
+            replicaLocationModel.setReplicaName("1-st-replica");
+            replicaLocationModel.setReplicaLocationCategory(ReplicaLocationCategory.COMPUTE_RESOURCE);
+            replicaLocationModel.setReplicaPersistentType(ReplicaPersistentType.PERSISTENT);
+            HashMap<String, String> rMetadata = new HashMap<>();
+            rMetadata.put("name", "name");
+            replicaLocationModel.setReplicaMetadata(rMetadata);
+            dataProductModel.addToReplicaLocations(replicaLocationModel);
+        } catch (ReplicaCatalogException e) {
+            logger.error(e.getMessage(), e);
+        }
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+        System.out.println("********** TEAR DOWN ************");
+        initialize.stopDerbyServer();
+    }
+
+    @Test
+    public void testReplicaCatalog(){
+        try {
+            String productUri = datacatalog.registerDataProduct(dataProductModel);
+            org.junit.Assert.assertNotNull(productUri);
+            dataProductModel = datacatalog.getDataProduct(productUri);
+            Assert.assertNotNull(dataProductModel);
+            boolean result = datacatalog.removeDataProduct(productUri);
+            Assert.assertTrue(result);
+            productUri = datacatalog.registerDataProduct(dataProductModel);
+            Assert.assertNotNull(productUri);
+            result = datacatalog.removeDataProduct(productUri);
+            Assert.assertTrue(result);
+            result = datacatalog.removeDataProduct(productUri);
+            Assert.assertFalse(result);
+        } catch (ReplicaCatalogException e) {
+            e.printStackTrace();
+            Assert.fail();
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/util/Initialize.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/util/Initialize.java b/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/util/Initialize.java
new file mode 100644
index 0000000..989a775
--- /dev/null
+++ b/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/util/Initialize.java
@@ -0,0 +1,315 @@
+/*
+ *
+ * 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.replica.catalog.util;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.ServerSettings;
+import org.apache.airavata.registry.core.replica.catalog.utils.ReplicaCatalogConstants;
+import org.apache.derby.drda.NetworkServerControl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.InetAddress;
+import java.net.URI;
+import java.sql.*;
+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 = "datacatalog-derby.sql";
+    private NetworkServerControl server;
+    private static final String delimiter = ";";
+    private String jdbcUrl = null;
+    private String jdbcDriver = null;
+    private String jdbcUser = null;
+    private String jdbcPassword = null;
+
+    public Initialize(String scriptName) {
+        this.scriptName = scriptName;
+    }
+
+    public static boolean checkStringBufferEndsWith(StringBuffer buffer, String suffix) {
+        if (suffix.length() > buffer.length()) {
+            return false;
+        }
+        // this loop is done on purpose to avoid memory allocation performance
+        // problems on various JDKs
+        // StringBuffer.lastIndexOf() was introduced in jdk 1.4 and
+        // implementation is ok though does allocation/copying
+        // StringBuffer.toString().endsWith() does massive memory
+        // allocation/copying on JDK 1.5
+        // See http://issues.apache.org/bugzilla/show_bug.cgi?id=37169
+        int endIndex = suffix.length() - 1;
+        int bufferIndex = buffer.length() - 1;
+        while (endIndex >= 0) {
+            if (buffer.charAt(bufferIndex) != suffix.charAt(endIndex)) {
+                return false;
+            }
+            bufferIndex--;
+            endIndex--;
+        }
+        return true;
+    }
+
+    private static boolean isServerStarted(NetworkServerControl server, int ntries)
+    {
+        for (int i = 1; i <= ntries; i ++)
+        {
+            try {
+                Thread.sleep(500);
+                server.ping();
+                return true;
+            }
+            catch (Exception e) {
+                if (i == ntries)
+                    return false;
+            }
+        }
+        return false;
+    }
+
+    public void initializeDB() {
+        try{
+            jdbcDriver = ServerSettings.getSetting("datacatalog.jdbc.driver");
+            jdbcUrl = ServerSettings.getSetting("datacatalog.jdbc.url");
+            jdbcUser = ServerSettings.getSetting("datacatalog.jdbc.user");
+            jdbcPassword = ServerSettings.getSetting("datacatalog.jdbc.password");
+            jdbcUrl = jdbcUrl + "?" + "user=" + jdbcUser + "&" + "password=" + jdbcPassword;
+        } catch (ApplicationSettingsException e) {
+            logger.error("Unable to read properties", e);
+        }
+
+        startDerbyInServerMode();
+        if(!isServerStarted(server, 20)){
+           throw new RuntimeException("Derby server could not started within five seconds...");
+        }
+        Connection conn = null;
+        try {
+            Class.forName(jdbcDriver).newInstance();
+            conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
+            if (!isDatabaseStructureCreated(ReplicaCatalogConstants.CONFIGURATION, conn)) {
+                executeSQLScript(conn);
+                logger.info("New Database created for Data Catalog !!!");
+            } else {
+                logger.debug("Database already created for Data Catalog!");
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new RuntimeException("Database failure", e);
+        } finally {
+            try {
+                if (conn != null){
+                    if (!conn.getAutoCommit()) {
+                        conn.commit();
+                    }
+                    conn.close();
+                }
+            } catch (SQLException e) {
+                logger.error(e.getMessage(), e);
+            }
+        }
+    }
+
+    public static boolean isDatabaseStructureCreated(String tableName, Connection conn) {
+        try {
+            System.out.println("Running a query to test the database tables existence.");
+            // check whether the tables are already created with a query
+            Statement statement = null;
+            try {
+                statement = conn.createStatement();
+                ResultSet rs = statement.executeQuery("select * from " + tableName);
+                if (rs != null) {
+                    rs.close();
+                }
+            } finally {
+                try {
+                    if (statement != null) {
+                        statement.close();
+                    }
+                } catch (SQLException e) {
+                    return false;
+                }
+            }
+        } catch (SQLException e) {
+            return false;
+        }
+
+        return true;
+    }
+
+    private void executeSQLScript(Connection conn) throws Exception {
+        StringBuffer sql = new StringBuffer();
+        BufferedReader reader = null;
+        try{
+
+        InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(scriptName);
+        reader = new BufferedReader(new InputStreamReader(inputStream));
+        String line;
+        while ((line = reader.readLine()) != null) {
+            line = line.trim();
+            if (line.startsWith("//")) {
+                continue;
+            }
+            if (line.startsWith("--")) {
+                continue;
+            }
+            StringTokenizer st = new StringTokenizer(line);
+            if (st.hasMoreTokens()) {
+                String token = st.nextToken();
+                if ("REM".equalsIgnoreCase(token)) {
+                    continue;
+                }
+            }
+            sql.append(" ").append(line);
+
+            // SQL defines "--" as a comment to EOL
+            // and in Oracle it may contain a hint
+            // so we cannot just remove it, instead we must end it
+            if (line.indexOf("--") >= 0) {
+                sql.append("\n");
+            }
+            if ((checkStringBufferEndsWith(sql, delimiter))) {
+                executeSQL(sql.substring(0, sql.length() - delimiter.length()), conn);
+                sql.replace(0, sql.length(), "");
+            }
+        }
+        // Catch any statements not followed by ;
+        if (sql.length() > 0) {
+            executeSQL(sql.toString(), conn);
+        }
+        }catch (IOException e){
+            logger.error("Error occurred while executing SQL script for creating Airavata Data Catalog database", e);
+            throw new Exception("Error occurred while executing SQL script for creating Airavata Data Catalog database", e);
+        }finally {
+            if (reader != null) {
+                reader.close();
+            }
+        }
+    }
+
+    private static void executeSQL(String sql, Connection conn) throws Exception {
+        // Check and ignore empty statements
+        if ("".equals(sql.trim())) {
+            return;
+        }
+
+        Statement statement = null;
+        try {
+            logger.debug("SQL : " + sql);
+
+            boolean ret;
+            int updateCount = 0, updateCountTotal = 0;
+            statement = conn.createStatement();
+            ret = statement.execute(sql);
+            updateCount = statement.getUpdateCount();
+            do {
+                if (!ret) {
+                    if (updateCount != -1) {
+                        updateCountTotal += updateCount;
+                    }
+                }
+                ret = statement.getMoreResults();
+                if (ret) {
+                    updateCount = statement.getUpdateCount();
+                }
+            } while (ret);
+
+            logger.debug(sql + " : " + updateCountTotal + " rows affected");
+
+            SQLWarning warning = conn.getWarnings();
+            while (warning != null) {
+                logger.warn(warning + " sql warning");
+                warning = warning.getNextWarning();
+            }
+            conn.clearWarnings();
+        } catch (SQLException e) {
+            if (e.getSQLState().equals("X0Y32")) {
+                // eliminating the table already exception for the derby
+                // database
+                logger.info("Table Already Exists", e);
+            } else {
+                throw new Exception("Error occurred while executing : " + sql, e);
+            }
+        } finally {
+            if (statement != null) {
+                try {
+                    statement.close();
+                } catch (SQLException e) {
+                    logger.error("Error occurred while closing result set.", e);
+                }
+            }
+        }
+    }
+
+    private void startDerbyInServerMode() {
+        try {
+            System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true");
+            server = new NetworkServerControl(InetAddress.getByName("0.0.0.0"),
+                    20000,
+                    jdbcUser, jdbcPassword);
+            java.io.PrintWriter consoleWriter = new java.io.PrintWriter(System.out, true);
+            server.start(consoleWriter);
+        } catch (IOException e) {
+            logger.error("Unable to start Apache derby in the server mode! Check whether " +
+                    "specified port is available");
+        } catch (Exception e) {
+            logger.error("Unable to start Apache derby in the server mode! Check whether " +
+                    "specified port is available");
+        }
+
+    }
+
+    public static int getPort(String jdbcURL){
+        try{
+            String cleanURI = jdbcURL.substring(5);
+            URI uri = URI.create(cleanURI);
+            return uri.getPort();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            return -1;
+        }
+    }
+
+    private void startDerbyInEmbeddedMode(){
+        try {
+            Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
+            DriverManager.getConnection("jdbc:derby:memory:unit-testing-jpa;create=true").close();
+        } catch (ClassNotFoundException e) {
+            logger.error(e.getMessage(), e);
+        } catch (SQLException e) {
+            logger.error(e.getMessage(), e);
+        }
+    }
+
+    public void stopDerbyServer() {
+        try {
+            server.shutdown();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataCatalog.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataCatalog.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataCatalog.java
deleted file mode 100644
index 42eff2a..0000000
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataCatalog.java
+++ /dev/null
@@ -1,50 +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.cpi;
-
-
-import org.apache.airavata.model.data.product.DataProductModel;
-import org.apache.airavata.model.data.product.DataReplicaLocationModel;
-
-import java.util.List;
-
-public interface DataCatalog {
-    String schema = "airavata-dp";
-
-    String registerDataProduct(DataProductModel product) throws DataCatalogException;
-
-    boolean removeDataProduct(String productUri) throws DataCatalogException;
-
-    boolean updateDataProduct(DataProductModel product) throws DataCatalogException;
-
-    DataProductModel getDataProduct(String productUri) throws DataCatalogException;
-
-    boolean isExists(String productUri) throws DataCatalogException;
-
-    String registerReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel) throws DataCatalogException;
-
-    boolean removeReplicaLocation(String replicaId) throws DataCatalogException;
-
-    boolean updateReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel) throws DataCatalogException;
-
-    DataReplicaLocationModel getReplicaLocation(String replicaId) throws DataCatalogException;
-
-    List<DataReplicaLocationModel> getAllReplicaLocations(String productUri) throws DataCatalogException;
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataCatalogException.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataCatalogException.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataCatalogException.java
deleted file mode 100644
index 9bc4da9..0000000
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataCatalogException.java
+++ /dev/null
@@ -1,35 +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.cpi;
-
-public class DataCatalogException extends Exception{
-
-    public DataCatalogException(Throwable e) {
-        super(e);
-    }
-
-    public DataCatalogException(String message) {
-        super(message, null);
-    }
-
-    public DataCatalogException(String message, Throwable e) {
-        super(message, e);
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/Registry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/Registry.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/Registry.java
index e51389c..60531c8 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/Registry.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/Registry.java
@@ -25,5 +25,5 @@ public interface Registry {
     public ExperimentCatalog getExperimentCatalog() throws RegistryException;
     public ExperimentCatalog getExperimentCatalog(String gatewayId, String username, String password) throws RegistryException;
     public AppCatalog getAppCatalog() throws RegistryException;
-    public DataCatalog getDataCatalog() throws RegistryException;
+    public ReplicaCatalog getReplicaCatalog() throws RegistryException;
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalog.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalog.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalog.java
new file mode 100644
index 0000000..1897356
--- /dev/null
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalog.java
@@ -0,0 +1,50 @@
+/**
+ * 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.cpi;
+
+
+import org.apache.airavata.model.data.replica.DataProductModel;
+import org.apache.airavata.model.data.replica.DataReplicaLocationModel;
+
+import java.util.List;
+
+public interface ReplicaCatalog {
+    String schema = "airavata-dp";
+
+    String registerDataProduct(DataProductModel product) throws ReplicaCatalogException;
+
+    boolean removeDataProduct(String productUri) throws ReplicaCatalogException;
+
+    boolean updateDataProduct(DataProductModel product) throws ReplicaCatalogException;
+
+    DataProductModel getDataProduct(String productUri) throws ReplicaCatalogException;
+
+    boolean isExists(String productUri) throws ReplicaCatalogException;
+
+    String registerReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel) throws ReplicaCatalogException;
+
+    boolean removeReplicaLocation(String replicaId) throws ReplicaCatalogException;
+
+    boolean updateReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel) throws ReplicaCatalogException;
+
+    DataReplicaLocationModel getReplicaLocation(String replicaId) throws ReplicaCatalogException;
+
+    List<DataReplicaLocationModel> getAllReplicaLocations(String productUri) throws ReplicaCatalogException;
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalogException.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalogException.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalogException.java
new file mode 100644
index 0000000..f0eb5cd
--- /dev/null
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalogException.java
@@ -0,0 +1,35 @@
+/**
+ * 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.cpi;
+
+public class ReplicaCatalogException extends Exception{
+
+    public ReplicaCatalogException(Throwable e) {
+        super(e);
+    }
+
+    public ReplicaCatalogException(String message) {
+        super(message, null);
+    }
+
+    public ReplicaCatalogException(String message, Throwable e) {
+        super(message, e);
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
index 3835c8e..5fcdb88 100644
--- a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
+++ b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
@@ -40,7 +40,7 @@ include "../data-models/resource-catalog-models/storage_resource_model.thrift"
 include "../data-models/resource-catalog-models/gateway_resource_profile_model.thrift"
 include "../data-models/resource-catalog-models/data_movement_models.thrift"
 include "../data-models/workflow-models/workflow_data_model.thrift"
-include "../data-models/data-catalog-models/data_catalog_models.thrift"
+include "../data-models/replica-catalog-models/replica_catalog_models.thrift"
 
 namespace java org.apache.airavata.api
 namespace php Airavata.API
@@ -2962,21 +2962,21 @@ service Airavata {
 
 
  /**
- * API Methods related to data catalog
+ * API Methods related to replica catalog
  **/
- string registerDataProduct(1: required security_model.AuthzToken authzToken, 2: required  data_catalog_models.DataProductModel dataProductModel)
+ string registerDataProduct(1: required security_model.AuthzToken authzToken, 2: required  replica_catalog_models.DataProductModel dataProductModel)
             throws (1: airavata_errors.InvalidRequestException ire,
                               2: airavata_errors.AiravataClientException ace,
                               3: airavata_errors.AiravataSystemException ase,
                               4: airavata_errors.AuthorizationException ae)
 
- data_catalog_models.DataProductModel getDataProduct(1: required security_model.AuthzToken authzToken, 2: required  string dataProductUri)
+ replica_catalog_models.DataProductModel getDataProduct(1: required security_model.AuthzToken authzToken, 2: required  string dataProductUri)
              throws (1: airavata_errors.InvalidRequestException ire,
                                2: airavata_errors.AiravataClientException ace,
                                3: airavata_errors.AiravataSystemException ase,
                                4: airavata_errors.AuthorizationException ae)
 
- string registerReplicaLocation(1: required security_model.AuthzToken authzToken, 2: required  data_catalog_models.DataReplicaLocationModel replicaLocationModel)
+ string registerReplicaLocation(1: required security_model.AuthzToken authzToken, 2: required  replica_catalog_models.DataReplicaLocationModel replicaLocationModel)
               throws (1: airavata_errors.InvalidRequestException ire,
                                 2: airavata_errors.AiravataClientException ace,
                                 3: airavata_errors.AiravataSystemException ase,

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/thrift-interface-descriptions/data-models/airavata_data_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/airavata_data_models.thrift b/thrift-interface-descriptions/data-models/airavata_data_models.thrift
index 12ac253..8d49b1a 100644
--- a/thrift-interface-descriptions/data-models/airavata_data_models.thrift
+++ b/thrift-interface-descriptions/data-models/airavata_data_models.thrift
@@ -30,7 +30,7 @@ include "experiment-catalog-models/process_model.thrift"
 include "experiment-catalog-models/scheduling_model.thrift"
 include "experiment-catalog-models/status_models.thrift"
 include "resource-catalog-models/data_movement_models.thrift"
-include "data-catalog-models/data_catalog_models.thrift"
+include "replica-catalog-models/replica_catalog_models.thrift"
 
 namespace java org.apache.airavata.model
 namespace php Airavata.Model

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/thrift-interface-descriptions/data-models/data-catalog-models/data_catalog_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/data-catalog-models/data_catalog_models.thrift b/thrift-interface-descriptions/data-models/data-catalog-models/data_catalog_models.thrift
deleted file mode 100644
index 9876b20..0000000
--- a/thrift-interface-descriptions/data-models/data-catalog-models/data_catalog_models.thrift
+++ /dev/null
@@ -1,73 +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.
- *
- */
-  namespace java org.apache.airavata.model.data.product
-  namespace php Airavata.Model.Data.Product
-  namespace cpp apache.airavata.model.data.product
-  namespace py apache.airavata.model.data.product
-
-enum ReplicaLocationCategory {
-    GATEWAY_DATA_STORE,
-    COMPUTE_RESOURCE,
-    LONG_TERM_STORAGE_RESOURCE,
-    OTHER
-}
-
-enum ReplicaPersistentType {
-    TRANSIENT,
-    PERSISTENT
-}
-
-enum DataProductType {
-    DIR,
-    FILE,
-    COLLECTION,
-}
-
-struct DataProductModel {
-    1: optional string productUri,
-    2: optional string gatewayId,
-    3: optional string parentProductUri,
-    4: optional string logicalPath,
-    5: optional string productName,
-    6: optional string productDescription,
-    7: optional string ownerName,
-    8: optional DataProductType dataProductType,
-    9: optional i32 productSize,
-    10: optional i64 creationTime,
-    11: optional i64 lastModifiedTime,
-    12: optional map<string, string> productMetadata,
-    13: optional list<DataReplicaLocationModel> replicaLocations,
-    14: optional list<DataProductModel> childProducts
-}
-
-struct DataReplicaLocationModel {
-    1: optional string replicaId,
-    2: optional string productUri,
-    3: optional string replicaName,
-    4: optional string replicaDescription,
-    5: optional i64 creationTime,
-    6: optional i64 lastModifiedTime,
-    7: optional i64 validUntilTime,
-    8: optional ReplicaLocationCategory replicaLocationCategory,
-    9: optional ReplicaPersistentType replicaPersistentType,
-    10: optional string storageResourceId,
-    11: optional string filePath,
-    12: optional map<string, string> replicaMetadata
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/thrift-interface-descriptions/data-models/replica-catalog-models/replica_catalog_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/replica-catalog-models/replica_catalog_models.thrift b/thrift-interface-descriptions/data-models/replica-catalog-models/replica_catalog_models.thrift
new file mode 100644
index 0000000..424f532
--- /dev/null
+++ b/thrift-interface-descriptions/data-models/replica-catalog-models/replica_catalog_models.thrift
@@ -0,0 +1,73 @@
+/*
+ * 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.
+ *
+ */
+  namespace java org.apache.airavata.model.data.replica
+  namespace php Airavata.Model.Data.Replica
+  namespace cpp apache.airavata.model.data.replica
+  namespace py apache.airavata.model.data.replica
+
+enum ReplicaLocationCategory {
+    GATEWAY_DATA_STORE,
+    COMPUTE_RESOURCE,
+    LONG_TERM_STORAGE_RESOURCE,
+    OTHER
+}
+
+enum ReplicaPersistentType {
+    TRANSIENT,
+    PERSISTENT
+}
+
+enum DataProductType {
+    DIR,
+    FILE,
+    COLLECTION,
+}
+
+struct DataProductModel {
+    1: optional string productUri,
+    2: optional string gatewayId,
+    3: optional string parentProductUri,
+    4: optional string logicalPath,
+    5: optional string productName,
+    6: optional string productDescription,
+    7: optional string ownerName,
+    8: optional DataProductType dataProductType,
+    9: optional i32 productSize,
+    10: optional i64 creationTime,
+    11: optional i64 lastModifiedTime,
+    12: optional map<string, string> productMetadata,
+    13: optional list<DataReplicaLocationModel> replicaLocations,
+    14: optional list<DataProductModel> childProducts
+}
+
+struct DataReplicaLocationModel {
+    1: optional string replicaId,
+    2: optional string productUri,
+    3: optional string replicaName,
+    4: optional string replicaDescription,
+    5: optional i64 creationTime,
+    6: optional i64 lastModifiedTime,
+    7: optional i64 validUntilTime,
+    8: optional ReplicaLocationCategory replicaLocationCategory,
+    9: optional ReplicaPersistentType replicaPersistentType,
+    10: optional string storageResourceId,
+    11: optional string filePath,
+    12: optional map<string, string> replicaMetadata
+}


[07/10] airavata git commit: renaming data-catalog to replica catalog

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataProductModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataProductModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataProductModel.java
deleted file mode 100644
index cca01de..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataProductModel.java
+++ /dev/null
@@ -1,1943 +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.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.9.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.data.product;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
-public class DataProductModel implements org.apache.thrift.TBase<DataProductModel, DataProductModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataProductModel> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataProductModel");
-
-  private static final org.apache.thrift.protocol.TField PRODUCT_URI_FIELD_DESC = new org.apache.thrift.protocol.TField("productUri", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField PARENT_PRODUCT_URI_FIELD_DESC = new org.apache.thrift.protocol.TField("parentProductUri", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField LOGICAL_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("logicalPath", org.apache.thrift.protocol.TType.STRING, (short)4);
-  private static final org.apache.thrift.protocol.TField PRODUCT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("productName", org.apache.thrift.protocol.TType.STRING, (short)5);
-  private static final org.apache.thrift.protocol.TField PRODUCT_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("productDescription", org.apache.thrift.protocol.TType.STRING, (short)6);
-  private static final org.apache.thrift.protocol.TField OWNER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("ownerName", org.apache.thrift.protocol.TType.STRING, (short)7);
-  private static final org.apache.thrift.protocol.TField DATA_PRODUCT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("dataProductType", org.apache.thrift.protocol.TType.I32, (short)8);
-  private static final org.apache.thrift.protocol.TField PRODUCT_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("productSize", org.apache.thrift.protocol.TType.I32, (short)9);
-  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)10);
-  private static final org.apache.thrift.protocol.TField LAST_MODIFIED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastModifiedTime", org.apache.thrift.protocol.TType.I64, (short)11);
-  private static final org.apache.thrift.protocol.TField PRODUCT_METADATA_FIELD_DESC = new org.apache.thrift.protocol.TField("productMetadata", org.apache.thrift.protocol.TType.MAP, (short)12);
-  private static final org.apache.thrift.protocol.TField REPLICA_LOCATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaLocations", org.apache.thrift.protocol.TType.LIST, (short)13);
-  private static final org.apache.thrift.protocol.TField CHILD_PRODUCTS_FIELD_DESC = new org.apache.thrift.protocol.TField("childProducts", org.apache.thrift.protocol.TType.LIST, (short)14);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new DataProductModelStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new DataProductModelTupleSchemeFactory());
-  }
-
-  private String productUri; // optional
-  private String gatewayId; // optional
-  private String parentProductUri; // optional
-  private String logicalPath; // optional
-  private String productName; // optional
-  private String productDescription; // optional
-  private String ownerName; // optional
-  private DataProductType dataProductType; // optional
-  private int productSize; // optional
-  private long creationTime; // optional
-  private long lastModifiedTime; // optional
-  private Map<String,String> productMetadata; // optional
-  private List<DataReplicaLocationModel> replicaLocations; // optional
-  private List<DataProductModel> childProducts; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    PRODUCT_URI((short)1, "productUri"),
-    GATEWAY_ID((short)2, "gatewayId"),
-    PARENT_PRODUCT_URI((short)3, "parentProductUri"),
-    LOGICAL_PATH((short)4, "logicalPath"),
-    PRODUCT_NAME((short)5, "productName"),
-    PRODUCT_DESCRIPTION((short)6, "productDescription"),
-    OWNER_NAME((short)7, "ownerName"),
-    /**
-     * 
-     * @see DataProductType
-     */
-    DATA_PRODUCT_TYPE((short)8, "dataProductType"),
-    PRODUCT_SIZE((short)9, "productSize"),
-    CREATION_TIME((short)10, "creationTime"),
-    LAST_MODIFIED_TIME((short)11, "lastModifiedTime"),
-    PRODUCT_METADATA((short)12, "productMetadata"),
-    REPLICA_LOCATIONS((short)13, "replicaLocations"),
-    CHILD_PRODUCTS((short)14, "childProducts");
-
-    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
-
-    static {
-      for (_Fields field : EnumSet.allOf(_Fields.class)) {
-        byName.put(field.getFieldName(), field);
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, or null if its not found.
-     */
-    public static _Fields findByThriftId(int fieldId) {
-      switch(fieldId) {
-        case 1: // PRODUCT_URI
-          return PRODUCT_URI;
-        case 2: // GATEWAY_ID
-          return GATEWAY_ID;
-        case 3: // PARENT_PRODUCT_URI
-          return PARENT_PRODUCT_URI;
-        case 4: // LOGICAL_PATH
-          return LOGICAL_PATH;
-        case 5: // PRODUCT_NAME
-          return PRODUCT_NAME;
-        case 6: // PRODUCT_DESCRIPTION
-          return PRODUCT_DESCRIPTION;
-        case 7: // OWNER_NAME
-          return OWNER_NAME;
-        case 8: // DATA_PRODUCT_TYPE
-          return DATA_PRODUCT_TYPE;
-        case 9: // PRODUCT_SIZE
-          return PRODUCT_SIZE;
-        case 10: // CREATION_TIME
-          return CREATION_TIME;
-        case 11: // LAST_MODIFIED_TIME
-          return LAST_MODIFIED_TIME;
-        case 12: // PRODUCT_METADATA
-          return PRODUCT_METADATA;
-        case 13: // REPLICA_LOCATIONS
-          return REPLICA_LOCATIONS;
-        case 14: // CHILD_PRODUCTS
-          return CHILD_PRODUCTS;
-        default:
-          return null;
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, throwing an exception
-     * if it is not found.
-     */
-    public static _Fields findByThriftIdOrThrow(int fieldId) {
-      _Fields fields = findByThriftId(fieldId);
-      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
-      return fields;
-    }
-
-    /**
-     * Find the _Fields constant that matches name, or null if its not found.
-     */
-    public static _Fields findByName(String name) {
-      return byName.get(name);
-    }
-
-    private final short _thriftId;
-    private final String _fieldName;
-
-    _Fields(short thriftId, String fieldName) {
-      _thriftId = thriftId;
-      _fieldName = fieldName;
-    }
-
-    public short getThriftFieldId() {
-      return _thriftId;
-    }
-
-    public String getFieldName() {
-      return _fieldName;
-    }
-  }
-
-  // isset id assignments
-  private static final int __PRODUCTSIZE_ISSET_ID = 0;
-  private static final int __CREATIONTIME_ISSET_ID = 1;
-  private static final int __LASTMODIFIEDTIME_ISSET_ID = 2;
-  private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.PRODUCT_URI,_Fields.GATEWAY_ID,_Fields.PARENT_PRODUCT_URI,_Fields.LOGICAL_PATH,_Fields.PRODUCT_NAME,_Fields.PRODUCT_DESCRIPTION,_Fields.OWNER_NAME,_Fields.DATA_PRODUCT_TYPE,_Fields.PRODUCT_SIZE,_Fields.CREATION_TIME,_Fields.LAST_MODIFIED_TIME,_Fields.PRODUCT_METADATA,_Fields.REPLICA_LOCATIONS,_Fields.CHILD_PRODUCTS};
-  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
-  static {
-    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.PRODUCT_URI, new org.apache.thrift.meta_data.FieldMetaData("productUri", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.PARENT_PRODUCT_URI, new org.apache.thrift.meta_data.FieldMetaData("parentProductUri", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.LOGICAL_PATH, new org.apache.thrift.meta_data.FieldMetaData("logicalPath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.PRODUCT_NAME, new org.apache.thrift.meta_data.FieldMetaData("productName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.PRODUCT_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("productDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.OWNER_NAME, new org.apache.thrift.meta_data.FieldMetaData("ownerName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.DATA_PRODUCT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("dataProductType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DataProductType.class)));
-    tmpMap.put(_Fields.PRODUCT_SIZE, new org.apache.thrift.meta_data.FieldMetaData("productSize", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
-    tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.LAST_MODIFIED_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastModifiedTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.PRODUCT_METADATA, new org.apache.thrift.meta_data.FieldMetaData("productMetadata", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.REPLICA_LOCATIONS, new org.apache.thrift.meta_data.FieldMetaData("replicaLocations", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT            , "DataReplicaLocationModel"))));
-    tmpMap.put(_Fields.CHILD_PRODUCTS, new org.apache.thrift.meta_data.FieldMetaData("childProducts", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT            , "DataProductModel"))));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DataProductModel.class, metaDataMap);
-  }
-
-  public DataProductModel() {
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public DataProductModel(DataProductModel other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetProductUri()) {
-      this.productUri = other.productUri;
-    }
-    if (other.isSetGatewayId()) {
-      this.gatewayId = other.gatewayId;
-    }
-    if (other.isSetParentProductUri()) {
-      this.parentProductUri = other.parentProductUri;
-    }
-    if (other.isSetLogicalPath()) {
-      this.logicalPath = other.logicalPath;
-    }
-    if (other.isSetProductName()) {
-      this.productName = other.productName;
-    }
-    if (other.isSetProductDescription()) {
-      this.productDescription = other.productDescription;
-    }
-    if (other.isSetOwnerName()) {
-      this.ownerName = other.ownerName;
-    }
-    if (other.isSetDataProductType()) {
-      this.dataProductType = other.dataProductType;
-    }
-    this.productSize = other.productSize;
-    this.creationTime = other.creationTime;
-    this.lastModifiedTime = other.lastModifiedTime;
-    if (other.isSetProductMetadata()) {
-      Map<String,String> __this__productMetadata = new HashMap<String,String>(other.productMetadata);
-      this.productMetadata = __this__productMetadata;
-    }
-    if (other.isSetReplicaLocations()) {
-      List<DataReplicaLocationModel> __this__replicaLocations = new ArrayList<DataReplicaLocationModel>(other.replicaLocations.size());
-      for (DataReplicaLocationModel other_element : other.replicaLocations) {
-        __this__replicaLocations.add(other_element);
-      }
-      this.replicaLocations = __this__replicaLocations;
-    }
-    if (other.isSetChildProducts()) {
-      List<DataProductModel> __this__childProducts = new ArrayList<DataProductModel>(other.childProducts.size());
-      for (DataProductModel other_element : other.childProducts) {
-        __this__childProducts.add(other_element);
-      }
-      this.childProducts = __this__childProducts;
-    }
-  }
-
-  public DataProductModel deepCopy() {
-    return new DataProductModel(this);
-  }
-
-  @Override
-  public void clear() {
-    this.productUri = null;
-    this.gatewayId = null;
-    this.parentProductUri = null;
-    this.logicalPath = null;
-    this.productName = null;
-    this.productDescription = null;
-    this.ownerName = null;
-    this.dataProductType = null;
-    setProductSizeIsSet(false);
-    this.productSize = 0;
-    setCreationTimeIsSet(false);
-    this.creationTime = 0;
-    setLastModifiedTimeIsSet(false);
-    this.lastModifiedTime = 0;
-    this.productMetadata = null;
-    this.replicaLocations = null;
-    this.childProducts = null;
-  }
-
-  public String getProductUri() {
-    return this.productUri;
-  }
-
-  public void setProductUri(String productUri) {
-    this.productUri = productUri;
-  }
-
-  public void unsetProductUri() {
-    this.productUri = null;
-  }
-
-  /** Returns true if field productUri is set (has been assigned a value) and false otherwise */
-  public boolean isSetProductUri() {
-    return this.productUri != null;
-  }
-
-  public void setProductUriIsSet(boolean value) {
-    if (!value) {
-      this.productUri = null;
-    }
-  }
-
-  public String getGatewayId() {
-    return this.gatewayId;
-  }
-
-  public void setGatewayId(String gatewayId) {
-    this.gatewayId = gatewayId;
-  }
-
-  public void unsetGatewayId() {
-    this.gatewayId = null;
-  }
-
-  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
-  public boolean isSetGatewayId() {
-    return this.gatewayId != null;
-  }
-
-  public void setGatewayIdIsSet(boolean value) {
-    if (!value) {
-      this.gatewayId = null;
-    }
-  }
-
-  public String getParentProductUri() {
-    return this.parentProductUri;
-  }
-
-  public void setParentProductUri(String parentProductUri) {
-    this.parentProductUri = parentProductUri;
-  }
-
-  public void unsetParentProductUri() {
-    this.parentProductUri = null;
-  }
-
-  /** Returns true if field parentProductUri is set (has been assigned a value) and false otherwise */
-  public boolean isSetParentProductUri() {
-    return this.parentProductUri != null;
-  }
-
-  public void setParentProductUriIsSet(boolean value) {
-    if (!value) {
-      this.parentProductUri = null;
-    }
-  }
-
-  public String getLogicalPath() {
-    return this.logicalPath;
-  }
-
-  public void setLogicalPath(String logicalPath) {
-    this.logicalPath = logicalPath;
-  }
-
-  public void unsetLogicalPath() {
-    this.logicalPath = null;
-  }
-
-  /** Returns true if field logicalPath is set (has been assigned a value) and false otherwise */
-  public boolean isSetLogicalPath() {
-    return this.logicalPath != null;
-  }
-
-  public void setLogicalPathIsSet(boolean value) {
-    if (!value) {
-      this.logicalPath = null;
-    }
-  }
-
-  public String getProductName() {
-    return this.productName;
-  }
-
-  public void setProductName(String productName) {
-    this.productName = productName;
-  }
-
-  public void unsetProductName() {
-    this.productName = null;
-  }
-
-  /** Returns true if field productName is set (has been assigned a value) and false otherwise */
-  public boolean isSetProductName() {
-    return this.productName != null;
-  }
-
-  public void setProductNameIsSet(boolean value) {
-    if (!value) {
-      this.productName = null;
-    }
-  }
-
-  public String getProductDescription() {
-    return this.productDescription;
-  }
-
-  public void setProductDescription(String productDescription) {
-    this.productDescription = productDescription;
-  }
-
-  public void unsetProductDescription() {
-    this.productDescription = null;
-  }
-
-  /** Returns true if field productDescription is set (has been assigned a value) and false otherwise */
-  public boolean isSetProductDescription() {
-    return this.productDescription != null;
-  }
-
-  public void setProductDescriptionIsSet(boolean value) {
-    if (!value) {
-      this.productDescription = null;
-    }
-  }
-
-  public String getOwnerName() {
-    return this.ownerName;
-  }
-
-  public void setOwnerName(String ownerName) {
-    this.ownerName = ownerName;
-  }
-
-  public void unsetOwnerName() {
-    this.ownerName = null;
-  }
-
-  /** Returns true if field ownerName is set (has been assigned a value) and false otherwise */
-  public boolean isSetOwnerName() {
-    return this.ownerName != null;
-  }
-
-  public void setOwnerNameIsSet(boolean value) {
-    if (!value) {
-      this.ownerName = null;
-    }
-  }
-
-  /**
-   * 
-   * @see DataProductType
-   */
-  public DataProductType getDataProductType() {
-    return this.dataProductType;
-  }
-
-  /**
-   * 
-   * @see DataProductType
-   */
-  public void setDataProductType(DataProductType dataProductType) {
-    this.dataProductType = dataProductType;
-  }
-
-  public void unsetDataProductType() {
-    this.dataProductType = null;
-  }
-
-  /** Returns true if field dataProductType is set (has been assigned a value) and false otherwise */
-  public boolean isSetDataProductType() {
-    return this.dataProductType != null;
-  }
-
-  public void setDataProductTypeIsSet(boolean value) {
-    if (!value) {
-      this.dataProductType = null;
-    }
-  }
-
-  public int getProductSize() {
-    return this.productSize;
-  }
-
-  public void setProductSize(int productSize) {
-    this.productSize = productSize;
-    setProductSizeIsSet(true);
-  }
-
-  public void unsetProductSize() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PRODUCTSIZE_ISSET_ID);
-  }
-
-  /** Returns true if field productSize is set (has been assigned a value) and false otherwise */
-  public boolean isSetProductSize() {
-    return EncodingUtils.testBit(__isset_bitfield, __PRODUCTSIZE_ISSET_ID);
-  }
-
-  public void setProductSizeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PRODUCTSIZE_ISSET_ID, value);
-  }
-
-  public long getCreationTime() {
-    return this.creationTime;
-  }
-
-  public void setCreationTime(long creationTime) {
-    this.creationTime = creationTime;
-    setCreationTimeIsSet(true);
-  }
-
-  public void unsetCreationTime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
-  }
-
-  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetCreationTime() {
-    return EncodingUtils.testBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
-  }
-
-  public void setCreationTimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
-  }
-
-  public long getLastModifiedTime() {
-    return this.lastModifiedTime;
-  }
-
-  public void setLastModifiedTime(long lastModifiedTime) {
-    this.lastModifiedTime = lastModifiedTime;
-    setLastModifiedTimeIsSet(true);
-  }
-
-  public void unsetLastModifiedTime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
-  }
-
-  /** Returns true if field lastModifiedTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetLastModifiedTime() {
-    return EncodingUtils.testBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
-  }
-
-  public void setLastModifiedTimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID, value);
-  }
-
-  public int getProductMetadataSize() {
-    return (this.productMetadata == null) ? 0 : this.productMetadata.size();
-  }
-
-  public void putToProductMetadata(String key, String val) {
-    if (this.productMetadata == null) {
-      this.productMetadata = new HashMap<String,String>();
-    }
-    this.productMetadata.put(key, val);
-  }
-
-  public Map<String,String> getProductMetadata() {
-    return this.productMetadata;
-  }
-
-  public void setProductMetadata(Map<String,String> productMetadata) {
-    this.productMetadata = productMetadata;
-  }
-
-  public void unsetProductMetadata() {
-    this.productMetadata = null;
-  }
-
-  /** Returns true if field productMetadata is set (has been assigned a value) and false otherwise */
-  public boolean isSetProductMetadata() {
-    return this.productMetadata != null;
-  }
-
-  public void setProductMetadataIsSet(boolean value) {
-    if (!value) {
-      this.productMetadata = null;
-    }
-  }
-
-  public int getReplicaLocationsSize() {
-    return (this.replicaLocations == null) ? 0 : this.replicaLocations.size();
-  }
-
-  public java.util.Iterator<DataReplicaLocationModel> getReplicaLocationsIterator() {
-    return (this.replicaLocations == null) ? null : this.replicaLocations.iterator();
-  }
-
-  public void addToReplicaLocations(DataReplicaLocationModel elem) {
-    if (this.replicaLocations == null) {
-      this.replicaLocations = new ArrayList<DataReplicaLocationModel>();
-    }
-    this.replicaLocations.add(elem);
-  }
-
-  public List<DataReplicaLocationModel> getReplicaLocations() {
-    return this.replicaLocations;
-  }
-
-  public void setReplicaLocations(List<DataReplicaLocationModel> replicaLocations) {
-    this.replicaLocations = replicaLocations;
-  }
-
-  public void unsetReplicaLocations() {
-    this.replicaLocations = null;
-  }
-
-  /** Returns true if field replicaLocations is set (has been assigned a value) and false otherwise */
-  public boolean isSetReplicaLocations() {
-    return this.replicaLocations != null;
-  }
-
-  public void setReplicaLocationsIsSet(boolean value) {
-    if (!value) {
-      this.replicaLocations = null;
-    }
-  }
-
-  public int getChildProductsSize() {
-    return (this.childProducts == null) ? 0 : this.childProducts.size();
-  }
-
-  public java.util.Iterator<DataProductModel> getChildProductsIterator() {
-    return (this.childProducts == null) ? null : this.childProducts.iterator();
-  }
-
-  public void addToChildProducts(DataProductModel elem) {
-    if (this.childProducts == null) {
-      this.childProducts = new ArrayList<DataProductModel>();
-    }
-    this.childProducts.add(elem);
-  }
-
-  public List<DataProductModel> getChildProducts() {
-    return this.childProducts;
-  }
-
-  public void setChildProducts(List<DataProductModel> childProducts) {
-    this.childProducts = childProducts;
-  }
-
-  public void unsetChildProducts() {
-    this.childProducts = null;
-  }
-
-  /** Returns true if field childProducts is set (has been assigned a value) and false otherwise */
-  public boolean isSetChildProducts() {
-    return this.childProducts != null;
-  }
-
-  public void setChildProductsIsSet(boolean value) {
-    if (!value) {
-      this.childProducts = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case PRODUCT_URI:
-      if (value == null) {
-        unsetProductUri();
-      } else {
-        setProductUri((String)value);
-      }
-      break;
-
-    case GATEWAY_ID:
-      if (value == null) {
-        unsetGatewayId();
-      } else {
-        setGatewayId((String)value);
-      }
-      break;
-
-    case PARENT_PRODUCT_URI:
-      if (value == null) {
-        unsetParentProductUri();
-      } else {
-        setParentProductUri((String)value);
-      }
-      break;
-
-    case LOGICAL_PATH:
-      if (value == null) {
-        unsetLogicalPath();
-      } else {
-        setLogicalPath((String)value);
-      }
-      break;
-
-    case PRODUCT_NAME:
-      if (value == null) {
-        unsetProductName();
-      } else {
-        setProductName((String)value);
-      }
-      break;
-
-    case PRODUCT_DESCRIPTION:
-      if (value == null) {
-        unsetProductDescription();
-      } else {
-        setProductDescription((String)value);
-      }
-      break;
-
-    case OWNER_NAME:
-      if (value == null) {
-        unsetOwnerName();
-      } else {
-        setOwnerName((String)value);
-      }
-      break;
-
-    case DATA_PRODUCT_TYPE:
-      if (value == null) {
-        unsetDataProductType();
-      } else {
-        setDataProductType((DataProductType)value);
-      }
-      break;
-
-    case PRODUCT_SIZE:
-      if (value == null) {
-        unsetProductSize();
-      } else {
-        setProductSize((Integer)value);
-      }
-      break;
-
-    case CREATION_TIME:
-      if (value == null) {
-        unsetCreationTime();
-      } else {
-        setCreationTime((Long)value);
-      }
-      break;
-
-    case LAST_MODIFIED_TIME:
-      if (value == null) {
-        unsetLastModifiedTime();
-      } else {
-        setLastModifiedTime((Long)value);
-      }
-      break;
-
-    case PRODUCT_METADATA:
-      if (value == null) {
-        unsetProductMetadata();
-      } else {
-        setProductMetadata((Map<String,String>)value);
-      }
-      break;
-
-    case REPLICA_LOCATIONS:
-      if (value == null) {
-        unsetReplicaLocations();
-      } else {
-        setReplicaLocations((List<DataReplicaLocationModel>)value);
-      }
-      break;
-
-    case CHILD_PRODUCTS:
-      if (value == null) {
-        unsetChildProducts();
-      } else {
-        setChildProducts((List<DataProductModel>)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case PRODUCT_URI:
-      return getProductUri();
-
-    case GATEWAY_ID:
-      return getGatewayId();
-
-    case PARENT_PRODUCT_URI:
-      return getParentProductUri();
-
-    case LOGICAL_PATH:
-      return getLogicalPath();
-
-    case PRODUCT_NAME:
-      return getProductName();
-
-    case PRODUCT_DESCRIPTION:
-      return getProductDescription();
-
-    case OWNER_NAME:
-      return getOwnerName();
-
-    case DATA_PRODUCT_TYPE:
-      return getDataProductType();
-
-    case PRODUCT_SIZE:
-      return getProductSize();
-
-    case CREATION_TIME:
-      return getCreationTime();
-
-    case LAST_MODIFIED_TIME:
-      return getLastModifiedTime();
-
-    case PRODUCT_METADATA:
-      return getProductMetadata();
-
-    case REPLICA_LOCATIONS:
-      return getReplicaLocations();
-
-    case CHILD_PRODUCTS:
-      return getChildProducts();
-
-    }
-    throw new IllegalStateException();
-  }
-
-  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
-  public boolean isSet(_Fields field) {
-    if (field == null) {
-      throw new IllegalArgumentException();
-    }
-
-    switch (field) {
-    case PRODUCT_URI:
-      return isSetProductUri();
-    case GATEWAY_ID:
-      return isSetGatewayId();
-    case PARENT_PRODUCT_URI:
-      return isSetParentProductUri();
-    case LOGICAL_PATH:
-      return isSetLogicalPath();
-    case PRODUCT_NAME:
-      return isSetProductName();
-    case PRODUCT_DESCRIPTION:
-      return isSetProductDescription();
-    case OWNER_NAME:
-      return isSetOwnerName();
-    case DATA_PRODUCT_TYPE:
-      return isSetDataProductType();
-    case PRODUCT_SIZE:
-      return isSetProductSize();
-    case CREATION_TIME:
-      return isSetCreationTime();
-    case LAST_MODIFIED_TIME:
-      return isSetLastModifiedTime();
-    case PRODUCT_METADATA:
-      return isSetProductMetadata();
-    case REPLICA_LOCATIONS:
-      return isSetReplicaLocations();
-    case CHILD_PRODUCTS:
-      return isSetChildProducts();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof DataProductModel)
-      return this.equals((DataProductModel)that);
-    return false;
-  }
-
-  public boolean equals(DataProductModel that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_productUri = true && this.isSetProductUri();
-    boolean that_present_productUri = true && that.isSetProductUri();
-    if (this_present_productUri || that_present_productUri) {
-      if (!(this_present_productUri && that_present_productUri))
-        return false;
-      if (!this.productUri.equals(that.productUri))
-        return false;
-    }
-
-    boolean this_present_gatewayId = true && this.isSetGatewayId();
-    boolean that_present_gatewayId = true && that.isSetGatewayId();
-    if (this_present_gatewayId || that_present_gatewayId) {
-      if (!(this_present_gatewayId && that_present_gatewayId))
-        return false;
-      if (!this.gatewayId.equals(that.gatewayId))
-        return false;
-    }
-
-    boolean this_present_parentProductUri = true && this.isSetParentProductUri();
-    boolean that_present_parentProductUri = true && that.isSetParentProductUri();
-    if (this_present_parentProductUri || that_present_parentProductUri) {
-      if (!(this_present_parentProductUri && that_present_parentProductUri))
-        return false;
-      if (!this.parentProductUri.equals(that.parentProductUri))
-        return false;
-    }
-
-    boolean this_present_logicalPath = true && this.isSetLogicalPath();
-    boolean that_present_logicalPath = true && that.isSetLogicalPath();
-    if (this_present_logicalPath || that_present_logicalPath) {
-      if (!(this_present_logicalPath && that_present_logicalPath))
-        return false;
-      if (!this.logicalPath.equals(that.logicalPath))
-        return false;
-    }
-
-    boolean this_present_productName = true && this.isSetProductName();
-    boolean that_present_productName = true && that.isSetProductName();
-    if (this_present_productName || that_present_productName) {
-      if (!(this_present_productName && that_present_productName))
-        return false;
-      if (!this.productName.equals(that.productName))
-        return false;
-    }
-
-    boolean this_present_productDescription = true && this.isSetProductDescription();
-    boolean that_present_productDescription = true && that.isSetProductDescription();
-    if (this_present_productDescription || that_present_productDescription) {
-      if (!(this_present_productDescription && that_present_productDescription))
-        return false;
-      if (!this.productDescription.equals(that.productDescription))
-        return false;
-    }
-
-    boolean this_present_ownerName = true && this.isSetOwnerName();
-    boolean that_present_ownerName = true && that.isSetOwnerName();
-    if (this_present_ownerName || that_present_ownerName) {
-      if (!(this_present_ownerName && that_present_ownerName))
-        return false;
-      if (!this.ownerName.equals(that.ownerName))
-        return false;
-    }
-
-    boolean this_present_dataProductType = true && this.isSetDataProductType();
-    boolean that_present_dataProductType = true && that.isSetDataProductType();
-    if (this_present_dataProductType || that_present_dataProductType) {
-      if (!(this_present_dataProductType && that_present_dataProductType))
-        return false;
-      if (!this.dataProductType.equals(that.dataProductType))
-        return false;
-    }
-
-    boolean this_present_productSize = true && this.isSetProductSize();
-    boolean that_present_productSize = true && that.isSetProductSize();
-    if (this_present_productSize || that_present_productSize) {
-      if (!(this_present_productSize && that_present_productSize))
-        return false;
-      if (this.productSize != that.productSize)
-        return false;
-    }
-
-    boolean this_present_creationTime = true && this.isSetCreationTime();
-    boolean that_present_creationTime = true && that.isSetCreationTime();
-    if (this_present_creationTime || that_present_creationTime) {
-      if (!(this_present_creationTime && that_present_creationTime))
-        return false;
-      if (this.creationTime != that.creationTime)
-        return false;
-    }
-
-    boolean this_present_lastModifiedTime = true && this.isSetLastModifiedTime();
-    boolean that_present_lastModifiedTime = true && that.isSetLastModifiedTime();
-    if (this_present_lastModifiedTime || that_present_lastModifiedTime) {
-      if (!(this_present_lastModifiedTime && that_present_lastModifiedTime))
-        return false;
-      if (this.lastModifiedTime != that.lastModifiedTime)
-        return false;
-    }
-
-    boolean this_present_productMetadata = true && this.isSetProductMetadata();
-    boolean that_present_productMetadata = true && that.isSetProductMetadata();
-    if (this_present_productMetadata || that_present_productMetadata) {
-      if (!(this_present_productMetadata && that_present_productMetadata))
-        return false;
-      if (!this.productMetadata.equals(that.productMetadata))
-        return false;
-    }
-
-    boolean this_present_replicaLocations = true && this.isSetReplicaLocations();
-    boolean that_present_replicaLocations = true && that.isSetReplicaLocations();
-    if (this_present_replicaLocations || that_present_replicaLocations) {
-      if (!(this_present_replicaLocations && that_present_replicaLocations))
-        return false;
-      if (!this.replicaLocations.equals(that.replicaLocations))
-        return false;
-    }
-
-    boolean this_present_childProducts = true && this.isSetChildProducts();
-    boolean that_present_childProducts = true && that.isSetChildProducts();
-    if (this_present_childProducts || that_present_childProducts) {
-      if (!(this_present_childProducts && that_present_childProducts))
-        return false;
-      if (!this.childProducts.equals(that.childProducts))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    List<Object> list = new ArrayList<Object>();
-
-    boolean present_productUri = true && (isSetProductUri());
-    list.add(present_productUri);
-    if (present_productUri)
-      list.add(productUri);
-
-    boolean present_gatewayId = true && (isSetGatewayId());
-    list.add(present_gatewayId);
-    if (present_gatewayId)
-      list.add(gatewayId);
-
-    boolean present_parentProductUri = true && (isSetParentProductUri());
-    list.add(present_parentProductUri);
-    if (present_parentProductUri)
-      list.add(parentProductUri);
-
-    boolean present_logicalPath = true && (isSetLogicalPath());
-    list.add(present_logicalPath);
-    if (present_logicalPath)
-      list.add(logicalPath);
-
-    boolean present_productName = true && (isSetProductName());
-    list.add(present_productName);
-    if (present_productName)
-      list.add(productName);
-
-    boolean present_productDescription = true && (isSetProductDescription());
-    list.add(present_productDescription);
-    if (present_productDescription)
-      list.add(productDescription);
-
-    boolean present_ownerName = true && (isSetOwnerName());
-    list.add(present_ownerName);
-    if (present_ownerName)
-      list.add(ownerName);
-
-    boolean present_dataProductType = true && (isSetDataProductType());
-    list.add(present_dataProductType);
-    if (present_dataProductType)
-      list.add(dataProductType.getValue());
-
-    boolean present_productSize = true && (isSetProductSize());
-    list.add(present_productSize);
-    if (present_productSize)
-      list.add(productSize);
-
-    boolean present_creationTime = true && (isSetCreationTime());
-    list.add(present_creationTime);
-    if (present_creationTime)
-      list.add(creationTime);
-
-    boolean present_lastModifiedTime = true && (isSetLastModifiedTime());
-    list.add(present_lastModifiedTime);
-    if (present_lastModifiedTime)
-      list.add(lastModifiedTime);
-
-    boolean present_productMetadata = true && (isSetProductMetadata());
-    list.add(present_productMetadata);
-    if (present_productMetadata)
-      list.add(productMetadata);
-
-    boolean present_replicaLocations = true && (isSetReplicaLocations());
-    list.add(present_replicaLocations);
-    if (present_replicaLocations)
-      list.add(replicaLocations);
-
-    boolean present_childProducts = true && (isSetChildProducts());
-    list.add(present_childProducts);
-    if (present_childProducts)
-      list.add(childProducts);
-
-    return list.hashCode();
-  }
-
-  @Override
-  public int compareTo(DataProductModel other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetProductUri()).compareTo(other.isSetProductUri());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetProductUri()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productUri, other.productUri);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetGatewayId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetParentProductUri()).compareTo(other.isSetParentProductUri());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetParentProductUri()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parentProductUri, other.parentProductUri);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetLogicalPath()).compareTo(other.isSetLogicalPath());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetLogicalPath()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.logicalPath, other.logicalPath);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetProductName()).compareTo(other.isSetProductName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetProductName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productName, other.productName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetProductDescription()).compareTo(other.isSetProductDescription());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetProductDescription()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productDescription, other.productDescription);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetOwnerName()).compareTo(other.isSetOwnerName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetOwnerName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ownerName, other.ownerName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetDataProductType()).compareTo(other.isSetDataProductType());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDataProductType()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataProductType, other.dataProductType);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetProductSize()).compareTo(other.isSetProductSize());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetProductSize()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productSize, other.productSize);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetCreationTime()).compareTo(other.isSetCreationTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCreationTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creationTime, other.creationTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetLastModifiedTime()).compareTo(other.isSetLastModifiedTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetLastModifiedTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastModifiedTime, other.lastModifiedTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetProductMetadata()).compareTo(other.isSetProductMetadata());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetProductMetadata()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productMetadata, other.productMetadata);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetReplicaLocations()).compareTo(other.isSetReplicaLocations());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetReplicaLocations()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaLocations, other.replicaLocations);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetChildProducts()).compareTo(other.isSetChildProducts());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetChildProducts()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.childProducts, other.childProducts);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    return 0;
-  }
-
-  public _Fields fieldForId(int fieldId) {
-    return _Fields.findByThriftId(fieldId);
-  }
-
-  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
-    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
-  }
-
-  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
-    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
-  }
-
-  @Override
-  public String toString() {
-    StringBuilder sb = new StringBuilder("DataProductModel(");
-    boolean first = true;
-
-    if (isSetProductUri()) {
-      sb.append("productUri:");
-      if (this.productUri == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.productUri);
-      }
-      first = false;
-    }
-    if (isSetGatewayId()) {
-      if (!first) sb.append(", ");
-      sb.append("gatewayId:");
-      if (this.gatewayId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.gatewayId);
-      }
-      first = false;
-    }
-    if (isSetParentProductUri()) {
-      if (!first) sb.append(", ");
-      sb.append("parentProductUri:");
-      if (this.parentProductUri == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.parentProductUri);
-      }
-      first = false;
-    }
-    if (isSetLogicalPath()) {
-      if (!first) sb.append(", ");
-      sb.append("logicalPath:");
-      if (this.logicalPath == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.logicalPath);
-      }
-      first = false;
-    }
-    if (isSetProductName()) {
-      if (!first) sb.append(", ");
-      sb.append("productName:");
-      if (this.productName == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.productName);
-      }
-      first = false;
-    }
-    if (isSetProductDescription()) {
-      if (!first) sb.append(", ");
-      sb.append("productDescription:");
-      if (this.productDescription == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.productDescription);
-      }
-      first = false;
-    }
-    if (isSetOwnerName()) {
-      if (!first) sb.append(", ");
-      sb.append("ownerName:");
-      if (this.ownerName == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.ownerName);
-      }
-      first = false;
-    }
-    if (isSetDataProductType()) {
-      if (!first) sb.append(", ");
-      sb.append("dataProductType:");
-      if (this.dataProductType == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.dataProductType);
-      }
-      first = false;
-    }
-    if (isSetProductSize()) {
-      if (!first) sb.append(", ");
-      sb.append("productSize:");
-      sb.append(this.productSize);
-      first = false;
-    }
-    if (isSetCreationTime()) {
-      if (!first) sb.append(", ");
-      sb.append("creationTime:");
-      sb.append(this.creationTime);
-      first = false;
-    }
-    if (isSetLastModifiedTime()) {
-      if (!first) sb.append(", ");
-      sb.append("lastModifiedTime:");
-      sb.append(this.lastModifiedTime);
-      first = false;
-    }
-    if (isSetProductMetadata()) {
-      if (!first) sb.append(", ");
-      sb.append("productMetadata:");
-      if (this.productMetadata == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.productMetadata);
-      }
-      first = false;
-    }
-    if (isSetReplicaLocations()) {
-      if (!first) sb.append(", ");
-      sb.append("replicaLocations:");
-      if (this.replicaLocations == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.replicaLocations);
-      }
-      first = false;
-    }
-    if (isSetChildProducts()) {
-      if (!first) sb.append(", ");
-      sb.append("childProducts:");
-      if (this.childProducts == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.childProducts);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    // check for sub-struct validity
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
-    try {
-      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
-      __isset_bitfield = 0;
-      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private static class DataProductModelStandardSchemeFactory implements SchemeFactory {
-    public DataProductModelStandardScheme getScheme() {
-      return new DataProductModelStandardScheme();
-    }
-  }
-
-  private static class DataProductModelStandardScheme extends StandardScheme<DataProductModel> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, DataProductModel struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TField schemeField;
-      iprot.readStructBegin();
-      while (true)
-      {
-        schemeField = iprot.readFieldBegin();
-        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
-          break;
-        }
-        switch (schemeField.id) {
-          case 1: // PRODUCT_URI
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.productUri = iprot.readString();
-              struct.setProductUriIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // GATEWAY_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.gatewayId = iprot.readString();
-              struct.setGatewayIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // PARENT_PRODUCT_URI
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.parentProductUri = iprot.readString();
-              struct.setParentProductUriIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // LOGICAL_PATH
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.logicalPath = iprot.readString();
-              struct.setLogicalPathIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // PRODUCT_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.productName = iprot.readString();
-              struct.setProductNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 6: // PRODUCT_DESCRIPTION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.productDescription = iprot.readString();
-              struct.setProductDescriptionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 7: // OWNER_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.ownerName = iprot.readString();
-              struct.setOwnerNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 8: // DATA_PRODUCT_TYPE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.dataProductType = org.apache.airavata.model.data.product.DataProductType.findByValue(iprot.readI32());
-              struct.setDataProductTypeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 9: // PRODUCT_SIZE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.productSize = iprot.readI32();
-              struct.setProductSizeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 10: // CREATION_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.creationTime = iprot.readI64();
-              struct.setCreationTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 11: // LAST_MODIFIED_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.lastModifiedTime = iprot.readI64();
-              struct.setLastModifiedTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 12: // PRODUCT_METADATA
-            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
-              {
-                org.apache.thrift.protocol.TMap _map0 = iprot.readMapBegin();
-                struct.productMetadata = new HashMap<String,String>(2*_map0.size);
-                String _key1;
-                String _val2;
-                for (int _i3 = 0; _i3 < _map0.size; ++_i3)
-                {
-                  _key1 = iprot.readString();
-                  _val2 = iprot.readString();
-                  struct.productMetadata.put(_key1, _val2);
-                }
-                iprot.readMapEnd();
-              }
-              struct.setProductMetadataIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 13: // REPLICA_LOCATIONS
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list4 = iprot.readListBegin();
-                struct.replicaLocations = new ArrayList<DataReplicaLocationModel>(_list4.size);
-                DataReplicaLocationModel _elem5;
-                for (int _i6 = 0; _i6 < _list4.size; ++_i6)
-                {
-                  _elem5 = new DataReplicaLocationModel();
-                  _elem5.read(iprot);
-                  struct.replicaLocations.add(_elem5);
-                }
-                iprot.readListEnd();
-              }
-              struct.setReplicaLocationsIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 14: // CHILD_PRODUCTS
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list7 = iprot.readListBegin();
-                struct.childProducts = new ArrayList<DataProductModel>(_list7.size);
-                DataProductModel _elem8;
-                for (int _i9 = 0; _i9 < _list7.size; ++_i9)
-                {
-                  _elem8 = new DataProductModel();
-                  _elem8.read(iprot);
-                  struct.childProducts.add(_elem8);
-                }
-                iprot.readListEnd();
-              }
-              struct.setChildProductsIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          default:
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-        }
-        iprot.readFieldEnd();
-      }
-      iprot.readStructEnd();
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, DataProductModel struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.productUri != null) {
-        if (struct.isSetProductUri()) {
-          oprot.writeFieldBegin(PRODUCT_URI_FIELD_DESC);
-          oprot.writeString(struct.productUri);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.gatewayId != null) {
-        if (struct.isSetGatewayId()) {
-          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
-          oprot.writeString(struct.gatewayId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.parentProductUri != null) {
-        if (struct.isSetParentProductUri()) {
-          oprot.writeFieldBegin(PARENT_PRODUCT_URI_FIELD_DESC);
-          oprot.writeString(struct.parentProductUri);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.logicalPath != null) {
-        if (struct.isSetLogicalPath()) {
-          oprot.writeFieldBegin(LOGICAL_PATH_FIELD_DESC);
-          oprot.writeString(struct.logicalPath);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.productName != null) {
-        if (struct.isSetProductName()) {
-          oprot.writeFieldBegin(PRODUCT_NAME_FIELD_DESC);
-          oprot.writeString(struct.productName);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.productDescription != null) {
-        if (struct.isSetProductDescription()) {
-          oprot.writeFieldBegin(PRODUCT_DESCRIPTION_FIELD_DESC);
-          oprot.writeString(struct.productDescription);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.ownerName != null) {
-        if (struct.isSetOwnerName()) {
-          oprot.writeFieldBegin(OWNER_NAME_FIELD_DESC);
-          oprot.writeString(struct.ownerName);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.dataProductType != null) {
-        if (struct.isSetDataProductType()) {
-          oprot.writeFieldBegin(DATA_PRODUCT_TYPE_FIELD_DESC);
-          oprot.writeI32(struct.dataProductType.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetProductSize()) {
-        oprot.writeFieldBegin(PRODUCT_SIZE_FIELD_DESC);
-        oprot.writeI32(struct.productSize);
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetCreationTime()) {
-        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
-        oprot.writeI64(struct.creationTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetLastModifiedTime()) {
-        oprot.writeFieldBegin(LAST_MODIFIED_TIME_FIELD_DESC);
-        oprot.writeI64(struct.lastModifiedTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.productMetadata != null) {
-        if (struct.isSetProductMetadata()) {
-          oprot.writeFieldBegin(PRODUCT_METADATA_FIELD_DESC);
-          {
-            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.productMetadata.size()));
-            for (Map.Entry<String, String> _iter10 : struct.productMetadata.entrySet())
-            {
-              oprot.writeString(_iter10.getKey());
-              oprot.writeString(_iter10.getValue());
-            }
-            oprot.writeMapEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.replicaLocations != null) {
-        if (struct.isSetReplicaLocations()) {
-          oprot.writeFieldBegin(REPLICA_LOCATIONS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.replicaLocations.size()));
-            for (DataReplicaLocationModel _iter11 : struct.replicaLocations)
-            {
-              _iter11.write(oprot);
-            }
-            oprot.writeListEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.childProducts != null) {
-        if (struct.isSetChildProducts()) {
-          oprot.writeFieldBegin(CHILD_PRODUCTS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.childProducts.size()));
-            for (DataProductModel _iter12 : struct.childProducts)
-            {
-              _iter12.write(oprot);
-            }
-            oprot.writeListEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class DataProductModelTupleSchemeFactory implements SchemeFactory {
-    public DataProductModelTupleScheme getScheme() {
-      return new DataProductModelTupleScheme();
-    }
-  }
-
-  private static class DataProductModelTupleScheme extends TupleScheme<DataProductModel> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, DataProductModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      BitSet optionals = new BitSet();
-      if (struct.isSetProductUri()) {
-        optionals.set(0);
-      }
-      if (struct.isSetGatewayId()) {
-        optionals.set(1);
-      }
-      if (struct.isSetParentProductUri()) {
-        optionals.set(2);
-      }
-      if (struct.isSetLogicalPath()) {
-        optionals.set(3);
-      }
-      if (struct.isSetProductName()) {
-        optionals.set(4);
-      }
-      if (struct.isSetProductDescription()) {
-        optionals.set(5);
-      }
-      if (struct.isSetOwnerName()) {
-        optionals.set(6);
-      }
-      if (struct.isSetDataProductType()) {
-        optionals.set(7);
-      }
-      if (struct.isSetProductSize()) {
-        optionals.set(8);
-      }
-      if (struct.isSetCreationTime()) {
-        optionals.set(9);
-      }
-      if (struct.isSetLastModifiedTime()) {
-        optionals.set(10);
-      }
-      if (struct.isSetProductMetadata()) {
-        optionals.set(11);
-      }
-      if (struct.isSetReplicaLocations()) {
-        optionals.set(12);
-      }
-      if (struct.isSetChildProducts()) {
-        optionals.set(13);
-      }
-      oprot.writeBitSet(optionals, 14);
-      if (struct.isSetProductUri()) {
-        oprot.writeString(struct.productUri);
-      }
-      if (struct.isSetGatewayId()) {
-        oprot.writeString(struct.gatewayId);
-      }
-      if (struct.isSetParentProductUri()) {
-        oprot.writeString(struct.parentProductUri);
-      }
-      if (struct.isSetLogicalPath()) {
-        oprot.writeString(struct.logicalPath);
-      }
-      if (struct.isSetProductName()) {
-        oprot.writeString(struct.productName);
-      }
-      if (struct.isSetProductDescription()) {
-        oprot.writeString(struct.productDescription);
-      }
-      if (struct.isSetOwnerName()) {
-        oprot.writeString(struct.ownerName);
-      }
-      if (struct.isSetDataProductType()) {
-        oprot.writeI32(struct.dataProductType.getValue());
-      }
-      if (struct.isSetProductSize()) {
-        oprot.writeI32(struct.productSize);
-      }
-      if (struct.isSetCreationTime()) {
-        oprot.writeI64(struct.creationTime);
-      }
-      if (struct.isSetLastModifiedTime()) {
-        oprot.writeI64(struct.lastModifiedTime);
-      }
-      if (struct.isSetProductMetadata()) {
-        {
-          oprot.writeI32(struct.productMetadata.size());
-          for (Map.Entry<String, String> _iter13 : struct.productMetadata.entrySet())
-          {
-            oprot.writeString(_iter13.getKey());
-            oprot.writeString(_iter13.getValue());
-          }
-        }
-      }
-      if (struct.isSetReplicaLocations()) {
-        {
-          oprot.writeI32(struct.replicaLocations.size());
-          for (DataReplicaLocationModel _iter14 : struct.replicaLocations)
-          {
-            _iter14.write(oprot);
-          }
-        }
-      }
-      if (struct.isSetChildProducts()) {
-        {
-          oprot.writeI32(struct.childProducts.size());
-          for (DataProductModel _iter15 : struct.childProducts)
-          {
-            _iter15.write(oprot);
-          }
-        }
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, DataProductModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      BitSet incoming = iprot.readBitSet(14);
-      if (incoming.get(0)) {
-        struct.productUri = iprot.readString();
-        struct.setProductUriIsSet(true);
-      }
-      if (incoming.get(1)) {
-        struct.gatewayId = iprot.readString();
-        struct.setGatewayIdIsSet(true);
-      }
-      if (incoming.get(2)) {
-        struct.parentProductUri = iprot.readString();
-        struct.setParentProductUriIsSet(true);
-      }
-      if (incoming.get(3)) {
-        struct.logicalPath = iprot.readString();
-        struct.setLogicalPathIsSet(true);
-      }
-      if (incoming.get(4)) {
-        struct.productName = iprot.readString();
-        struct.setProductNameIsSet(true);
-      }
-      if (incoming.get(5)) {
-        struct.productDescription = iprot.readString();
-        struct.setProductDescriptionIsSet(true);
-      }
-      if (incoming.get(6)) {
-        struct.ownerName = iprot.readString();
-        struct.setOwnerNameIsSet(true);
-      }
-      if (incoming.get(7)) {
-        struct.dataProductType = org.apache.airavata.model.data.product.DataProductType.findByValue(iprot.readI32());
-        struct.setDataProductTypeIsSet(true);
-      }
-      if (incoming.get(8)) {
-        struct.productSize = iprot.readI32();
-        struct.setProductSizeIsSet(true);
-      }
-      if (incoming.get(9)) {
-        struct.creationTime = iprot.readI64();
-        struct.setCreationTimeIsSet(true);
-      }
-      if (incoming.get(10)) {
-        struct.lastModifiedTime = iprot.readI64();
-        struct.setLastModifiedTimeIsSet(true);
-      }
-      if (incoming.get(11)) {
-        {
-          org.apache.thrift.protocol.TMap _map16 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.productMetadata = new HashMap<String,String>(2*_map16.size);
-          String _key17;
-          String _val18;
-          for (int _i19 = 0; _i19 < _map16.size; ++_i19)
-          {
-            _key17 = iprot.readString();
-            _val18 = iprot.readString();
-            struct.productMetadata.put(_key17, _val18);
-          }
-        }
-        struct.setProductMetadataIsSet(true);
-      }
-      if (incoming.get(12)) {
-        {
-          org.apache.thrift.protocol.TList _list20 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.replicaLocations = new ArrayList<DataReplicaLocationModel>(_list20.size);
-          DataReplicaLocationModel _elem21;
-          for (int _i22 = 0; _i22 < _list20.size; ++_i22)
-          {
-            _elem21 = new DataReplicaLocationModel();
-            _elem21.read(iprot);
-            struct.replicaLocations.add(_elem21);
-          }
-        }
-        struct.setReplicaLocationsIsSet(true);
-      }
-      if (incoming.get(13)) {
-        {
-          org.apache.thrift.protocol.TList _list23 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.childProducts = new ArrayList<DataProductModel>(_list23.size);
-          DataProductModel _elem24;
-          for (int _i25 = 0; _i25 < _list23.size; ++_i25)
-          {
-            _elem24 = new DataProductModel();
-            _elem24.read(iprot);
-            struct.childProducts.add(_elem24);
-          }
-        }
-        struct.setChildProductsIsSet(true);
-      }
-    }
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataProductType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataProductType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataProductType.java
deleted file mode 100644
index 88fc186..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataProductType.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.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.9.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.data.product;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-public enum DataProductType implements org.apache.thrift.TEnum {
-  DIR(0),
-  FILE(1),
-  COLLECTION(2);
-
-  private final int value;
-
-  private DataProductType(int value) {
-    this.value = value;
-  }
-
-  /**
-   * Get the integer value of this enum value, as defined in the Thrift IDL.
-   */
-  public int getValue() {
-    return value;
-  }
-
-  /**
-   * Find a the enum type by its integer value, as defined in the Thrift IDL.
-   * @return null if the value is not found.
-   */
-  public static DataProductType findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return DIR;
-      case 1:
-        return FILE;
-      case 2:
-        return COLLECTION;
-      default:
-        return null;
-    }
-  }
-}


[02/10] airavata git commit: renaming data-catalog to replica catalog

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/DataCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/DataCatalogJPAUtils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/DataCatalogJPAUtils.java
deleted file mode 100644
index b8257cb..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/DataCatalogJPAUtils.java
+++ /dev/null
@@ -1,82 +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.data.catalog.utils;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.ServerSettings;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.*;
-import java.util.HashMap;
-import java.util.Map;
-
-public class DataCatalogJPAUtils {
-    private final static Logger logger = LoggerFactory.getLogger(DataCatalogJPAUtils.class);
-
-    private static final String PERSISTENCE_UNIT_NAME = "datacatalog_data";
-    private static final String DATACATALOG_JDBC_DRIVER = "datacatalog.jdbc.driver";
-    private static final String DATACATALOG_JDBC_URL = "datacatalog.jdbc.url";
-    private static final String DATACATALOG_JDBC_USER = "datacatalog.jdbc.user";
-    private static final String DATACATALOG_JDBC_PWD = "datacatalog.jdbc.password";
-    private static final String DATACATALOG_VALIDATION_QUERY = "datacatalog.validationQuery";
-
-    @PersistenceUnit(unitName="datacatalog_data")
-    protected static EntityManagerFactory factory;
-
-    @PersistenceContext(unitName="datacatalog_data")
-    private static EntityManager dataCatEntityManager;
-
-    public static EntityManager getEntityManager() throws ApplicationSettingsException {
-        if (factory == null) {
-            String connectionProperties = "DriverClassName=" + readServerProperties(DATACATALOG_JDBC_DRIVER) + "," +
-                    "Url=" + readServerProperties(DATACATALOG_JDBC_URL) + "?autoReconnect=true," +
-                    "Username=" + readServerProperties(DATACATALOG_JDBC_USER) + "," +
-                    "Password=" + readServerProperties(DATACATALOG_JDBC_PWD) +
-                    ",validationQuery=" + readServerProperties(DATACATALOG_VALIDATION_QUERY);
-            System.out.println(connectionProperties);
-            Map<String, String> properties = new HashMap<String, String>();
-            properties.put("openjpa.ConnectionDriverName", "org.apache.commons.dbcp.BasicDataSource");
-            properties.put("openjpa.ConnectionProperties", connectionProperties);
-            properties.put("openjpa.DynamicEnhancementAgent", "true");
-            properties.put("openjpa.RuntimeUnenhancedClasses", "unsupported");
-            properties.put("openjpa.RemoteCommitProvider","sjvm");
-            properties.put("openjpa.Log","DefaultLevel=INFO, Runtime=INFO, Tool=INFO, SQL=INFO");
-            properties.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)");
-            properties.put("openjpa.jdbc.QuerySQLCache", "false");
-            properties.put("openjpa.ConnectionFactoryProperties", "PrettyPrint=true, PrettyPrintLineLength=72," +
-                    " PrintParameters=true, MaxActive=10, MaxIdle=5, MinIdle=2, MaxWait=31536000,  autoReconnect=true");
-            factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME, properties);
-        }
-        dataCatEntityManager = factory.createEntityManager();
-        return dataCatEntityManager;
-    }
-
-    private static String readServerProperties (String propertyName) throws ApplicationSettingsException {
-        try {
-            return ServerSettings.getSetting(propertyName);
-        } catch (ApplicationSettingsException e) {
-            logger.error("Unable to read airavata-server.properties...", e);
-            throw new ApplicationSettingsException("Unable to read airavata-server.properties...");
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/DataCatalogQueryGenerator.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/DataCatalogQueryGenerator.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/DataCatalogQueryGenerator.java
deleted file mode 100644
index 4ddf8d3..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/DataCatalogQueryGenerator.java
+++ /dev/null
@@ -1,111 +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.data.catalog.utils;
-
-import org.apache.airavata.registry.cpi.ResultOrderType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import java.util.HashMap;
-import java.util.Map;
-
-public class DataCatalogQueryGenerator {
-
-    private final static Logger logger = LoggerFactory.getLogger(DataCatalogQueryGenerator.class);
-	private String tableName;
-	private Map<String,Object> matches=new HashMap<String, Object>();
-	private static final String SELECT_OBJ="p";
-	private static final String DELETE_OBJ="p";
-	private static final String TABLE_OBJ="p";
-
-	public DataCatalogQueryGenerator(String tableName, Object[]... params) {
-		setTableName(tableName);
-		for (Object[] param : params) {
-			addMatch(param[0].toString(), param[1]);
-		}
-	}
-	
-	public String getTableName() {
-		return tableName;
-	}
-
-    public void setTableName(String tableName) {
-		this.tableName = tableName;
-	}
-
-    public void addMatch(String colName, Object matchValue){
-		matches.put(colName, matchValue);
-	}
-	
-	public void setParameter(String colName, Object matchValue){
-		addMatch(colName, matchValue);
-	}
-
-    public Query selectQuery(EntityManager entityManager){
-        String queryString="SELECT "+ SELECT_OBJ + " FROM " +getTableName()+" "+TABLE_OBJ;
-        return generateQueryWithParameters(entityManager, queryString);
-    }
-
-    public Query selectQuery(EntityManager entityManager, String orderByColumn,
-                             ResultOrderType resultOrderType){
-        String order = (resultOrderType == ResultOrderType.ASC) ? "ASC" : "DESC";
-        String orderByClause = " ORDER BY " + SELECT_OBJ + "." + orderByColumn + " " + order;
-        String queryString="SELECT "+ SELECT_OBJ + " FROM " +getTableName()+" "+TABLE_OBJ;
-        return generateQueryWithParameters(entityManager, queryString, orderByClause);
-    }
-
-	public Query deleteQuery(EntityManager entityManager){
-		String queryString="Delete FROM "+getTableName()+" "+TABLE_OBJ;
-		return generateQueryWithParameters(entityManager, queryString);
-	}
-
-	private Query generateQueryWithParameters(EntityManager entityManager, String queryString) {
-		return generateQueryWithParameters(entityManager, queryString, "");
-	}
-
-    private Query generateQueryWithParameters(EntityManager entityManager,
-                                              String queryString, String orderByClause) {
-        Map<String,Object> queryParameters=new HashMap<String, Object>();
-        if (matches.size()>0){
-            String matchString = "";
-            int paramCount=0;
-            for (String colName : matches.keySet()) {
-                String paramName="param"+paramCount;
-                queryParameters.put(paramName, matches.get(colName));
-                if (!matchString.equals("")){
-                    matchString+=" AND ";
-                }
-                matchString+=TABLE_OBJ+"."+colName+" =:"+paramName;
-                paramCount++;
-            }
-            queryString+=" WHERE "+matchString;
-        }
-        queryString += orderByClause;
-        Query query = entityManager.createQuery(queryString);
-        for (String paramName : queryParameters.keySet()) {
-            query.setParameter(paramName, queryParameters.get(paramName));
-        }
-        return query;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/ThriftDataModelConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/ThriftDataModelConversion.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/ThriftDataModelConversion.java
deleted file mode 100644
index 5426e8b..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/ThriftDataModelConversion.java
+++ /dev/null
@@ -1,215 +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.data.catalog.utils;
-
-import org.apache.airavata.model.data.product.*;
-import org.apache.airavata.registry.core.data.catalog.model.DataProduct;
-import org.apache.airavata.registry.core.data.catalog.model.DataProductMetaData;
-import org.apache.airavata.registry.core.data.catalog.model.DataReplicaLocation;
-import org.apache.airavata.registry.core.data.catalog.model.DataReplicaMetaData;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-public class ThriftDataModelConversion {
-
-    private final static Logger logger = LoggerFactory.getLogger(ThriftDataModelConversion.class);
-
-    public static DataProductModel getDataProductModel(DataProduct dataProduct){
-        if (dataProduct != null) {
-            DataProductModel dataProductModel = new DataProductModel();
-            dataProductModel.setProductUri(dataProduct.getProductUri());
-            dataProductModel.setLogicalPath(dataProduct.getLogicalPath());
-            dataProductModel.setGatewayId(dataProduct.getGatewayId());
-            dataProductModel.setParentProductUri(dataProduct.getParentProductUri());
-            dataProductModel.setProductName(dataProduct.getProductName());
-            if(dataProduct.getDataProductType() != null)
-                dataProductModel.setDataProductType(DataProductType.valueOf(dataProduct.getDataProductType()));
-            else
-                dataProductModel.setDataProductType(DataProductType.FILE);
-            dataProductModel.setProductDescription(dataProduct.getProductDescription());
-            dataProductModel.setOwnerName(dataProduct.getOwnerName());
-            dataProductModel.setProductSize(dataProduct.getProductSize());
-            if(dataProduct.getCreationTime() != null)
-                dataProductModel.setCreationTime(dataProduct.getCreationTime().getTime());
-            if(dataProduct.getLastModifiedTime() != null)
-                dataProductModel.setLastModifiedTime(dataProduct.getLastModifiedTime().getTime());
-            dataProductModel.setProductMetadata(getResourceMetaData(dataProduct.getDataProductMetaData()));
-            if(dataProduct.getDataReplicaLocations() != null){
-                ArrayList<DataReplicaLocationModel> dataReplicaLocationModels = new ArrayList<>();
-                dataProduct.getDataReplicaLocations().stream().forEach(r->dataReplicaLocationModels
-                        .add(getDataReplicaLocationModel(r)));
-                dataProductModel.setReplicaLocations(dataReplicaLocationModels);
-            }
-            if(dataProductModel.getDataProductType().equals(DataProductType.COLLECTION) && dataProduct.getChildDataProducts() != null){
-                ArrayList<DataProductModel> childDataProducts = new ArrayList<>();
-                dataProduct.getChildDataProducts().stream().forEach(r->childDataProducts.add(getDataProductModel(r)));
-                dataProductModel.setChildProducts(childDataProducts);
-            }
-            return dataProductModel;
-        }
-        return null;
-    }
-
-    public static DataProduct getDataProduct(DataProductModel dataProductModel){
-        if(dataProductModel != null){
-            DataProduct dataProduct = new DataProduct();
-            return getUpdatedDataProduct(dataProductModel, dataProduct);
-        }
-        return null;
-    }
-
-    public static DataProduct getUpdatedDataProduct(DataProductModel dataProductModel, DataProduct dataProduct){
-        dataProduct.setProductUri(dataProductModel.getProductUri());
-        dataProduct.setLogicalPath(dataProductModel.getLogicalPath());
-        dataProduct.setGatewayId(dataProductModel.getGatewayId());
-        dataProduct.setProductName(dataProductModel.getProductName());
-        dataProduct.setParentProductUri(dataProductModel.getParentProductUri());
-        if(dataProductModel.getDataProductType() != null)
-            dataProduct.setDataProductType(dataProductModel.getDataProductType().toString());
-        else
-            dataProduct.setDataProductType(DataProductType.FILE.toString());
-        dataProduct.setProductDescription(dataProductModel.getProductDescription());
-        dataProduct.setOwnerName(dataProductModel.getOwnerName());
-        dataProduct.setProductSize(dataProductModel.getProductSize());
-        if(dataProductModel.getCreationTime() > 0)
-            dataProduct.setCreationTime(new Timestamp(dataProductModel.getCreationTime()));
-        if(dataProductModel.getLastModifiedTime() > 0)
-            dataProduct.setLastModifiedTime(new Timestamp(dataProductModel.getLastModifiedTime()));
-        ArrayList<DataProductMetaData> dataProductMetaData = new ArrayList<>();
-        if(dataProductModel.getProductMetadata() != null) {
-            dataProductModel.getProductMetadata().keySet().stream().forEach(k -> {
-                String v = dataProductModel.getProductMetadata().get(k);
-                DataProductMetaData temp = new DataProductMetaData();
-                temp.setProductUri(dataProduct.getProductUri());
-                temp.setKey(k);
-                temp.setValue(v);
-                dataProductMetaData.add(temp);
-            });
-            dataProduct.setDataProductMetaData(dataProductMetaData);
-        }
-        if(dataProductModel.getReplicaLocations() != null){
-            ArrayList<DataReplicaLocation> dataReplicaLocations = new ArrayList<>();
-            dataProductModel.getReplicaLocations().stream().forEach(r->{
-                DataReplicaLocation dataReplicaLocationModel = getDataReplicaLocation(r);
-                dataReplicaLocationModel.setProductUri(dataProductModel.getProductUri());
-                dataReplicaLocations.add(dataReplicaLocationModel);
-            });
-            dataProduct.setDataReplicaLocations(dataReplicaLocations);
-        }
-        if(dataProductModel.getDataProductType() == DataProductType.COLLECTION && dataProductModel.getChildProducts() != null){
-            ArrayList<DataProduct> childDataProducts = new ArrayList<>();
-            dataProductModel.getChildProducts().stream().forEach(r->childDataProducts.add(getDataProduct(r)));
-            dataProduct.setChildDataProducts(childDataProducts);
-        }
-        return dataProduct;
-    }
-
-    public static DataReplicaLocationModel getDataReplicaLocationModel(DataReplicaLocation replicaLocation){
-        if (replicaLocation != null) {
-            DataReplicaLocationModel replicaLocationModel = new DataReplicaLocationModel();
-            replicaLocationModel.setReplicaId(replicaLocation.getReplicaId());
-            replicaLocationModel.setProductUri(replicaLocation.getProductUri());
-            replicaLocationModel.setReplicaName(replicaLocation.getReplicaName());
-            replicaLocationModel.setReplicaDescription(replicaLocation.getReplicaDescription());
-            replicaLocationModel.setStorageResourceId(replicaLocation.getStorageResourceId());
-            if(replicaLocation.getValidUntilTime() != null)
-                replicaLocationModel.setValidUntilTime(replicaLocation.getValidUntilTime().getTime());
-            replicaLocationModel.setFilePath(replicaLocation.getFilePath());
-            if(replicaLocation.getCreationTime() != null)
-                replicaLocationModel.setCreationTime(replicaLocation.getCreationTime().getTime());
-            if(replicaLocation.getLastModifiedTime() != null)
-                replicaLocationModel.setLastModifiedTime(replicaLocation.getLastModifiedTime().getTime());
-            if(replicaLocation.getReplicaLocationCategory() != null)
-                replicaLocationModel.setReplicaLocationCategory(ReplicaLocationCategory.valueOf(replicaLocation
-                        .getReplicaLocationCategory().toString()));
-            if(replicaLocation.getReplicaPersistentType() != null)
-                replicaLocationModel.setReplicaPersistentType(ReplicaPersistentType.valueOf(replicaLocation
-                        .getReplicaPersistentType().toString()));
-            replicaLocationModel.setReplicaMetadata(getReplicaMetaData(replicaLocation.getDataReplicaMetaData()));
-            return replicaLocationModel;
-        }
-        return null;
-    }
-
-    public static DataReplicaLocation getDataReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel){
-        if(dataReplicaLocationModel != null){
-            DataReplicaLocation dataReplicaLocation = new DataReplicaLocation();
-            return getUpdatedDataReplicaLocation(dataReplicaLocationModel, dataReplicaLocation);
-        }
-        return null;
-    }
-
-    public static DataReplicaLocation getUpdatedDataReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel,
-                                                                    DataReplicaLocation dataReplicaLocation){
-        dataReplicaLocation.setReplicaId(dataReplicaLocationModel.getReplicaId());
-        dataReplicaLocation.setProductUri(dataReplicaLocationModel.getProductUri());
-        dataReplicaLocation.setReplicaName(dataReplicaLocationModel.getReplicaName());
-        dataReplicaLocation.setReplicaDescription(dataReplicaLocationModel.getReplicaDescription());
-        dataReplicaLocation.setStorageResourceId(dataReplicaLocationModel.getStorageResourceId());
-        dataReplicaLocation.setFilePath(dataReplicaLocationModel.getFilePath());
-        if(dataReplicaLocationModel.getValidUntilTime() > 0)
-            dataReplicaLocation.setValidUntilTime(new Timestamp(dataReplicaLocationModel.getValidUntilTime()));
-        if(dataReplicaLocationModel.getCreationTime() > 0)
-            dataReplicaLocation.setCreationTime(new Timestamp(dataReplicaLocationModel.getCreationTime()));
-        if(dataReplicaLocationModel.getLastModifiedTime() > 0)
-            dataReplicaLocation.setLastModifiedTime(new Timestamp(dataReplicaLocationModel.getLastModifiedTime()));
-        if(dataReplicaLocationModel.getReplicaLocationCategory() != null)
-            dataReplicaLocation.setReplicaLocationCategory(dataReplicaLocationModel.getReplicaLocationCategory().toString());
-        if(dataReplicaLocationModel.getReplicaPersistentType() != null)
-            dataReplicaLocation.setReplicaPersistentType(dataReplicaLocationModel.getReplicaPersistentType().toString());
-        ArrayList<DataReplicaMetaData> dataReplicaMetadata = new ArrayList<>();
-        if(dataReplicaLocation.getDataReplicaMetaData() != null){
-            dataReplicaLocationModel.getReplicaMetadata().keySet().stream().forEach(k -> {
-                String v = dataReplicaLocationModel.getReplicaMetadata().get(k);
-                DataReplicaMetaData temp = new DataReplicaMetaData();
-                temp.setReplicaId(dataReplicaLocationModel.getProductUri());
-                temp.setKey(k);
-                temp.setValue(v);
-                dataReplicaMetadata.add(temp);
-            });
-            dataReplicaLocation.setDataReplicaMetaData(dataReplicaMetadata);
-        }
-        return dataReplicaLocation;
-    }
-
-    public static Map<String, String> getResourceMetaData(Collection<DataProductMetaData> dataProductMetaData){
-        HashMap<String, String> metadata = new HashMap<>();
-        if(dataProductMetaData!=null && !dataProductMetaData.isEmpty()) {
-            dataProductMetaData.stream().forEach(m -> metadata.put(m.getKey(),m.getValue()));
-        }
-        return metadata;
-    }
-
-    public static Map<String, String> getReplicaMetaData(Collection<DataReplicaMetaData> dataReplicaMetaData){
-        HashMap<String, String> metadata = new HashMap<>();
-        if(dataReplicaMetaData!=null && !dataReplicaMetaData.isEmpty()) {
-            dataReplicaMetaData.stream().forEach(m -> metadata.put(m.getKey(),m.getValue()));
-        }
-        return metadata;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java
index 41a9f13..8e4ed08 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java
@@ -24,7 +24,7 @@ package org.apache.airavata.registry.core.experiment.catalog.impl;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.registry.core.app.catalog.impl.AppCatalogImpl;
-import org.apache.airavata.registry.core.data.catalog.impl.DataCatalogImpl;
+import org.apache.airavata.registry.core.replica.catalog.impl.ReplicaCatalogImpl;
 import org.apache.airavata.registry.core.impl.RegistryImpl;
 import org.apache.airavata.registry.cpi.*;
 import org.slf4j.Logger;
@@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory;
 public class RegistryFactory {
     private static ExperimentCatalog experimentCatalog;
     private static AppCatalog appCatalog;
-    private static DataCatalog replicaCatalog;
+    private static ReplicaCatalog replicaCatalog;
     private static Registry registry;
     private static Logger logger = LoggerFactory.getLogger(RegistryFactory.class);
 
@@ -100,14 +100,14 @@ public class RegistryFactory {
         return appCatalog;
     }
 
-    public static DataCatalog getDataCatalog() throws DataCatalogException {
+    public static ReplicaCatalog getReplicaCatalog() throws ReplicaCatalogException {
         try {
             if (replicaCatalog == null) {
-                replicaCatalog = new DataCatalogImpl();
+                replicaCatalog = new ReplicaCatalogImpl();
             }
         } catch (Exception e) {
             logger.error("Unable to create data catalog instance", e);
-            throw new DataCatalogException(e);
+            throw new ReplicaCatalogException(e);
         }
         return replicaCatalog;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/impl/RegistryImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/impl/RegistryImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/impl/RegistryImpl.java
index 5207fee..0e3c006 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/impl/RegistryImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/impl/RegistryImpl.java
@@ -22,7 +22,7 @@
 package org.apache.airavata.registry.core.impl;
 
 import org.apache.airavata.registry.core.app.catalog.impl.AppCatalogImpl;
-import org.apache.airavata.registry.core.data.catalog.impl.DataCatalogImpl;
+import org.apache.airavata.registry.core.replica.catalog.impl.ReplicaCatalogImpl;
 import org.apache.airavata.registry.core.experiment.catalog.impl.ExperimentCatalogImpl;
 import org.apache.airavata.registry.cpi.*;
 
@@ -43,7 +43,7 @@ public class RegistryImpl implements Registry {
     }
 
     @Override
-    public DataCatalog getDataCatalog() throws RegistryException {
-        return new DataCatalogImpl();
+    public ReplicaCatalog getReplicaCatalog() throws RegistryException {
+        return new ReplicaCatalogImpl();
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/impl/ReplicaCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/impl/ReplicaCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/impl/ReplicaCatalogImpl.java
new file mode 100644
index 0000000..2da6724
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/impl/ReplicaCatalogImpl.java
@@ -0,0 +1,356 @@
+/*
+ *
+ * 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.replica.catalog.impl;
+
+import org.apache.airavata.model.data.replica.DataProductModel;
+import org.apache.airavata.model.data.replica.DataProductType;
+import org.apache.airavata.model.data.replica.DataReplicaLocationModel;
+import org.apache.airavata.registry.core.replica.catalog.model.DataProduct;
+import org.apache.airavata.registry.core.replica.catalog.model.DataReplicaLocation;
+import org.apache.airavata.registry.core.replica.catalog.utils.ReplicaCatalogJPAUtils;
+import org.apache.airavata.registry.core.replica.catalog.utils.ThriftDataModelConversion;
+import org.apache.airavata.registry.cpi.ReplicaCatalog;
+import org.apache.airavata.registry.cpi.ReplicaCatalogException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+public class ReplicaCatalogImpl implements ReplicaCatalog {
+
+    private final static Logger logger = LoggerFactory.getLogger(ReplicaCatalogImpl.class);
+
+    @Override
+    public String registerDataProduct(DataProductModel productModel) throws ReplicaCatalogException {
+        if(productModel.getOwnerName() == null || productModel.getGatewayId() == null || productModel
+                .getLogicalPath() == null || !productModel.getLogicalPath().startsWith("/")){
+            throw new ReplicaCatalogException("owner name, gateway id and logical path should be non empty and logical path" +
+                    " should start with /");
+        }
+        if(productModel.getDataProductType().equals(DataProductType.FILE) && !productModel.getLogicalPath().endsWith(productModel.getProductName())){
+            if(!productModel.getLogicalPath().endsWith("/"))
+                productModel.setLogicalPath(productModel.getLogicalPath()+"/");
+            productModel.setLogicalPath(productModel.getLogicalPath()+productModel.getProductName());
+        }
+        //Creating parent logical dir if not exist too
+        String parentUri = ReplicaCatalog.schema + "://" + productModel.getOwnerName() + "@" + productModel.getGatewayId() + ":/" ;
+        DataProductModel tempDp;
+        if(!isExists(parentUri)){
+            tempDp = new DataProductModel();
+            tempDp.setProductUri(parentUri);
+            tempDp.setLogicalPath("/");
+            tempDp.setOwnerName(productModel.getOwnerName());
+            tempDp.setGatewayId(productModel.getGatewayId());
+            tempDp.setDataProductType(DataProductType.DIR);
+            createDataProduct(tempDp);
+        }
+        String[] bits = productModel.getLogicalPath().split("/");
+        for(int i=0; i<bits.length-1;i++){
+            String dir = bits[i];
+            if(!isExists(parentUri + dir)){
+                tempDp = new DataProductModel();
+                try {
+                    tempDp.setLogicalPath((new URI(parentUri + dir)).getPath());
+                } catch (URISyntaxException e) {
+                    throw new ReplicaCatalogException(e);
+                }
+                tempDp.setProductUri(parentUri + dir);
+                tempDp.setOwnerName(productModel.getOwnerName());
+                tempDp.setGatewayId(productModel.getGatewayId());
+                tempDp.setDataProductType(DataProductType.DIR);
+                tempDp.setParentProductUri(parentUri);
+                parentUri = createDataProduct(tempDp);
+            }
+        }
+
+        productModel.setParentProductUri(parentUri);
+        String productUri = ReplicaCatalog.schema + "://" + productModel.getOwnerName() + "@" + productModel.getGatewayId()
+                + ":" + productModel.getLogicalPath();
+        productModel.setProductUri(productUri);
+        long currentTime = System.currentTimeMillis();
+        productModel.setCreationTime(currentTime);
+        productModel.setLastModifiedTime(currentTime);
+        if(productModel.getReplicaLocations() != null){
+            productModel.getReplicaLocations().stream().forEach(r-> {
+                r.setProductUri(productUri);
+                r.setReplicaId(UUID.randomUUID().toString());
+                r.setCreationTime(currentTime);
+                r.setLastModifiedTime(currentTime);
+            });
+        }
+        productModel.setCreationTime(System.currentTimeMillis());
+        productModel.setLastModifiedTime(System.currentTimeMillis());
+        return createDataProduct(productModel);
+    }
+
+    private String createDataProduct(DataProductModel productModel) throws ReplicaCatalogException {
+        DataProduct dataProduct = ThriftDataModelConversion.getDataProduct(productModel);
+        EntityManager em = null;
+        try {
+            em = ReplicaCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            em.persist(dataProduct);
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new ReplicaCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return dataProduct.getProductUri();
+    }
+
+    @Override
+    public boolean removeDataProduct(String productUri) throws ReplicaCatalogException {
+        EntityManager em = null;
+        try {
+            em = ReplicaCatalogJPAUtils.getEntityManager();
+            DataProduct dataProduct = em.find(DataProduct.class, productUri);
+            if(dataProduct == null)
+                return false;
+            em.getTransaction().begin();
+            em.remove(dataProduct);
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new ReplicaCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public boolean updateDataProduct(DataProductModel productModel) throws ReplicaCatalogException {
+        EntityManager em = null;
+        try {
+            em = ReplicaCatalogJPAUtils.getEntityManager();
+            DataProduct dataProduct = em.find(DataProduct.class, productModel.getProductUri());
+            if(dataProduct == null)
+                return false;
+            em.getTransaction().begin();
+            productModel.setCreationTime(dataProduct.getCreationTime().getTime());
+            productModel.setLastModifiedTime(System.currentTimeMillis());
+            em.merge(ThriftDataModelConversion.getUpdatedDataProduct(productModel, dataProduct));
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new ReplicaCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public DataProductModel getDataProduct(String productUri) throws ReplicaCatalogException {
+        EntityManager em = null;
+        try {
+            em = ReplicaCatalogJPAUtils.getEntityManager();
+            DataProduct dataProduct = em.find(DataProduct.class, productUri);
+            return ThriftDataModelConversion.getDataProductModel(dataProduct);
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new ReplicaCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    @Override
+    public boolean isExists(String productUri) throws ReplicaCatalogException {
+        EntityManager em = null;
+        try {
+            em = ReplicaCatalogJPAUtils.getEntityManager();
+            DataProduct dataProduct = em.find(DataProduct.class, productUri);
+            return dataProduct != null;
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new ReplicaCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    @Override
+    public String registerReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel) throws ReplicaCatalogException {
+        String replicaId = UUID.randomUUID().toString();
+        dataReplicaLocationModel.setReplicaId(replicaId);
+        long currentTime = System.currentTimeMillis();
+        dataReplicaLocationModel.setCreationTime(currentTime);
+        dataReplicaLocationModel.setLastModifiedTime(currentTime);
+        dataReplicaLocationModel.setCreationTime(System.currentTimeMillis());
+        dataReplicaLocationModel.setLastModifiedTime(System.currentTimeMillis());
+        DataReplicaLocation replicaLocation = ThriftDataModelConversion.getDataReplicaLocation(dataReplicaLocationModel);
+        EntityManager em = null;
+        try {
+            em = ReplicaCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            em.persist(replicaLocation);
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new ReplicaCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return replicaId;
+    }
+
+    @Override
+    public boolean removeReplicaLocation(String replicaId) throws ReplicaCatalogException {
+        EntityManager em = null;
+        try {
+            em = ReplicaCatalogJPAUtils.getEntityManager();
+            DataReplicaLocation replicaLocation = em.find(DataReplicaLocation.class, replicaId);
+            if(replicaLocation == null)
+                return false;
+            em.getTransaction().begin();
+            em.remove(replicaLocation);
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new ReplicaCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public boolean updateReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel) throws ReplicaCatalogException {
+        EntityManager em = null;
+        try {
+            em = ReplicaCatalogJPAUtils.getEntityManager();
+            DataReplicaLocation dataReplicaLocation = em.find(DataReplicaLocation.class, dataReplicaLocationModel.getReplicaId());
+            if(dataReplicaLocation == null)
+                return false;
+            em.getTransaction().begin();
+            dataReplicaLocationModel.setCreationTime(dataReplicaLocation.getCreationTime().getTime());
+            dataReplicaLocationModel.setLastModifiedTime(System.currentTimeMillis());
+            em.merge(ThriftDataModelConversion.getUpdatedDataReplicaLocation(dataReplicaLocationModel, dataReplicaLocation));
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new ReplicaCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public DataReplicaLocationModel getReplicaLocation(String replicaId) throws ReplicaCatalogException {
+        EntityManager em = null;
+        try {
+            em = ReplicaCatalogJPAUtils.getEntityManager();
+            DataReplicaLocation replicaLocation = em.find(DataReplicaLocation.class, replicaId);
+            return ThriftDataModelConversion.getDataReplicaLocationModel(replicaLocation);
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new ReplicaCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    @Override
+    public List<DataReplicaLocationModel> getAllReplicaLocations(String productUri) throws ReplicaCatalogException {
+        EntityManager em = null;
+        try {
+            em = ReplicaCatalogJPAUtils.getEntityManager();
+            DataProduct dataProduct = em.find(DataProduct.class, productUri);
+            if(dataProduct == null)
+                return null;
+            ArrayList<DataReplicaLocationModel> dataReplicaLocationModels = new ArrayList<>();
+            dataProduct.getDataReplicaLocations().stream().forEach(rl->dataReplicaLocationModels
+                    .add(ThriftDataModelConversion.getDataReplicaLocationModel(rl)));
+            return dataReplicaLocationModels;
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new ReplicaCatalogException(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/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration.java
new file mode 100644
index 0000000..881d043
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration.java
@@ -0,0 +1,55 @@
+/*
+*
+* 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.replica.catalog.model;
+
+import org.apache.airavata.registry.core.app.catalog.model.Configuration_PK;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+@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;
+
+    public String getConfig_key() {
+        return config_key;
+    }
+
+    public String getConfig_val() {
+        return config_val;
+    }
+
+    public void setConfig_key(String config_key) {
+        this.config_key = config_key;
+    }
+
+    public void setConfig_val(String config_val) {
+        this.config_val = config_val;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataProduct.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataProduct.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataProduct.java
new file mode 100644
index 0000000..7a48f87
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataProduct.java
@@ -0,0 +1,187 @@
+/*
+ *
+ * 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.replica.catalog.model;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.*;
+import java.sql.Timestamp;
+import java.util.Collection;
+
+@Entity
+@Table(name = "DATA_PRODUCT")
+public class DataProduct {
+    private final static Logger logger = LoggerFactory.getLogger(DataProduct.class);
+    private String productUri;
+    private String gatewayId;
+    private String productName;
+    private String logicalPath;
+    private String productDescription;
+    private String dataProductType;
+    private String ownerName;
+    private String parentProductUri;
+    private int productSize;
+    private Timestamp creationTime;
+    private Timestamp lastModifiedTime;
+
+    private DataProduct parentDataProduct;
+    private Collection<DataReplicaLocation> dataReplicaLocations;
+    private Collection<DataProductMetaData> dataProductMetaData;
+    private Collection<DataProduct> childDataProducts;
+
+    @Id
+    @Column(name = "PRODUCT_URI")
+    public String getProductUri() {
+        return productUri;
+    }
+
+    public void setProductUri(String productUri) {
+        this.productUri = productUri;
+    }
+
+    @Column(name = "GATEWAY_ID")
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    @Column(name = "PRODUCT_NAME")
+    public String getProductName() {
+        return productName;
+    }
+
+    public void setProductName(String productName) {
+        this.productName = productName;
+    }
+
+    @Column(name = "PRODUCT_DESCRIPTION")
+    public String getProductDescription() {
+        return productDescription;
+    }
+
+    public void setProductDescription(String productDescription) {
+        this.productDescription = productDescription;
+    }
+
+    @Column(name = "LOGICAL_PATH")
+    public String getLogicalPath() {
+        return logicalPath;
+    }
+
+    public void setLogicalPath(String logicalPath) {
+        this.logicalPath = logicalPath;
+    }
+
+    @Column(name = "OWNER_NAME")
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    @Column(name = "PARENT_PRODUCT_URI")
+    public String getParentProductUri() {
+        return parentProductUri;
+    }
+
+    public void setParentProductUri(String parentProductUri) {
+        this.parentProductUri = parentProductUri;
+    }
+
+    @Column(name = "PRODUCT_TYPE")
+    public String getDataProductType() {
+        return dataProductType;
+    }
+
+    public void setDataProductType(String dataProductType) {
+        this.dataProductType = dataProductType;
+    }
+
+    @Column(name = "PRODUCT_SIZE")
+    public int getProductSize() {
+        return productSize;
+    }
+
+    public void setProductSize(int productSize) {
+        this.productSize = productSize;
+    }
+
+    @Column(name = "CREATION_TIME")
+    public Timestamp getCreationTime() {
+        return creationTime;
+    }
+
+    public void setCreationTime(Timestamp creationTime) {
+        this.creationTime = creationTime;
+    }
+
+    @Column(name = "LAST_MODIFIED_TIME")
+    public Timestamp getLastModifiedTime() {
+        return lastModifiedTime;
+    }
+
+    public void setLastModifiedTime(Timestamp lastModifiedTime) {
+        this.lastModifiedTime = lastModifiedTime;
+    }
+
+    @OneToMany(mappedBy = "dataProduct", cascade = {CascadeType.ALL})
+    public Collection<DataReplicaLocation> getDataReplicaLocations() {
+        return dataReplicaLocations;
+    }
+
+    public void setDataReplicaLocations(Collection<DataReplicaLocation> dataReplicaLocations) {
+        this.dataReplicaLocations = dataReplicaLocations;
+    }
+
+    @OneToMany(mappedBy = "dataProduct", cascade = {CascadeType.ALL})
+    public Collection<DataProductMetaData> getDataProductMetaData() {
+        return dataProductMetaData;
+    }
+
+    public void setDataProductMetaData(Collection<DataProductMetaData> dataProductMetaData) {
+        this.dataProductMetaData = dataProductMetaData;
+    }
+
+    @ManyToOne
+    @JoinColumn(name = "PARENT_PRODUCT_URI", referencedColumnName = "PRODUCT_URI")
+    public DataProduct getParentDataProduct() {
+        return parentDataProduct;
+    }
+
+    public void setParentDataProduct(DataProduct parentDataProduct) {
+        this.parentDataProduct = parentDataProduct;
+    }
+
+    @OneToMany(mappedBy = "parentDataProduct", cascade = {CascadeType.ALL})
+    public Collection<DataProduct> getChildDataProducts() {
+        return childDataProducts;
+    }
+
+    public void setChildDataProducts(Collection<DataProduct> childDataProducts) {
+        this.childDataProducts = childDataProducts;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataProductMetaData.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataProductMetaData.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataProductMetaData.java
new file mode 100644
index 0000000..8604c69
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataProductMetaData.java
@@ -0,0 +1,77 @@
+/*
+ *
+ * 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.replica.catalog.model;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "DATA_PRODUCT_METADATA")
+@IdClass(DataProductMetaData_PK.class)
+public class DataProductMetaData {
+    private final static Logger logger = LoggerFactory.getLogger(DataProductMetaData.class);
+    private String productUri;
+    private String key;
+    private String value;
+
+    private DataProduct dataProduct;
+
+    @Id
+    @Column(name = "PRODUCT_URI")
+    public String getProductUri() {
+        return productUri;
+    }
+
+    public void setProductUri(String productUri) {
+        this.productUri = productUri;
+    }
+
+    @Id
+    @Column(name = "METADATA_KEY")
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    @Column(name = "METADATA_VALUE")
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    @ManyToOne
+    @JoinColumn(name = "PRODUCT_URI", referencedColumnName = "PRODUCT_URI")
+    public DataProduct getDataProduct() {
+        return dataProduct;
+    }
+
+    public void setDataProduct(DataProduct dataProduct) {
+        this.dataProduct = dataProduct;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataProductMetaData_PK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataProductMetaData_PK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataProductMetaData_PK.java
new file mode 100644
index 0000000..891b2fa
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataProductMetaData_PK.java
@@ -0,0 +1,59 @@
+/*
+ *
+ * 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.replica.catalog.model;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.Serializable;
+
+public class DataProductMetaData_PK implements Serializable {
+    private final static Logger logger = LoggerFactory.getLogger(DataProductMetaData_PK.class);
+
+    private String productUri;
+    private String key;
+
+    public String getProductUri() {
+        return productUri;
+    }
+
+    public void setProductUri(String productUri) {
+        this.productUri = productUri;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return 1;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataReplicaLocation.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataReplicaLocation.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataReplicaLocation.java
new file mode 100644
index 0000000..44ce4fc
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataReplicaLocation.java
@@ -0,0 +1,169 @@
+/*
+ *
+ * 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.replica.catalog.model;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.*;
+import java.sql.Timestamp;
+import java.util.Collection;
+
+@Entity
+@Table(name = "DATA_REPLICA_LOCATION")
+public class DataReplicaLocation {
+    private final static Logger logger = LoggerFactory.getLogger(DataReplicaLocation.class);
+    private String replicaId;
+    private String productUri;
+    private String replicaName;
+    private String replicaDescription;
+    private String storageResourceId;
+    private String filePath;
+    private String replicaLocationCategory;
+    private String replicaPersistentType;
+    private Timestamp creationTime;
+    private Timestamp lastModifiedTime;
+    private Timestamp validUntilTime;
+
+    private DataProduct dataProduct;
+    private Collection<DataReplicaMetaData> dataReplicaMetaData;
+
+    @Id
+    @Column(name = "REPLICA_ID")
+    public String getReplicaId() {
+        return replicaId;
+    }
+
+    public void setReplicaId(String replicaId) {
+        this.replicaId = replicaId;
+    }
+
+    @Column(name = "PRODUCT_URI")
+    public String getProductUri() {
+        return productUri;
+    }
+
+    public void setProductUri(String productUri) {
+        this.productUri = productUri;
+    }
+
+
+    @Column(name = "REPLICA_NAME")
+    public String getReplicaName() {
+        return replicaName;
+    }
+
+    public void setReplicaName(String replicaName) {
+        this.replicaName = replicaName;
+    }
+
+    @Column(name = "REPLICA_DESCRIPTION")
+    public String getReplicaDescription() {
+        return replicaDescription;
+    }
+
+    public void setReplicaDescription(String replicaDescription) {
+        this.replicaDescription = replicaDescription;
+    }
+
+    @Column(name = "STORAGE_RESOURCE_ID")
+    public String getStorageResourceId() {
+        return storageResourceId;
+    }
+
+    public void setStorageResourceId(String storageResourceId) {
+        this.storageResourceId = storageResourceId;
+    }
+
+    @Column(name = "FILE_PATH")
+    public String getFilePath() {
+        return filePath;
+    }
+
+    public void setFilePath(String filePath) {
+        this.filePath = filePath;
+    }
+
+    @Column(name = "CREATION_TIME")
+    public Timestamp getCreationTime() {
+        return creationTime;
+    }
+
+    public void setCreationTime(Timestamp creationTime) {
+        this.creationTime = creationTime;
+    }
+
+    @Column(name = "LAST_MODIFIED_TIME")
+    public Timestamp getLastModifiedTime() {
+        return lastModifiedTime;
+    }
+
+    public void setLastModifiedTime(Timestamp lastModifiedTime) {
+        this.lastModifiedTime = lastModifiedTime;
+    }
+
+    @Column(name = "VALID_UNTIL_TIME")
+    public Timestamp getValidUntilTime() {
+        return validUntilTime;
+    }
+
+    public void setValidUntilTime(Timestamp validUntilTime) {
+        this.validUntilTime = validUntilTime;
+    }
+
+
+    @Column(name = "REPLICA_LOCATION_CATEGORY")
+    public String getReplicaLocationCategory() {
+        return replicaLocationCategory;
+    }
+
+    public void setReplicaLocationCategory(String replicaLocationCategory) {
+        this.replicaLocationCategory = replicaLocationCategory;
+    }
+
+    @Column(name = "REPLICA_PERSISTENT_TYPE")
+    public String getReplicaPersistentType() {
+        return replicaPersistentType;
+    }
+
+    public void setReplicaPersistentType(String replicaPersistentType) {
+        this.replicaPersistentType = replicaPersistentType;
+    }
+
+    @ManyToOne
+    @JoinColumn(name = "PRODUCT_URI", referencedColumnName = "PRODUCT_URI")
+    public DataProduct getDataProduct() {
+        return dataProduct;
+    }
+
+    public void setDataProduct(DataProduct dataProduct) {
+        this.dataProduct = dataProduct;
+    }
+
+    @OneToMany(mappedBy = "dataReplicaLocation", cascade = {CascadeType.ALL})
+    public Collection<DataReplicaMetaData> getDataReplicaMetaData() {
+        return dataReplicaMetaData;
+    }
+
+    public void setDataReplicaMetaData(Collection<DataReplicaMetaData> dataReplicaMetaData) {
+        this.dataReplicaMetaData = dataReplicaMetaData;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataReplicaMetaData.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataReplicaMetaData.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataReplicaMetaData.java
new file mode 100644
index 0000000..2f00321
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataReplicaMetaData.java
@@ -0,0 +1,77 @@
+/*
+ *
+ * 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.replica.catalog.model;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "DATA_REPLICA_METADATA")
+@IdClass(DataReplicaMetaData_PK.class)
+public class DataReplicaMetaData {
+    private final static Logger logger = LoggerFactory.getLogger(DataReplicaMetaData.class);
+    private String replicaId;
+    private String key;
+    private String value;
+
+    private DataReplicaLocation dataReplicaLocation;
+
+    @Id
+    @Column(name = "REPLICA_ID")
+    public String getReplicaId() {
+        return replicaId;
+    }
+
+    public void setReplicaId(String replicaId) {
+        this.replicaId = replicaId;
+    }
+
+    @Id
+    @Column(name = "METADATA_KEY")
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    @Column(name = "METADATA_VALUE")
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    @ManyToOne
+    @JoinColumn(name = "REPLICA_ID", referencedColumnName = "REPLICA_ID")
+    public DataReplicaLocation getDataReplicaLocation() {
+        return dataReplicaLocation;
+    }
+
+    public void setDataReplicaLocation(DataReplicaLocation dataReplicaLocation) {
+        this.dataReplicaLocation = dataReplicaLocation;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataReplicaMetaData_PK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataReplicaMetaData_PK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataReplicaMetaData_PK.java
new file mode 100644
index 0000000..86133c2
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/DataReplicaMetaData_PK.java
@@ -0,0 +1,59 @@
+/*
+ *
+ * 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.replica.catalog.model;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.Serializable;
+
+public class DataReplicaMetaData_PK implements Serializable {
+    private final static Logger logger = LoggerFactory.getLogger(DataReplicaMetaData_PK.class);
+
+    private String replicaId;
+    private String key;
+
+    public String getReplicaId() {
+        return replicaId;
+    }
+
+    public void setReplicaId(String replicaId) {
+        this.replicaId = replicaId;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return 1;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ReplicaCatalogConstants.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ReplicaCatalogConstants.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ReplicaCatalogConstants.java
new file mode 100644
index 0000000..5d9d4ec
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ReplicaCatalogConstants.java
@@ -0,0 +1,49 @@
+/*
+ *
+ * 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.replica.catalog.utils;
+
+public class ReplicaCatalogConstants {
+	// table names
+	public static final String DATA_RESOURCE = "DataProduct";
+	public static final String DATA_REPLICA_LOCATION = "DataReplicaLocation";
+	public static final String CONFIGURATION = "Configuration";
+
+	// DataProduct Table
+	public final class DataResourceConstants {
+		public static final String RESOURCE_ID = "resourceId";
+		public static final String RESOURCE_NAME = "resourceName";
+		public static final String RESOURCE_DESCRIPTION = "resourceDescription";
+		public static final String RESOURCE_SIZE = "resourceSize";
+        public static final String CREATION_TIME = "creationTime";
+        public static final String LAST_MODIFIED_TIME = "lastModifiedTime";
+	}
+
+	// Users table
+	public final class DataReplicaLocationConstants {
+        public static final String REPLICA_ID = "replicaId";
+        public static final String RESOURCE_ID = "resourceId";
+        public static final String DATA_LOCATIONS = "dataLocations";
+        public static final String REPLICA_NAME = "replicaName";
+        public static final String REPLICA_DESCRIPTION = "replicaDescription";
+        public static final String CREATION_TIME = "creationTime";
+        public static final String LAST_MODIFIED_TIME = "lastModifiedTime";
+	}
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ReplicaCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ReplicaCatalogJPAUtils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ReplicaCatalogJPAUtils.java
new file mode 100644
index 0000000..21b3e17
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ReplicaCatalogJPAUtils.java
@@ -0,0 +1,82 @@
+/*
+ *
+ * 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.replica.catalog.utils;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.ServerSettings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.*;
+import java.util.HashMap;
+import java.util.Map;
+
+public class ReplicaCatalogJPAUtils {
+    private final static Logger logger = LoggerFactory.getLogger(ReplicaCatalogJPAUtils.class);
+
+    private static final String PERSISTENCE_UNIT_NAME = "datacatalog_data";
+    private static final String DATACATALOG_JDBC_DRIVER = "datacatalog.jdbc.driver";
+    private static final String DATACATALOG_JDBC_URL = "datacatalog.jdbc.url";
+    private static final String DATACATALOG_JDBC_USER = "datacatalog.jdbc.user";
+    private static final String DATACATALOG_JDBC_PWD = "datacatalog.jdbc.password";
+    private static final String DATACATALOG_VALIDATION_QUERY = "datacatalog.validationQuery";
+
+    @PersistenceUnit(unitName="datacatalog_data")
+    protected static EntityManagerFactory factory;
+
+    @PersistenceContext(unitName="datacatalog_data")
+    private static EntityManager dataCatEntityManager;
+
+    public static EntityManager getEntityManager() throws ApplicationSettingsException {
+        if (factory == null) {
+            String connectionProperties = "DriverClassName=" + readServerProperties(DATACATALOG_JDBC_DRIVER) + "," +
+                    "Url=" + readServerProperties(DATACATALOG_JDBC_URL) + "?autoReconnect=true," +
+                    "Username=" + readServerProperties(DATACATALOG_JDBC_USER) + "," +
+                    "Password=" + readServerProperties(DATACATALOG_JDBC_PWD) +
+                    ",validationQuery=" + readServerProperties(DATACATALOG_VALIDATION_QUERY);
+            System.out.println(connectionProperties);
+            Map<String, String> properties = new HashMap<String, String>();
+            properties.put("openjpa.ConnectionDriverName", "org.apache.commons.dbcp.BasicDataSource");
+            properties.put("openjpa.ConnectionProperties", connectionProperties);
+            properties.put("openjpa.DynamicEnhancementAgent", "true");
+            properties.put("openjpa.RuntimeUnenhancedClasses", "unsupported");
+            properties.put("openjpa.RemoteCommitProvider","sjvm");
+            properties.put("openjpa.Log","DefaultLevel=INFO, Runtime=INFO, Tool=INFO, SQL=INFO");
+            properties.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)");
+            properties.put("openjpa.jdbc.QuerySQLCache", "false");
+            properties.put("openjpa.ConnectionFactoryProperties", "PrettyPrint=true, PrettyPrintLineLength=72," +
+                    " PrintParameters=true, MaxActive=10, MaxIdle=5, MinIdle=2, MaxWait=31536000,  autoReconnect=true");
+            factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME, properties);
+        }
+        dataCatEntityManager = factory.createEntityManager();
+        return dataCatEntityManager;
+    }
+
+    private static String readServerProperties (String propertyName) throws ApplicationSettingsException {
+        try {
+            return ServerSettings.getSetting(propertyName);
+        } catch (ApplicationSettingsException e) {
+            logger.error("Unable to read airavata-server.properties...", e);
+            throw new ApplicationSettingsException("Unable to read airavata-server.properties...");
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ReplicaCatalogQueryGenerator.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ReplicaCatalogQueryGenerator.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ReplicaCatalogQueryGenerator.java
new file mode 100644
index 0000000..da102a9
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/utils/ReplicaCatalogQueryGenerator.java
@@ -0,0 +1,111 @@
+/*
+ *
+ * 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.replica.catalog.utils;
+
+import org.apache.airavata.registry.cpi.ResultOrderType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.util.HashMap;
+import java.util.Map;
+
+public class ReplicaCatalogQueryGenerator {
+
+    private final static Logger logger = LoggerFactory.getLogger(ReplicaCatalogQueryGenerator.class);
+	private String tableName;
+	private Map<String,Object> matches=new HashMap<String, Object>();
+	private static final String SELECT_OBJ="p";
+	private static final String DELETE_OBJ="p";
+	private static final String TABLE_OBJ="p";
+
+	public ReplicaCatalogQueryGenerator(String tableName, Object[]... params) {
+		setTableName(tableName);
+		for (Object[] param : params) {
+			addMatch(param[0].toString(), param[1]);
+		}
+	}
+	
+	public String getTableName() {
+		return tableName;
+	}
+
+    public void setTableName(String tableName) {
+		this.tableName = tableName;
+	}
+
+    public void addMatch(String colName, Object matchValue){
+		matches.put(colName, matchValue);
+	}
+	
+	public void setParameter(String colName, Object matchValue){
+		addMatch(colName, matchValue);
+	}
+
+    public Query selectQuery(EntityManager entityManager){
+        String queryString="SELECT "+ SELECT_OBJ + " FROM " +getTableName()+" "+TABLE_OBJ;
+        return generateQueryWithParameters(entityManager, queryString);
+    }
+
+    public Query selectQuery(EntityManager entityManager, String orderByColumn,
+                             ResultOrderType resultOrderType){
+        String order = (resultOrderType == ResultOrderType.ASC) ? "ASC" : "DESC";
+        String orderByClause = " ORDER BY " + SELECT_OBJ + "." + orderByColumn + " " + order;
+        String queryString="SELECT "+ SELECT_OBJ + " FROM " +getTableName()+" "+TABLE_OBJ;
+        return generateQueryWithParameters(entityManager, queryString, orderByClause);
+    }
+
+	public Query deleteQuery(EntityManager entityManager){
+		String queryString="Delete FROM "+getTableName()+" "+TABLE_OBJ;
+		return generateQueryWithParameters(entityManager, queryString);
+	}
+
+	private Query generateQueryWithParameters(EntityManager entityManager, String queryString) {
+		return generateQueryWithParameters(entityManager, queryString, "");
+	}
+
+    private Query generateQueryWithParameters(EntityManager entityManager,
+                                              String queryString, String orderByClause) {
+        Map<String,Object> queryParameters=new HashMap<String, Object>();
+        if (matches.size()>0){
+            String matchString = "";
+            int paramCount=0;
+            for (String colName : matches.keySet()) {
+                String paramName="param"+paramCount;
+                queryParameters.put(paramName, matches.get(colName));
+                if (!matchString.equals("")){
+                    matchString+=" AND ";
+                }
+                matchString+=TABLE_OBJ+"."+colName+" =:"+paramName;
+                paramCount++;
+            }
+            queryString+=" WHERE "+matchString;
+        }
+        queryString += orderByClause;
+        Query query = entityManager.createQuery(queryString);
+        for (String paramName : queryParameters.keySet()) {
+            query.setParameter(paramName, queryParameters.get(paramName));
+        }
+        return query;
+    }
+}


[09/10] airavata git commit: renaming data-catalog to replica catalog

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp
index 5f634dc..ed2e025 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp
@@ -28,7 +28,7 @@
 
 #include <thrift/TToString.h>
 
-namespace apache { namespace airavata { namespace model { namespace data { namespace resource {
+namespace apache { namespace airavata { namespace model { namespace data { namespace replica {
 
 int _kReplicaLocationCategoryValues[] = {
   ReplicaLocationCategory::GATEWAY_DATA_STORE,
@@ -54,87 +54,94 @@ const char* _kReplicaPersistentTypeNames[] = {
 };
 const std::map<int, const char*> _ReplicaPersistentType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(2, _kReplicaPersistentTypeValues, _kReplicaPersistentTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
-int _kDataResourceTypeValues[] = {
-  DataResourceType::COLLECTION,
-  DataResourceType::FILE
+int _kDataProductTypeValues[] = {
+  DataProductType::DIR,
+  DataProductType::FILE,
+  DataProductType::COLLECTION
 };
-const char* _kDataResourceTypeNames[] = {
-  "COLLECTION",
-  "FILE"
+const char* _kDataProductTypeNames[] = {
+  "DIR",
+  "FILE",
+  "COLLECTION"
 };
-const std::map<int, const char*> _DataResourceType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(2, _kDataResourceTypeValues, _kDataResourceTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+const std::map<int, const char*> _DataProductType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(3, _kDataProductTypeValues, _kDataProductTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
 
-DataResourceModel::~DataResourceModel() throw() {
+DataProductModel::~DataProductModel() throw() {
 }
 
 
-void DataResourceModel::__set_resourceId(const std::string& val) {
-  this->resourceId = val;
-__isset.resourceId = true;
+void DataProductModel::__set_productUri(const std::string& val) {
+  this->productUri = val;
+__isset.productUri = true;
 }
 
-void DataResourceModel::__set_gatewayId(const std::string& val) {
+void DataProductModel::__set_gatewayId(const std::string& val) {
   this->gatewayId = val;
 __isset.gatewayId = true;
 }
 
-void DataResourceModel::__set_parentResourceId(const std::string& val) {
-  this->parentResourceId = val;
-__isset.parentResourceId = true;
+void DataProductModel::__set_parentProductUri(const std::string& val) {
+  this->parentProductUri = val;
+__isset.parentProductUri = true;
 }
 
-void DataResourceModel::__set_resourceName(const std::string& val) {
-  this->resourceName = val;
-__isset.resourceName = true;
+void DataProductModel::__set_logicalPath(const std::string& val) {
+  this->logicalPath = val;
+__isset.logicalPath = true;
 }
 
-void DataResourceModel::__set_resourceDescription(const std::string& val) {
-  this->resourceDescription = val;
-__isset.resourceDescription = true;
+void DataProductModel::__set_productName(const std::string& val) {
+  this->productName = val;
+__isset.productName = true;
 }
 
-void DataResourceModel::__set_ownerName(const std::string& val) {
+void DataProductModel::__set_productDescription(const std::string& val) {
+  this->productDescription = val;
+__isset.productDescription = true;
+}
+
+void DataProductModel::__set_ownerName(const std::string& val) {
   this->ownerName = val;
 __isset.ownerName = true;
 }
 
-void DataResourceModel::__set_dataResourceType(const DataResourceType::type val) {
-  this->dataResourceType = val;
-__isset.dataResourceType = true;
+void DataProductModel::__set_dataProductType(const DataProductType::type val) {
+  this->dataProductType = val;
+__isset.dataProductType = true;
 }
 
-void DataResourceModel::__set_resourceSize(const int32_t val) {
-  this->resourceSize = val;
-__isset.resourceSize = true;
+void DataProductModel::__set_productSize(const int32_t val) {
+  this->productSize = val;
+__isset.productSize = true;
 }
 
-void DataResourceModel::__set_creationTime(const int64_t val) {
+void DataProductModel::__set_creationTime(const int64_t val) {
   this->creationTime = val;
 __isset.creationTime = true;
 }
 
-void DataResourceModel::__set_lastModifiedTime(const int64_t val) {
+void DataProductModel::__set_lastModifiedTime(const int64_t val) {
   this->lastModifiedTime = val;
 __isset.lastModifiedTime = true;
 }
 
-void DataResourceModel::__set_resourceMetadata(const std::map<std::string, std::string> & val) {
-  this->resourceMetadata = val;
-__isset.resourceMetadata = true;
+void DataProductModel::__set_productMetadata(const std::map<std::string, std::string> & val) {
+  this->productMetadata = val;
+__isset.productMetadata = true;
 }
 
-void DataResourceModel::__set_replicaLocations(const std::vector<DataReplicaLocationModel> & val) {
+void DataProductModel::__set_replicaLocations(const std::vector<DataReplicaLocationModel> & val) {
   this->replicaLocations = val;
 __isset.replicaLocations = true;
 }
 
-void DataResourceModel::__set_childResources(const std::vector<DataResourceModel> & val) {
-  this->childResources = val;
-__isset.childResources = true;
+void DataProductModel::__set_childProducts(const std::vector<DataProductModel> & val) {
+  this->childProducts = val;
+__isset.childProducts = true;
 }
 
-uint32_t DataResourceModel::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t DataProductModel::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -157,8 +164,8 @@ uint32_t DataResourceModel::read(::apache::thrift::protocol::TProtocol* iprot) {
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->resourceId);
-          this->__isset.resourceId = true;
+          xfer += iprot->readString(this->productUri);
+          this->__isset.productUri = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -173,55 +180,63 @@ uint32_t DataResourceModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->parentResourceId);
-          this->__isset.parentResourceId = true;
+          xfer += iprot->readString(this->parentProductUri);
+          this->__isset.parentProductUri = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 4:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->resourceName);
-          this->__isset.resourceName = true;
+          xfer += iprot->readString(this->logicalPath);
+          this->__isset.logicalPath = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 5:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->resourceDescription);
-          this->__isset.resourceDescription = true;
+          xfer += iprot->readString(this->productName);
+          this->__isset.productName = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 6:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->productDescription);
+          this->__isset.productDescription = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->ownerName);
           this->__isset.ownerName = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 7:
+      case 8:
         if (ftype == ::apache::thrift::protocol::T_I32) {
           int32_t ecast0;
           xfer += iprot->readI32(ecast0);
-          this->dataResourceType = (DataResourceType::type)ecast0;
-          this->__isset.dataResourceType = true;
+          this->dataProductType = (DataProductType::type)ecast0;
+          this->__isset.dataProductType = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 8:
+      case 9:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          xfer += iprot->readI32(this->resourceSize);
-          this->__isset.resourceSize = true;
+          xfer += iprot->readI32(this->productSize);
+          this->__isset.productSize = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 9:
+      case 10:
         if (ftype == ::apache::thrift::protocol::T_I64) {
           xfer += iprot->readI64(this->creationTime);
           this->__isset.creationTime = true;
@@ -229,7 +244,7 @@ uint32_t DataResourceModel::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 10:
+      case 11:
         if (ftype == ::apache::thrift::protocol::T_I64) {
           xfer += iprot->readI64(this->lastModifiedTime);
           this->__isset.lastModifiedTime = true;
@@ -237,10 +252,10 @@ uint32_t DataResourceModel::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 11:
+      case 12:
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
-            this->resourceMetadata.clear();
+            this->productMetadata.clear();
             uint32_t _size1;
             ::apache::thrift::protocol::TType _ktype2;
             ::apache::thrift::protocol::TType _vtype3;
@@ -250,17 +265,17 @@ uint32_t DataResourceModel::read(::apache::thrift::protocol::TProtocol* iprot) {
             {
               std::string _key6;
               xfer += iprot->readString(_key6);
-              std::string& _val7 = this->resourceMetadata[_key6];
+              std::string& _val7 = this->productMetadata[_key6];
               xfer += iprot->readString(_val7);
             }
             xfer += iprot->readMapEnd();
           }
-          this->__isset.resourceMetadata = true;
+          this->__isset.productMetadata = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 12:
+      case 13:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->replicaLocations.clear();
@@ -280,22 +295,22 @@ uint32_t DataResourceModel::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 13:
+      case 14:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            this->childResources.clear();
+            this->childProducts.clear();
             uint32_t _size13;
             ::apache::thrift::protocol::TType _etype16;
             xfer += iprot->readListBegin(_etype16, _size13);
-            this->childResources.resize(_size13);
+            this->childProducts.resize(_size13);
             uint32_t _i17;
             for (_i17 = 0; _i17 < _size13; ++_i17)
             {
-              xfer += this->childResources[_i17].read(iprot);
+              xfer += this->childProducts[_i17].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
-          this->__isset.childResources = true;
+          this->__isset.childProducts = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -312,14 +327,14 @@ uint32_t DataResourceModel::read(::apache::thrift::protocol::TProtocol* iprot) {
   return xfer;
 }
 
-uint32_t DataResourceModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t DataProductModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("DataResourceModel");
+  xfer += oprot->writeStructBegin("DataProductModel");
 
-  if (this->__isset.resourceId) {
-    xfer += oprot->writeFieldBegin("resourceId", ::apache::thrift::protocol::T_STRING, 1);
-    xfer += oprot->writeString(this->resourceId);
+  if (this->__isset.productUri) {
+    xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 1);
+    xfer += oprot->writeString(this->productUri);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.gatewayId) {
@@ -327,52 +342,57 @@ uint32_t DataResourceModel::write(::apache::thrift::protocol::TProtocol* oprot)
     xfer += oprot->writeString(this->gatewayId);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.parentResourceId) {
-    xfer += oprot->writeFieldBegin("parentResourceId", ::apache::thrift::protocol::T_STRING, 3);
-    xfer += oprot->writeString(this->parentResourceId);
+  if (this->__isset.parentProductUri) {
+    xfer += oprot->writeFieldBegin("parentProductUri", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->parentProductUri);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.logicalPath) {
+    xfer += oprot->writeFieldBegin("logicalPath", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->logicalPath);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.resourceName) {
-    xfer += oprot->writeFieldBegin("resourceName", ::apache::thrift::protocol::T_STRING, 4);
-    xfer += oprot->writeString(this->resourceName);
+  if (this->__isset.productName) {
+    xfer += oprot->writeFieldBegin("productName", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->productName);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.resourceDescription) {
-    xfer += oprot->writeFieldBegin("resourceDescription", ::apache::thrift::protocol::T_STRING, 5);
-    xfer += oprot->writeString(this->resourceDescription);
+  if (this->__isset.productDescription) {
+    xfer += oprot->writeFieldBegin("productDescription", ::apache::thrift::protocol::T_STRING, 6);
+    xfer += oprot->writeString(this->productDescription);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.ownerName) {
-    xfer += oprot->writeFieldBegin("ownerName", ::apache::thrift::protocol::T_STRING, 6);
+    xfer += oprot->writeFieldBegin("ownerName", ::apache::thrift::protocol::T_STRING, 7);
     xfer += oprot->writeString(this->ownerName);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.dataResourceType) {
-    xfer += oprot->writeFieldBegin("dataResourceType", ::apache::thrift::protocol::T_I32, 7);
-    xfer += oprot->writeI32((int32_t)this->dataResourceType);
+  if (this->__isset.dataProductType) {
+    xfer += oprot->writeFieldBegin("dataProductType", ::apache::thrift::protocol::T_I32, 8);
+    xfer += oprot->writeI32((int32_t)this->dataProductType);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.resourceSize) {
-    xfer += oprot->writeFieldBegin("resourceSize", ::apache::thrift::protocol::T_I32, 8);
-    xfer += oprot->writeI32(this->resourceSize);
+  if (this->__isset.productSize) {
+    xfer += oprot->writeFieldBegin("productSize", ::apache::thrift::protocol::T_I32, 9);
+    xfer += oprot->writeI32(this->productSize);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.creationTime) {
-    xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_I64, 9);
+    xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_I64, 10);
     xfer += oprot->writeI64(this->creationTime);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.lastModifiedTime) {
-    xfer += oprot->writeFieldBegin("lastModifiedTime", ::apache::thrift::protocol::T_I64, 10);
+    xfer += oprot->writeFieldBegin("lastModifiedTime", ::apache::thrift::protocol::T_I64, 11);
     xfer += oprot->writeI64(this->lastModifiedTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.resourceMetadata) {
-    xfer += oprot->writeFieldBegin("resourceMetadata", ::apache::thrift::protocol::T_MAP, 11);
+  if (this->__isset.productMetadata) {
+    xfer += oprot->writeFieldBegin("productMetadata", ::apache::thrift::protocol::T_MAP, 12);
     {
-      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->resourceMetadata.size()));
+      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->productMetadata.size()));
       std::map<std::string, std::string> ::const_iterator _iter18;
-      for (_iter18 = this->resourceMetadata.begin(); _iter18 != this->resourceMetadata.end(); ++_iter18)
+      for (_iter18 = this->productMetadata.begin(); _iter18 != this->productMetadata.end(); ++_iter18)
       {
         xfer += oprot->writeString(_iter18->first);
         xfer += oprot->writeString(_iter18->second);
@@ -382,7 +402,7 @@ uint32_t DataResourceModel::write(::apache::thrift::protocol::TProtocol* oprot)
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.replicaLocations) {
-    xfer += oprot->writeFieldBegin("replicaLocations", ::apache::thrift::protocol::T_LIST, 12);
+    xfer += oprot->writeFieldBegin("replicaLocations", ::apache::thrift::protocol::T_LIST, 13);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->replicaLocations.size()));
       std::vector<DataReplicaLocationModel> ::const_iterator _iter19;
@@ -394,12 +414,12 @@ uint32_t DataResourceModel::write(::apache::thrift::protocol::TProtocol* oprot)
     }
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.childResources) {
-    xfer += oprot->writeFieldBegin("childResources", ::apache::thrift::protocol::T_LIST, 13);
+  if (this->__isset.childProducts) {
+    xfer += oprot->writeFieldBegin("childProducts", ::apache::thrift::protocol::T_LIST, 14);
     {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->childResources.size()));
-      std::vector<DataResourceModel> ::const_iterator _iter20;
-      for (_iter20 = this->childResources.begin(); _iter20 != this->childResources.end(); ++_iter20)
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->childProducts.size()));
+      std::vector<DataProductModel> ::const_iterator _iter20;
+      for (_iter20 = this->childProducts.begin(); _iter20 != this->childProducts.end(); ++_iter20)
       {
         xfer += (*_iter20).write(oprot);
       }
@@ -412,73 +432,77 @@ uint32_t DataResourceModel::write(::apache::thrift::protocol::TProtocol* oprot)
   return xfer;
 }
 
-void swap(DataResourceModel &a, DataResourceModel &b) {
+void swap(DataProductModel &a, DataProductModel &b) {
   using ::std::swap;
-  swap(a.resourceId, b.resourceId);
+  swap(a.productUri, b.productUri);
   swap(a.gatewayId, b.gatewayId);
-  swap(a.parentResourceId, b.parentResourceId);
-  swap(a.resourceName, b.resourceName);
-  swap(a.resourceDescription, b.resourceDescription);
+  swap(a.parentProductUri, b.parentProductUri);
+  swap(a.logicalPath, b.logicalPath);
+  swap(a.productName, b.productName);
+  swap(a.productDescription, b.productDescription);
   swap(a.ownerName, b.ownerName);
-  swap(a.dataResourceType, b.dataResourceType);
-  swap(a.resourceSize, b.resourceSize);
+  swap(a.dataProductType, b.dataProductType);
+  swap(a.productSize, b.productSize);
   swap(a.creationTime, b.creationTime);
   swap(a.lastModifiedTime, b.lastModifiedTime);
-  swap(a.resourceMetadata, b.resourceMetadata);
+  swap(a.productMetadata, b.productMetadata);
   swap(a.replicaLocations, b.replicaLocations);
-  swap(a.childResources, b.childResources);
+  swap(a.childProducts, b.childProducts);
   swap(a.__isset, b.__isset);
 }
 
-DataResourceModel::DataResourceModel(const DataResourceModel& other21) {
-  resourceId = other21.resourceId;
+DataProductModel::DataProductModel(const DataProductModel& other21) {
+  productUri = other21.productUri;
   gatewayId = other21.gatewayId;
-  parentResourceId = other21.parentResourceId;
-  resourceName = other21.resourceName;
-  resourceDescription = other21.resourceDescription;
+  parentProductUri = other21.parentProductUri;
+  logicalPath = other21.logicalPath;
+  productName = other21.productName;
+  productDescription = other21.productDescription;
   ownerName = other21.ownerName;
-  dataResourceType = other21.dataResourceType;
-  resourceSize = other21.resourceSize;
+  dataProductType = other21.dataProductType;
+  productSize = other21.productSize;
   creationTime = other21.creationTime;
   lastModifiedTime = other21.lastModifiedTime;
-  resourceMetadata = other21.resourceMetadata;
+  productMetadata = other21.productMetadata;
   replicaLocations = other21.replicaLocations;
-  childResources = other21.childResources;
+  childProducts = other21.childProducts;
   __isset = other21.__isset;
 }
-DataResourceModel& DataResourceModel::operator=(const DataResourceModel& other22) {
-  resourceId = other22.resourceId;
+DataProductModel& DataProductModel::operator=(const DataProductModel& other22) {
+  productUri = other22.productUri;
   gatewayId = other22.gatewayId;
-  parentResourceId = other22.parentResourceId;
-  resourceName = other22.resourceName;
-  resourceDescription = other22.resourceDescription;
+  parentProductUri = other22.parentProductUri;
+  logicalPath = other22.logicalPath;
+  productName = other22.productName;
+  productDescription = other22.productDescription;
   ownerName = other22.ownerName;
-  dataResourceType = other22.dataResourceType;
-  resourceSize = other22.resourceSize;
+  dataProductType = other22.dataProductType;
+  productSize = other22.productSize;
   creationTime = other22.creationTime;
   lastModifiedTime = other22.lastModifiedTime;
-  resourceMetadata = other22.resourceMetadata;
+  productMetadata = other22.productMetadata;
   replicaLocations = other22.replicaLocations;
-  childResources = other22.childResources;
+  childProducts = other22.childProducts;
   __isset = other22.__isset;
   return *this;
 }
-void DataResourceModel::printTo(std::ostream& out) const {
+void DataProductModel::printTo(std::ostream& out) const {
   using ::apache::thrift::to_string;
-  out << "DataResourceModel(";
-  out << "resourceId="; (__isset.resourceId ? (out << to_string(resourceId)) : (out << "<null>"));
+  out << "DataProductModel(";
+  out << "productUri="; (__isset.productUri ? (out << to_string(productUri)) : (out << "<null>"));
   out << ", " << "gatewayId="; (__isset.gatewayId ? (out << to_string(gatewayId)) : (out << "<null>"));
-  out << ", " << "parentResourceId="; (__isset.parentResourceId ? (out << to_string(parentResourceId)) : (out << "<null>"));
-  out << ", " << "resourceName="; (__isset.resourceName ? (out << to_string(resourceName)) : (out << "<null>"));
-  out << ", " << "resourceDescription="; (__isset.resourceDescription ? (out << to_string(resourceDescription)) : (out << "<null>"));
+  out << ", " << "parentProductUri="; (__isset.parentProductUri ? (out << to_string(parentProductUri)) : (out << "<null>"));
+  out << ", " << "logicalPath="; (__isset.logicalPath ? (out << to_string(logicalPath)) : (out << "<null>"));
+  out << ", " << "productName="; (__isset.productName ? (out << to_string(productName)) : (out << "<null>"));
+  out << ", " << "productDescription="; (__isset.productDescription ? (out << to_string(productDescription)) : (out << "<null>"));
   out << ", " << "ownerName="; (__isset.ownerName ? (out << to_string(ownerName)) : (out << "<null>"));
-  out << ", " << "dataResourceType="; (__isset.dataResourceType ? (out << to_string(dataResourceType)) : (out << "<null>"));
-  out << ", " << "resourceSize="; (__isset.resourceSize ? (out << to_string(resourceSize)) : (out << "<null>"));
+  out << ", " << "dataProductType="; (__isset.dataProductType ? (out << to_string(dataProductType)) : (out << "<null>"));
+  out << ", " << "productSize="; (__isset.productSize ? (out << to_string(productSize)) : (out << "<null>"));
   out << ", " << "creationTime="; (__isset.creationTime ? (out << to_string(creationTime)) : (out << "<null>"));
   out << ", " << "lastModifiedTime="; (__isset.lastModifiedTime ? (out << to_string(lastModifiedTime)) : (out << "<null>"));
-  out << ", " << "resourceMetadata="; (__isset.resourceMetadata ? (out << to_string(resourceMetadata)) : (out << "<null>"));
+  out << ", " << "productMetadata="; (__isset.productMetadata ? (out << to_string(productMetadata)) : (out << "<null>"));
   out << ", " << "replicaLocations="; (__isset.replicaLocations ? (out << to_string(replicaLocations)) : (out << "<null>"));
-  out << ", " << "childResources="; (__isset.childResources ? (out << to_string(childResources)) : (out << "<null>"));
+  out << ", " << "childProducts="; (__isset.childProducts ? (out << to_string(childProducts)) : (out << "<null>"));
   out << ")";
 }
 
@@ -492,9 +516,9 @@ void DataReplicaLocationModel::__set_replicaId(const std::string& val) {
 __isset.replicaId = true;
 }
 
-void DataReplicaLocationModel::__set_resourceId(const std::string& val) {
-  this->resourceId = val;
-__isset.resourceId = true;
+void DataReplicaLocationModel::__set_productUri(const std::string& val) {
+  this->productUri = val;
+__isset.productUri = true;
 }
 
 void DataReplicaLocationModel::__set_replicaName(const std::string& val) {
@@ -537,9 +561,9 @@ void DataReplicaLocationModel::__set_storageResourceId(const std::string& val) {
 __isset.storageResourceId = true;
 }
 
-void DataReplicaLocationModel::__set_fileAbsolutePath(const std::string& val) {
-  this->fileAbsolutePath = val;
-__isset.fileAbsolutePath = true;
+void DataReplicaLocationModel::__set_filePath(const std::string& val) {
+  this->filePath = val;
+__isset.filePath = true;
 }
 
 void DataReplicaLocationModel::__set_replicaMetadata(const std::map<std::string, std::string> & val) {
@@ -578,8 +602,8 @@ uint32_t DataReplicaLocationModel::read(::apache::thrift::protocol::TProtocol* i
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->resourceId);
-          this->__isset.resourceId = true;
+          xfer += iprot->readString(this->productUri);
+          this->__isset.productUri = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -654,8 +678,8 @@ uint32_t DataReplicaLocationModel::read(::apache::thrift::protocol::TProtocol* i
         break;
       case 11:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->fileAbsolutePath);
-          this->__isset.fileAbsolutePath = true;
+          xfer += iprot->readString(this->filePath);
+          this->__isset.filePath = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -705,9 +729,9 @@ uint32_t DataReplicaLocationModel::write(::apache::thrift::protocol::TProtocol*
     xfer += oprot->writeString(this->replicaId);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.resourceId) {
-    xfer += oprot->writeFieldBegin("resourceId", ::apache::thrift::protocol::T_STRING, 2);
-    xfer += oprot->writeString(this->resourceId);
+  if (this->__isset.productUri) {
+    xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeString(this->productUri);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.replicaName) {
@@ -750,9 +774,9 @@ uint32_t DataReplicaLocationModel::write(::apache::thrift::protocol::TProtocol*
     xfer += oprot->writeString(this->storageResourceId);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.fileAbsolutePath) {
-    xfer += oprot->writeFieldBegin("fileAbsolutePath", ::apache::thrift::protocol::T_STRING, 11);
-    xfer += oprot->writeString(this->fileAbsolutePath);
+  if (this->__isset.filePath) {
+    xfer += oprot->writeFieldBegin("filePath", ::apache::thrift::protocol::T_STRING, 11);
+    xfer += oprot->writeString(this->filePath);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.replicaMetadata) {
@@ -777,7 +801,7 @@ uint32_t DataReplicaLocationModel::write(::apache::thrift::protocol::TProtocol*
 void swap(DataReplicaLocationModel &a, DataReplicaLocationModel &b) {
   using ::std::swap;
   swap(a.replicaId, b.replicaId);
-  swap(a.resourceId, b.resourceId);
+  swap(a.productUri, b.productUri);
   swap(a.replicaName, b.replicaName);
   swap(a.replicaDescription, b.replicaDescription);
   swap(a.creationTime, b.creationTime);
@@ -786,14 +810,14 @@ void swap(DataReplicaLocationModel &a, DataReplicaLocationModel &b) {
   swap(a.replicaLocationCategory, b.replicaLocationCategory);
   swap(a.replicaPersistentType, b.replicaPersistentType);
   swap(a.storageResourceId, b.storageResourceId);
-  swap(a.fileAbsolutePath, b.fileAbsolutePath);
+  swap(a.filePath, b.filePath);
   swap(a.replicaMetadata, b.replicaMetadata);
   swap(a.__isset, b.__isset);
 }
 
 DataReplicaLocationModel::DataReplicaLocationModel(const DataReplicaLocationModel& other33) {
   replicaId = other33.replicaId;
-  resourceId = other33.resourceId;
+  productUri = other33.productUri;
   replicaName = other33.replicaName;
   replicaDescription = other33.replicaDescription;
   creationTime = other33.creationTime;
@@ -802,13 +826,13 @@ DataReplicaLocationModel::DataReplicaLocationModel(const DataReplicaLocationMode
   replicaLocationCategory = other33.replicaLocationCategory;
   replicaPersistentType = other33.replicaPersistentType;
   storageResourceId = other33.storageResourceId;
-  fileAbsolutePath = other33.fileAbsolutePath;
+  filePath = other33.filePath;
   replicaMetadata = other33.replicaMetadata;
   __isset = other33.__isset;
 }
 DataReplicaLocationModel& DataReplicaLocationModel::operator=(const DataReplicaLocationModel& other34) {
   replicaId = other34.replicaId;
-  resourceId = other34.resourceId;
+  productUri = other34.productUri;
   replicaName = other34.replicaName;
   replicaDescription = other34.replicaDescription;
   creationTime = other34.creationTime;
@@ -817,7 +841,7 @@ DataReplicaLocationModel& DataReplicaLocationModel::operator=(const DataReplicaL
   replicaLocationCategory = other34.replicaLocationCategory;
   replicaPersistentType = other34.replicaPersistentType;
   storageResourceId = other34.storageResourceId;
-  fileAbsolutePath = other34.fileAbsolutePath;
+  filePath = other34.filePath;
   replicaMetadata = other34.replicaMetadata;
   __isset = other34.__isset;
   return *this;
@@ -826,7 +850,7 @@ void DataReplicaLocationModel::printTo(std::ostream& out) const {
   using ::apache::thrift::to_string;
   out << "DataReplicaLocationModel(";
   out << "replicaId="; (__isset.replicaId ? (out << to_string(replicaId)) : (out << "<null>"));
-  out << ", " << "resourceId="; (__isset.resourceId ? (out << to_string(resourceId)) : (out << "<null>"));
+  out << ", " << "productUri="; (__isset.productUri ? (out << to_string(productUri)) : (out << "<null>"));
   out << ", " << "replicaName="; (__isset.replicaName ? (out << to_string(replicaName)) : (out << "<null>"));
   out << ", " << "replicaDescription="; (__isset.replicaDescription ? (out << to_string(replicaDescription)) : (out << "<null>"));
   out << ", " << "creationTime="; (__isset.creationTime ? (out << to_string(creationTime)) : (out << "<null>"));
@@ -835,7 +859,7 @@ void DataReplicaLocationModel::printTo(std::ostream& out) const {
   out << ", " << "replicaLocationCategory="; (__isset.replicaLocationCategory ? (out << to_string(replicaLocationCategory)) : (out << "<null>"));
   out << ", " << "replicaPersistentType="; (__isset.replicaPersistentType ? (out << to_string(replicaPersistentType)) : (out << "<null>"));
   out << ", " << "storageResourceId="; (__isset.storageResourceId ? (out << to_string(storageResourceId)) : (out << "<null>"));
-  out << ", " << "fileAbsolutePath="; (__isset.fileAbsolutePath ? (out << to_string(fileAbsolutePath)) : (out << "<null>"));
+  out << ", " << "filePath="; (__isset.filePath ? (out << to_string(filePath)) : (out << "<null>"));
   out << ", " << "replicaMetadata="; (__isset.replicaMetadata ? (out << to_string(replicaMetadata)) : (out << "<null>"));
   out << ")";
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h
index 7816d82..d9072c7 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h
@@ -32,10 +32,9 @@
 #include <thrift/transport/TTransport.h>
 
 #include <thrift/cxxfunctional.h>
-#include "data_movement_models_types.h"
 
 
-namespace apache { namespace airavata { namespace model { namespace data { namespace resource {
+namespace apache { namespace airavata { namespace model { namespace data { namespace replica {
 
 struct ReplicaLocationCategory {
   enum type {
@@ -57,120 +56,129 @@ struct ReplicaPersistentType {
 
 extern const std::map<int, const char*> _ReplicaPersistentType_VALUES_TO_NAMES;
 
-struct DataResourceType {
+struct DataProductType {
   enum type {
-    COLLECTION = 0,
-    FILE = 1
+    DIR = 0,
+    FILE = 1,
+    COLLECTION = 2
   };
 };
 
-extern const std::map<int, const char*> _DataResourceType_VALUES_TO_NAMES;
+extern const std::map<int, const char*> _DataProductType_VALUES_TO_NAMES;
 
-class DataResourceModel;
+class DataProductModel;
 
 class DataReplicaLocationModel;
 
-typedef struct _DataResourceModel__isset {
-  _DataResourceModel__isset() : resourceId(false), gatewayId(false), parentResourceId(false), resourceName(false), resourceDescription(false), ownerName(false), dataResourceType(false), resourceSize(false), creationTime(false), lastModifiedTime(false), resourceMetadata(false), replicaLocations(false), childResources(false) {}
-  bool resourceId :1;
+typedef struct _DataProductModel__isset {
+  _DataProductModel__isset() : productUri(false), gatewayId(false), parentProductUri(false), logicalPath(false), productName(false), productDescription(false), ownerName(false), dataProductType(false), productSize(false), creationTime(false), lastModifiedTime(false), productMetadata(false), replicaLocations(false), childProducts(false) {}
+  bool productUri :1;
   bool gatewayId :1;
-  bool parentResourceId :1;
-  bool resourceName :1;
-  bool resourceDescription :1;
+  bool parentProductUri :1;
+  bool logicalPath :1;
+  bool productName :1;
+  bool productDescription :1;
   bool ownerName :1;
-  bool dataResourceType :1;
-  bool resourceSize :1;
+  bool dataProductType :1;
+  bool productSize :1;
   bool creationTime :1;
   bool lastModifiedTime :1;
-  bool resourceMetadata :1;
+  bool productMetadata :1;
   bool replicaLocations :1;
-  bool childResources :1;
-} _DataResourceModel__isset;
+  bool childProducts :1;
+} _DataProductModel__isset;
 
-class DataResourceModel {
+class DataProductModel {
  public:
 
-  DataResourceModel(const DataResourceModel&);
-  DataResourceModel& operator=(const DataResourceModel&);
-  DataResourceModel() : resourceId(), gatewayId(), parentResourceId(), resourceName(), resourceDescription(), ownerName(), dataResourceType((DataResourceType::type)0), resourceSize(0), creationTime(0), lastModifiedTime(0) {
+  DataProductModel(const DataProductModel&);
+  DataProductModel& operator=(const DataProductModel&);
+  DataProductModel() : productUri(), gatewayId(), parentProductUri(), logicalPath(), productName(), productDescription(), ownerName(), dataProductType((DataProductType::type)0), productSize(0), creationTime(0), lastModifiedTime(0) {
   }
 
-  virtual ~DataResourceModel() throw();
-  std::string resourceId;
+  virtual ~DataProductModel() throw();
+  std::string productUri;
   std::string gatewayId;
-  std::string parentResourceId;
-  std::string resourceName;
-  std::string resourceDescription;
+  std::string parentProductUri;
+  std::string logicalPath;
+  std::string productName;
+  std::string productDescription;
   std::string ownerName;
-  DataResourceType::type dataResourceType;
-  int32_t resourceSize;
+  DataProductType::type dataProductType;
+  int32_t productSize;
   int64_t creationTime;
   int64_t lastModifiedTime;
-  std::map<std::string, std::string>  resourceMetadata;
+  std::map<std::string, std::string>  productMetadata;
   std::vector<DataReplicaLocationModel>  replicaLocations;
-  std::vector<DataResourceModel>  childResources;
+  std::vector<DataProductModel>  childProducts;
 
-  _DataResourceModel__isset __isset;
+  _DataProductModel__isset __isset;
 
-  void __set_resourceId(const std::string& val);
+  void __set_productUri(const std::string& val);
 
   void __set_gatewayId(const std::string& val);
 
-  void __set_parentResourceId(const std::string& val);
+  void __set_parentProductUri(const std::string& val);
 
-  void __set_resourceName(const std::string& val);
+  void __set_logicalPath(const std::string& val);
 
-  void __set_resourceDescription(const std::string& val);
+  void __set_productName(const std::string& val);
+
+  void __set_productDescription(const std::string& val);
 
   void __set_ownerName(const std::string& val);
 
-  void __set_dataResourceType(const DataResourceType::type val);
+  void __set_dataProductType(const DataProductType::type val);
 
-  void __set_resourceSize(const int32_t val);
+  void __set_productSize(const int32_t val);
 
   void __set_creationTime(const int64_t val);
 
   void __set_lastModifiedTime(const int64_t val);
 
-  void __set_resourceMetadata(const std::map<std::string, std::string> & val);
+  void __set_productMetadata(const std::map<std::string, std::string> & val);
 
   void __set_replicaLocations(const std::vector<DataReplicaLocationModel> & val);
 
-  void __set_childResources(const std::vector<DataResourceModel> & val);
+  void __set_childProducts(const std::vector<DataProductModel> & val);
 
-  bool operator == (const DataResourceModel & rhs) const
+  bool operator == (const DataProductModel & rhs) const
   {
-    if (__isset.resourceId != rhs.__isset.resourceId)
+    if (__isset.productUri != rhs.__isset.productUri)
       return false;
-    else if (__isset.resourceId && !(resourceId == rhs.resourceId))
+    else if (__isset.productUri && !(productUri == rhs.productUri))
       return false;
     if (__isset.gatewayId != rhs.__isset.gatewayId)
       return false;
     else if (__isset.gatewayId && !(gatewayId == rhs.gatewayId))
       return false;
-    if (__isset.parentResourceId != rhs.__isset.parentResourceId)
+    if (__isset.parentProductUri != rhs.__isset.parentProductUri)
+      return false;
+    else if (__isset.parentProductUri && !(parentProductUri == rhs.parentProductUri))
+      return false;
+    if (__isset.logicalPath != rhs.__isset.logicalPath)
       return false;
-    else if (__isset.parentResourceId && !(parentResourceId == rhs.parentResourceId))
+    else if (__isset.logicalPath && !(logicalPath == rhs.logicalPath))
       return false;
-    if (__isset.resourceName != rhs.__isset.resourceName)
+    if (__isset.productName != rhs.__isset.productName)
       return false;
-    else if (__isset.resourceName && !(resourceName == rhs.resourceName))
+    else if (__isset.productName && !(productName == rhs.productName))
       return false;
-    if (__isset.resourceDescription != rhs.__isset.resourceDescription)
+    if (__isset.productDescription != rhs.__isset.productDescription)
       return false;
-    else if (__isset.resourceDescription && !(resourceDescription == rhs.resourceDescription))
+    else if (__isset.productDescription && !(productDescription == rhs.productDescription))
       return false;
     if (__isset.ownerName != rhs.__isset.ownerName)
       return false;
     else if (__isset.ownerName && !(ownerName == rhs.ownerName))
       return false;
-    if (__isset.dataResourceType != rhs.__isset.dataResourceType)
+    if (__isset.dataProductType != rhs.__isset.dataProductType)
       return false;
-    else if (__isset.dataResourceType && !(dataResourceType == rhs.dataResourceType))
+    else if (__isset.dataProductType && !(dataProductType == rhs.dataProductType))
       return false;
-    if (__isset.resourceSize != rhs.__isset.resourceSize)
+    if (__isset.productSize != rhs.__isset.productSize)
       return false;
-    else if (__isset.resourceSize && !(resourceSize == rhs.resourceSize))
+    else if (__isset.productSize && !(productSize == rhs.productSize))
       return false;
     if (__isset.creationTime != rhs.__isset.creationTime)
       return false;
@@ -180,25 +188,25 @@ class DataResourceModel {
       return false;
     else if (__isset.lastModifiedTime && !(lastModifiedTime == rhs.lastModifiedTime))
       return false;
-    if (__isset.resourceMetadata != rhs.__isset.resourceMetadata)
+    if (__isset.productMetadata != rhs.__isset.productMetadata)
       return false;
-    else if (__isset.resourceMetadata && !(resourceMetadata == rhs.resourceMetadata))
+    else if (__isset.productMetadata && !(productMetadata == rhs.productMetadata))
       return false;
     if (__isset.replicaLocations != rhs.__isset.replicaLocations)
       return false;
     else if (__isset.replicaLocations && !(replicaLocations == rhs.replicaLocations))
       return false;
-    if (__isset.childResources != rhs.__isset.childResources)
+    if (__isset.childProducts != rhs.__isset.childProducts)
       return false;
-    else if (__isset.childResources && !(childResources == rhs.childResources))
+    else if (__isset.childProducts && !(childProducts == rhs.childProducts))
       return false;
     return true;
   }
-  bool operator != (const DataResourceModel &rhs) const {
+  bool operator != (const DataProductModel &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const DataResourceModel & ) const;
+  bool operator < (const DataProductModel & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
@@ -206,18 +214,18 @@ class DataResourceModel {
   virtual void printTo(std::ostream& out) const;
 };
 
-void swap(DataResourceModel &a, DataResourceModel &b);
+void swap(DataProductModel &a, DataProductModel &b);
 
-inline std::ostream& operator<<(std::ostream& out, const DataResourceModel& obj)
+inline std::ostream& operator<<(std::ostream& out, const DataProductModel& obj)
 {
   obj.printTo(out);
   return out;
 }
 
 typedef struct _DataReplicaLocationModel__isset {
-  _DataReplicaLocationModel__isset() : replicaId(false), resourceId(false), replicaName(false), replicaDescription(false), creationTime(false), lastModifiedTime(false), validUntilTime(false), replicaLocationCategory(false), replicaPersistentType(false), storageResourceId(false), fileAbsolutePath(false), replicaMetadata(false) {}
+  _DataReplicaLocationModel__isset() : replicaId(false), productUri(false), replicaName(false), replicaDescription(false), creationTime(false), lastModifiedTime(false), validUntilTime(false), replicaLocationCategory(false), replicaPersistentType(false), storageResourceId(false), filePath(false), replicaMetadata(false) {}
   bool replicaId :1;
-  bool resourceId :1;
+  bool productUri :1;
   bool replicaName :1;
   bool replicaDescription :1;
   bool creationTime :1;
@@ -226,7 +234,7 @@ typedef struct _DataReplicaLocationModel__isset {
   bool replicaLocationCategory :1;
   bool replicaPersistentType :1;
   bool storageResourceId :1;
-  bool fileAbsolutePath :1;
+  bool filePath :1;
   bool replicaMetadata :1;
 } _DataReplicaLocationModel__isset;
 
@@ -235,12 +243,12 @@ class DataReplicaLocationModel {
 
   DataReplicaLocationModel(const DataReplicaLocationModel&);
   DataReplicaLocationModel& operator=(const DataReplicaLocationModel&);
-  DataReplicaLocationModel() : replicaId(), resourceId(), replicaName(), replicaDescription(), creationTime(0), lastModifiedTime(0), validUntilTime(0), replicaLocationCategory((ReplicaLocationCategory::type)0), replicaPersistentType((ReplicaPersistentType::type)0), storageResourceId(), fileAbsolutePath() {
+  DataReplicaLocationModel() : replicaId(), productUri(), replicaName(), replicaDescription(), creationTime(0), lastModifiedTime(0), validUntilTime(0), replicaLocationCategory((ReplicaLocationCategory::type)0), replicaPersistentType((ReplicaPersistentType::type)0), storageResourceId(), filePath() {
   }
 
   virtual ~DataReplicaLocationModel() throw();
   std::string replicaId;
-  std::string resourceId;
+  std::string productUri;
   std::string replicaName;
   std::string replicaDescription;
   int64_t creationTime;
@@ -249,14 +257,14 @@ class DataReplicaLocationModel {
   ReplicaLocationCategory::type replicaLocationCategory;
   ReplicaPersistentType::type replicaPersistentType;
   std::string storageResourceId;
-  std::string fileAbsolutePath;
+  std::string filePath;
   std::map<std::string, std::string>  replicaMetadata;
 
   _DataReplicaLocationModel__isset __isset;
 
   void __set_replicaId(const std::string& val);
 
-  void __set_resourceId(const std::string& val);
+  void __set_productUri(const std::string& val);
 
   void __set_replicaName(const std::string& val);
 
@@ -274,7 +282,7 @@ class DataReplicaLocationModel {
 
   void __set_storageResourceId(const std::string& val);
 
-  void __set_fileAbsolutePath(const std::string& val);
+  void __set_filePath(const std::string& val);
 
   void __set_replicaMetadata(const std::map<std::string, std::string> & val);
 
@@ -284,9 +292,9 @@ class DataReplicaLocationModel {
       return false;
     else if (__isset.replicaId && !(replicaId == rhs.replicaId))
       return false;
-    if (__isset.resourceId != rhs.__isset.resourceId)
+    if (__isset.productUri != rhs.__isset.productUri)
       return false;
-    else if (__isset.resourceId && !(resourceId == rhs.resourceId))
+    else if (__isset.productUri && !(productUri == rhs.productUri))
       return false;
     if (__isset.replicaName != rhs.__isset.replicaName)
       return false;
@@ -320,9 +328,9 @@ class DataReplicaLocationModel {
       return false;
     else if (__isset.storageResourceId && !(storageResourceId == rhs.storageResourceId))
       return false;
-    if (__isset.fileAbsolutePath != rhs.__isset.fileAbsolutePath)
+    if (__isset.filePath != rhs.__isset.filePath)
       return false;
-    else if (__isset.fileAbsolutePath && !(fileAbsolutePath == rhs.fileAbsolutePath))
+    else if (__isset.filePath && !(filePath == rhs.filePath))
       return false;
     if (__isset.replicaMetadata != rhs.__isset.replicaMetadata)
       return false;

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index e262b7c..d397526 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -3426,18 +3426,18 @@ interface AiravataIf {
    * 
    * 
    * @param \Airavata\Model\Security\AuthzToken $authzToken
-   * @param \Airavata\Model\Data\Product\DataProductModel $dataProductModel
+   * @param \Airavata\Model\Data\Replica\DataProductModel $dataProductModel
    * @return string
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function registerDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Product\DataProductModel $dataProductModel);
+  public function registerDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataProductModel $dataProductModel);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $dataProductUri
-   * @return \Airavata\Model\Data\Product\DataProductModel
+   * @return \Airavata\Model\Data\Replica\DataProductModel
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
@@ -3446,14 +3446,14 @@ interface AiravataIf {
   public function getDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, $dataProductUri);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
-   * @param \Airavata\Model\Data\Product\DataReplicaLocationModel $replicaLocationModel
+   * @param \Airavata\Model\Data\Replica\DataReplicaLocationModel $replicaLocationModel
    * @return string
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function registerReplicaLocation(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Product\DataReplicaLocationModel $replicaLocationModel);
+  public function registerReplicaLocation(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataReplicaLocationModel $replicaLocationModel);
 }
 
 class AiravataClient implements \Airavata\API\AiravataIf {
@@ -12145,13 +12145,13 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("isWorkflowExistWithName failed: unknown result");
   }
 
-  public function registerDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Product\DataProductModel $dataProductModel)
+  public function registerDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataProductModel $dataProductModel)
   {
     $this->send_registerDataProduct($authzToken, $dataProductModel);
     return $this->recv_registerDataProduct();
   }
 
-  public function send_registerDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Product\DataProductModel $dataProductModel)
+  public function send_registerDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataProductModel $dataProductModel)
   {
     $args = new \Airavata\API\Airavata_registerDataProduct_args();
     $args->authzToken = $authzToken;
@@ -12273,13 +12273,13 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("getDataProduct failed: unknown result");
   }
 
-  public function registerReplicaLocation(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Product\DataReplicaLocationModel $replicaLocationModel)
+  public function registerReplicaLocation(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataReplicaLocationModel $replicaLocationModel)
   {
     $this->send_registerReplicaLocation($authzToken, $replicaLocationModel);
     return $this->recv_registerReplicaLocation();
   }
 
-  public function send_registerReplicaLocation(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Product\DataReplicaLocationModel $replicaLocationModel)
+  public function send_registerReplicaLocation(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataReplicaLocationModel $replicaLocationModel)
   {
     $args = new \Airavata\API\Airavata_registerReplicaLocation_args();
     $args->authzToken = $authzToken;
@@ -53524,7 +53524,7 @@ class Airavata_registerDataProduct_args {
    */
   public $authzToken = null;
   /**
-   * @var \Airavata\Model\Data\Product\DataProductModel
+   * @var \Airavata\Model\Data\Replica\DataProductModel
    */
   public $dataProductModel = null;
 
@@ -53539,7 +53539,7 @@ class Airavata_registerDataProduct_args {
         2 => array(
           'var' => 'dataProductModel',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Data\Product\DataProductModel',
+          'class' => '\Airavata\Model\Data\Replica\DataProductModel',
           ),
         );
     }
@@ -53582,7 +53582,7 @@ class Airavata_registerDataProduct_args {
           break;
         case 2:
           if ($ftype == TType::STRUCT) {
-            $this->dataProductModel = new \Airavata\Model\Data\Product\DataProductModel();
+            $this->dataProductModel = new \Airavata\Model\Data\Replica\DataProductModel();
             $xfer += $this->dataProductModel->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -53906,7 +53906,7 @@ class Airavata_getDataProduct_result {
   static $_TSPEC;
 
   /**
-   * @var \Airavata\Model\Data\Product\DataProductModel
+   * @var \Airavata\Model\Data\Replica\DataProductModel
    */
   public $success = null;
   /**
@@ -53932,7 +53932,7 @@ class Airavata_getDataProduct_result {
         0 => array(
           'var' => 'success',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Data\Product\DataProductModel',
+          'class' => '\Airavata\Model\Data\Replica\DataProductModel',
           ),
         1 => array(
           'var' => 'ire',
@@ -53996,7 +53996,7 @@ class Airavata_getDataProduct_result {
       {
         case 0:
           if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\Data\Product\DataProductModel();
+            $this->success = new \Airavata\Model\Data\Replica\DataProductModel();
             $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -54090,7 +54090,7 @@ class Airavata_registerReplicaLocation_args {
    */
   public $authzToken = null;
   /**
-   * @var \Airavata\Model\Data\Product\DataReplicaLocationModel
+   * @var \Airavata\Model\Data\Replica\DataReplicaLocationModel
    */
   public $replicaLocationModel = null;
 
@@ -54105,7 +54105,7 @@ class Airavata_registerReplicaLocation_args {
         2 => array(
           'var' => 'replicaLocationModel',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Data\Product\DataReplicaLocationModel',
+          'class' => '\Airavata\Model\Data\Replica\DataReplicaLocationModel',
           ),
         );
     }
@@ -54148,7 +54148,7 @@ class Airavata_registerReplicaLocation_args {
           break;
         case 2:
           if ($ftype == TType::STRUCT) {
-            $this->replicaLocationModel = new \Airavata\Model\Data\Product\DataReplicaLocationModel();
+            $this->replicaLocationModel = new \Airavata\Model\Data\Replica\DataReplicaLocationModel();
             $xfer += $this->replicaLocationModel->read($input);
           } else {
             $xfer += $input->skip($ftype);

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
index f8fc506..ea2913c 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
@@ -44188,7 +44188,7 @@ class registerDataProduct_args:
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
-    (2, TType.STRUCT, 'dataProductModel', (apache.airavata.model.data.product.ttypes.DataProductModel, apache.airavata.model.data.product.ttypes.DataProductModel.thrift_spec), None, ), # 2
+    (2, TType.STRUCT, 'dataProductModel', (apache.airavata.model.data.replica.ttypes.DataProductModel, apache.airavata.model.data.replica.ttypes.DataProductModel.thrift_spec), None, ), # 2
   )
 
   def __init__(self, authzToken=None, dataProductModel=None,):
@@ -44212,7 +44212,7 @@ class registerDataProduct_args:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRUCT:
-          self.dataProductModel = apache.airavata.model.data.product.ttypes.DataProductModel()
+          self.dataProductModel = apache.airavata.model.data.replica.ttypes.DataProductModel()
           self.dataProductModel.read(iprot)
         else:
           iprot.skip(ftype)
@@ -44476,7 +44476,7 @@ class getDataProduct_result:
   """
 
   thrift_spec = (
-    (0, TType.STRUCT, 'success', (apache.airavata.model.data.product.ttypes.DataProductModel, apache.airavata.model.data.product.ttypes.DataProductModel.thrift_spec), None, ), # 0
+    (0, TType.STRUCT, 'success', (apache.airavata.model.data.replica.ttypes.DataProductModel, apache.airavata.model.data.replica.ttypes.DataProductModel.thrift_spec), None, ), # 0
     (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
     (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
@@ -44501,7 +44501,7 @@ class getDataProduct_result:
         break
       if fid == 0:
         if ftype == TType.STRUCT:
-          self.success = apache.airavata.model.data.product.ttypes.DataProductModel()
+          self.success = apache.airavata.model.data.replica.ttypes.DataProductModel()
           self.success.read(iprot)
         else:
           iprot.skip(ftype)
@@ -44596,7 +44596,7 @@ class registerReplicaLocation_args:
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
-    (2, TType.STRUCT, 'replicaLocationModel', (apache.airavata.model.data.product.ttypes.DataReplicaLocationModel, apache.airavata.model.data.product.ttypes.DataReplicaLocationModel.thrift_spec), None, ), # 2
+    (2, TType.STRUCT, 'replicaLocationModel', (apache.airavata.model.data.replica.ttypes.DataReplicaLocationModel, apache.airavata.model.data.replica.ttypes.DataReplicaLocationModel.thrift_spec), None, ), # 2
   )
 
   def __init__(self, authzToken=None, replicaLocationModel=None,):
@@ -44620,7 +44620,7 @@ class registerReplicaLocation_args:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRUCT:
-          self.replicaLocationModel = apache.airavata.model.data.product.ttypes.DataReplicaLocationModel()
+          self.replicaLocationModel = apache.airavata.model.data.replica.ttypes.DataReplicaLocationModel()
           self.replicaLocationModel.read(iprot)
         else:
           iprot.skip(ftype)

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
index bd6011e..dc5f0e6 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
@@ -23,7 +23,7 @@ import apache.airavata.model.appcatalog.storageresource.ttypes
 import apache.airavata.model.appcatalog.gatewayprofile.ttypes
 import apache.airavata.model.data.movement.ttypes
 import apache.airavata.model.workflow.ttypes
-import apache.airavata.model.data.product.ttypes
+import apache.airavata.model.data.replica.ttypes
 
 
 from thrift.transport import TTransport

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
index b350211..28c903a 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
@@ -19,7 +19,7 @@ import apache.airavata.model.process.ttypes
 import apache.airavata.model.scheduling.ttypes
 import apache.airavata.model.status.ttypes
 import apache.airavata.model.data.movement.ttypes
-import apache.airavata.model.data.product.ttypes
+import apache.airavata.model.data.replica.ttypes
 
 
 from thrift.transport import TTransport

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/DataCatalogSample.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/DataCatalogSample.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/DataCatalogSample.java
deleted file mode 100644
index ed9f8a9..0000000
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/DataCatalogSample.java
+++ /dev/null
@@ -1,73 +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.client.samples;
-
-import org.apache.airavata.api.Airavata;
-import org.apache.airavata.api.client.AiravataClientFactory;
-import org.apache.airavata.model.data.product.*;
-import org.apache.airavata.model.security.AuthzToken;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class DataCatalogSample {
-    private final static Logger logger = LoggerFactory.getLogger(DataCatalogSample.class);
-
-    public static final String THRIFT_SERVER_HOST = "gw56.iu.xsede.org";
-    public static final int THRIFT_SERVER_PORT = 8930;
-    private static final String USER_NAME = "master";
-    private static final String DEFAULT_GATEWAY = "default";
-    private static final String STORAGE_RESOURCE_ID = "gw75.iu.xsede.org_3e40e62b-be11-4590-bf24-b1b6796c3572";
-    private static final AuthzToken authzToken = new AuthzToken("empty-token");
-    private static Airavata.Client client;
-
-    public static void main(String[] args) {
-        try {
-            client = AiravataClientFactory.createAiravataClient(THRIFT_SERVER_HOST, THRIFT_SERVER_PORT);
-            System.out.println(client.getAPIVersion(authzToken));
-
-            DataProductModel dataProductModel = new DataProductModel();
-            dataProductModel.setGatewayId(DEFAULT_GATEWAY);
-            dataProductModel.setOwnerName(USER_NAME);
-            dataProductModel.setProductName("test-1");
-            dataProductModel.setLogicalPath("/test/test/test/" + System.currentTimeMillis());
-            dataProductModel.setDataProductType(DataProductType.FILE);
-
-            DataReplicaLocationModel replicaLocationModel = new DataReplicaLocationModel();
-            replicaLocationModel.setStorageResourceId(STORAGE_RESOURCE_ID);
-            replicaLocationModel.setReplicaName("test-1-replica-1");
-            replicaLocationModel.setReplicaLocationCategory(ReplicaLocationCategory.GATEWAY_DATA_STORE);
-            replicaLocationModel.setReplicaPersistentType(ReplicaPersistentType.PERSISTENT);
-            replicaLocationModel.setFilePath("/var/www/portals/gateway-user-data/testdrive/test.txt");
-
-            dataProductModel.addToReplicaLocations(replicaLocationModel);
-
-            String productUri = client.registerDataProduct(authzToken, dataProductModel);
-            System.out.println(productUri);
-
-
-            dataProductModel = client.getDataProduct(authzToken, "airavata-dp://Eroma2016@seagrid/");
-            System.out.println(dataProductModel.getReplicaLocations().size());
-        } catch (Exception e) {
-            logger.error("Error while connecting with server", e.getMessage());
-            e.printStackTrace();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/ReplicaCatalogSample.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/ReplicaCatalogSample.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/ReplicaCatalogSample.java
new file mode 100644
index 0000000..1af3bc6
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/ReplicaCatalogSample.java
@@ -0,0 +1,73 @@
+/*
+ *
+ * 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.client.samples;
+
+import org.apache.airavata.api.Airavata;
+import org.apache.airavata.api.client.AiravataClientFactory;
+import org.apache.airavata.model.data.replica.*;
+import org.apache.airavata.model.security.AuthzToken;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ReplicaCatalogSample {
+    private final static Logger logger = LoggerFactory.getLogger(ReplicaCatalogSample.class);
+
+    public static final String THRIFT_SERVER_HOST = "gw56.iu.xsede.org";
+    public static final int THRIFT_SERVER_PORT = 8930;
+    private static final String USER_NAME = "master";
+    private static final String DEFAULT_GATEWAY = "default";
+    private static final String STORAGE_RESOURCE_ID = "gw75.iu.xsede.org_3e40e62b-be11-4590-bf24-b1b6796c3572";
+    private static final AuthzToken authzToken = new AuthzToken("empty-token");
+    private static Airavata.Client client;
+
+    public static void main(String[] args) {
+        try {
+            client = AiravataClientFactory.createAiravataClient(THRIFT_SERVER_HOST, THRIFT_SERVER_PORT);
+            System.out.println(client.getAPIVersion(authzToken));
+
+            DataProductModel dataProductModel = new DataProductModel();
+            dataProductModel.setGatewayId(DEFAULT_GATEWAY);
+            dataProductModel.setOwnerName(USER_NAME);
+            dataProductModel.setProductName("test-1");
+            dataProductModel.setLogicalPath("/test/test/test/" + System.currentTimeMillis());
+            dataProductModel.setDataProductType(DataProductType.FILE);
+
+            DataReplicaLocationModel replicaLocationModel = new DataReplicaLocationModel();
+            replicaLocationModel.setStorageResourceId(STORAGE_RESOURCE_ID);
+            replicaLocationModel.setReplicaName("test-1-replica-1");
+            replicaLocationModel.setReplicaLocationCategory(ReplicaLocationCategory.GATEWAY_DATA_STORE);
+            replicaLocationModel.setReplicaPersistentType(ReplicaPersistentType.PERSISTENT);
+            replicaLocationModel.setFilePath("/var/www/portals/gateway-user-data/testdrive/test.txt");
+
+            dataProductModel.addToReplicaLocations(replicaLocationModel);
+
+            String productUri = client.registerDataProduct(authzToken, dataProductModel);
+            System.out.println(productUri);
+
+
+            dataProductModel = client.getDataProduct(authzToken, "airavata-dp://Eroma2016@seagrid:/");
+            System.out.println(dataProductModel.getReplicaLocations().size());
+        } catch (Exception e) {
+            logger.error("Error while connecting with server", e.getMessage());
+            e.printStackTrace();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
index 4d0b74f..5d4e331 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ComponentStatus implements org.apache.thrift.TBase<ComponentStatus, ComponentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ComponentStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComponentStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
index 1feb84c..ed759d4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class EdgeModel implements org.apache.thrift.TBase<EdgeModel, EdgeModel._Fields>, java.io.Serializable, Cloneable, Comparable<EdgeModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EdgeModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
index c6729d6..29beaba 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class NodeModel implements org.apache.thrift.TBase<NodeModel, NodeModel._Fields>, java.io.Serializable, Cloneable, Comparable<NodeModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NodeModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
index 1c26cb3..ce4d7e4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class PortModel implements org.apache.thrift.TBase<PortModel, PortModel._Fields>, java.io.Serializable, Cloneable, Comparable<PortModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PortModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
index 59fed52..38bb50e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class WorkflowModel implements org.apache.thrift.TBase<WorkflowModel, WorkflowModel._Fields>, java.io.Serializable, Cloneable, Comparable<WorkflowModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WorkflowModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
index 21e3f67..8fa23cf 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class WorkflowStatus implements org.apache.thrift.TBase<WorkflowStatus, WorkflowStatus._Fields>, java.io.Serializable, Cloneable, Comparable<WorkflowStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WorkflowStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
index 6f16ffb..eb74aaf 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *  assigns to the environment variable "NAME" the value
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ApplicationDeploymentDescription implements org.apache.thrift.TBase<ApplicationDeploymentDescription, ApplicationDeploymentDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationDeploymentDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationDeploymentDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
index b4077ab..eb2bbef 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
@@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory;
  *    Descriprion of the Module
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ApplicationModule implements org.apache.thrift.TBase<ApplicationModule, ApplicationModule._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationModule> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationModule");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
index bfb2501..6303047 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * commandOrder:
  *   Order of the command in the multiple command situation
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class CommandObject implements org.apache.thrift.TBase<CommandObject, CommandObject._Fields>, java.io.Serializable, Cloneable, Comparable<CommandObject> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CommandObject");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
index ba120af..5cd0076 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
@@ -63,7 +63,7 @@ import org.slf4j.LoggerFactory;
  * envPathOrder:
  *   The order of the setting of the env variables when there are multiple env variables
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class SetEnvPaths implements org.apache.thrift.TBase<SetEnvPaths, SetEnvPaths._Fields>, java.io.Serializable, Cloneable, Comparable<SetEnvPaths> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SetEnvPaths");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
index df28165..0c0eb10 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *   Outputs generated from the application
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ApplicationInterfaceDescription implements org.apache.thrift.TBase<ApplicationInterfaceDescription, ApplicationInterfaceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationInterfaceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationInterfaceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
index 1916e31..f96036a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * maxRunTime:
  *  Maximum allowed run time in hours.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueue._Fields>, java.io.Serializable, Cloneable, Comparable<BatchQueue> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BatchQueue");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
index 2771790..9d3cd9f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmission, CloudJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<CloudJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CloudJobSubmission");
 


[04/10] airavata git commit: renaming data-catalog to replica catalog

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
new file mode 100644
index 0000000..91a3948
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
@@ -0,0 +1,1635 @@
+/**
+ * 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.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.replica;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
+public class DataReplicaLocationModel implements org.apache.thrift.TBase<DataReplicaLocationModel, DataReplicaLocationModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataReplicaLocationModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataReplicaLocationModel");
+
+  private static final org.apache.thrift.protocol.TField REPLICA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField PRODUCT_URI_FIELD_DESC = new org.apache.thrift.protocol.TField("productUri", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField REPLICA_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaName", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField REPLICA_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaDescription", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)5);
+  private static final org.apache.thrift.protocol.TField LAST_MODIFIED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastModifiedTime", org.apache.thrift.protocol.TType.I64, (short)6);
+  private static final org.apache.thrift.protocol.TField VALID_UNTIL_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("validUntilTime", org.apache.thrift.protocol.TType.I64, (short)7);
+  private static final org.apache.thrift.protocol.TField REPLICA_LOCATION_CATEGORY_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaLocationCategory", org.apache.thrift.protocol.TType.I32, (short)8);
+  private static final org.apache.thrift.protocol.TField REPLICA_PERSISTENT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaPersistentType", org.apache.thrift.protocol.TType.I32, (short)9);
+  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceId", org.apache.thrift.protocol.TType.STRING, (short)10);
+  private static final org.apache.thrift.protocol.TField FILE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("filePath", org.apache.thrift.protocol.TType.STRING, (short)11);
+  private static final org.apache.thrift.protocol.TField REPLICA_METADATA_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaMetadata", org.apache.thrift.protocol.TType.MAP, (short)12);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new DataReplicaLocationModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new DataReplicaLocationModelTupleSchemeFactory());
+  }
+
+  private String replicaId; // optional
+  private String productUri; // optional
+  private String replicaName; // optional
+  private String replicaDescription; // optional
+  private long creationTime; // optional
+  private long lastModifiedTime; // optional
+  private long validUntilTime; // optional
+  private ReplicaLocationCategory replicaLocationCategory; // optional
+  private ReplicaPersistentType replicaPersistentType; // optional
+  private String storageResourceId; // optional
+  private String filePath; // optional
+  private Map<String,String> replicaMetadata; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    REPLICA_ID((short)1, "replicaId"),
+    PRODUCT_URI((short)2, "productUri"),
+    REPLICA_NAME((short)3, "replicaName"),
+    REPLICA_DESCRIPTION((short)4, "replicaDescription"),
+    CREATION_TIME((short)5, "creationTime"),
+    LAST_MODIFIED_TIME((short)6, "lastModifiedTime"),
+    VALID_UNTIL_TIME((short)7, "validUntilTime"),
+    /**
+     * 
+     * @see ReplicaLocationCategory
+     */
+    REPLICA_LOCATION_CATEGORY((short)8, "replicaLocationCategory"),
+    /**
+     * 
+     * @see ReplicaPersistentType
+     */
+    REPLICA_PERSISTENT_TYPE((short)9, "replicaPersistentType"),
+    STORAGE_RESOURCE_ID((short)10, "storageResourceId"),
+    FILE_PATH((short)11, "filePath"),
+    REPLICA_METADATA((short)12, "replicaMetadata");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // REPLICA_ID
+          return REPLICA_ID;
+        case 2: // PRODUCT_URI
+          return PRODUCT_URI;
+        case 3: // REPLICA_NAME
+          return REPLICA_NAME;
+        case 4: // REPLICA_DESCRIPTION
+          return REPLICA_DESCRIPTION;
+        case 5: // CREATION_TIME
+          return CREATION_TIME;
+        case 6: // LAST_MODIFIED_TIME
+          return LAST_MODIFIED_TIME;
+        case 7: // VALID_UNTIL_TIME
+          return VALID_UNTIL_TIME;
+        case 8: // REPLICA_LOCATION_CATEGORY
+          return REPLICA_LOCATION_CATEGORY;
+        case 9: // REPLICA_PERSISTENT_TYPE
+          return REPLICA_PERSISTENT_TYPE;
+        case 10: // STORAGE_RESOURCE_ID
+          return STORAGE_RESOURCE_ID;
+        case 11: // FILE_PATH
+          return FILE_PATH;
+        case 12: // REPLICA_METADATA
+          return REPLICA_METADATA;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __CREATIONTIME_ISSET_ID = 0;
+  private static final int __LASTMODIFIEDTIME_ISSET_ID = 1;
+  private static final int __VALIDUNTILTIME_ISSET_ID = 2;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.REPLICA_ID,_Fields.PRODUCT_URI,_Fields.REPLICA_NAME,_Fields.REPLICA_DESCRIPTION,_Fields.CREATION_TIME,_Fields.LAST_MODIFIED_TIME,_Fields.VALID_UNTIL_TIME,_Fields.REPLICA_LOCATION_CATEGORY,_Fields.REPLICA_PERSISTENT_TYPE,_Fields.STORAGE_RESOURCE_ID,_Fields.FILE_PATH,_Fields.REPLICA_METADATA};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.REPLICA_ID, new org.apache.thrift.meta_data.FieldMetaData("replicaId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PRODUCT_URI, new org.apache.thrift.meta_data.FieldMetaData("productUri", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.REPLICA_NAME, new org.apache.thrift.meta_data.FieldMetaData("replicaName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.REPLICA_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("replicaDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.LAST_MODIFIED_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastModifiedTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.VALID_UNTIL_TIME, new org.apache.thrift.meta_data.FieldMetaData("validUntilTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.REPLICA_LOCATION_CATEGORY, new org.apache.thrift.meta_data.FieldMetaData("replicaLocationCategory", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ReplicaLocationCategory.class)));
+    tmpMap.put(_Fields.REPLICA_PERSISTENT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("replicaPersistentType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ReplicaPersistentType.class)));
+    tmpMap.put(_Fields.STORAGE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageResourceId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.FILE_PATH, new org.apache.thrift.meta_data.FieldMetaData("filePath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.REPLICA_METADATA, new org.apache.thrift.meta_data.FieldMetaData("replicaMetadata", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DataReplicaLocationModel.class, metaDataMap);
+  }
+
+  public DataReplicaLocationModel() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public DataReplicaLocationModel(DataReplicaLocationModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetReplicaId()) {
+      this.replicaId = other.replicaId;
+    }
+    if (other.isSetProductUri()) {
+      this.productUri = other.productUri;
+    }
+    if (other.isSetReplicaName()) {
+      this.replicaName = other.replicaName;
+    }
+    if (other.isSetReplicaDescription()) {
+      this.replicaDescription = other.replicaDescription;
+    }
+    this.creationTime = other.creationTime;
+    this.lastModifiedTime = other.lastModifiedTime;
+    this.validUntilTime = other.validUntilTime;
+    if (other.isSetReplicaLocationCategory()) {
+      this.replicaLocationCategory = other.replicaLocationCategory;
+    }
+    if (other.isSetReplicaPersistentType()) {
+      this.replicaPersistentType = other.replicaPersistentType;
+    }
+    if (other.isSetStorageResourceId()) {
+      this.storageResourceId = other.storageResourceId;
+    }
+    if (other.isSetFilePath()) {
+      this.filePath = other.filePath;
+    }
+    if (other.isSetReplicaMetadata()) {
+      Map<String,String> __this__replicaMetadata = new HashMap<String,String>(other.replicaMetadata);
+      this.replicaMetadata = __this__replicaMetadata;
+    }
+  }
+
+  public DataReplicaLocationModel deepCopy() {
+    return new DataReplicaLocationModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.replicaId = null;
+    this.productUri = null;
+    this.replicaName = null;
+    this.replicaDescription = null;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    setLastModifiedTimeIsSet(false);
+    this.lastModifiedTime = 0;
+    setValidUntilTimeIsSet(false);
+    this.validUntilTime = 0;
+    this.replicaLocationCategory = null;
+    this.replicaPersistentType = null;
+    this.storageResourceId = null;
+    this.filePath = null;
+    this.replicaMetadata = null;
+  }
+
+  public String getReplicaId() {
+    return this.replicaId;
+  }
+
+  public void setReplicaId(String replicaId) {
+    this.replicaId = replicaId;
+  }
+
+  public void unsetReplicaId() {
+    this.replicaId = null;
+  }
+
+  /** Returns true if field replicaId is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaId() {
+    return this.replicaId != null;
+  }
+
+  public void setReplicaIdIsSet(boolean value) {
+    if (!value) {
+      this.replicaId = null;
+    }
+  }
+
+  public String getProductUri() {
+    return this.productUri;
+  }
+
+  public void setProductUri(String productUri) {
+    this.productUri = productUri;
+  }
+
+  public void unsetProductUri() {
+    this.productUri = null;
+  }
+
+  /** Returns true if field productUri is set (has been assigned a value) and false otherwise */
+  public boolean isSetProductUri() {
+    return this.productUri != null;
+  }
+
+  public void setProductUriIsSet(boolean value) {
+    if (!value) {
+      this.productUri = null;
+    }
+  }
+
+  public String getReplicaName() {
+    return this.replicaName;
+  }
+
+  public void setReplicaName(String replicaName) {
+    this.replicaName = replicaName;
+  }
+
+  public void unsetReplicaName() {
+    this.replicaName = null;
+  }
+
+  /** Returns true if field replicaName is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaName() {
+    return this.replicaName != null;
+  }
+
+  public void setReplicaNameIsSet(boolean value) {
+    if (!value) {
+      this.replicaName = null;
+    }
+  }
+
+  public String getReplicaDescription() {
+    return this.replicaDescription;
+  }
+
+  public void setReplicaDescription(String replicaDescription) {
+    this.replicaDescription = replicaDescription;
+  }
+
+  public void unsetReplicaDescription() {
+    this.replicaDescription = null;
+  }
+
+  /** Returns true if field replicaDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaDescription() {
+    return this.replicaDescription != null;
+  }
+
+  public void setReplicaDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.replicaDescription = null;
+    }
+  }
+
+  public long getCreationTime() {
+    return this.creationTime;
+  }
+
+  public void setCreationTime(long creationTime) {
+    this.creationTime = creationTime;
+    setCreationTimeIsSet(true);
+  }
+
+  public void unsetCreationTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreationTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  public void setCreationTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
+  }
+
+  public long getLastModifiedTime() {
+    return this.lastModifiedTime;
+  }
+
+  public void setLastModifiedTime(long lastModifiedTime) {
+    this.lastModifiedTime = lastModifiedTime;
+    setLastModifiedTimeIsSet(true);
+  }
+
+  public void unsetLastModifiedTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
+  }
+
+  /** Returns true if field lastModifiedTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetLastModifiedTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
+  }
+
+  public void setLastModifiedTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID, value);
+  }
+
+  public long getValidUntilTime() {
+    return this.validUntilTime;
+  }
+
+  public void setValidUntilTime(long validUntilTime) {
+    this.validUntilTime = validUntilTime;
+    setValidUntilTimeIsSet(true);
+  }
+
+  public void unsetValidUntilTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID);
+  }
+
+  /** Returns true if field validUntilTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetValidUntilTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID);
+  }
+
+  public void setValidUntilTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID, value);
+  }
+
+  /**
+   * 
+   * @see ReplicaLocationCategory
+   */
+  public ReplicaLocationCategory getReplicaLocationCategory() {
+    return this.replicaLocationCategory;
+  }
+
+  /**
+   * 
+   * @see ReplicaLocationCategory
+   */
+  public void setReplicaLocationCategory(ReplicaLocationCategory replicaLocationCategory) {
+    this.replicaLocationCategory = replicaLocationCategory;
+  }
+
+  public void unsetReplicaLocationCategory() {
+    this.replicaLocationCategory = null;
+  }
+
+  /** Returns true if field replicaLocationCategory is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaLocationCategory() {
+    return this.replicaLocationCategory != null;
+  }
+
+  public void setReplicaLocationCategoryIsSet(boolean value) {
+    if (!value) {
+      this.replicaLocationCategory = null;
+    }
+  }
+
+  /**
+   * 
+   * @see ReplicaPersistentType
+   */
+  public ReplicaPersistentType getReplicaPersistentType() {
+    return this.replicaPersistentType;
+  }
+
+  /**
+   * 
+   * @see ReplicaPersistentType
+   */
+  public void setReplicaPersistentType(ReplicaPersistentType replicaPersistentType) {
+    this.replicaPersistentType = replicaPersistentType;
+  }
+
+  public void unsetReplicaPersistentType() {
+    this.replicaPersistentType = null;
+  }
+
+  /** Returns true if field replicaPersistentType is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaPersistentType() {
+    return this.replicaPersistentType != null;
+  }
+
+  public void setReplicaPersistentTypeIsSet(boolean value) {
+    if (!value) {
+      this.replicaPersistentType = null;
+    }
+  }
+
+  public String getStorageResourceId() {
+    return this.storageResourceId;
+  }
+
+  public void setStorageResourceId(String storageResourceId) {
+    this.storageResourceId = storageResourceId;
+  }
+
+  public void unsetStorageResourceId() {
+    this.storageResourceId = null;
+  }
+
+  /** Returns true if field storageResourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetStorageResourceId() {
+    return this.storageResourceId != null;
+  }
+
+  public void setStorageResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.storageResourceId = null;
+    }
+  }
+
+  public String getFilePath() {
+    return this.filePath;
+  }
+
+  public void setFilePath(String filePath) {
+    this.filePath = filePath;
+  }
+
+  public void unsetFilePath() {
+    this.filePath = null;
+  }
+
+  /** Returns true if field filePath is set (has been assigned a value) and false otherwise */
+  public boolean isSetFilePath() {
+    return this.filePath != null;
+  }
+
+  public void setFilePathIsSet(boolean value) {
+    if (!value) {
+      this.filePath = null;
+    }
+  }
+
+  public int getReplicaMetadataSize() {
+    return (this.replicaMetadata == null) ? 0 : this.replicaMetadata.size();
+  }
+
+  public void putToReplicaMetadata(String key, String val) {
+    if (this.replicaMetadata == null) {
+      this.replicaMetadata = new HashMap<String,String>();
+    }
+    this.replicaMetadata.put(key, val);
+  }
+
+  public Map<String,String> getReplicaMetadata() {
+    return this.replicaMetadata;
+  }
+
+  public void setReplicaMetadata(Map<String,String> replicaMetadata) {
+    this.replicaMetadata = replicaMetadata;
+  }
+
+  public void unsetReplicaMetadata() {
+    this.replicaMetadata = null;
+  }
+
+  /** Returns true if field replicaMetadata is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaMetadata() {
+    return this.replicaMetadata != null;
+  }
+
+  public void setReplicaMetadataIsSet(boolean value) {
+    if (!value) {
+      this.replicaMetadata = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case REPLICA_ID:
+      if (value == null) {
+        unsetReplicaId();
+      } else {
+        setReplicaId((String)value);
+      }
+      break;
+
+    case PRODUCT_URI:
+      if (value == null) {
+        unsetProductUri();
+      } else {
+        setProductUri((String)value);
+      }
+      break;
+
+    case REPLICA_NAME:
+      if (value == null) {
+        unsetReplicaName();
+      } else {
+        setReplicaName((String)value);
+      }
+      break;
+
+    case REPLICA_DESCRIPTION:
+      if (value == null) {
+        unsetReplicaDescription();
+      } else {
+        setReplicaDescription((String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case LAST_MODIFIED_TIME:
+      if (value == null) {
+        unsetLastModifiedTime();
+      } else {
+        setLastModifiedTime((Long)value);
+      }
+      break;
+
+    case VALID_UNTIL_TIME:
+      if (value == null) {
+        unsetValidUntilTime();
+      } else {
+        setValidUntilTime((Long)value);
+      }
+      break;
+
+    case REPLICA_LOCATION_CATEGORY:
+      if (value == null) {
+        unsetReplicaLocationCategory();
+      } else {
+        setReplicaLocationCategory((ReplicaLocationCategory)value);
+      }
+      break;
+
+    case REPLICA_PERSISTENT_TYPE:
+      if (value == null) {
+        unsetReplicaPersistentType();
+      } else {
+        setReplicaPersistentType((ReplicaPersistentType)value);
+      }
+      break;
+
+    case STORAGE_RESOURCE_ID:
+      if (value == null) {
+        unsetStorageResourceId();
+      } else {
+        setStorageResourceId((String)value);
+      }
+      break;
+
+    case FILE_PATH:
+      if (value == null) {
+        unsetFilePath();
+      } else {
+        setFilePath((String)value);
+      }
+      break;
+
+    case REPLICA_METADATA:
+      if (value == null) {
+        unsetReplicaMetadata();
+      } else {
+        setReplicaMetadata((Map<String,String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case REPLICA_ID:
+      return getReplicaId();
+
+    case PRODUCT_URI:
+      return getProductUri();
+
+    case REPLICA_NAME:
+      return getReplicaName();
+
+    case REPLICA_DESCRIPTION:
+      return getReplicaDescription();
+
+    case CREATION_TIME:
+      return getCreationTime();
+
+    case LAST_MODIFIED_TIME:
+      return getLastModifiedTime();
+
+    case VALID_UNTIL_TIME:
+      return getValidUntilTime();
+
+    case REPLICA_LOCATION_CATEGORY:
+      return getReplicaLocationCategory();
+
+    case REPLICA_PERSISTENT_TYPE:
+      return getReplicaPersistentType();
+
+    case STORAGE_RESOURCE_ID:
+      return getStorageResourceId();
+
+    case FILE_PATH:
+      return getFilePath();
+
+    case REPLICA_METADATA:
+      return getReplicaMetadata();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case REPLICA_ID:
+      return isSetReplicaId();
+    case PRODUCT_URI:
+      return isSetProductUri();
+    case REPLICA_NAME:
+      return isSetReplicaName();
+    case REPLICA_DESCRIPTION:
+      return isSetReplicaDescription();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case LAST_MODIFIED_TIME:
+      return isSetLastModifiedTime();
+    case VALID_UNTIL_TIME:
+      return isSetValidUntilTime();
+    case REPLICA_LOCATION_CATEGORY:
+      return isSetReplicaLocationCategory();
+    case REPLICA_PERSISTENT_TYPE:
+      return isSetReplicaPersistentType();
+    case STORAGE_RESOURCE_ID:
+      return isSetStorageResourceId();
+    case FILE_PATH:
+      return isSetFilePath();
+    case REPLICA_METADATA:
+      return isSetReplicaMetadata();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof DataReplicaLocationModel)
+      return this.equals((DataReplicaLocationModel)that);
+    return false;
+  }
+
+  public boolean equals(DataReplicaLocationModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_replicaId = true && this.isSetReplicaId();
+    boolean that_present_replicaId = true && that.isSetReplicaId();
+    if (this_present_replicaId || that_present_replicaId) {
+      if (!(this_present_replicaId && that_present_replicaId))
+        return false;
+      if (!this.replicaId.equals(that.replicaId))
+        return false;
+    }
+
+    boolean this_present_productUri = true && this.isSetProductUri();
+    boolean that_present_productUri = true && that.isSetProductUri();
+    if (this_present_productUri || that_present_productUri) {
+      if (!(this_present_productUri && that_present_productUri))
+        return false;
+      if (!this.productUri.equals(that.productUri))
+        return false;
+    }
+
+    boolean this_present_replicaName = true && this.isSetReplicaName();
+    boolean that_present_replicaName = true && that.isSetReplicaName();
+    if (this_present_replicaName || that_present_replicaName) {
+      if (!(this_present_replicaName && that_present_replicaName))
+        return false;
+      if (!this.replicaName.equals(that.replicaName))
+        return false;
+    }
+
+    boolean this_present_replicaDescription = true && this.isSetReplicaDescription();
+    boolean that_present_replicaDescription = true && that.isSetReplicaDescription();
+    if (this_present_replicaDescription || that_present_replicaDescription) {
+      if (!(this_present_replicaDescription && that_present_replicaDescription))
+        return false;
+      if (!this.replicaDescription.equals(that.replicaDescription))
+        return false;
+    }
+
+    boolean this_present_creationTime = true && this.isSetCreationTime();
+    boolean that_present_creationTime = true && that.isSetCreationTime();
+    if (this_present_creationTime || that_present_creationTime) {
+      if (!(this_present_creationTime && that_present_creationTime))
+        return false;
+      if (this.creationTime != that.creationTime)
+        return false;
+    }
+
+    boolean this_present_lastModifiedTime = true && this.isSetLastModifiedTime();
+    boolean that_present_lastModifiedTime = true && that.isSetLastModifiedTime();
+    if (this_present_lastModifiedTime || that_present_lastModifiedTime) {
+      if (!(this_present_lastModifiedTime && that_present_lastModifiedTime))
+        return false;
+      if (this.lastModifiedTime != that.lastModifiedTime)
+        return false;
+    }
+
+    boolean this_present_validUntilTime = true && this.isSetValidUntilTime();
+    boolean that_present_validUntilTime = true && that.isSetValidUntilTime();
+    if (this_present_validUntilTime || that_present_validUntilTime) {
+      if (!(this_present_validUntilTime && that_present_validUntilTime))
+        return false;
+      if (this.validUntilTime != that.validUntilTime)
+        return false;
+    }
+
+    boolean this_present_replicaLocationCategory = true && this.isSetReplicaLocationCategory();
+    boolean that_present_replicaLocationCategory = true && that.isSetReplicaLocationCategory();
+    if (this_present_replicaLocationCategory || that_present_replicaLocationCategory) {
+      if (!(this_present_replicaLocationCategory && that_present_replicaLocationCategory))
+        return false;
+      if (!this.replicaLocationCategory.equals(that.replicaLocationCategory))
+        return false;
+    }
+
+    boolean this_present_replicaPersistentType = true && this.isSetReplicaPersistentType();
+    boolean that_present_replicaPersistentType = true && that.isSetReplicaPersistentType();
+    if (this_present_replicaPersistentType || that_present_replicaPersistentType) {
+      if (!(this_present_replicaPersistentType && that_present_replicaPersistentType))
+        return false;
+      if (!this.replicaPersistentType.equals(that.replicaPersistentType))
+        return false;
+    }
+
+    boolean this_present_storageResourceId = true && this.isSetStorageResourceId();
+    boolean that_present_storageResourceId = true && that.isSetStorageResourceId();
+    if (this_present_storageResourceId || that_present_storageResourceId) {
+      if (!(this_present_storageResourceId && that_present_storageResourceId))
+        return false;
+      if (!this.storageResourceId.equals(that.storageResourceId))
+        return false;
+    }
+
+    boolean this_present_filePath = true && this.isSetFilePath();
+    boolean that_present_filePath = true && that.isSetFilePath();
+    if (this_present_filePath || that_present_filePath) {
+      if (!(this_present_filePath && that_present_filePath))
+        return false;
+      if (!this.filePath.equals(that.filePath))
+        return false;
+    }
+
+    boolean this_present_replicaMetadata = true && this.isSetReplicaMetadata();
+    boolean that_present_replicaMetadata = true && that.isSetReplicaMetadata();
+    if (this_present_replicaMetadata || that_present_replicaMetadata) {
+      if (!(this_present_replicaMetadata && that_present_replicaMetadata))
+        return false;
+      if (!this.replicaMetadata.equals(that.replicaMetadata))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_replicaId = true && (isSetReplicaId());
+    list.add(present_replicaId);
+    if (present_replicaId)
+      list.add(replicaId);
+
+    boolean present_productUri = true && (isSetProductUri());
+    list.add(present_productUri);
+    if (present_productUri)
+      list.add(productUri);
+
+    boolean present_replicaName = true && (isSetReplicaName());
+    list.add(present_replicaName);
+    if (present_replicaName)
+      list.add(replicaName);
+
+    boolean present_replicaDescription = true && (isSetReplicaDescription());
+    list.add(present_replicaDescription);
+    if (present_replicaDescription)
+      list.add(replicaDescription);
+
+    boolean present_creationTime = true && (isSetCreationTime());
+    list.add(present_creationTime);
+    if (present_creationTime)
+      list.add(creationTime);
+
+    boolean present_lastModifiedTime = true && (isSetLastModifiedTime());
+    list.add(present_lastModifiedTime);
+    if (present_lastModifiedTime)
+      list.add(lastModifiedTime);
+
+    boolean present_validUntilTime = true && (isSetValidUntilTime());
+    list.add(present_validUntilTime);
+    if (present_validUntilTime)
+      list.add(validUntilTime);
+
+    boolean present_replicaLocationCategory = true && (isSetReplicaLocationCategory());
+    list.add(present_replicaLocationCategory);
+    if (present_replicaLocationCategory)
+      list.add(replicaLocationCategory.getValue());
+
+    boolean present_replicaPersistentType = true && (isSetReplicaPersistentType());
+    list.add(present_replicaPersistentType);
+    if (present_replicaPersistentType)
+      list.add(replicaPersistentType.getValue());
+
+    boolean present_storageResourceId = true && (isSetStorageResourceId());
+    list.add(present_storageResourceId);
+    if (present_storageResourceId)
+      list.add(storageResourceId);
+
+    boolean present_filePath = true && (isSetFilePath());
+    list.add(present_filePath);
+    if (present_filePath)
+      list.add(filePath);
+
+    boolean present_replicaMetadata = true && (isSetReplicaMetadata());
+    list.add(present_replicaMetadata);
+    if (present_replicaMetadata)
+      list.add(replicaMetadata);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(DataReplicaLocationModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetReplicaId()).compareTo(other.isSetReplicaId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaId, other.replicaId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProductUri()).compareTo(other.isSetProductUri());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProductUri()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productUri, other.productUri);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaName()).compareTo(other.isSetReplicaName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaName, other.replicaName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaDescription()).compareTo(other.isSetReplicaDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaDescription, other.replicaDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCreationTime()).compareTo(other.isSetCreationTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCreationTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creationTime, other.creationTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLastModifiedTime()).compareTo(other.isSetLastModifiedTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLastModifiedTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastModifiedTime, other.lastModifiedTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetValidUntilTime()).compareTo(other.isSetValidUntilTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValidUntilTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validUntilTime, other.validUntilTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaLocationCategory()).compareTo(other.isSetReplicaLocationCategory());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaLocationCategory()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaLocationCategory, other.replicaLocationCategory);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaPersistentType()).compareTo(other.isSetReplicaPersistentType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaPersistentType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaPersistentType, other.replicaPersistentType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStorageResourceId()).compareTo(other.isSetStorageResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStorageResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceId, other.storageResourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFilePath()).compareTo(other.isSetFilePath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFilePath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filePath, other.filePath);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaMetadata()).compareTo(other.isSetReplicaMetadata());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaMetadata()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaMetadata, other.replicaMetadata);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("DataReplicaLocationModel(");
+    boolean first = true;
+
+    if (isSetReplicaId()) {
+      sb.append("replicaId:");
+      if (this.replicaId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaId);
+      }
+      first = false;
+    }
+    if (isSetProductUri()) {
+      if (!first) sb.append(", ");
+      sb.append("productUri:");
+      if (this.productUri == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.productUri);
+      }
+      first = false;
+    }
+    if (isSetReplicaName()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaName:");
+      if (this.replicaName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaName);
+      }
+      first = false;
+    }
+    if (isSetReplicaDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaDescription:");
+      if (this.replicaDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaDescription);
+      }
+      first = false;
+    }
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (isSetLastModifiedTime()) {
+      if (!first) sb.append(", ");
+      sb.append("lastModifiedTime:");
+      sb.append(this.lastModifiedTime);
+      first = false;
+    }
+    if (isSetValidUntilTime()) {
+      if (!first) sb.append(", ");
+      sb.append("validUntilTime:");
+      sb.append(this.validUntilTime);
+      first = false;
+    }
+    if (isSetReplicaLocationCategory()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaLocationCategory:");
+      if (this.replicaLocationCategory == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaLocationCategory);
+      }
+      first = false;
+    }
+    if (isSetReplicaPersistentType()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaPersistentType:");
+      if (this.replicaPersistentType == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaPersistentType);
+      }
+      first = false;
+    }
+    if (isSetStorageResourceId()) {
+      if (!first) sb.append(", ");
+      sb.append("storageResourceId:");
+      if (this.storageResourceId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.storageResourceId);
+      }
+      first = false;
+    }
+    if (isSetFilePath()) {
+      if (!first) sb.append(", ");
+      sb.append("filePath:");
+      if (this.filePath == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.filePath);
+      }
+      first = false;
+    }
+    if (isSetReplicaMetadata()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaMetadata:");
+      if (this.replicaMetadata == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaMetadata);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class DataReplicaLocationModelStandardSchemeFactory implements SchemeFactory {
+    public DataReplicaLocationModelStandardScheme getScheme() {
+      return new DataReplicaLocationModelStandardScheme();
+    }
+  }
+
+  private static class DataReplicaLocationModelStandardScheme extends StandardScheme<DataReplicaLocationModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, DataReplicaLocationModel struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // REPLICA_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.replicaId = iprot.readString();
+              struct.setReplicaIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // PRODUCT_URI
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.productUri = iprot.readString();
+              struct.setProductUriIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // REPLICA_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.replicaName = iprot.readString();
+              struct.setReplicaNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // REPLICA_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.replicaDescription = iprot.readString();
+              struct.setReplicaDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // CREATION_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.creationTime = iprot.readI64();
+              struct.setCreationTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // LAST_MODIFIED_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.lastModifiedTime = iprot.readI64();
+              struct.setLastModifiedTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // VALID_UNTIL_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.validUntilTime = iprot.readI64();
+              struct.setValidUntilTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // REPLICA_LOCATION_CATEGORY
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.replicaLocationCategory = org.apache.airavata.model.data.replica.ReplicaLocationCategory.findByValue(iprot.readI32());
+              struct.setReplicaLocationCategoryIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // REPLICA_PERSISTENT_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.replicaPersistentType = org.apache.airavata.model.data.replica.ReplicaPersistentType.findByValue(iprot.readI32());
+              struct.setReplicaPersistentTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // STORAGE_RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.storageResourceId = iprot.readString();
+              struct.setStorageResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // FILE_PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.filePath = iprot.readString();
+              struct.setFilePathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // REPLICA_METADATA
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map26 = iprot.readMapBegin();
+                struct.replicaMetadata = new HashMap<String,String>(2*_map26.size);
+                String _key27;
+                String _val28;
+                for (int _i29 = 0; _i29 < _map26.size; ++_i29)
+                {
+                  _key27 = iprot.readString();
+                  _val28 = iprot.readString();
+                  struct.replicaMetadata.put(_key27, _val28);
+                }
+                iprot.readMapEnd();
+              }
+              struct.setReplicaMetadataIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, DataReplicaLocationModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.replicaId != null) {
+        if (struct.isSetReplicaId()) {
+          oprot.writeFieldBegin(REPLICA_ID_FIELD_DESC);
+          oprot.writeString(struct.replicaId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.productUri != null) {
+        if (struct.isSetProductUri()) {
+          oprot.writeFieldBegin(PRODUCT_URI_FIELD_DESC);
+          oprot.writeString(struct.productUri);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaName != null) {
+        if (struct.isSetReplicaName()) {
+          oprot.writeFieldBegin(REPLICA_NAME_FIELD_DESC);
+          oprot.writeString(struct.replicaName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaDescription != null) {
+        if (struct.isSetReplicaDescription()) {
+          oprot.writeFieldBegin(REPLICA_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.replicaDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetLastModifiedTime()) {
+        oprot.writeFieldBegin(LAST_MODIFIED_TIME_FIELD_DESC);
+        oprot.writeI64(struct.lastModifiedTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetValidUntilTime()) {
+        oprot.writeFieldBegin(VALID_UNTIL_TIME_FIELD_DESC);
+        oprot.writeI64(struct.validUntilTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.replicaLocationCategory != null) {
+        if (struct.isSetReplicaLocationCategory()) {
+          oprot.writeFieldBegin(REPLICA_LOCATION_CATEGORY_FIELD_DESC);
+          oprot.writeI32(struct.replicaLocationCategory.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaPersistentType != null) {
+        if (struct.isSetReplicaPersistentType()) {
+          oprot.writeFieldBegin(REPLICA_PERSISTENT_TYPE_FIELD_DESC);
+          oprot.writeI32(struct.replicaPersistentType.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.storageResourceId != null) {
+        if (struct.isSetStorageResourceId()) {
+          oprot.writeFieldBegin(STORAGE_RESOURCE_ID_FIELD_DESC);
+          oprot.writeString(struct.storageResourceId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.filePath != null) {
+        if (struct.isSetFilePath()) {
+          oprot.writeFieldBegin(FILE_PATH_FIELD_DESC);
+          oprot.writeString(struct.filePath);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaMetadata != null) {
+        if (struct.isSetReplicaMetadata()) {
+          oprot.writeFieldBegin(REPLICA_METADATA_FIELD_DESC);
+          {
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.replicaMetadata.size()));
+            for (Map.Entry<String, String> _iter30 : struct.replicaMetadata.entrySet())
+            {
+              oprot.writeString(_iter30.getKey());
+              oprot.writeString(_iter30.getValue());
+            }
+            oprot.writeMapEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class DataReplicaLocationModelTupleSchemeFactory implements SchemeFactory {
+    public DataReplicaLocationModelTupleScheme getScheme() {
+      return new DataReplicaLocationModelTupleScheme();
+    }
+  }
+
+  private static class DataReplicaLocationModelTupleScheme extends TupleScheme<DataReplicaLocationModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, DataReplicaLocationModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetReplicaId()) {
+        optionals.set(0);
+      }
+      if (struct.isSetProductUri()) {
+        optionals.set(1);
+      }
+      if (struct.isSetReplicaName()) {
+        optionals.set(2);
+      }
+      if (struct.isSetReplicaDescription()) {
+        optionals.set(3);
+      }
+      if (struct.isSetCreationTime()) {
+        optionals.set(4);
+      }
+      if (struct.isSetLastModifiedTime()) {
+        optionals.set(5);
+      }
+      if (struct.isSetValidUntilTime()) {
+        optionals.set(6);
+      }
+      if (struct.isSetReplicaLocationCategory()) {
+        optionals.set(7);
+      }
+      if (struct.isSetReplicaPersistentType()) {
+        optionals.set(8);
+      }
+      if (struct.isSetStorageResourceId()) {
+        optionals.set(9);
+      }
+      if (struct.isSetFilePath()) {
+        optionals.set(10);
+      }
+      if (struct.isSetReplicaMetadata()) {
+        optionals.set(11);
+      }
+      oprot.writeBitSet(optionals, 12);
+      if (struct.isSetReplicaId()) {
+        oprot.writeString(struct.replicaId);
+      }
+      if (struct.isSetProductUri()) {
+        oprot.writeString(struct.productUri);
+      }
+      if (struct.isSetReplicaName()) {
+        oprot.writeString(struct.replicaName);
+      }
+      if (struct.isSetReplicaDescription()) {
+        oprot.writeString(struct.replicaDescription);
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeI64(struct.creationTime);
+      }
+      if (struct.isSetLastModifiedTime()) {
+        oprot.writeI64(struct.lastModifiedTime);
+      }
+      if (struct.isSetValidUntilTime()) {
+        oprot.writeI64(struct.validUntilTime);
+      }
+      if (struct.isSetReplicaLocationCategory()) {
+        oprot.writeI32(struct.replicaLocationCategory.getValue());
+      }
+      if (struct.isSetReplicaPersistentType()) {
+        oprot.writeI32(struct.replicaPersistentType.getValue());
+      }
+      if (struct.isSetStorageResourceId()) {
+        oprot.writeString(struct.storageResourceId);
+      }
+      if (struct.isSetFilePath()) {
+        oprot.writeString(struct.filePath);
+      }
+      if (struct.isSetReplicaMetadata()) {
+        {
+          oprot.writeI32(struct.replicaMetadata.size());
+          for (Map.Entry<String, String> _iter31 : struct.replicaMetadata.entrySet())
+          {
+            oprot.writeString(_iter31.getKey());
+            oprot.writeString(_iter31.getValue());
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, DataReplicaLocationModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(12);
+      if (incoming.get(0)) {
+        struct.replicaId = iprot.readString();
+        struct.setReplicaIdIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.productUri = iprot.readString();
+        struct.setProductUriIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.replicaName = iprot.readString();
+        struct.setReplicaNameIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.replicaDescription = iprot.readString();
+        struct.setReplicaDescriptionIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.creationTime = iprot.readI64();
+        struct.setCreationTimeIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.lastModifiedTime = iprot.readI64();
+        struct.setLastModifiedTimeIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.validUntilTime = iprot.readI64();
+        struct.setValidUntilTimeIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.replicaLocationCategory = org.apache.airavata.model.data.replica.ReplicaLocationCategory.findByValue(iprot.readI32());
+        struct.setReplicaLocationCategoryIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.replicaPersistentType = org.apache.airavata.model.data.replica.ReplicaPersistentType.findByValue(iprot.readI32());
+        struct.setReplicaPersistentTypeIsSet(true);
+      }
+      if (incoming.get(9)) {
+        struct.storageResourceId = iprot.readString();
+        struct.setStorageResourceIdIsSet(true);
+      }
+      if (incoming.get(10)) {
+        struct.filePath = iprot.readString();
+        struct.setFilePathIsSet(true);
+      }
+      if (incoming.get(11)) {
+        {
+          org.apache.thrift.protocol.TMap _map32 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.replicaMetadata = new HashMap<String,String>(2*_map32.size);
+          String _key33;
+          String _val34;
+          for (int _i35 = 0; _i35 < _map32.size; ++_i35)
+          {
+            _key33 = iprot.readString();
+            _val34 = iprot.readString();
+            struct.replicaMetadata.put(_key33, _val34);
+          }
+        }
+        struct.setReplicaMetadataIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaLocationCategory.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaLocationCategory.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaLocationCategory.java
new file mode 100644
index 0000000..6cf5a8e
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaLocationCategory.java
@@ -0,0 +1,68 @@
+/**
+ * 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.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.replica;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum ReplicaLocationCategory implements org.apache.thrift.TEnum {
+  GATEWAY_DATA_STORE(0),
+  COMPUTE_RESOURCE(1),
+  LONG_TERM_STORAGE_RESOURCE(2),
+  OTHER(3);
+
+  private final int value;
+
+  private ReplicaLocationCategory(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static ReplicaLocationCategory findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return GATEWAY_DATA_STORE;
+      case 1:
+        return COMPUTE_RESOURCE;
+      case 2:
+        return LONG_TERM_STORAGE_RESOURCE;
+      case 3:
+        return OTHER;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java
new file mode 100644
index 0000000..518ca9f
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java
@@ -0,0 +1,62 @@
+/**
+ * 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.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.replica;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum ReplicaPersistentType implements org.apache.thrift.TEnum {
+  TRANSIENT(0),
+  PERSISTENT(1);
+
+  private final int value;
+
+  private ReplicaPersistentType(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static ReplicaPersistentType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return TRANSIENT;
+      case 1:
+        return PERSISTENT;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
index 3a4ecad..8175998 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
@@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory;
  * parameter:  If the error applied to a particular input parameter, this will
  *   indicate which parameter.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class AiravataClientException extends TException implements org.apache.thrift.TBase<AiravataClientException, AiravataClientException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataClientException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataClientException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
index 6fa524c..12bfb8e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  * message:  This may contain additional information about the error
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class AiravataSystemException extends TException implements org.apache.thrift.TBase<AiravataSystemException, AiravataSystemException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataSystemException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataSystemException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
index 5f6ce68..a114a0b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the cause of the authorization failure.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class AuthenticationException extends TException implements org.apache.thrift.TBase<AuthenticationException, AuthenticationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthenticationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthenticationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
index 316514c..4c582a4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the authorization failure message
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class AuthorizationException extends TException implements org.apache.thrift.TBase<AuthorizationException, AuthorizationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthorizationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthorizationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
index ab1da7c..d2e63d0 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
  * 
  * key:  The value passed from the client in the identifier, which was not found.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ExperimentNotFoundException extends TException implements org.apache.thrift.TBase<ExperimentNotFoundException, ExperimentNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentNotFoundException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentNotFoundException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
index 045ab68..629b6bc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the associated error message.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class InvalidRequestException extends TException implements org.apache.thrift.TBase<InvalidRequestException, InvalidRequestException._Fields>, java.io.Serializable, Cloneable, Comparable<InvalidRequestException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InvalidRequestException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
index efb5017..57c9753 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class LaunchValidationException extends TException implements org.apache.thrift.TBase<LaunchValidationException, LaunchValidationException._Fields>, java.io.Serializable, Cloneable, Comparable<LaunchValidationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LaunchValidationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
index 636b426..be1d623 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 2:  optional  string key
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ProjectNotFoundException extends TException implements org.apache.thrift.TBase<ProjectNotFoundException, ProjectNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ProjectNotFoundException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProjectNotFoundException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
index 1ee2a18..386ca43 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
@@ -54,7 +54,7 @@ import org.slf4j.LoggerFactory;
 /**
  * This exception is thrown when RPC timeout gets exceeded.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class TimedOutException extends TException implements org.apache.thrift.TBase<TimedOutException, TimedOutException._Fields>, java.io.Serializable, Cloneable, Comparable<TimedOutException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TimedOutException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
index 7e18066..2e80320 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
index 0400b6d..a93c4e1 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
index 377b3fb..9460b15 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
  * experimentDescription:
  *    The verbose description of the experiment. This is an optional parameter.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel, ExperimentModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
index 8b38124..dd923c1 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentStatistics, ExperimentStatistics._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatistics> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatistics");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
index 8194d91..a342e4e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ExperimentSummaryModel implements org.apache.thrift.TBase<ExperimentSummaryModel, ExperimentSummaryModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentSummaryModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentSummaryModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
index 43497ca..cdf3bd7 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class UserConfigurationDataModel implements org.apache.thrift.TBase<UserConfigurationDataModel, UserConfigurationDataModel._Fields>, java.io.Serializable, Cloneable, Comparable<UserConfigurationDataModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserConfigurationDataModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
index eebee5f..651cc33 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
index 0634587..56f39d6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ExperimentStatusChangeEvent implements org.apache.thrift.TBase<ExperimentStatusChangeEvent, ExperimentStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatusChangeEvent");
 


[03/10] airavata git commit: renaming data-catalog to replica catalog

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
index 2c71d75..33323b8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class JobIdentifier implements org.apache.thrift.TBase<JobIdentifier, JobIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<JobIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
index c6de06f..cfc6b1c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class JobStatusChangeEvent implements org.apache.thrift.TBase<JobStatusChangeEvent, JobStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
index 672a614..4cd6514 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class JobStatusChangeRequestEvent implements org.apache.thrift.TBase<JobStatusChangeRequestEvent, JobStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
index 13a0fb2..b39a1be 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class Message implements org.apache.thrift.TBase<Message, Message._Fields>, java.io.Serializable, Cloneable, Comparable<Message> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Message");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
index 5e954b7..edc8225 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ProcessIdentifier implements org.apache.thrift.TBase<ProcessIdentifier, ProcessIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
index b16174e..1f7b015 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ProcessStatusChangeEvent implements org.apache.thrift.TBase<ProcessStatusChangeEvent, ProcessStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
index 63ed2cd..f7e2b06 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<ProcessStatusChangeRequestEvent, ProcessStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
index 240d175..a035c86 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmitEvent, ProcessSubmitEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessSubmitEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessSubmitEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
index b13c6bf..ff7e9e9 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ProcessTerminateEvent implements org.apache.thrift.TBase<ProcessTerminateEvent, ProcessTerminateEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessTerminateEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessTerminateEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
index 56ef18d..04693b6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class TaskIdentifier implements org.apache.thrift.TBase<TaskIdentifier, TaskIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<TaskIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
index 1f313a5..c03324d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class TaskOutputChangeEvent implements org.apache.thrift.TBase<TaskOutputChangeEvent, TaskOutputChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskOutputChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskOutputChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
index 7dac603..edca604 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class TaskStatusChangeEvent implements org.apache.thrift.TBase<TaskStatusChangeEvent, TaskStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
index 8f3e72a..d8fd822 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class TaskStatusChangeRequestEvent implements org.apache.thrift.TBase<TaskStatusChangeRequestEvent, TaskStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
index 1b541a9..89b6e73 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, ProcessModel._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
index 709e4e3..7d495af 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ComputationalResourceSchedulingModel implements org.apache.thrift.TBase<ComputationalResourceSchedulingModel, ComputationalResourceSchedulingModel._Fields>, java.io.Serializable, Cloneable, Comparable<ComputationalResourceSchedulingModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputationalResourceSchedulingModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
index 8ce1e00..3609b85 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class AuthzToken implements org.apache.thrift.TBase<AuthzToken, AuthzToken._Fields>, java.io.Serializable, Cloneable, Comparable<AuthzToken> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthzToken");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
index 7cd21a8..7ebe824 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *   User friendly reason on how the state is inferred.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ExperimentStatus implements org.apache.thrift.TBase<ExperimentStatus, ExperimentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
index debd17c..22f5d24 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class JobStatus implements org.apache.thrift.TBase<JobStatus, JobStatus._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
index 1405a0d..49447bf 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ProcessStatus implements org.apache.thrift.TBase<ProcessStatus, ProcessStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
index 219eafc..0d9e116 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class TaskStatus implements org.apache.thrift.TBase<TaskStatus, TaskStatus._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
index 251ce08..fdd62ff 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class DataStagingTaskModel implements org.apache.thrift.TBase<DataStagingTaskModel, DataStagingTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataStagingTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataStagingTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
index 58e95c3..ea860bc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
@@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory;
  * EnvironmentSetupTaskModel: A structure holding the environment creation task details
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class EnvironmentSetupTaskModel implements org.apache.thrift.TBase<EnvironmentSetupTaskModel, EnvironmentSetupTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<EnvironmentSetupTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EnvironmentSetupTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
index 75d643c..22e07bb 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmissionTaskModel, JobSubmissionTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
index 1b8a81e..1d02eda 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class MonitorTaskModel implements org.apache.thrift.TBase<MonitorTaskModel, MonitorTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<MonitorTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("MonitorTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
index 607df58..733671d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * subTaskModel:
  *   A generic byte object for the Task developer to store internal serialized data into registry catalogs.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<TaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
index 93ebeca..7e115b5 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class Gateway implements org.apache.thrift.TBase<Gateway, Gateway._Fields>, java.io.Serializable, Cloneable, Comparable<Gateway> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Gateway");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
index 1fbd50b..7bc9899 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class Group implements org.apache.thrift.TBase<Group, Group._Fields>, java.io.Serializable, Cloneable, Comparable<Group> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Group");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
index 543ca98..8dd871b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class Project implements org.apache.thrift.TBase<Project, Project._Fields>, java.io.Serializable, Cloneable, Comparable<Project> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Project");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
index f54fdc5..d21c7ec 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class User implements org.apache.thrift.TBase<User, User._Fields>, java.io.Serializable, Cloneable, Comparable<User> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("User");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties b/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties
index e74016f..b783542 100644
--- a/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties
+++ b/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties
@@ -66,11 +66,11 @@ appcatalog.jdbc.password=airavata
 appcatalog.validationQuery=SELECT 1 from CONFIGURATION
 
 ##########################################################################
-#  Data Catalog DB Configuration
+#  Replica Catalog DB Configuration
 ###########################################################################
 #for derby [AiravataJPARegistry]
 datacatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
-datacatalog.jdbc.url=jdbc:derby://localhost:1527/data_catalog;create=true;user=airavata;password=airavata
+datacatalog.jdbc.url=jdbc:derby://localhost:1527/replica_catalog;create=true;user=airavata;password=airavata
 # MySql database configuration
 #datacatalog.jdbc.driver=com.mysql.jdbc.Driver
 #datacatalog.jdbc.url=jdbc:mysql://localhost:3306/data_catalog

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java b/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
index 25b3404..c2574f4 100644
--- a/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
+++ b/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
@@ -37,8 +37,8 @@ import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescr
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
 import org.apache.airavata.model.application.io.DataType;
-import org.apache.airavata.model.data.product.DataProductModel;
-import org.apache.airavata.model.data.product.ReplicaLocationCategory;
+import org.apache.airavata.model.data.replica.DataProductModel;
+import org.apache.airavata.model.data.replica.ReplicaLocationCategory;
 import org.apache.airavata.model.error.LaunchValidationException;
 import org.apache.airavata.model.experiment.ExperimentModel;
 import org.apache.airavata.model.experiment.ExperimentType;
@@ -163,17 +163,17 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface {
 				for (ProcessModel processModel : processes){
 					//FIXME Resolving replica if available. This is a very crude way of resolving input replicas. A full featured
 					//FIXME replica resolving logic should come here
-					DataCatalog dataCatalog = RegistryFactory.getDataCatalog();
+					ReplicaCatalog replicaCatalog = RegistryFactory.getReplicaCatalog();
 					processModel.getProcessInputs().stream().forEach(pi -> {
 						if (pi.getType().equals(DataType.URI) && pi.getValue().startsWith("airavata-dp://")) {
 							try {
-								DataProductModel dataProductModel = dataCatalog.getDataProduct(pi.getValue());
+								DataProductModel dataProductModel = replicaCatalog.getDataProduct(pi.getValue());
 								dataProductModel.getReplicaLocations().stream().filter(rpModel -> rpModel.getReplicaLocationCategory()
 										.equals(ReplicaLocationCategory.GATEWAY_DATA_STORE)).forEach(rpModel -> {
 									//TODO Should set storage resource id specific to each of these inputs
 									pi.setValue(rpModel.getFilePath());
 								});
-							} catch (DataCatalogException e) {
+							} catch (ReplicaCatalogException e) {
 								log.error(e.getMessage(), e);
 							}
 						}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/impl/DataCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/impl/DataCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/impl/DataCatalogImpl.java
deleted file mode 100644
index cc6dbdf..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/impl/DataCatalogImpl.java
+++ /dev/null
@@ -1,356 +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.data.catalog.impl;
-
-import org.apache.airavata.model.data.product.DataProductModel;
-import org.apache.airavata.model.data.product.DataProductType;
-import org.apache.airavata.model.data.product.DataReplicaLocationModel;
-import org.apache.airavata.registry.core.data.catalog.model.DataProduct;
-import org.apache.airavata.registry.core.data.catalog.model.DataReplicaLocation;
-import org.apache.airavata.registry.core.data.catalog.utils.DataCatalogJPAUtils;
-import org.apache.airavata.registry.core.data.catalog.utils.ThriftDataModelConversion;
-import org.apache.airavata.registry.cpi.DataCatalog;
-import org.apache.airavata.registry.cpi.DataCatalogException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.EntityManager;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-public class DataCatalogImpl implements DataCatalog {
-
-    private final static Logger logger = LoggerFactory.getLogger(DataCatalogImpl.class);
-
-    @Override
-    public String registerDataProduct(DataProductModel productModel) throws DataCatalogException {
-        if(productModel.getOwnerName() == null || productModel.getGatewayId() == null || productModel
-                .getLogicalPath() == null || !productModel.getLogicalPath().startsWith("/")){
-            throw new DataCatalogException("owner name, gateway id and logical path should be non empty and logical path" +
-                    " should start with /");
-        }
-        if(productModel.getDataProductType().equals(DataProductType.FILE) && !productModel.getLogicalPath().endsWith(productModel.getProductName())){
-            if(!productModel.getLogicalPath().endsWith("/"))
-                productModel.setLogicalPath(productModel.getLogicalPath()+"/");
-            productModel.setLogicalPath(productModel.getLogicalPath()+productModel.getProductName());
-        }
-        //Creating parent logical dir if not exist too
-        String parentUri = DataCatalog.schema + "://" + productModel.getOwnerName() + "@" + productModel.getGatewayId() + ":/" ;
-        DataProductModel tempDp;
-        if(!isExists(parentUri)){
-            tempDp = new DataProductModel();
-            tempDp.setProductUri(parentUri);
-            tempDp.setLogicalPath("/");
-            tempDp.setOwnerName(productModel.getOwnerName());
-            tempDp.setGatewayId(productModel.getGatewayId());
-            tempDp.setDataProductType(DataProductType.DIR);
-            createDataProduct(tempDp);
-        }
-        String[] bits = productModel.getLogicalPath().split("/");
-        for(int i=0; i<bits.length-1;i++){
-            String dir = bits[i];
-            if(!isExists(parentUri + dir)){
-                tempDp = new DataProductModel();
-                try {
-                    tempDp.setLogicalPath((new URI(parentUri + dir)).getPath());
-                } catch (URISyntaxException e) {
-                    throw new DataCatalogException(e);
-                }
-                tempDp.setProductUri(parentUri + dir);
-                tempDp.setOwnerName(productModel.getOwnerName());
-                tempDp.setGatewayId(productModel.getGatewayId());
-                tempDp.setDataProductType(DataProductType.DIR);
-                tempDp.setParentProductUri(parentUri);
-                parentUri = createDataProduct(tempDp);
-            }
-        }
-
-        productModel.setParentProductUri(parentUri);
-        String productUri = DataCatalog.schema + "://" + productModel.getOwnerName() + "@" + productModel.getGatewayId()
-                + ":" + productModel.getLogicalPath();
-        productModel.setProductUri(productUri);
-        long currentTime = System.currentTimeMillis();
-        productModel.setCreationTime(currentTime);
-        productModel.setLastModifiedTime(currentTime);
-        if(productModel.getReplicaLocations() != null){
-            productModel.getReplicaLocations().stream().forEach(r-> {
-                r.setProductUri(productUri);
-                r.setReplicaId(UUID.randomUUID().toString());
-                r.setCreationTime(currentTime);
-                r.setLastModifiedTime(currentTime);
-            });
-        }
-        productModel.setCreationTime(System.currentTimeMillis());
-        productModel.setLastModifiedTime(System.currentTimeMillis());
-        return createDataProduct(productModel);
-    }
-
-    private String createDataProduct(DataProductModel productModel) throws DataCatalogException {
-        DataProduct dataProduct = ThriftDataModelConversion.getDataProduct(productModel);
-        EntityManager em = null;
-        try {
-            em = DataCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            em.persist(dataProduct);
-            em.getTransaction().commit();
-            em.close();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new DataCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-        return dataProduct.getProductUri();
-    }
-
-    @Override
-    public boolean removeDataProduct(String productUri) throws DataCatalogException {
-        EntityManager em = null;
-        try {
-            em = DataCatalogJPAUtils.getEntityManager();
-            DataProduct dataProduct = em.find(DataProduct.class, productUri);
-            if(dataProduct == null)
-                return false;
-            em.getTransaction().begin();
-            em.remove(dataProduct);
-            em.getTransaction().commit();
-            em.close();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new DataCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-        return true;
-    }
-
-    @Override
-    public boolean updateDataProduct(DataProductModel productModel) throws DataCatalogException {
-        EntityManager em = null;
-        try {
-            em = DataCatalogJPAUtils.getEntityManager();
-            DataProduct dataProduct = em.find(DataProduct.class, productModel.getProductUri());
-            if(dataProduct == null)
-                return false;
-            em.getTransaction().begin();
-            productModel.setCreationTime(dataProduct.getCreationTime().getTime());
-            productModel.setLastModifiedTime(System.currentTimeMillis());
-            em.merge(ThriftDataModelConversion.getUpdatedDataProduct(productModel, dataProduct));
-            em.getTransaction().commit();
-            em.close();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new DataCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-        return true;
-    }
-
-    @Override
-    public DataProductModel getDataProduct(String productUri) throws DataCatalogException {
-        EntityManager em = null;
-        try {
-            em = DataCatalogJPAUtils.getEntityManager();
-            DataProduct dataProduct = em.find(DataProduct.class, productUri);
-            return ThriftDataModelConversion.getDataProductModel(dataProduct);
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new DataCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-    }
-
-    @Override
-    public boolean isExists(String productUri) throws DataCatalogException {
-        EntityManager em = null;
-        try {
-            em = DataCatalogJPAUtils.getEntityManager();
-            DataProduct dataProduct = em.find(DataProduct.class, productUri);
-            return dataProduct != null;
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new DataCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-    }
-
-    @Override
-    public String registerReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel) throws DataCatalogException {
-        String replicaId = UUID.randomUUID().toString();
-        dataReplicaLocationModel.setReplicaId(replicaId);
-        long currentTime = System.currentTimeMillis();
-        dataReplicaLocationModel.setCreationTime(currentTime);
-        dataReplicaLocationModel.setLastModifiedTime(currentTime);
-        dataReplicaLocationModel.setCreationTime(System.currentTimeMillis());
-        dataReplicaLocationModel.setLastModifiedTime(System.currentTimeMillis());
-        DataReplicaLocation replicaLocation = ThriftDataModelConversion.getDataReplicaLocation(dataReplicaLocationModel);
-        EntityManager em = null;
-        try {
-            em = DataCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            em.persist(replicaLocation);
-            em.getTransaction().commit();
-            em.close();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new DataCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-        return replicaId;
-    }
-
-    @Override
-    public boolean removeReplicaLocation(String replicaId) throws DataCatalogException {
-        EntityManager em = null;
-        try {
-            em = DataCatalogJPAUtils.getEntityManager();
-            DataReplicaLocation replicaLocation = em.find(DataReplicaLocation.class, replicaId);
-            if(replicaLocation == null)
-                return false;
-            em.getTransaction().begin();
-            em.remove(replicaLocation);
-            em.getTransaction().commit();
-            em.close();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new DataCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-        return true;
-    }
-
-    @Override
-    public boolean updateReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel) throws DataCatalogException {
-        EntityManager em = null;
-        try {
-            em = DataCatalogJPAUtils.getEntityManager();
-            DataReplicaLocation dataReplicaLocation = em.find(DataReplicaLocation.class, dataReplicaLocationModel.getReplicaId());
-            if(dataReplicaLocation == null)
-                return false;
-            em.getTransaction().begin();
-            dataReplicaLocationModel.setCreationTime(dataReplicaLocation.getCreationTime().getTime());
-            dataReplicaLocationModel.setLastModifiedTime(System.currentTimeMillis());
-            em.merge(ThriftDataModelConversion.getUpdatedDataReplicaLocation(dataReplicaLocationModel, dataReplicaLocation));
-            em.getTransaction().commit();
-            em.close();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new DataCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-        return true;
-    }
-
-    @Override
-    public DataReplicaLocationModel getReplicaLocation(String replicaId) throws DataCatalogException {
-        EntityManager em = null;
-        try {
-            em = DataCatalogJPAUtils.getEntityManager();
-            DataReplicaLocation replicaLocation = em.find(DataReplicaLocation.class, replicaId);
-            return ThriftDataModelConversion.getDataReplicaLocationModel(replicaLocation);
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new DataCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-    }
-
-    @Override
-    public List<DataReplicaLocationModel> getAllReplicaLocations(String productUri) throws DataCatalogException {
-        EntityManager em = null;
-        try {
-            em = DataCatalogJPAUtils.getEntityManager();
-            DataProduct dataProduct = em.find(DataProduct.class, productUri);
-            if(dataProduct == null)
-                return null;
-            ArrayList<DataReplicaLocationModel> dataReplicaLocationModels = new ArrayList<>();
-            dataProduct.getDataReplicaLocations().stream().forEach(rl->dataReplicaLocationModels
-                    .add(ThriftDataModelConversion.getDataReplicaLocationModel(rl)));
-            return dataReplicaLocationModels;
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new DataCatalogException(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/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/Configuration.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/Configuration.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/Configuration.java
deleted file mode 100644
index e4ad0ec..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/Configuration.java
+++ /dev/null
@@ -1,55 +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.data.catalog.model;
-
-import org.apache.airavata.registry.core.app.catalog.model.Configuration_PK;
-
-import javax.persistence.*;
-import java.io.Serializable;
-
-@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;
-
-    public String getConfig_key() {
-        return config_key;
-    }
-
-    public String getConfig_val() {
-        return config_val;
-    }
-
-    public void setConfig_key(String config_key) {
-        this.config_key = config_key;
-    }
-
-    public void setConfig_val(String config_val) {
-        this.config_val = config_val;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataProduct.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataProduct.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataProduct.java
deleted file mode 100644
index 4774bf3..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataProduct.java
+++ /dev/null
@@ -1,187 +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.data.catalog.model;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.*;
-import java.sql.Timestamp;
-import java.util.Collection;
-
-@Entity
-@Table(name = "DATA_PRODUCT")
-public class DataProduct {
-    private final static Logger logger = LoggerFactory.getLogger(DataProduct.class);
-    private String productUri;
-    private String gatewayId;
-    private String productName;
-    private String logicalPath;
-    private String productDescription;
-    private String dataProductType;
-    private String ownerName;
-    private String parentProductUri;
-    private int productSize;
-    private Timestamp creationTime;
-    private Timestamp lastModifiedTime;
-
-    private DataProduct parentDataProduct;
-    private Collection<DataReplicaLocation> dataReplicaLocations;
-    private Collection<DataProductMetaData> dataProductMetaData;
-    private Collection<DataProduct> childDataProducts;
-
-    @Id
-    @Column(name = "PRODUCT_URI")
-    public String getProductUri() {
-        return productUri;
-    }
-
-    public void setProductUri(String productUri) {
-        this.productUri = productUri;
-    }
-
-    @Column(name = "GATEWAY_ID")
-    public String getGatewayId() {
-        return gatewayId;
-    }
-
-    public void setGatewayId(String gatewayId) {
-        this.gatewayId = gatewayId;
-    }
-
-    @Column(name = "PRODUCT_NAME")
-    public String getProductName() {
-        return productName;
-    }
-
-    public void setProductName(String productName) {
-        this.productName = productName;
-    }
-
-    @Column(name = "PRODUCT_DESCRIPTION")
-    public String getProductDescription() {
-        return productDescription;
-    }
-
-    public void setProductDescription(String productDescription) {
-        this.productDescription = productDescription;
-    }
-
-    @Column(name = "LOGICAL_PATH")
-    public String getLogicalPath() {
-        return logicalPath;
-    }
-
-    public void setLogicalPath(String logicalPath) {
-        this.logicalPath = logicalPath;
-    }
-
-    @Column(name = "OWNER_NAME")
-    public String getOwnerName() {
-        return ownerName;
-    }
-
-    public void setOwnerName(String ownerName) {
-        this.ownerName = ownerName;
-    }
-
-    @Column(name = "PARENT_PRODUCT_URI")
-    public String getParentProductUri() {
-        return parentProductUri;
-    }
-
-    public void setParentProductUri(String parentProductUri) {
-        this.parentProductUri = parentProductUri;
-    }
-
-    @Column(name = "PRODUCT_TYPE")
-    public String getDataProductType() {
-        return dataProductType;
-    }
-
-    public void setDataProductType(String dataProductType) {
-        this.dataProductType = dataProductType;
-    }
-
-    @Column(name = "PRODUCT_SIZE")
-    public int getProductSize() {
-        return productSize;
-    }
-
-    public void setProductSize(int productSize) {
-        this.productSize = productSize;
-    }
-
-    @Column(name = "CREATION_TIME")
-    public Timestamp getCreationTime() {
-        return creationTime;
-    }
-
-    public void setCreationTime(Timestamp creationTime) {
-        this.creationTime = creationTime;
-    }
-
-    @Column(name = "LAST_MODIFIED_TIME")
-    public Timestamp getLastModifiedTime() {
-        return lastModifiedTime;
-    }
-
-    public void setLastModifiedTime(Timestamp lastModifiedTime) {
-        this.lastModifiedTime = lastModifiedTime;
-    }
-
-    @OneToMany(mappedBy = "dataProduct", cascade = {CascadeType.ALL})
-    public Collection<DataReplicaLocation> getDataReplicaLocations() {
-        return dataReplicaLocations;
-    }
-
-    public void setDataReplicaLocations(Collection<DataReplicaLocation> dataReplicaLocations) {
-        this.dataReplicaLocations = dataReplicaLocations;
-    }
-
-    @OneToMany(mappedBy = "dataProduct", cascade = {CascadeType.ALL})
-    public Collection<DataProductMetaData> getDataProductMetaData() {
-        return dataProductMetaData;
-    }
-
-    public void setDataProductMetaData(Collection<DataProductMetaData> dataProductMetaData) {
-        this.dataProductMetaData = dataProductMetaData;
-    }
-
-    @ManyToOne
-    @JoinColumn(name = "PARENT_PRODUCT_URI", referencedColumnName = "PRODUCT_URI")
-    public DataProduct getParentDataProduct() {
-        return parentDataProduct;
-    }
-
-    public void setParentDataProduct(DataProduct parentDataProduct) {
-        this.parentDataProduct = parentDataProduct;
-    }
-
-    @OneToMany(mappedBy = "parentDataProduct", cascade = {CascadeType.ALL})
-    public Collection<DataProduct> getChildDataProducts() {
-        return childDataProducts;
-    }
-
-    public void setChildDataProducts(Collection<DataProduct> childDataProducts) {
-        this.childDataProducts = childDataProducts;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataProductMetaData.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataProductMetaData.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataProductMetaData.java
deleted file mode 100644
index f3b696f..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataProductMetaData.java
+++ /dev/null
@@ -1,77 +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.data.catalog.model;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = "DATA_PRODUCT_METADATA")
-@IdClass(DataProductMetaData_PK.class)
-public class DataProductMetaData {
-    private final static Logger logger = LoggerFactory.getLogger(DataProductMetaData.class);
-    private String productUri;
-    private String key;
-    private String value;
-
-    private DataProduct dataProduct;
-
-    @Id
-    @Column(name = "PRODUCT_URI")
-    public String getProductUri() {
-        return productUri;
-    }
-
-    public void setProductUri(String productUri) {
-        this.productUri = productUri;
-    }
-
-    @Id
-    @Column(name = "METADATA_KEY")
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
-    @Column(name = "METADATA_VALUE")
-    public String getValue() {
-        return value;
-    }
-
-    public void setValue(String value) {
-        this.value = value;
-    }
-
-    @ManyToOne
-    @JoinColumn(name = "PRODUCT_URI", referencedColumnName = "PRODUCT_URI")
-    public DataProduct getDataProduct() {
-        return dataProduct;
-    }
-
-    public void setDataProduct(DataProduct dataProduct) {
-        this.dataProduct = dataProduct;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataProductMetaData_PK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataProductMetaData_PK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataProductMetaData_PK.java
deleted file mode 100644
index a5313d8..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataProductMetaData_PK.java
+++ /dev/null
@@ -1,59 +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.data.catalog.model;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.Serializable;
-
-public class DataProductMetaData_PK implements Serializable {
-    private final static Logger logger = LoggerFactory.getLogger(DataProductMetaData_PK.class);
-
-    private String productUri;
-    private String key;
-
-    public String getProductUri() {
-        return productUri;
-    }
-
-    public void setProductUri(String productUri) {
-        this.productUri = productUri;
-    }
-
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        return false;
-    }
-
-    @Override
-    public int hashCode() {
-        return 1;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataReplicaLocation.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataReplicaLocation.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataReplicaLocation.java
deleted file mode 100644
index bdfb9a7..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataReplicaLocation.java
+++ /dev/null
@@ -1,169 +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.data.catalog.model;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.*;
-import java.sql.Timestamp;
-import java.util.Collection;
-
-@Entity
-@Table(name = "DATA_REPLICA_LOCATION")
-public class DataReplicaLocation {
-    private final static Logger logger = LoggerFactory.getLogger(DataReplicaLocation.class);
-    private String replicaId;
-    private String productUri;
-    private String replicaName;
-    private String replicaDescription;
-    private String storageResourceId;
-    private String filePath;
-    private String replicaLocationCategory;
-    private String replicaPersistentType;
-    private Timestamp creationTime;
-    private Timestamp lastModifiedTime;
-    private Timestamp validUntilTime;
-
-    private DataProduct dataProduct;
-    private Collection<DataReplicaMetaData> dataReplicaMetaData;
-
-    @Id
-    @Column(name = "REPLICA_ID")
-    public String getReplicaId() {
-        return replicaId;
-    }
-
-    public void setReplicaId(String replicaId) {
-        this.replicaId = replicaId;
-    }
-
-    @Column(name = "PRODUCT_URI")
-    public String getProductUri() {
-        return productUri;
-    }
-
-    public void setProductUri(String productUri) {
-        this.productUri = productUri;
-    }
-
-
-    @Column(name = "REPLICA_NAME")
-    public String getReplicaName() {
-        return replicaName;
-    }
-
-    public void setReplicaName(String replicaName) {
-        this.replicaName = replicaName;
-    }
-
-    @Column(name = "REPLICA_DESCRIPTION")
-    public String getReplicaDescription() {
-        return replicaDescription;
-    }
-
-    public void setReplicaDescription(String replicaDescription) {
-        this.replicaDescription = replicaDescription;
-    }
-
-    @Column(name = "STORAGE_RESOURCE_ID")
-    public String getStorageResourceId() {
-        return storageResourceId;
-    }
-
-    public void setStorageResourceId(String storageResourceId) {
-        this.storageResourceId = storageResourceId;
-    }
-
-    @Column(name = "FILE_PATH")
-    public String getFilePath() {
-        return filePath;
-    }
-
-    public void setFilePath(String filePath) {
-        this.filePath = filePath;
-    }
-
-    @Column(name = "CREATION_TIME")
-    public Timestamp getCreationTime() {
-        return creationTime;
-    }
-
-    public void setCreationTime(Timestamp creationTime) {
-        this.creationTime = creationTime;
-    }
-
-    @Column(name = "LAST_MODIFIED_TIME")
-    public Timestamp getLastModifiedTime() {
-        return lastModifiedTime;
-    }
-
-    public void setLastModifiedTime(Timestamp lastModifiedTime) {
-        this.lastModifiedTime = lastModifiedTime;
-    }
-
-    @Column(name = "VALID_UNTIL_TIME")
-    public Timestamp getValidUntilTime() {
-        return validUntilTime;
-    }
-
-    public void setValidUntilTime(Timestamp validUntilTime) {
-        this.validUntilTime = validUntilTime;
-    }
-
-
-    @Column(name = "REPLICA_LOCATION_CATEGORY")
-    public String getReplicaLocationCategory() {
-        return replicaLocationCategory;
-    }
-
-    public void setReplicaLocationCategory(String replicaLocationCategory) {
-        this.replicaLocationCategory = replicaLocationCategory;
-    }
-
-    @Column(name = "REPLICA_PERSISTENT_TYPE")
-    public String getReplicaPersistentType() {
-        return replicaPersistentType;
-    }
-
-    public void setReplicaPersistentType(String replicaPersistentType) {
-        this.replicaPersistentType = replicaPersistentType;
-    }
-
-    @ManyToOne
-    @JoinColumn(name = "PRODUCT_URI", referencedColumnName = "PRODUCT_URI")
-    public DataProduct getDataProduct() {
-        return dataProduct;
-    }
-
-    public void setDataProduct(DataProduct dataProduct) {
-        this.dataProduct = dataProduct;
-    }
-
-    @OneToMany(mappedBy = "dataReplicaLocation", cascade = {CascadeType.ALL})
-    public Collection<DataReplicaMetaData> getDataReplicaMetaData() {
-        return dataReplicaMetaData;
-    }
-
-    public void setDataReplicaMetaData(Collection<DataReplicaMetaData> dataReplicaMetaData) {
-        this.dataReplicaMetaData = dataReplicaMetaData;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataReplicaMetaData.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataReplicaMetaData.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataReplicaMetaData.java
deleted file mode 100644
index e9a2203..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataReplicaMetaData.java
+++ /dev/null
@@ -1,77 +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.data.catalog.model;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = "DATA_REPLICA_METADATA")
-@IdClass(DataReplicaMetaData_PK.class)
-public class DataReplicaMetaData {
-    private final static Logger logger = LoggerFactory.getLogger(DataReplicaMetaData.class);
-    private String replicaId;
-    private String key;
-    private String value;
-
-    private DataReplicaLocation dataReplicaLocation;
-
-    @Id
-    @Column(name = "REPLICA_ID")
-    public String getReplicaId() {
-        return replicaId;
-    }
-
-    public void setReplicaId(String replicaId) {
-        this.replicaId = replicaId;
-    }
-
-    @Id
-    @Column(name = "METADATA_KEY")
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
-    @Column(name = "METADATA_VALUE")
-    public String getValue() {
-        return value;
-    }
-
-    public void setValue(String value) {
-        this.value = value;
-    }
-
-    @ManyToOne
-    @JoinColumn(name = "REPLICA_ID", referencedColumnName = "REPLICA_ID")
-    public DataReplicaLocation getDataReplicaLocation() {
-        return dataReplicaLocation;
-    }
-
-    public void setDataReplicaLocation(DataReplicaLocation dataReplicaLocation) {
-        this.dataReplicaLocation = dataReplicaLocation;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataReplicaMetaData_PK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataReplicaMetaData_PK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataReplicaMetaData_PK.java
deleted file mode 100644
index 617cc41..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/model/DataReplicaMetaData_PK.java
+++ /dev/null
@@ -1,59 +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.data.catalog.model;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.Serializable;
-
-public class DataReplicaMetaData_PK implements Serializable {
-    private final static Logger logger = LoggerFactory.getLogger(DataReplicaMetaData_PK.class);
-
-    private String replicaId;
-    private String key;
-
-    public String getReplicaId() {
-        return replicaId;
-    }
-
-    public void setReplicaId(String replicaId) {
-        this.replicaId = replicaId;
-    }
-
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        return false;
-    }
-
-    @Override
-    public int hashCode() {
-        return 1;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/DataCatalogConstants.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/DataCatalogConstants.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/DataCatalogConstants.java
deleted file mode 100644
index f0956e3..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/data/catalog/utils/DataCatalogConstants.java
+++ /dev/null
@@ -1,49 +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.data.catalog.utils;
-
-public class DataCatalogConstants {
-	// table names
-	public static final String DATA_RESOURCE = "DataProduct";
-	public static final String DATA_REPLICA_LOCATION = "DataReplicaLocation";
-	public static final String CONFIGURATION = "Configuration";
-
-	// DataProduct Table
-	public final class DataResourceConstants {
-		public static final String RESOURCE_ID = "resourceId";
-		public static final String RESOURCE_NAME = "resourceName";
-		public static final String RESOURCE_DESCRIPTION = "resourceDescription";
-		public static final String RESOURCE_SIZE = "resourceSize";
-        public static final String CREATION_TIME = "creationTime";
-        public static final String LAST_MODIFIED_TIME = "lastModifiedTime";
-	}
-
-	// Users table
-	public final class DataReplicaLocationConstants {
-        public static final String REPLICA_ID = "replicaId";
-        public static final String RESOURCE_ID = "resourceId";
-        public static final String DATA_LOCATIONS = "dataLocations";
-        public static final String REPLICA_NAME = "replicaName";
-        public static final String REPLICA_DESCRIPTION = "replicaDescription";
-        public static final String CREATION_TIME = "creationTime";
-        public static final String LAST_MODIFIED_TIME = "lastModifiedTime";
-	}
-}


[08/10] airavata git commit: renaming data-catalog to replica catalog

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
index cb12233..6e66e41 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
@@ -80,7 +80,7 @@ import org.slf4j.LoggerFactory;
  *  Map of file systems type and the path.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ComputeResourceDescription implements org.apache.thrift.TBase<ComputeResourceDescription, ComputeResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
index 5047e39..0ad7ea1 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSubmission, GlobusJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GlobusJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GlobusJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
index a1cd3bd..f93b4b2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class JobSubmissionInterface implements org.apache.thrift.TBase<JobSubmissionInterface, JobSubmissionInterface._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
index 3171c2e..e0e3e68 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class LOCALSubmission implements org.apache.thrift.TBase<LOCALSubmission, LOCALSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
index 46b2dbd..15bc83f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  *  An enumeration of commonly used manager commands.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ResourceJobManager implements org.apache.thrift.TBase<ResourceJobManager, ResourceJobManager._Fields>, java.io.Serializable, Cloneable, Comparable<ResourceJobManager> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ResourceJobManager");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
index 4dc9c51..c34d55a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
  *    the same. Example: *@*.example.com or *@example.com
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmission, SSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<SSHJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
index deac239..5fc5d26 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
@@ -59,7 +59,7 @@ import org.slf4j.LoggerFactory;
  * authenticationMode
  *  The authenticationMode defines the way certificate is fetched.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class UnicoreJobSubmission implements org.apache.thrift.TBase<UnicoreJobSubmission, UnicoreJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
index 74c3510..bf51b4c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
@@ -85,7 +85,7 @@ import org.slf4j.LoggerFactory;
  *   default credential store.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ComputeResourcePreference implements org.apache.thrift.TBase<ComputeResourcePreference, ComputeResourcePreference._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourcePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourcePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
index 8900588..0625220 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *  List of resource preferences for each of the registered compute resources.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayResourceProfile, GatewayResourceProfile._Fields>, java.io.Serializable, Cloneable, Comparable<GatewayResourceProfile> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GatewayResourceProfile");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
index 6cb1992..2ae6125 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class StoragePreference implements org.apache.thrift.TBase<StoragePreference, StoragePreference._Fields>, java.io.Serializable, Cloneable, Comparable<StoragePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StoragePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
index 4e7d7c0..7306ece 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class StorageResourceDescription implements org.apache.thrift.TBase<StorageResourceDescription, StorageResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<StorageResourceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StorageResourceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
index f251dee..e464551 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObjectType, InputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<InputDataObjectType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InputDataObjectType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
index 9fe1709..8128001 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataObjectType, OutputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<OutputDataObjectType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OutputDataObjectType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
index 6c0852b..68da980 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ErrorModel implements org.apache.thrift.TBase<ErrorModel, ErrorModel._Fields>, java.io.Serializable, Cloneable, Comparable<ErrorModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ErrorModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
index 0f14ddc..cabc7cf 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
index 722b3f7..75abc53 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
  * during the experiment launch operation
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
index 6522680..a2cd48f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class DataMovementInterface implements org.apache.thrift.TBase<DataMovementInterface, DataMovementInterface._Fields>, java.io.Serializable, Cloneable, Comparable<DataMovementInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataMovementInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
index 147fa03..d83cf69 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class GridFTPDataMovement implements org.apache.thrift.TBase<GridFTPDataMovement, GridFTPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<GridFTPDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GridFTPDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
index 173f0e8..caa1cd3 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-defualt port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class LOCALDataMovement implements org.apache.thrift.TBase<LOCALDataMovement, LOCALDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
index a9657a5..dc4f1c9 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class SCPDataMovement implements org.apache.thrift.TBase<SCPDataMovement, SCPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<SCPDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SCPDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
index ebfbc7f..767d4ef 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * unicoreEndPointURL:
  *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class UnicoreDataMovement implements org.apache.thrift.TBase<UnicoreDataMovement, UnicoreDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreDataMovement");
 


[05/10] airavata git commit: renaming data-catalog to replica catalog

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
new file mode 100644
index 0000000..16a6aa9
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
@@ -0,0 +1,1943 @@
+/**
+ * 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.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.replica;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
+public class DataProductModel implements org.apache.thrift.TBase<DataProductModel, DataProductModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataProductModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataProductModel");
+
+  private static final org.apache.thrift.protocol.TField PRODUCT_URI_FIELD_DESC = new org.apache.thrift.protocol.TField("productUri", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField PARENT_PRODUCT_URI_FIELD_DESC = new org.apache.thrift.protocol.TField("parentProductUri", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField LOGICAL_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("logicalPath", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField PRODUCT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("productName", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField PRODUCT_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("productDescription", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField OWNER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("ownerName", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField DATA_PRODUCT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("dataProductType", org.apache.thrift.protocol.TType.I32, (short)8);
+  private static final org.apache.thrift.protocol.TField PRODUCT_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("productSize", org.apache.thrift.protocol.TType.I32, (short)9);
+  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)10);
+  private static final org.apache.thrift.protocol.TField LAST_MODIFIED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastModifiedTime", org.apache.thrift.protocol.TType.I64, (short)11);
+  private static final org.apache.thrift.protocol.TField PRODUCT_METADATA_FIELD_DESC = new org.apache.thrift.protocol.TField("productMetadata", org.apache.thrift.protocol.TType.MAP, (short)12);
+  private static final org.apache.thrift.protocol.TField REPLICA_LOCATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaLocations", org.apache.thrift.protocol.TType.LIST, (short)13);
+  private static final org.apache.thrift.protocol.TField CHILD_PRODUCTS_FIELD_DESC = new org.apache.thrift.protocol.TField("childProducts", org.apache.thrift.protocol.TType.LIST, (short)14);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new DataProductModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new DataProductModelTupleSchemeFactory());
+  }
+
+  private String productUri; // optional
+  private String gatewayId; // optional
+  private String parentProductUri; // optional
+  private String logicalPath; // optional
+  private String productName; // optional
+  private String productDescription; // optional
+  private String ownerName; // optional
+  private DataProductType dataProductType; // optional
+  private int productSize; // optional
+  private long creationTime; // optional
+  private long lastModifiedTime; // optional
+  private Map<String,String> productMetadata; // optional
+  private List<DataReplicaLocationModel> replicaLocations; // optional
+  private List<DataProductModel> childProducts; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    PRODUCT_URI((short)1, "productUri"),
+    GATEWAY_ID((short)2, "gatewayId"),
+    PARENT_PRODUCT_URI((short)3, "parentProductUri"),
+    LOGICAL_PATH((short)4, "logicalPath"),
+    PRODUCT_NAME((short)5, "productName"),
+    PRODUCT_DESCRIPTION((short)6, "productDescription"),
+    OWNER_NAME((short)7, "ownerName"),
+    /**
+     * 
+     * @see DataProductType
+     */
+    DATA_PRODUCT_TYPE((short)8, "dataProductType"),
+    PRODUCT_SIZE((short)9, "productSize"),
+    CREATION_TIME((short)10, "creationTime"),
+    LAST_MODIFIED_TIME((short)11, "lastModifiedTime"),
+    PRODUCT_METADATA((short)12, "productMetadata"),
+    REPLICA_LOCATIONS((short)13, "replicaLocations"),
+    CHILD_PRODUCTS((short)14, "childProducts");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // PRODUCT_URI
+          return PRODUCT_URI;
+        case 2: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 3: // PARENT_PRODUCT_URI
+          return PARENT_PRODUCT_URI;
+        case 4: // LOGICAL_PATH
+          return LOGICAL_PATH;
+        case 5: // PRODUCT_NAME
+          return PRODUCT_NAME;
+        case 6: // PRODUCT_DESCRIPTION
+          return PRODUCT_DESCRIPTION;
+        case 7: // OWNER_NAME
+          return OWNER_NAME;
+        case 8: // DATA_PRODUCT_TYPE
+          return DATA_PRODUCT_TYPE;
+        case 9: // PRODUCT_SIZE
+          return PRODUCT_SIZE;
+        case 10: // CREATION_TIME
+          return CREATION_TIME;
+        case 11: // LAST_MODIFIED_TIME
+          return LAST_MODIFIED_TIME;
+        case 12: // PRODUCT_METADATA
+          return PRODUCT_METADATA;
+        case 13: // REPLICA_LOCATIONS
+          return REPLICA_LOCATIONS;
+        case 14: // CHILD_PRODUCTS
+          return CHILD_PRODUCTS;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __PRODUCTSIZE_ISSET_ID = 0;
+  private static final int __CREATIONTIME_ISSET_ID = 1;
+  private static final int __LASTMODIFIEDTIME_ISSET_ID = 2;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.PRODUCT_URI,_Fields.GATEWAY_ID,_Fields.PARENT_PRODUCT_URI,_Fields.LOGICAL_PATH,_Fields.PRODUCT_NAME,_Fields.PRODUCT_DESCRIPTION,_Fields.OWNER_NAME,_Fields.DATA_PRODUCT_TYPE,_Fields.PRODUCT_SIZE,_Fields.CREATION_TIME,_Fields.LAST_MODIFIED_TIME,_Fields.PRODUCT_METADATA,_Fields.REPLICA_LOCATIONS,_Fields.CHILD_PRODUCTS};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.PRODUCT_URI, new org.apache.thrift.meta_data.FieldMetaData("productUri", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PARENT_PRODUCT_URI, new org.apache.thrift.meta_data.FieldMetaData("parentProductUri", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.LOGICAL_PATH, new org.apache.thrift.meta_data.FieldMetaData("logicalPath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PRODUCT_NAME, new org.apache.thrift.meta_data.FieldMetaData("productName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PRODUCT_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("productDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.OWNER_NAME, new org.apache.thrift.meta_data.FieldMetaData("ownerName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DATA_PRODUCT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("dataProductType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DataProductType.class)));
+    tmpMap.put(_Fields.PRODUCT_SIZE, new org.apache.thrift.meta_data.FieldMetaData("productSize", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.LAST_MODIFIED_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastModifiedTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.PRODUCT_METADATA, new org.apache.thrift.meta_data.FieldMetaData("productMetadata", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.REPLICA_LOCATIONS, new org.apache.thrift.meta_data.FieldMetaData("replicaLocations", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT            , "DataReplicaLocationModel"))));
+    tmpMap.put(_Fields.CHILD_PRODUCTS, new org.apache.thrift.meta_data.FieldMetaData("childProducts", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT            , "DataProductModel"))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DataProductModel.class, metaDataMap);
+  }
+
+  public DataProductModel() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public DataProductModel(DataProductModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetProductUri()) {
+      this.productUri = other.productUri;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+    if (other.isSetParentProductUri()) {
+      this.parentProductUri = other.parentProductUri;
+    }
+    if (other.isSetLogicalPath()) {
+      this.logicalPath = other.logicalPath;
+    }
+    if (other.isSetProductName()) {
+      this.productName = other.productName;
+    }
+    if (other.isSetProductDescription()) {
+      this.productDescription = other.productDescription;
+    }
+    if (other.isSetOwnerName()) {
+      this.ownerName = other.ownerName;
+    }
+    if (other.isSetDataProductType()) {
+      this.dataProductType = other.dataProductType;
+    }
+    this.productSize = other.productSize;
+    this.creationTime = other.creationTime;
+    this.lastModifiedTime = other.lastModifiedTime;
+    if (other.isSetProductMetadata()) {
+      Map<String,String> __this__productMetadata = new HashMap<String,String>(other.productMetadata);
+      this.productMetadata = __this__productMetadata;
+    }
+    if (other.isSetReplicaLocations()) {
+      List<DataReplicaLocationModel> __this__replicaLocations = new ArrayList<DataReplicaLocationModel>(other.replicaLocations.size());
+      for (DataReplicaLocationModel other_element : other.replicaLocations) {
+        __this__replicaLocations.add(other_element);
+      }
+      this.replicaLocations = __this__replicaLocations;
+    }
+    if (other.isSetChildProducts()) {
+      List<DataProductModel> __this__childProducts = new ArrayList<DataProductModel>(other.childProducts.size());
+      for (DataProductModel other_element : other.childProducts) {
+        __this__childProducts.add(other_element);
+      }
+      this.childProducts = __this__childProducts;
+    }
+  }
+
+  public DataProductModel deepCopy() {
+    return new DataProductModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.productUri = null;
+    this.gatewayId = null;
+    this.parentProductUri = null;
+    this.logicalPath = null;
+    this.productName = null;
+    this.productDescription = null;
+    this.ownerName = null;
+    this.dataProductType = null;
+    setProductSizeIsSet(false);
+    this.productSize = 0;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    setLastModifiedTimeIsSet(false);
+    this.lastModifiedTime = 0;
+    this.productMetadata = null;
+    this.replicaLocations = null;
+    this.childProducts = null;
+  }
+
+  public String getProductUri() {
+    return this.productUri;
+  }
+
+  public void setProductUri(String productUri) {
+    this.productUri = productUri;
+  }
+
+  public void unsetProductUri() {
+    this.productUri = null;
+  }
+
+  /** Returns true if field productUri is set (has been assigned a value) and false otherwise */
+  public boolean isSetProductUri() {
+    return this.productUri != null;
+  }
+
+  public void setProductUriIsSet(boolean value) {
+    if (!value) {
+      this.productUri = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public void setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public String getParentProductUri() {
+    return this.parentProductUri;
+  }
+
+  public void setParentProductUri(String parentProductUri) {
+    this.parentProductUri = parentProductUri;
+  }
+
+  public void unsetParentProductUri() {
+    this.parentProductUri = null;
+  }
+
+  /** Returns true if field parentProductUri is set (has been assigned a value) and false otherwise */
+  public boolean isSetParentProductUri() {
+    return this.parentProductUri != null;
+  }
+
+  public void setParentProductUriIsSet(boolean value) {
+    if (!value) {
+      this.parentProductUri = null;
+    }
+  }
+
+  public String getLogicalPath() {
+    return this.logicalPath;
+  }
+
+  public void setLogicalPath(String logicalPath) {
+    this.logicalPath = logicalPath;
+  }
+
+  public void unsetLogicalPath() {
+    this.logicalPath = null;
+  }
+
+  /** Returns true if field logicalPath is set (has been assigned a value) and false otherwise */
+  public boolean isSetLogicalPath() {
+    return this.logicalPath != null;
+  }
+
+  public void setLogicalPathIsSet(boolean value) {
+    if (!value) {
+      this.logicalPath = null;
+    }
+  }
+
+  public String getProductName() {
+    return this.productName;
+  }
+
+  public void setProductName(String productName) {
+    this.productName = productName;
+  }
+
+  public void unsetProductName() {
+    this.productName = null;
+  }
+
+  /** Returns true if field productName is set (has been assigned a value) and false otherwise */
+  public boolean isSetProductName() {
+    return this.productName != null;
+  }
+
+  public void setProductNameIsSet(boolean value) {
+    if (!value) {
+      this.productName = null;
+    }
+  }
+
+  public String getProductDescription() {
+    return this.productDescription;
+  }
+
+  public void setProductDescription(String productDescription) {
+    this.productDescription = productDescription;
+  }
+
+  public void unsetProductDescription() {
+    this.productDescription = null;
+  }
+
+  /** Returns true if field productDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetProductDescription() {
+    return this.productDescription != null;
+  }
+
+  public void setProductDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.productDescription = null;
+    }
+  }
+
+  public String getOwnerName() {
+    return this.ownerName;
+  }
+
+  public void setOwnerName(String ownerName) {
+    this.ownerName = ownerName;
+  }
+
+  public void unsetOwnerName() {
+    this.ownerName = null;
+  }
+
+  /** Returns true if field ownerName is set (has been assigned a value) and false otherwise */
+  public boolean isSetOwnerName() {
+    return this.ownerName != null;
+  }
+
+  public void setOwnerNameIsSet(boolean value) {
+    if (!value) {
+      this.ownerName = null;
+    }
+  }
+
+  /**
+   * 
+   * @see DataProductType
+   */
+  public DataProductType getDataProductType() {
+    return this.dataProductType;
+  }
+
+  /**
+   * 
+   * @see DataProductType
+   */
+  public void setDataProductType(DataProductType dataProductType) {
+    this.dataProductType = dataProductType;
+  }
+
+  public void unsetDataProductType() {
+    this.dataProductType = null;
+  }
+
+  /** Returns true if field dataProductType is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataProductType() {
+    return this.dataProductType != null;
+  }
+
+  public void setDataProductTypeIsSet(boolean value) {
+    if (!value) {
+      this.dataProductType = null;
+    }
+  }
+
+  public int getProductSize() {
+    return this.productSize;
+  }
+
+  public void setProductSize(int productSize) {
+    this.productSize = productSize;
+    setProductSizeIsSet(true);
+  }
+
+  public void unsetProductSize() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PRODUCTSIZE_ISSET_ID);
+  }
+
+  /** Returns true if field productSize is set (has been assigned a value) and false otherwise */
+  public boolean isSetProductSize() {
+    return EncodingUtils.testBit(__isset_bitfield, __PRODUCTSIZE_ISSET_ID);
+  }
+
+  public void setProductSizeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PRODUCTSIZE_ISSET_ID, value);
+  }
+
+  public long getCreationTime() {
+    return this.creationTime;
+  }
+
+  public void setCreationTime(long creationTime) {
+    this.creationTime = creationTime;
+    setCreationTimeIsSet(true);
+  }
+
+  public void unsetCreationTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreationTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  public void setCreationTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
+  }
+
+  public long getLastModifiedTime() {
+    return this.lastModifiedTime;
+  }
+
+  public void setLastModifiedTime(long lastModifiedTime) {
+    this.lastModifiedTime = lastModifiedTime;
+    setLastModifiedTimeIsSet(true);
+  }
+
+  public void unsetLastModifiedTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
+  }
+
+  /** Returns true if field lastModifiedTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetLastModifiedTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
+  }
+
+  public void setLastModifiedTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID, value);
+  }
+
+  public int getProductMetadataSize() {
+    return (this.productMetadata == null) ? 0 : this.productMetadata.size();
+  }
+
+  public void putToProductMetadata(String key, String val) {
+    if (this.productMetadata == null) {
+      this.productMetadata = new HashMap<String,String>();
+    }
+    this.productMetadata.put(key, val);
+  }
+
+  public Map<String,String> getProductMetadata() {
+    return this.productMetadata;
+  }
+
+  public void setProductMetadata(Map<String,String> productMetadata) {
+    this.productMetadata = productMetadata;
+  }
+
+  public void unsetProductMetadata() {
+    this.productMetadata = null;
+  }
+
+  /** Returns true if field productMetadata is set (has been assigned a value) and false otherwise */
+  public boolean isSetProductMetadata() {
+    return this.productMetadata != null;
+  }
+
+  public void setProductMetadataIsSet(boolean value) {
+    if (!value) {
+      this.productMetadata = null;
+    }
+  }
+
+  public int getReplicaLocationsSize() {
+    return (this.replicaLocations == null) ? 0 : this.replicaLocations.size();
+  }
+
+  public java.util.Iterator<DataReplicaLocationModel> getReplicaLocationsIterator() {
+    return (this.replicaLocations == null) ? null : this.replicaLocations.iterator();
+  }
+
+  public void addToReplicaLocations(DataReplicaLocationModel elem) {
+    if (this.replicaLocations == null) {
+      this.replicaLocations = new ArrayList<DataReplicaLocationModel>();
+    }
+    this.replicaLocations.add(elem);
+  }
+
+  public List<DataReplicaLocationModel> getReplicaLocations() {
+    return this.replicaLocations;
+  }
+
+  public void setReplicaLocations(List<DataReplicaLocationModel> replicaLocations) {
+    this.replicaLocations = replicaLocations;
+  }
+
+  public void unsetReplicaLocations() {
+    this.replicaLocations = null;
+  }
+
+  /** Returns true if field replicaLocations is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaLocations() {
+    return this.replicaLocations != null;
+  }
+
+  public void setReplicaLocationsIsSet(boolean value) {
+    if (!value) {
+      this.replicaLocations = null;
+    }
+  }
+
+  public int getChildProductsSize() {
+    return (this.childProducts == null) ? 0 : this.childProducts.size();
+  }
+
+  public java.util.Iterator<DataProductModel> getChildProductsIterator() {
+    return (this.childProducts == null) ? null : this.childProducts.iterator();
+  }
+
+  public void addToChildProducts(DataProductModel elem) {
+    if (this.childProducts == null) {
+      this.childProducts = new ArrayList<DataProductModel>();
+    }
+    this.childProducts.add(elem);
+  }
+
+  public List<DataProductModel> getChildProducts() {
+    return this.childProducts;
+  }
+
+  public void setChildProducts(List<DataProductModel> childProducts) {
+    this.childProducts = childProducts;
+  }
+
+  public void unsetChildProducts() {
+    this.childProducts = null;
+  }
+
+  /** Returns true if field childProducts is set (has been assigned a value) and false otherwise */
+  public boolean isSetChildProducts() {
+    return this.childProducts != null;
+  }
+
+  public void setChildProductsIsSet(boolean value) {
+    if (!value) {
+      this.childProducts = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case PRODUCT_URI:
+      if (value == null) {
+        unsetProductUri();
+      } else {
+        setProductUri((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    case PARENT_PRODUCT_URI:
+      if (value == null) {
+        unsetParentProductUri();
+      } else {
+        setParentProductUri((String)value);
+      }
+      break;
+
+    case LOGICAL_PATH:
+      if (value == null) {
+        unsetLogicalPath();
+      } else {
+        setLogicalPath((String)value);
+      }
+      break;
+
+    case PRODUCT_NAME:
+      if (value == null) {
+        unsetProductName();
+      } else {
+        setProductName((String)value);
+      }
+      break;
+
+    case PRODUCT_DESCRIPTION:
+      if (value == null) {
+        unsetProductDescription();
+      } else {
+        setProductDescription((String)value);
+      }
+      break;
+
+    case OWNER_NAME:
+      if (value == null) {
+        unsetOwnerName();
+      } else {
+        setOwnerName((String)value);
+      }
+      break;
+
+    case DATA_PRODUCT_TYPE:
+      if (value == null) {
+        unsetDataProductType();
+      } else {
+        setDataProductType((DataProductType)value);
+      }
+      break;
+
+    case PRODUCT_SIZE:
+      if (value == null) {
+        unsetProductSize();
+      } else {
+        setProductSize((Integer)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case LAST_MODIFIED_TIME:
+      if (value == null) {
+        unsetLastModifiedTime();
+      } else {
+        setLastModifiedTime((Long)value);
+      }
+      break;
+
+    case PRODUCT_METADATA:
+      if (value == null) {
+        unsetProductMetadata();
+      } else {
+        setProductMetadata((Map<String,String>)value);
+      }
+      break;
+
+    case REPLICA_LOCATIONS:
+      if (value == null) {
+        unsetReplicaLocations();
+      } else {
+        setReplicaLocations((List<DataReplicaLocationModel>)value);
+      }
+      break;
+
+    case CHILD_PRODUCTS:
+      if (value == null) {
+        unsetChildProducts();
+      } else {
+        setChildProducts((List<DataProductModel>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case PRODUCT_URI:
+      return getProductUri();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    case PARENT_PRODUCT_URI:
+      return getParentProductUri();
+
+    case LOGICAL_PATH:
+      return getLogicalPath();
+
+    case PRODUCT_NAME:
+      return getProductName();
+
+    case PRODUCT_DESCRIPTION:
+      return getProductDescription();
+
+    case OWNER_NAME:
+      return getOwnerName();
+
+    case DATA_PRODUCT_TYPE:
+      return getDataProductType();
+
+    case PRODUCT_SIZE:
+      return getProductSize();
+
+    case CREATION_TIME:
+      return getCreationTime();
+
+    case LAST_MODIFIED_TIME:
+      return getLastModifiedTime();
+
+    case PRODUCT_METADATA:
+      return getProductMetadata();
+
+    case REPLICA_LOCATIONS:
+      return getReplicaLocations();
+
+    case CHILD_PRODUCTS:
+      return getChildProducts();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case PRODUCT_URI:
+      return isSetProductUri();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    case PARENT_PRODUCT_URI:
+      return isSetParentProductUri();
+    case LOGICAL_PATH:
+      return isSetLogicalPath();
+    case PRODUCT_NAME:
+      return isSetProductName();
+    case PRODUCT_DESCRIPTION:
+      return isSetProductDescription();
+    case OWNER_NAME:
+      return isSetOwnerName();
+    case DATA_PRODUCT_TYPE:
+      return isSetDataProductType();
+    case PRODUCT_SIZE:
+      return isSetProductSize();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case LAST_MODIFIED_TIME:
+      return isSetLastModifiedTime();
+    case PRODUCT_METADATA:
+      return isSetProductMetadata();
+    case REPLICA_LOCATIONS:
+      return isSetReplicaLocations();
+    case CHILD_PRODUCTS:
+      return isSetChildProducts();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof DataProductModel)
+      return this.equals((DataProductModel)that);
+    return false;
+  }
+
+  public boolean equals(DataProductModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_productUri = true && this.isSetProductUri();
+    boolean that_present_productUri = true && that.isSetProductUri();
+    if (this_present_productUri || that_present_productUri) {
+      if (!(this_present_productUri && that_present_productUri))
+        return false;
+      if (!this.productUri.equals(that.productUri))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    boolean this_present_parentProductUri = true && this.isSetParentProductUri();
+    boolean that_present_parentProductUri = true && that.isSetParentProductUri();
+    if (this_present_parentProductUri || that_present_parentProductUri) {
+      if (!(this_present_parentProductUri && that_present_parentProductUri))
+        return false;
+      if (!this.parentProductUri.equals(that.parentProductUri))
+        return false;
+    }
+
+    boolean this_present_logicalPath = true && this.isSetLogicalPath();
+    boolean that_present_logicalPath = true && that.isSetLogicalPath();
+    if (this_present_logicalPath || that_present_logicalPath) {
+      if (!(this_present_logicalPath && that_present_logicalPath))
+        return false;
+      if (!this.logicalPath.equals(that.logicalPath))
+        return false;
+    }
+
+    boolean this_present_productName = true && this.isSetProductName();
+    boolean that_present_productName = true && that.isSetProductName();
+    if (this_present_productName || that_present_productName) {
+      if (!(this_present_productName && that_present_productName))
+        return false;
+      if (!this.productName.equals(that.productName))
+        return false;
+    }
+
+    boolean this_present_productDescription = true && this.isSetProductDescription();
+    boolean that_present_productDescription = true && that.isSetProductDescription();
+    if (this_present_productDescription || that_present_productDescription) {
+      if (!(this_present_productDescription && that_present_productDescription))
+        return false;
+      if (!this.productDescription.equals(that.productDescription))
+        return false;
+    }
+
+    boolean this_present_ownerName = true && this.isSetOwnerName();
+    boolean that_present_ownerName = true && that.isSetOwnerName();
+    if (this_present_ownerName || that_present_ownerName) {
+      if (!(this_present_ownerName && that_present_ownerName))
+        return false;
+      if (!this.ownerName.equals(that.ownerName))
+        return false;
+    }
+
+    boolean this_present_dataProductType = true && this.isSetDataProductType();
+    boolean that_present_dataProductType = true && that.isSetDataProductType();
+    if (this_present_dataProductType || that_present_dataProductType) {
+      if (!(this_present_dataProductType && that_present_dataProductType))
+        return false;
+      if (!this.dataProductType.equals(that.dataProductType))
+        return false;
+    }
+
+    boolean this_present_productSize = true && this.isSetProductSize();
+    boolean that_present_productSize = true && that.isSetProductSize();
+    if (this_present_productSize || that_present_productSize) {
+      if (!(this_present_productSize && that_present_productSize))
+        return false;
+      if (this.productSize != that.productSize)
+        return false;
+    }
+
+    boolean this_present_creationTime = true && this.isSetCreationTime();
+    boolean that_present_creationTime = true && that.isSetCreationTime();
+    if (this_present_creationTime || that_present_creationTime) {
+      if (!(this_present_creationTime && that_present_creationTime))
+        return false;
+      if (this.creationTime != that.creationTime)
+        return false;
+    }
+
+    boolean this_present_lastModifiedTime = true && this.isSetLastModifiedTime();
+    boolean that_present_lastModifiedTime = true && that.isSetLastModifiedTime();
+    if (this_present_lastModifiedTime || that_present_lastModifiedTime) {
+      if (!(this_present_lastModifiedTime && that_present_lastModifiedTime))
+        return false;
+      if (this.lastModifiedTime != that.lastModifiedTime)
+        return false;
+    }
+
+    boolean this_present_productMetadata = true && this.isSetProductMetadata();
+    boolean that_present_productMetadata = true && that.isSetProductMetadata();
+    if (this_present_productMetadata || that_present_productMetadata) {
+      if (!(this_present_productMetadata && that_present_productMetadata))
+        return false;
+      if (!this.productMetadata.equals(that.productMetadata))
+        return false;
+    }
+
+    boolean this_present_replicaLocations = true && this.isSetReplicaLocations();
+    boolean that_present_replicaLocations = true && that.isSetReplicaLocations();
+    if (this_present_replicaLocations || that_present_replicaLocations) {
+      if (!(this_present_replicaLocations && that_present_replicaLocations))
+        return false;
+      if (!this.replicaLocations.equals(that.replicaLocations))
+        return false;
+    }
+
+    boolean this_present_childProducts = true && this.isSetChildProducts();
+    boolean that_present_childProducts = true && that.isSetChildProducts();
+    if (this_present_childProducts || that_present_childProducts) {
+      if (!(this_present_childProducts && that_present_childProducts))
+        return false;
+      if (!this.childProducts.equals(that.childProducts))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_productUri = true && (isSetProductUri());
+    list.add(present_productUri);
+    if (present_productUri)
+      list.add(productUri);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    boolean present_parentProductUri = true && (isSetParentProductUri());
+    list.add(present_parentProductUri);
+    if (present_parentProductUri)
+      list.add(parentProductUri);
+
+    boolean present_logicalPath = true && (isSetLogicalPath());
+    list.add(present_logicalPath);
+    if (present_logicalPath)
+      list.add(logicalPath);
+
+    boolean present_productName = true && (isSetProductName());
+    list.add(present_productName);
+    if (present_productName)
+      list.add(productName);
+
+    boolean present_productDescription = true && (isSetProductDescription());
+    list.add(present_productDescription);
+    if (present_productDescription)
+      list.add(productDescription);
+
+    boolean present_ownerName = true && (isSetOwnerName());
+    list.add(present_ownerName);
+    if (present_ownerName)
+      list.add(ownerName);
+
+    boolean present_dataProductType = true && (isSetDataProductType());
+    list.add(present_dataProductType);
+    if (present_dataProductType)
+      list.add(dataProductType.getValue());
+
+    boolean present_productSize = true && (isSetProductSize());
+    list.add(present_productSize);
+    if (present_productSize)
+      list.add(productSize);
+
+    boolean present_creationTime = true && (isSetCreationTime());
+    list.add(present_creationTime);
+    if (present_creationTime)
+      list.add(creationTime);
+
+    boolean present_lastModifiedTime = true && (isSetLastModifiedTime());
+    list.add(present_lastModifiedTime);
+    if (present_lastModifiedTime)
+      list.add(lastModifiedTime);
+
+    boolean present_productMetadata = true && (isSetProductMetadata());
+    list.add(present_productMetadata);
+    if (present_productMetadata)
+      list.add(productMetadata);
+
+    boolean present_replicaLocations = true && (isSetReplicaLocations());
+    list.add(present_replicaLocations);
+    if (present_replicaLocations)
+      list.add(replicaLocations);
+
+    boolean present_childProducts = true && (isSetChildProducts());
+    list.add(present_childProducts);
+    if (present_childProducts)
+      list.add(childProducts);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(DataProductModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetProductUri()).compareTo(other.isSetProductUri());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProductUri()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productUri, other.productUri);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetParentProductUri()).compareTo(other.isSetParentProductUri());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetParentProductUri()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parentProductUri, other.parentProductUri);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLogicalPath()).compareTo(other.isSetLogicalPath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLogicalPath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.logicalPath, other.logicalPath);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProductName()).compareTo(other.isSetProductName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProductName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productName, other.productName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProductDescription()).compareTo(other.isSetProductDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProductDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productDescription, other.productDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetOwnerName()).compareTo(other.isSetOwnerName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOwnerName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ownerName, other.ownerName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDataProductType()).compareTo(other.isSetDataProductType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataProductType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataProductType, other.dataProductType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProductSize()).compareTo(other.isSetProductSize());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProductSize()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productSize, other.productSize);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCreationTime()).compareTo(other.isSetCreationTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCreationTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creationTime, other.creationTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLastModifiedTime()).compareTo(other.isSetLastModifiedTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLastModifiedTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastModifiedTime, other.lastModifiedTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProductMetadata()).compareTo(other.isSetProductMetadata());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProductMetadata()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productMetadata, other.productMetadata);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaLocations()).compareTo(other.isSetReplicaLocations());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaLocations()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaLocations, other.replicaLocations);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetChildProducts()).compareTo(other.isSetChildProducts());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetChildProducts()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.childProducts, other.childProducts);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("DataProductModel(");
+    boolean first = true;
+
+    if (isSetProductUri()) {
+      sb.append("productUri:");
+      if (this.productUri == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.productUri);
+      }
+      first = false;
+    }
+    if (isSetGatewayId()) {
+      if (!first) sb.append(", ");
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayId);
+      }
+      first = false;
+    }
+    if (isSetParentProductUri()) {
+      if (!first) sb.append(", ");
+      sb.append("parentProductUri:");
+      if (this.parentProductUri == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.parentProductUri);
+      }
+      first = false;
+    }
+    if (isSetLogicalPath()) {
+      if (!first) sb.append(", ");
+      sb.append("logicalPath:");
+      if (this.logicalPath == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.logicalPath);
+      }
+      first = false;
+    }
+    if (isSetProductName()) {
+      if (!first) sb.append(", ");
+      sb.append("productName:");
+      if (this.productName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.productName);
+      }
+      first = false;
+    }
+    if (isSetProductDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("productDescription:");
+      if (this.productDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.productDescription);
+      }
+      first = false;
+    }
+    if (isSetOwnerName()) {
+      if (!first) sb.append(", ");
+      sb.append("ownerName:");
+      if (this.ownerName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ownerName);
+      }
+      first = false;
+    }
+    if (isSetDataProductType()) {
+      if (!first) sb.append(", ");
+      sb.append("dataProductType:");
+      if (this.dataProductType == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.dataProductType);
+      }
+      first = false;
+    }
+    if (isSetProductSize()) {
+      if (!first) sb.append(", ");
+      sb.append("productSize:");
+      sb.append(this.productSize);
+      first = false;
+    }
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (isSetLastModifiedTime()) {
+      if (!first) sb.append(", ");
+      sb.append("lastModifiedTime:");
+      sb.append(this.lastModifiedTime);
+      first = false;
+    }
+    if (isSetProductMetadata()) {
+      if (!first) sb.append(", ");
+      sb.append("productMetadata:");
+      if (this.productMetadata == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.productMetadata);
+      }
+      first = false;
+    }
+    if (isSetReplicaLocations()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaLocations:");
+      if (this.replicaLocations == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaLocations);
+      }
+      first = false;
+    }
+    if (isSetChildProducts()) {
+      if (!first) sb.append(", ");
+      sb.append("childProducts:");
+      if (this.childProducts == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.childProducts);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class DataProductModelStandardSchemeFactory implements SchemeFactory {
+    public DataProductModelStandardScheme getScheme() {
+      return new DataProductModelStandardScheme();
+    }
+  }
+
+  private static class DataProductModelStandardScheme extends StandardScheme<DataProductModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, DataProductModel struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // PRODUCT_URI
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.productUri = iprot.readString();
+              struct.setProductUriIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // PARENT_PRODUCT_URI
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.parentProductUri = iprot.readString();
+              struct.setParentProductUriIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // LOGICAL_PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.logicalPath = iprot.readString();
+              struct.setLogicalPathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // PRODUCT_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.productName = iprot.readString();
+              struct.setProductNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // PRODUCT_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.productDescription = iprot.readString();
+              struct.setProductDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // OWNER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.ownerName = iprot.readString();
+              struct.setOwnerNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // DATA_PRODUCT_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.dataProductType = org.apache.airavata.model.data.replica.DataProductType.findByValue(iprot.readI32());
+              struct.setDataProductTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // PRODUCT_SIZE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.productSize = iprot.readI32();
+              struct.setProductSizeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // CREATION_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.creationTime = iprot.readI64();
+              struct.setCreationTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // LAST_MODIFIED_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.lastModifiedTime = iprot.readI64();
+              struct.setLastModifiedTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // PRODUCT_METADATA
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map0 = iprot.readMapBegin();
+                struct.productMetadata = new HashMap<String,String>(2*_map0.size);
+                String _key1;
+                String _val2;
+                for (int _i3 = 0; _i3 < _map0.size; ++_i3)
+                {
+                  _key1 = iprot.readString();
+                  _val2 = iprot.readString();
+                  struct.productMetadata.put(_key1, _val2);
+                }
+                iprot.readMapEnd();
+              }
+              struct.setProductMetadataIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 13: // REPLICA_LOCATIONS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list4 = iprot.readListBegin();
+                struct.replicaLocations = new ArrayList<DataReplicaLocationModel>(_list4.size);
+                DataReplicaLocationModel _elem5;
+                for (int _i6 = 0; _i6 < _list4.size; ++_i6)
+                {
+                  _elem5 = new DataReplicaLocationModel();
+                  _elem5.read(iprot);
+                  struct.replicaLocations.add(_elem5);
+                }
+                iprot.readListEnd();
+              }
+              struct.setReplicaLocationsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 14: // CHILD_PRODUCTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list7 = iprot.readListBegin();
+                struct.childProducts = new ArrayList<DataProductModel>(_list7.size);
+                DataProductModel _elem8;
+                for (int _i9 = 0; _i9 < _list7.size; ++_i9)
+                {
+                  _elem8 = new DataProductModel();
+                  _elem8.read(iprot);
+                  struct.childProducts.add(_elem8);
+                }
+                iprot.readListEnd();
+              }
+              struct.setChildProductsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, DataProductModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.productUri != null) {
+        if (struct.isSetProductUri()) {
+          oprot.writeFieldBegin(PRODUCT_URI_FIELD_DESC);
+          oprot.writeString(struct.productUri);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.gatewayId != null) {
+        if (struct.isSetGatewayId()) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.parentProductUri != null) {
+        if (struct.isSetParentProductUri()) {
+          oprot.writeFieldBegin(PARENT_PRODUCT_URI_FIELD_DESC);
+          oprot.writeString(struct.parentProductUri);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.logicalPath != null) {
+        if (struct.isSetLogicalPath()) {
+          oprot.writeFieldBegin(LOGICAL_PATH_FIELD_DESC);
+          oprot.writeString(struct.logicalPath);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.productName != null) {
+        if (struct.isSetProductName()) {
+          oprot.writeFieldBegin(PRODUCT_NAME_FIELD_DESC);
+          oprot.writeString(struct.productName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.productDescription != null) {
+        if (struct.isSetProductDescription()) {
+          oprot.writeFieldBegin(PRODUCT_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.productDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.ownerName != null) {
+        if (struct.isSetOwnerName()) {
+          oprot.writeFieldBegin(OWNER_NAME_FIELD_DESC);
+          oprot.writeString(struct.ownerName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.dataProductType != null) {
+        if (struct.isSetDataProductType()) {
+          oprot.writeFieldBegin(DATA_PRODUCT_TYPE_FIELD_DESC);
+          oprot.writeI32(struct.dataProductType.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetProductSize()) {
+        oprot.writeFieldBegin(PRODUCT_SIZE_FIELD_DESC);
+        oprot.writeI32(struct.productSize);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetLastModifiedTime()) {
+        oprot.writeFieldBegin(LAST_MODIFIED_TIME_FIELD_DESC);
+        oprot.writeI64(struct.lastModifiedTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.productMetadata != null) {
+        if (struct.isSetProductMetadata()) {
+          oprot.writeFieldBegin(PRODUCT_METADATA_FIELD_DESC);
+          {
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.productMetadata.size()));
+            for (Map.Entry<String, String> _iter10 : struct.productMetadata.entrySet())
+            {
+              oprot.writeString(_iter10.getKey());
+              oprot.writeString(_iter10.getValue());
+            }
+            oprot.writeMapEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaLocations != null) {
+        if (struct.isSetReplicaLocations()) {
+          oprot.writeFieldBegin(REPLICA_LOCATIONS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.replicaLocations.size()));
+            for (DataReplicaLocationModel _iter11 : struct.replicaLocations)
+            {
+              _iter11.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.childProducts != null) {
+        if (struct.isSetChildProducts()) {
+          oprot.writeFieldBegin(CHILD_PRODUCTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.childProducts.size()));
+            for (DataProductModel _iter12 : struct.childProducts)
+            {
+              _iter12.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class DataProductModelTupleSchemeFactory implements SchemeFactory {
+    public DataProductModelTupleScheme getScheme() {
+      return new DataProductModelTupleScheme();
+    }
+  }
+
+  private static class DataProductModelTupleScheme extends TupleScheme<DataProductModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, DataProductModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetProductUri()) {
+        optionals.set(0);
+      }
+      if (struct.isSetGatewayId()) {
+        optionals.set(1);
+      }
+      if (struct.isSetParentProductUri()) {
+        optionals.set(2);
+      }
+      if (struct.isSetLogicalPath()) {
+        optionals.set(3);
+      }
+      if (struct.isSetProductName()) {
+        optionals.set(4);
+      }
+      if (struct.isSetProductDescription()) {
+        optionals.set(5);
+      }
+      if (struct.isSetOwnerName()) {
+        optionals.set(6);
+      }
+      if (struct.isSetDataProductType()) {
+        optionals.set(7);
+      }
+      if (struct.isSetProductSize()) {
+        optionals.set(8);
+      }
+      if (struct.isSetCreationTime()) {
+        optionals.set(9);
+      }
+      if (struct.isSetLastModifiedTime()) {
+        optionals.set(10);
+      }
+      if (struct.isSetProductMetadata()) {
+        optionals.set(11);
+      }
+      if (struct.isSetReplicaLocations()) {
+        optionals.set(12);
+      }
+      if (struct.isSetChildProducts()) {
+        optionals.set(13);
+      }
+      oprot.writeBitSet(optionals, 14);
+      if (struct.isSetProductUri()) {
+        oprot.writeString(struct.productUri);
+      }
+      if (struct.isSetGatewayId()) {
+        oprot.writeString(struct.gatewayId);
+      }
+      if (struct.isSetParentProductUri()) {
+        oprot.writeString(struct.parentProductUri);
+      }
+      if (struct.isSetLogicalPath()) {
+        oprot.writeString(struct.logicalPath);
+      }
+      if (struct.isSetProductName()) {
+        oprot.writeString(struct.productName);
+      }
+      if (struct.isSetProductDescription()) {
+        oprot.writeString(struct.productDescription);
+      }
+      if (struct.isSetOwnerName()) {
+        oprot.writeString(struct.ownerName);
+      }
+      if (struct.isSetDataProductType()) {
+        oprot.writeI32(struct.dataProductType.getValue());
+      }
+      if (struct.isSetProductSize()) {
+        oprot.writeI32(struct.productSize);
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeI64(struct.creationTime);
+      }
+      if (struct.isSetLastModifiedTime()) {
+        oprot.writeI64(struct.lastModifiedTime);
+      }
+      if (struct.isSetProductMetadata()) {
+        {
+          oprot.writeI32(struct.productMetadata.size());
+          for (Map.Entry<String, String> _iter13 : struct.productMetadata.entrySet())
+          {
+            oprot.writeString(_iter13.getKey());
+            oprot.writeString(_iter13.getValue());
+          }
+        }
+      }
+      if (struct.isSetReplicaLocations()) {
+        {
+          oprot.writeI32(struct.replicaLocations.size());
+          for (DataReplicaLocationModel _iter14 : struct.replicaLocations)
+          {
+            _iter14.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetChildProducts()) {
+        {
+          oprot.writeI32(struct.childProducts.size());
+          for (DataProductModel _iter15 : struct.childProducts)
+          {
+            _iter15.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, DataProductModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(14);
+      if (incoming.get(0)) {
+        struct.productUri = iprot.readString();
+        struct.setProductUriIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.gatewayId = iprot.readString();
+        struct.setGatewayIdIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.parentProductUri = iprot.readString();
+        struct.setParentProductUriIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.logicalPath = iprot.readString();
+        struct.setLogicalPathIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.productName = iprot.readString();
+        struct.setProductNameIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.productDescription = iprot.readString();
+        struct.setProductDescriptionIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.ownerName = iprot.readString();
+        struct.setOwnerNameIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.dataProductType = org.apache.airavata.model.data.replica.DataProductType.findByValue(iprot.readI32());
+        struct.setDataProductTypeIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.productSize = iprot.readI32();
+        struct.setProductSizeIsSet(true);
+      }
+      if (incoming.get(9)) {
+        struct.creationTime = iprot.readI64();
+        struct.setCreationTimeIsSet(true);
+      }
+      if (incoming.get(10)) {
+        struct.lastModifiedTime = iprot.readI64();
+        struct.setLastModifiedTimeIsSet(true);
+      }
+      if (incoming.get(11)) {
+        {
+          org.apache.thrift.protocol.TMap _map16 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.productMetadata = new HashMap<String,String>(2*_map16.size);
+          String _key17;
+          String _val18;
+          for (int _i19 = 0; _i19 < _map16.size; ++_i19)
+          {
+            _key17 = iprot.readString();
+            _val18 = iprot.readString();
+            struct.productMetadata.put(_key17, _val18);
+          }
+        }
+        struct.setProductMetadataIsSet(true);
+      }
+      if (incoming.get(12)) {
+        {
+          org.apache.thrift.protocol.TList _list20 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.replicaLocations = new ArrayList<DataReplicaLocationModel>(_list20.size);
+          DataReplicaLocationModel _elem21;
+          for (int _i22 = 0; _i22 < _list20.size; ++_i22)
+          {
+            _elem21 = new DataReplicaLocationModel();
+            _elem21.read(iprot);
+            struct.replicaLocations.add(_elem21);
+          }
+        }
+        struct.setReplicaLocationsIsSet(true);
+      }
+      if (incoming.get(13)) {
+        {
+          org.apache.thrift.protocol.TList _list23 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.childProducts = new ArrayList<DataProductModel>(_list23.size);
+          DataProductModel _elem24;
+          for (int _i25 = 0; _i25 < _list23.size; ++_i25)
+          {
+            _elem24 = new DataProductModel();
+            _elem24.read(iprot);
+            struct.childProducts.add(_elem24);
+          }
+        }
+        struct.setChildProductsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductType.java
new file mode 100644
index 0000000..b953216
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductType.java
@@ -0,0 +1,65 @@
+/**
+ * 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.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.replica;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum DataProductType implements org.apache.thrift.TEnum {
+  DIR(0),
+  FILE(1),
+  COLLECTION(2);
+
+  private final int value;
+
+  private DataProductType(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static DataProductType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return DIR;
+      case 1:
+        return FILE;
+      case 2:
+        return COLLECTION;
+      default:
+        return null;
+    }
+  }
+}


[10/10] airavata git commit: renaming data-catalog to replica catalog

Posted by sc...@apache.org.
renaming data-catalog to replica catalog


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

Branch: refs/heads/develop
Commit: 04f6f5934607cd2a0925f478fc4121c4adf0b306
Parents: a2ff432
Author: scnakandala <su...@gmail.com>
Authored: Thu Mar 24 11:25:13 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Thu Mar 24 11:25:15 2016 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |   14 +-
 .../api/server/handler/utils/DataCatInit.java   |    4 +-
 .../java/org/apache/airavata/api/Airavata.java  |  102 +-
 .../main/resources/lib/airavata/Airavata.cpp    |   24 +-
 .../src/main/resources/lib/airavata/Airavata.h  |   60 +-
 .../lib/airavata/Airavata_server.skeleton.cpp   |    6 +-
 .../resources/lib/airavata/airavata_api_types.h |    2 +-
 .../lib/airavata/airavata_data_models_types.h   |    2 +-
 .../replica_catalog_models_constants.cpp        |    2 +-
 .../airavata/replica_catalog_models_constants.h |    2 +-
 .../airavata/replica_catalog_models_types.cpp   |  342 +--
 .../lib/airavata/replica_catalog_models_types.h |  154 +-
 .../resources/lib/Airavata/API/Airavata.php     |   36 +-
 .../lib/apache/airavata/api/Airavata.py         |   12 +-
 .../resources/lib/apache/airavata/api/ttypes.py |    2 +-
 .../lib/apache/airavata/model/ttypes.py         |    2 +-
 .../client/samples/DataCatalogSample.java       |   73 -
 .../client/samples/ReplicaCatalogSample.java    |   73 +
 .../apache/airavata/model/ComponentStatus.java  |    2 +-
 .../org/apache/airavata/model/EdgeModel.java    |    2 +-
 .../org/apache/airavata/model/NodeModel.java    |    2 +-
 .../org/apache/airavata/model/PortModel.java    |    2 +-
 .../apache/airavata/model/WorkflowModel.java    |    2 +-
 .../apache/airavata/model/WorkflowStatus.java   |    2 +-
 .../ApplicationDeploymentDescription.java       |    2 +-
 .../appdeployment/ApplicationModule.java        |    2 +-
 .../appcatalog/appdeployment/CommandObject.java |    2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |    2 +-
 .../ApplicationInterfaceDescription.java        |    2 +-
 .../appcatalog/computeresource/BatchQueue.java  |    2 +-
 .../computeresource/CloudJobSubmission.java     |    2 +-
 .../ComputeResourceDescription.java             |    2 +-
 .../computeresource/GlobusJobSubmission.java    |    2 +-
 .../computeresource/JobSubmissionInterface.java |    2 +-
 .../computeresource/LOCALSubmission.java        |    2 +-
 .../computeresource/ResourceJobManager.java     |    2 +-
 .../computeresource/SSHJobSubmission.java       |    2 +-
 .../computeresource/UnicoreJobSubmission.java   |    2 +-
 .../ComputeResourcePreference.java              |    2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |    2 +-
 .../gatewayprofile/StoragePreference.java       |    2 +-
 .../StorageResourceDescription.java             |    2 +-
 .../application/io/InputDataObjectType.java     |    2 +-
 .../application/io/OutputDataObjectType.java    |    2 +-
 .../airavata/model/commons/ErrorModel.java      |    2 +-
 .../model/commons/ValidationResults.java        |    2 +-
 .../airavata/model/commons/ValidatorResult.java |    2 +-
 .../data/movement/DataMovementInterface.java    |    2 +-
 .../data/movement/GridFTPDataMovement.java      |    2 +-
 .../model/data/movement/LOCALDataMovement.java  |    2 +-
 .../model/data/movement/SCPDataMovement.java    |    2 +-
 .../data/movement/UnicoreDataMovement.java      |    2 +-
 .../model/data/product/DataProductModel.java    | 1943 ------------------
 .../model/data/product/DataProductType.java     |   65 -
 .../data/product/DataReplicaLocationModel.java  | 1635 ---------------
 .../data/product/ReplicaLocationCategory.java   |   68 -
 .../data/product/ReplicaPersistentType.java     |   62 -
 .../model/data/replica/DataProductModel.java    | 1943 ++++++++++++++++++
 .../model/data/replica/DataProductType.java     |   65 +
 .../data/replica/DataReplicaLocationModel.java  | 1635 +++++++++++++++
 .../data/replica/ReplicaLocationCategory.java   |   68 +
 .../data/replica/ReplicaPersistentType.java     |   62 +
 .../model/error/AiravataClientException.java    |    2 +-
 .../model/error/AiravataSystemException.java    |    2 +-
 .../model/error/AuthenticationException.java    |    2 +-
 .../model/error/AuthorizationException.java     |    2 +-
 .../error/ExperimentNotFoundException.java      |    2 +-
 .../model/error/InvalidRequestException.java    |    2 +-
 .../model/error/LaunchValidationException.java  |    2 +-
 .../model/error/ProjectNotFoundException.java   |    2 +-
 .../airavata/model/error/TimedOutException.java |    2 +-
 .../airavata/model/error/ValidationResults.java |    2 +-
 .../airavata/model/error/ValidatorResult.java   |    2 +-
 .../model/experiment/ExperimentModel.java       |    2 +-
 .../model/experiment/ExperimentStatistics.java  |    2 +-
 .../experiment/ExperimentSummaryModel.java      |    2 +-
 .../experiment/UserConfigurationDataModel.java  |    2 +-
 .../org/apache/airavata/model/job/JobModel.java |    2 +-
 .../event/ExperimentStatusChangeEvent.java      |    2 +-
 .../model/messaging/event/JobIdentifier.java    |    2 +-
 .../messaging/event/JobStatusChangeEvent.java   |    2 +-
 .../event/JobStatusChangeRequestEvent.java      |    2 +-
 .../airavata/model/messaging/event/Message.java |    2 +-
 .../messaging/event/ProcessIdentifier.java      |    2 +-
 .../event/ProcessStatusChangeEvent.java         |    2 +-
 .../event/ProcessStatusChangeRequestEvent.java  |    2 +-
 .../messaging/event/ProcessSubmitEvent.java     |    2 +-
 .../messaging/event/ProcessTerminateEvent.java  |    2 +-
 .../model/messaging/event/TaskIdentifier.java   |    2 +-
 .../messaging/event/TaskOutputChangeEvent.java  |    2 +-
 .../messaging/event/TaskStatusChangeEvent.java  |    2 +-
 .../event/TaskStatusChangeRequestEvent.java     |    2 +-
 .../airavata/model/process/ProcessModel.java    |    2 +-
 .../ComputationalResourceSchedulingModel.java   |    2 +-
 .../airavata/model/security/AuthzToken.java     |    2 +-
 .../airavata/model/status/ExperimentStatus.java |    2 +-
 .../apache/airavata/model/status/JobStatus.java |    2 +-
 .../airavata/model/status/ProcessStatus.java    |    2 +-
 .../airavata/model/status/TaskStatus.java       |    2 +-
 .../model/task/DataStagingTaskModel.java        |    2 +-
 .../model/task/EnvironmentSetupTaskModel.java   |    2 +-
 .../model/task/JobSubmissionTaskModel.java      |    2 +-
 .../airavata/model/task/MonitorTaskModel.java   |    2 +-
 .../apache/airavata/model/task/TaskModel.java   |    2 +-
 .../airavata/model/workspace/Gateway.java       |    2 +-
 .../apache/airavata/model/workspace/Group.java  |    2 +-
 .../airavata/model/workspace/Project.java       |    2 +-
 .../apache/airavata/model/workspace/User.java   |    2 +-
 .../test/resources/airavata-server.properties   |    4 +-
 .../server/OrchestratorServerHandler.java       |   10 +-
 .../core/data/catalog/impl/DataCatalogImpl.java |  356 ----
 .../core/data/catalog/model/Configuration.java  |   55 -
 .../core/data/catalog/model/DataProduct.java    |  187 --
 .../data/catalog/model/DataProductMetaData.java |   77 -
 .../catalog/model/DataProductMetaData_PK.java   |   59 -
 .../data/catalog/model/DataReplicaLocation.java |  169 --
 .../data/catalog/model/DataReplicaMetaData.java |   77 -
 .../catalog/model/DataReplicaMetaData_PK.java   |   59 -
 .../catalog/utils/DataCatalogConstants.java     |   49 -
 .../data/catalog/utils/DataCatalogJPAUtils.java |   82 -
 .../utils/DataCatalogQueryGenerator.java        |  111 -
 .../utils/ThriftDataModelConversion.java        |  215 --
 .../catalog/impl/RegistryFactory.java           |   10 +-
 .../registry/core/impl/RegistryImpl.java        |    6 +-
 .../catalog/impl/ReplicaCatalogImpl.java        |  356 ++++
 .../replica/catalog/model/Configuration.java    |   55 +
 .../core/replica/catalog/model/DataProduct.java |  187 ++
 .../catalog/model/DataProductMetaData.java      |   77 +
 .../catalog/model/DataProductMetaData_PK.java   |   59 +
 .../catalog/model/DataReplicaLocation.java      |  169 ++
 .../catalog/model/DataReplicaMetaData.java      |   77 +
 .../catalog/model/DataReplicaMetaData_PK.java   |   59 +
 .../catalog/utils/ReplicaCatalogConstants.java  |   49 +
 .../catalog/utils/ReplicaCatalogJPAUtils.java   |   82 +
 .../utils/ReplicaCatalogQueryGenerator.java     |  111 +
 .../utils/ThriftDataModelConversion.java        |  215 ++
 .../src/main/resources/META-INF/persistence.xml |   10 +-
 .../airavata/data/catalog/DataCatalogTest.java  |  100 -
 .../airavata/data/catalog/util/Initialize.java  |  315 ---
 .../replica/catalog/ReplicaCatalogTest.java     |  100 +
 .../replica/catalog/util/Initialize.java        |  315 +++
 .../airavata/registry/cpi/DataCatalog.java      |   50 -
 .../registry/cpi/DataCatalogException.java      |   35 -
 .../apache/airavata/registry/cpi/Registry.java  |    2 +-
 .../airavata/registry/cpi/ReplicaCatalog.java   |   50 +
 .../registry/cpi/ReplicaCatalogException.java   |   35 +
 .../airavata-apis/airavata_api.thrift           |   10 +-
 .../data-models/airavata_data_models.thrift     |    2 +-
 .../data_catalog_models.thrift                  |   73 -
 .../replica_catalog_models.thrift               |   73 +
 150 files changed, 6421 insertions(+), 6389 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index 40877de..f1564e5 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -49,8 +49,8 @@ import org.apache.airavata.model.application.io.OutputDataObjectType;
 import org.apache.airavata.model.commons.airavata_commonsConstants;
 import org.apache.airavata.model.data.movement.DMType;
 import org.apache.airavata.model.data.movement.*;
-import org.apache.airavata.model.data.product.DataProductModel;
-import org.apache.airavata.model.data.product.DataReplicaLocationModel;
+import org.apache.airavata.model.data.replica.DataProductModel;
+import org.apache.airavata.model.data.replica.DataReplicaLocationModel;
 import org.apache.airavata.model.error.*;
 import org.apache.airavata.model.experiment.*;
 import org.apache.airavata.model.job.JobModel;
@@ -88,7 +88,7 @@ public class AiravataServerHandler implements Airavata.Iface {
     private ExperimentCatalog experimentCatalog;
     private AppCatalog appCatalog;
     private Publisher publisher;
-    private DataCatalog dataCatalog;
+    private ReplicaCatalog dataCatalog;
 	private WorkflowCatalog workflowCatalog;
     private CredentialStoreService.Client csClient;
 
@@ -4295,7 +4295,7 @@ public class AiravataServerHandler implements Airavata.Iface {
 	}
 
     /**
-     * DataCatalog Related Methods
+     * ReplicaCatalog Related Methods
      * @return
      * @throws TException
      * @throws ApplicationSettingsException
@@ -4305,7 +4305,7 @@ public class AiravataServerHandler implements Airavata.Iface {
     public String registerDataProduct(AuthzToken authzToken, DataProductModel dataProductModel) throws InvalidRequestException,
             AiravataClientException, AiravataSystemException, AuthorizationException, TException {
         try {
-            dataCatalog = RegistryFactory.getDataCatalog();
+            dataCatalog = RegistryFactory.getReplicaCatalog();
             String productUrl = dataCatalog.registerDataProduct(dataProductModel);
             return productUrl;
         } catch (Exception e) {
@@ -4322,7 +4322,7 @@ public class AiravataServerHandler implements Airavata.Iface {
     public DataProductModel getDataProduct(AuthzToken authzToken, String productUri) throws InvalidRequestException,
             AiravataClientException, AiravataSystemException, AuthorizationException, TException {
         try {
-            dataCatalog = RegistryFactory.getDataCatalog();
+            dataCatalog = RegistryFactory.getReplicaCatalog();
             DataProductModel dataProductModel = dataCatalog.getDataProduct(productUri);
             return dataProductModel;
         } catch (Exception e) {
@@ -4339,7 +4339,7 @@ public class AiravataServerHandler implements Airavata.Iface {
     public String registerReplicaLocation(AuthzToken authzToken, DataReplicaLocationModel replicaLocationModel) throws InvalidRequestException,
             AiravataClientException, AiravataSystemException, AuthorizationException, TException {
         try {
-            dataCatalog = RegistryFactory.getDataCatalog();
+            dataCatalog = RegistryFactory.getReplicaCatalog();
             String replicaId = dataCatalog.registerReplicaLocation(replicaLocationModel);
             return replicaId;
         } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/utils/DataCatInit.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/utils/DataCatInit.java b/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/utils/DataCatInit.java
index 2b55692..f99228a 100644
--- a/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/utils/DataCatInit.java
+++ b/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/utils/DataCatInit.java
@@ -23,7 +23,7 @@ package org.apache.airavata.api.server.handler.utils;
 
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.registry.core.data.catalog.utils.DataCatalogConstants;
+import org.apache.airavata.registry.core.replica.catalog.utils.ReplicaCatalogConstants;
 import org.apache.derby.drda.NetworkServerControl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -111,7 +111,7 @@ public class DataCatInit {
         try {
             Class.forName(jdbcDriver).newInstance();
             conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
-            if (!isDatabaseStructureCreated(DataCatalogConstants.CONFIGURATION, conn)) {
+            if (!isDatabaseStructureCreated(ReplicaCatalogConstants.CONFIGURATION, conn)) {
                 executeSQLScript(conn);
                 logger.info("New Database created for Data Catalog !!!");
             } else {

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index 430333f..29f1056 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-24")
 public class Airavata {
 
   public interface Iface {
@@ -2644,11 +2644,11 @@ public class Airavata {
      * @param authzToken
      * @param dataProductModel
      */
-    public String registerDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.product.DataProductModel dataProductModel) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+    public String registerDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataProductModel dataProductModel) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
-    public org.apache.airavata.model.data.product.DataProductModel getDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, String dataProductUri) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+    public org.apache.airavata.model.data.replica.DataProductModel getDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, String dataProductUri) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
-    public String registerReplicaLocation(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.product.DataReplicaLocationModel replicaLocationModel) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+    public String registerReplicaLocation(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
   }
 
@@ -2922,11 +2922,11 @@ public class Airavata {
 
     public void isWorkflowExistWithName(org.apache.airavata.model.security.AuthzToken authzToken, String workflowName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void registerDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.product.DataProductModel dataProductModel, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void registerDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataProductModel dataProductModel, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void getDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, String dataProductUri, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void registerReplicaLocation(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.product.DataReplicaLocationModel replicaLocationModel, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void registerReplicaLocation(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
   }
 
@@ -7876,13 +7876,13 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "isWorkflowExistWithName failed: unknown result");
     }
 
-    public String registerDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.product.DataProductModel dataProductModel) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    public String registerDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataProductModel dataProductModel) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
     {
       send_registerDataProduct(authzToken, dataProductModel);
       return recv_registerDataProduct();
     }
 
-    public void send_registerDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.product.DataProductModel dataProductModel) throws org.apache.thrift.TException
+    public void send_registerDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataProductModel dataProductModel) throws org.apache.thrift.TException
     {
       registerDataProduct_args args = new registerDataProduct_args();
       args.setAuthzToken(authzToken);
@@ -7912,7 +7912,7 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "registerDataProduct failed: unknown result");
     }
 
-    public org.apache.airavata.model.data.product.DataProductModel getDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, String dataProductUri) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    public org.apache.airavata.model.data.replica.DataProductModel getDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, String dataProductUri) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
     {
       send_getDataProduct(authzToken, dataProductUri);
       return recv_getDataProduct();
@@ -7926,7 +7926,7 @@ public class Airavata {
       sendBase("getDataProduct", args);
     }
 
-    public org.apache.airavata.model.data.product.DataProductModel recv_getDataProduct() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    public org.apache.airavata.model.data.replica.DataProductModel recv_getDataProduct() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
     {
       getDataProduct_result result = new getDataProduct_result();
       receiveBase(result, "getDataProduct");
@@ -7948,13 +7948,13 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getDataProduct failed: unknown result");
     }
 
-    public String registerReplicaLocation(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.product.DataReplicaLocationModel replicaLocationModel) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    public String registerReplicaLocation(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
     {
       send_registerReplicaLocation(authzToken, replicaLocationModel);
       return recv_registerReplicaLocation();
     }
 
-    public void send_registerReplicaLocation(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.product.DataReplicaLocationModel replicaLocationModel) throws org.apache.thrift.TException
+    public void send_registerReplicaLocation(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel) throws org.apache.thrift.TException
     {
       registerReplicaLocation_args args = new registerReplicaLocation_args();
       args.setAuthzToken(authzToken);
@@ -13034,7 +13034,7 @@ public class Airavata {
       }
     }
 
-    public void registerDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.product.DataProductModel dataProductModel, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void registerDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataProductModel dataProductModel, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       registerDataProduct_call method_call = new registerDataProduct_call(authzToken, dataProductModel, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -13043,8 +13043,8 @@ public class Airavata {
 
     public static class registerDataProduct_call extends org.apache.thrift.async.TAsyncMethodCall {
       private org.apache.airavata.model.security.AuthzToken authzToken;
-      private org.apache.airavata.model.data.product.DataProductModel dataProductModel;
-      public registerDataProduct_call(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.product.DataProductModel dataProductModel, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private org.apache.airavata.model.data.replica.DataProductModel dataProductModel;
+      public registerDataProduct_call(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataProductModel dataProductModel, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.authzToken = authzToken;
         this.dataProductModel = dataProductModel;
@@ -13094,7 +13094,7 @@ public class Airavata {
         prot.writeMessageEnd();
       }
 
-      public org.apache.airavata.model.data.product.DataProductModel getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
+      public org.apache.airavata.model.data.replica.DataProductModel getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -13104,7 +13104,7 @@ public class Airavata {
       }
     }
 
-    public void registerReplicaLocation(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.product.DataReplicaLocationModel replicaLocationModel, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void registerReplicaLocation(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       registerReplicaLocation_call method_call = new registerReplicaLocation_call(authzToken, replicaLocationModel, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -13113,8 +13113,8 @@ public class Airavata {
 
     public static class registerReplicaLocation_call extends org.apache.thrift.async.TAsyncMethodCall {
       private org.apache.airavata.model.security.AuthzToken authzToken;
-      private org.apache.airavata.model.data.product.DataReplicaLocationModel replicaLocationModel;
-      public registerReplicaLocation_call(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.product.DataReplicaLocationModel replicaLocationModel, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel;
+      public registerReplicaLocation_call(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.authzToken = authzToken;
         this.replicaLocationModel = replicaLocationModel;
@@ -27387,7 +27387,7 @@ public class Airavata {
       }
     }
 
-    public static class getDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getDataProduct_args, org.apache.airavata.model.data.product.DataProductModel> {
+    public static class getDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
       public getDataProduct() {
         super("getDataProduct");
       }
@@ -27396,10 +27396,10 @@ public class Airavata {
         return new getDataProduct_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.data.product.DataProductModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<org.apache.airavata.model.data.product.DataProductModel>() { 
-          public void onComplete(org.apache.airavata.model.data.product.DataProductModel o) {
+        return new AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel>() { 
+          public void onComplete(org.apache.airavata.model.data.replica.DataProductModel o) {
             getDataProduct_result result = new getDataProduct_result();
             result.success = o;
             try {
@@ -27454,7 +27454,7 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.product.DataProductModel> resultHandler) throws TException {
+      public void start(I iface, getDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws TException {
         iface.getDataProduct(args.authzToken, args.dataProductUri,resultHandler);
       }
     }
@@ -208292,7 +208292,7 @@ public class Airavata {
     }
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
-    public org.apache.airavata.model.data.product.DataProductModel dataProductModel; // required
+    public org.apache.airavata.model.data.replica.DataProductModel dataProductModel; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -208362,7 +208362,7 @@ public class Airavata {
       tmpMap.put(_Fields.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
       tmpMap.put(_Fields.DATA_PRODUCT_MODEL, new org.apache.thrift.meta_data.FieldMetaData("dataProductModel", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.data.product.DataProductModel.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.data.replica.DataProductModel.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerDataProduct_args.class, metaDataMap);
     }
@@ -208372,7 +208372,7 @@ public class Airavata {
 
     public registerDataProduct_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
-      org.apache.airavata.model.data.product.DataProductModel dataProductModel)
+      org.apache.airavata.model.data.replica.DataProductModel dataProductModel)
     {
       this();
       this.authzToken = authzToken;
@@ -208387,7 +208387,7 @@ public class Airavata {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
       if (other.isSetDataProductModel()) {
-        this.dataProductModel = new org.apache.airavata.model.data.product.DataProductModel(other.dataProductModel);
+        this.dataProductModel = new org.apache.airavata.model.data.replica.DataProductModel(other.dataProductModel);
       }
     }
 
@@ -208425,11 +208425,11 @@ public class Airavata {
       }
     }
 
-    public org.apache.airavata.model.data.product.DataProductModel getDataProductModel() {
+    public org.apache.airavata.model.data.replica.DataProductModel getDataProductModel() {
       return this.dataProductModel;
     }
 
-    public registerDataProduct_args setDataProductModel(org.apache.airavata.model.data.product.DataProductModel dataProductModel) {
+    public registerDataProduct_args setDataProductModel(org.apache.airavata.model.data.replica.DataProductModel dataProductModel) {
       this.dataProductModel = dataProductModel;
       return this;
     }
@@ -208463,7 +208463,7 @@ public class Airavata {
         if (value == null) {
           unsetDataProductModel();
         } else {
-          setDataProductModel((org.apache.airavata.model.data.product.DataProductModel)value);
+          setDataProductModel((org.apache.airavata.model.data.replica.DataProductModel)value);
         }
         break;
 
@@ -208677,7 +208677,7 @@ public class Airavata {
               break;
             case 2: // DATA_PRODUCT_MODEL
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.dataProductModel = new org.apache.airavata.model.data.product.DataProductModel();
+                struct.dataProductModel = new org.apache.airavata.model.data.replica.DataProductModel();
                 struct.dataProductModel.read(iprot);
                 struct.setDataProductModelIsSet(true);
               } else { 
@@ -208736,7 +208736,7 @@ public class Airavata {
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
-        struct.dataProductModel = new org.apache.airavata.model.data.product.DataProductModel();
+        struct.dataProductModel = new org.apache.airavata.model.data.replica.DataProductModel();
         struct.dataProductModel.read(iprot);
         struct.setDataProductModelIsSet(true);
       }
@@ -210008,7 +210008,7 @@ public class Airavata {
       schemes.put(TupleScheme.class, new getDataProduct_resultTupleSchemeFactory());
     }
 
-    public org.apache.airavata.model.data.product.DataProductModel success; // required
+    public org.apache.airavata.model.data.replica.DataProductModel success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
     public org.apache.airavata.model.error.AiravataSystemException ase; // required
@@ -210089,7 +210089,7 @@ public class Airavata {
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.data.product.DataProductModel.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.data.replica.DataProductModel.class)));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -210106,7 +210106,7 @@ public class Airavata {
     }
 
     public getDataProduct_result(
-      org.apache.airavata.model.data.product.DataProductModel success,
+      org.apache.airavata.model.data.replica.DataProductModel success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.AiravataClientException ace,
       org.apache.airavata.model.error.AiravataSystemException ase,
@@ -210125,7 +210125,7 @@ public class Airavata {
      */
     public getDataProduct_result(getDataProduct_result other) {
       if (other.isSetSuccess()) {
-        this.success = new org.apache.airavata.model.data.product.DataProductModel(other.success);
+        this.success = new org.apache.airavata.model.data.replica.DataProductModel(other.success);
       }
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
@@ -210154,11 +210154,11 @@ public class Airavata {
       this.ae = null;
     }
 
-    public org.apache.airavata.model.data.product.DataProductModel getSuccess() {
+    public org.apache.airavata.model.data.replica.DataProductModel getSuccess() {
       return this.success;
     }
 
-    public getDataProduct_result setSuccess(org.apache.airavata.model.data.product.DataProductModel success) {
+    public getDataProduct_result setSuccess(org.apache.airavata.model.data.replica.DataProductModel success) {
       this.success = success;
       return this;
     }
@@ -210280,7 +210280,7 @@ public class Airavata {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((org.apache.airavata.model.data.product.DataProductModel)value);
+          setSuccess((org.apache.airavata.model.data.replica.DataProductModel)value);
         }
         break;
 
@@ -210619,7 +210619,7 @@ public class Airavata {
           switch (schemeField.id) {
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.success = new org.apache.airavata.model.data.product.DataProductModel();
+                struct.success = new org.apache.airavata.model.data.replica.DataProductModel();
                 struct.success.read(iprot);
                 struct.setSuccessIsSet(true);
               } else { 
@@ -210758,7 +210758,7 @@ public class Airavata {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         BitSet incoming = iprot.readBitSet(5);
         if (incoming.get(0)) {
-          struct.success = new org.apache.airavata.model.data.product.DataProductModel();
+          struct.success = new org.apache.airavata.model.data.replica.DataProductModel();
           struct.success.read(iprot);
           struct.setSuccessIsSet(true);
         }
@@ -210800,7 +210800,7 @@ public class Airavata {
     }
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
-    public org.apache.airavata.model.data.product.DataReplicaLocationModel replicaLocationModel; // required
+    public org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -210870,7 +210870,7 @@ public class Airavata {
       tmpMap.put(_Fields.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
       tmpMap.put(_Fields.REPLICA_LOCATION_MODEL, new org.apache.thrift.meta_data.FieldMetaData("replicaLocationModel", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.data.product.DataReplicaLocationModel.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.data.replica.DataReplicaLocationModel.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerReplicaLocation_args.class, metaDataMap);
     }
@@ -210880,7 +210880,7 @@ public class Airavata {
 
     public registerReplicaLocation_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
-      org.apache.airavata.model.data.product.DataReplicaLocationModel replicaLocationModel)
+      org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel)
     {
       this();
       this.authzToken = authzToken;
@@ -210895,7 +210895,7 @@ public class Airavata {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
       if (other.isSetReplicaLocationModel()) {
-        this.replicaLocationModel = new org.apache.airavata.model.data.product.DataReplicaLocationModel(other.replicaLocationModel);
+        this.replicaLocationModel = new org.apache.airavata.model.data.replica.DataReplicaLocationModel(other.replicaLocationModel);
       }
     }
 
@@ -210933,11 +210933,11 @@ public class Airavata {
       }
     }
 
-    public org.apache.airavata.model.data.product.DataReplicaLocationModel getReplicaLocationModel() {
+    public org.apache.airavata.model.data.replica.DataReplicaLocationModel getReplicaLocationModel() {
       return this.replicaLocationModel;
     }
 
-    public registerReplicaLocation_args setReplicaLocationModel(org.apache.airavata.model.data.product.DataReplicaLocationModel replicaLocationModel) {
+    public registerReplicaLocation_args setReplicaLocationModel(org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel) {
       this.replicaLocationModel = replicaLocationModel;
       return this;
     }
@@ -210971,7 +210971,7 @@ public class Airavata {
         if (value == null) {
           unsetReplicaLocationModel();
         } else {
-          setReplicaLocationModel((org.apache.airavata.model.data.product.DataReplicaLocationModel)value);
+          setReplicaLocationModel((org.apache.airavata.model.data.replica.DataReplicaLocationModel)value);
         }
         break;
 
@@ -211185,7 +211185,7 @@ public class Airavata {
               break;
             case 2: // REPLICA_LOCATION_MODEL
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.replicaLocationModel = new org.apache.airavata.model.data.product.DataReplicaLocationModel();
+                struct.replicaLocationModel = new org.apache.airavata.model.data.replica.DataReplicaLocationModel();
                 struct.replicaLocationModel.read(iprot);
                 struct.setReplicaLocationModelIsSet(true);
               } else { 
@@ -211244,7 +211244,7 @@ public class Airavata {
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
-        struct.replicaLocationModel = new org.apache.airavata.model.data.product.DataReplicaLocationModel();
+        struct.replicaLocationModel = new org.apache.airavata.model.data.replica.DataReplicaLocationModel();
         struct.replicaLocationModel.read(iprot);
         struct.setReplicaLocationModelIsSet(true);
       }

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
index 1d6f60a..262de5e 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
@@ -52464,13 +52464,13 @@ bool AiravataClient::recv_isWorkflowExistWithName()
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "isWorkflowExistWithName failed: unknown result");
 }
 
-void AiravataClient::registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataProductModel& dataProductModel)
+void AiravataClient::registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel)
 {
   send_registerDataProduct(authzToken, dataProductModel);
   recv_registerDataProduct(_return);
 }
 
-void AiravataClient::send_registerDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataProductModel& dataProductModel)
+void AiravataClient::send_registerDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel)
 {
   int32_t cseqid = 0;
   oprot_->writeMessageBegin("registerDataProduct", ::apache::thrift::protocol::T_CALL, cseqid);
@@ -52535,7 +52535,7 @@ void AiravataClient::recv_registerDataProduct(std::string& _return)
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "registerDataProduct failed: unknown result");
 }
 
-void AiravataClient::getDataProduct( ::apache::airavata::model::data::product::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri)
+void AiravataClient::getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri)
 {
   send_getDataProduct(authzToken, dataProductUri);
   recv_getDataProduct(_return);
@@ -52556,7 +52556,7 @@ void AiravataClient::send_getDataProduct(const  ::apache::airavata::model::secur
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getDataProduct( ::apache::airavata::model::data::product::DataProductModel& _return)
+void AiravataClient::recv_getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return)
 {
 
   int32_t rseqid = 0;
@@ -52606,13 +52606,13 @@ void AiravataClient::recv_getDataProduct( ::apache::airavata::model::data::produ
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getDataProduct failed: unknown result");
 }
 
-void AiravataClient::registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataReplicaLocationModel& replicaLocationModel)
+void AiravataClient::registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel)
 {
   send_registerReplicaLocation(authzToken, replicaLocationModel);
   recv_registerReplicaLocation(_return);
 }
 
-void AiravataClient::send_registerReplicaLocation(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataReplicaLocationModel& replicaLocationModel)
+void AiravataClient::send_registerReplicaLocation(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel)
 {
   int32_t cseqid = 0;
   oprot_->writeMessageBegin("registerReplicaLocation", ::apache::thrift::protocol::T_CALL, cseqid);
@@ -75365,13 +75365,13 @@ bool AiravataConcurrentClient::recv_isWorkflowExistWithName(const int32_t seqid)
   } // end while(true)
 }
 
-void AiravataConcurrentClient::registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataProductModel& dataProductModel)
+void AiravataConcurrentClient::registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel)
 {
   int32_t seqid = send_registerDataProduct(authzToken, dataProductModel);
   recv_registerDataProduct(_return, seqid);
 }
 
-int32_t AiravataConcurrentClient::send_registerDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataProductModel& dataProductModel)
+int32_t AiravataConcurrentClient::send_registerDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel)
 {
   int32_t cseqid = this->sync_.generateSeqId();
   ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
@@ -75466,7 +75466,7 @@ void AiravataConcurrentClient::recv_registerDataProduct(std::string& _return, co
   } // end while(true)
 }
 
-void AiravataConcurrentClient::getDataProduct( ::apache::airavata::model::data::product::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri)
+void AiravataConcurrentClient::getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri)
 {
   int32_t seqid = send_getDataProduct(authzToken, dataProductUri);
   recv_getDataProduct(_return, seqid);
@@ -75491,7 +75491,7 @@ int32_t AiravataConcurrentClient::send_getDataProduct(const  ::apache::airavata:
   return cseqid;
 }
 
-void AiravataConcurrentClient::recv_getDataProduct( ::apache::airavata::model::data::product::DataProductModel& _return, const int32_t seqid)
+void AiravataConcurrentClient::recv_getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return, const int32_t seqid)
 {
 
   int32_t rseqid = 0;
@@ -75567,13 +75567,13 @@ void AiravataConcurrentClient::recv_getDataProduct( ::apache::airavata::model::d
   } // end while(true)
 }
 
-void AiravataConcurrentClient::registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataReplicaLocationModel& replicaLocationModel)
+void AiravataConcurrentClient::registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel)
 {
   int32_t seqid = send_registerReplicaLocation(authzToken, replicaLocationModel);
   recv_registerReplicaLocation(_return, seqid);
 }
 
-int32_t AiravataConcurrentClient::send_registerReplicaLocation(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataReplicaLocationModel& replicaLocationModel)
+int32_t AiravataConcurrentClient::send_registerReplicaLocation(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel)
 {
   int32_t cseqid = this->sync_.generateSeqId();
   ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index fd22834..f885e7a 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -2616,9 +2616,9 @@ class AiravataIf {
    * @param authzToken
    * @param dataProductModel
    */
-  virtual void registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataProductModel& dataProductModel) = 0;
-  virtual void getDataProduct( ::apache::airavata::model::data::product::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri) = 0;
-  virtual void registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataReplicaLocationModel& replicaLocationModel) = 0;
+  virtual void registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel) = 0;
+  virtual void getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri) = 0;
+  virtual void registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel) = 0;
 };
 
 class AiravataIfFactory {
@@ -3093,13 +3093,13 @@ class AiravataNull : virtual public AiravataIf {
     bool _return = false;
     return _return;
   }
-  void registerDataProduct(std::string& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::data::product::DataProductModel& /* dataProductModel */) {
+  void registerDataProduct(std::string& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::data::replica::DataProductModel& /* dataProductModel */) {
     return;
   }
-  void getDataProduct( ::apache::airavata::model::data::product::DataProductModel& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* dataProductUri */) {
+  void getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* dataProductUri */) {
     return;
   }
-  void registerReplicaLocation(std::string& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::data::product::DataReplicaLocationModel& /* replicaLocationModel */) {
+  void registerReplicaLocation(std::string& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& /* replicaLocationModel */) {
     return;
   }
 };
@@ -22019,11 +22019,11 @@ class Airavata_registerDataProduct_args {
 
   virtual ~Airavata_registerDataProduct_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
-   ::apache::airavata::model::data::product::DataProductModel dataProductModel;
+   ::apache::airavata::model::data::replica::DataProductModel dataProductModel;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
-  void __set_dataProductModel(const  ::apache::airavata::model::data::product::DataProductModel& val);
+  void __set_dataProductModel(const  ::apache::airavata::model::data::replica::DataProductModel& val);
 
   bool operator == (const Airavata_registerDataProduct_args & rhs) const
   {
@@ -22051,7 +22051,7 @@ class Airavata_registerDataProduct_pargs {
 
   virtual ~Airavata_registerDataProduct_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
-  const  ::apache::airavata::model::data::product::DataProductModel* dataProductModel;
+  const  ::apache::airavata::model::data::replica::DataProductModel* dataProductModel;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
@@ -22211,7 +22211,7 @@ class Airavata_getDataProduct_result {
   }
 
   virtual ~Airavata_getDataProduct_result() throw();
-   ::apache::airavata::model::data::product::DataProductModel success;
+   ::apache::airavata::model::data::replica::DataProductModel success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
@@ -22219,7 +22219,7 @@ class Airavata_getDataProduct_result {
 
   _Airavata_getDataProduct_result__isset __isset;
 
-  void __set_success(const  ::apache::airavata::model::data::product::DataProductModel& val);
+  void __set_success(const  ::apache::airavata::model::data::replica::DataProductModel& val);
 
   void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
@@ -22268,7 +22268,7 @@ class Airavata_getDataProduct_presult {
 
 
   virtual ~Airavata_getDataProduct_presult() throw();
-   ::apache::airavata::model::data::product::DataProductModel* success;
+   ::apache::airavata::model::data::replica::DataProductModel* success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
@@ -22291,11 +22291,11 @@ class Airavata_registerReplicaLocation_args {
 
   virtual ~Airavata_registerReplicaLocation_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
-   ::apache::airavata::model::data::product::DataReplicaLocationModel replicaLocationModel;
+   ::apache::airavata::model::data::replica::DataReplicaLocationModel replicaLocationModel;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
-  void __set_replicaLocationModel(const  ::apache::airavata::model::data::product::DataReplicaLocationModel& val);
+  void __set_replicaLocationModel(const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& val);
 
   bool operator == (const Airavata_registerReplicaLocation_args & rhs) const
   {
@@ -22323,7 +22323,7 @@ class Airavata_registerReplicaLocation_pargs {
 
   virtual ~Airavata_registerReplicaLocation_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
-  const  ::apache::airavata::model::data::product::DataReplicaLocationModel* replicaLocationModel;
+  const  ::apache::airavata::model::data::replica::DataReplicaLocationModel* replicaLocationModel;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
@@ -22843,14 +22843,14 @@ class AiravataClient : virtual public AiravataIf {
   bool isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName);
   void send_isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName);
   bool recv_isWorkflowExistWithName();
-  void registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataProductModel& dataProductModel);
-  void send_registerDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataProductModel& dataProductModel);
+  void registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel);
+  void send_registerDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel);
   void recv_registerDataProduct(std::string& _return);
-  void getDataProduct( ::apache::airavata::model::data::product::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri);
+  void getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri);
   void send_getDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri);
-  void recv_getDataProduct( ::apache::airavata::model::data::product::DataProductModel& _return);
-  void registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataReplicaLocationModel& replicaLocationModel);
-  void send_registerReplicaLocation(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataReplicaLocationModel& replicaLocationModel);
+  void recv_getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return);
+  void registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel);
+  void send_registerReplicaLocation(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel);
   void recv_registerReplicaLocation(std::string& _return);
  protected:
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;
@@ -24460,7 +24460,7 @@ class AiravataMultiface : virtual public AiravataIf {
     return ifaces_[i]->isWorkflowExistWithName(authzToken, workflowName);
   }
 
-  void registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataProductModel& dataProductModel) {
+  void registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
@@ -24470,7 +24470,7 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
-  void getDataProduct( ::apache::airavata::model::data::product::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri) {
+  void getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
@@ -24480,7 +24480,7 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
-  void registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataReplicaLocationModel& replicaLocationModel) {
+  void registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
@@ -24922,14 +24922,14 @@ class AiravataConcurrentClient : virtual public AiravataIf {
   bool isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName);
   int32_t send_isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName);
   bool recv_isWorkflowExistWithName(const int32_t seqid);
-  void registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataProductModel& dataProductModel);
-  int32_t send_registerDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataProductModel& dataProductModel);
+  void registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel);
+  int32_t send_registerDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel);
   void recv_registerDataProduct(std::string& _return, const int32_t seqid);
-  void getDataProduct( ::apache::airavata::model::data::product::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri);
+  void getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri);
   int32_t send_getDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri);
-  void recv_getDataProduct( ::apache::airavata::model::data::product::DataProductModel& _return, const int32_t seqid);
-  void registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataReplicaLocationModel& replicaLocationModel);
-  int32_t send_registerReplicaLocation(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataReplicaLocationModel& replicaLocationModel);
+  void recv_getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return, const int32_t seqid);
+  void registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel);
+  int32_t send_registerReplicaLocation(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel);
   void recv_registerReplicaLocation(std::string& _return, const int32_t seqid);
  protected:
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
index 28ad7aa..f9d80e4 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
@@ -3029,17 +3029,17 @@ class AiravataHandler : virtual public AiravataIf {
    * @param authzToken
    * @param dataProductModel
    */
-  void registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataProductModel& dataProductModel) {
+  void registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel) {
     // Your implementation goes here
     printf("registerDataProduct\n");
   }
 
-  void getDataProduct( ::apache::airavata::model::data::product::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri) {
+  void getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri) {
     // Your implementation goes here
     printf("getDataProduct\n");
   }
 
-  void registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::product::DataReplicaLocationModel& replicaLocationModel) {
+  void registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel) {
     // Your implementation goes here
     printf("registerReplicaLocation\n");
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
index 3afad01..5d059c5 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
@@ -48,7 +48,7 @@
 #include "gateway_resource_profile_model_types.h"
 #include "data_movement_models_types.h"
 #include "workflow_data_model_types.h"
-#include "data_catalog_models_types.h"
+#include "replica_catalog_models_types.h"
 
 
 namespace apache { namespace airavata { namespace api {

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.h
index 03958f1..ca6796a 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.h
@@ -44,7 +44,7 @@
 #include "scheduling_model_types.h"
 #include "status_models_types.h"
 #include "data_movement_models_types.h"
-#include "data_catalog_models_types.h"
+#include "replica_catalog_models_types.h"
 
 
 namespace apache { namespace airavata { namespace model {

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_constants.cpp
index 3f67e2d..9e2c499 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_constants.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_constants.cpp
@@ -23,7 +23,7 @@
  */
 #include "replica_catalog_models_constants.h"
 
-namespace apache { namespace airavata { namespace model { namespace data { namespace resource {
+namespace apache { namespace airavata { namespace model { namespace data { namespace replica {
 
 const replica_catalog_modelsConstants g_replica_catalog_models_constants;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_constants.h
index 711a581..67322de 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_constants.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_constants.h
@@ -26,7 +26,7 @@
 
 #include "replica_catalog_models_types.h"
 
-namespace apache { namespace airavata { namespace model { namespace data { namespace resource {
+namespace apache { namespace airavata { namespace model { namespace data { namespace replica {
 
 class replica_catalog_modelsConstants {
  public:


[06/10] airavata git commit: renaming data-catalog to replica catalog

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataReplicaLocationModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataReplicaLocationModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataReplicaLocationModel.java
deleted file mode 100644
index a17acf0..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataReplicaLocationModel.java
+++ /dev/null
@@ -1,1635 +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.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.9.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.data.product;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
-public class DataReplicaLocationModel implements org.apache.thrift.TBase<DataReplicaLocationModel, DataReplicaLocationModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataReplicaLocationModel> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataReplicaLocationModel");
-
-  private static final org.apache.thrift.protocol.TField REPLICA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaId", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField PRODUCT_URI_FIELD_DESC = new org.apache.thrift.protocol.TField("productUri", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField REPLICA_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaName", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField REPLICA_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaDescription", org.apache.thrift.protocol.TType.STRING, (short)4);
-  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)5);
-  private static final org.apache.thrift.protocol.TField LAST_MODIFIED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastModifiedTime", org.apache.thrift.protocol.TType.I64, (short)6);
-  private static final org.apache.thrift.protocol.TField VALID_UNTIL_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("validUntilTime", org.apache.thrift.protocol.TType.I64, (short)7);
-  private static final org.apache.thrift.protocol.TField REPLICA_LOCATION_CATEGORY_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaLocationCategory", org.apache.thrift.protocol.TType.I32, (short)8);
-  private static final org.apache.thrift.protocol.TField REPLICA_PERSISTENT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaPersistentType", org.apache.thrift.protocol.TType.I32, (short)9);
-  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceId", org.apache.thrift.protocol.TType.STRING, (short)10);
-  private static final org.apache.thrift.protocol.TField FILE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("filePath", org.apache.thrift.protocol.TType.STRING, (short)11);
-  private static final org.apache.thrift.protocol.TField REPLICA_METADATA_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaMetadata", org.apache.thrift.protocol.TType.MAP, (short)12);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new DataReplicaLocationModelStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new DataReplicaLocationModelTupleSchemeFactory());
-  }
-
-  private String replicaId; // optional
-  private String productUri; // optional
-  private String replicaName; // optional
-  private String replicaDescription; // optional
-  private long creationTime; // optional
-  private long lastModifiedTime; // optional
-  private long validUntilTime; // optional
-  private ReplicaLocationCategory replicaLocationCategory; // optional
-  private ReplicaPersistentType replicaPersistentType; // optional
-  private String storageResourceId; // optional
-  private String filePath; // optional
-  private Map<String,String> replicaMetadata; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    REPLICA_ID((short)1, "replicaId"),
-    PRODUCT_URI((short)2, "productUri"),
-    REPLICA_NAME((short)3, "replicaName"),
-    REPLICA_DESCRIPTION((short)4, "replicaDescription"),
-    CREATION_TIME((short)5, "creationTime"),
-    LAST_MODIFIED_TIME((short)6, "lastModifiedTime"),
-    VALID_UNTIL_TIME((short)7, "validUntilTime"),
-    /**
-     * 
-     * @see ReplicaLocationCategory
-     */
-    REPLICA_LOCATION_CATEGORY((short)8, "replicaLocationCategory"),
-    /**
-     * 
-     * @see ReplicaPersistentType
-     */
-    REPLICA_PERSISTENT_TYPE((short)9, "replicaPersistentType"),
-    STORAGE_RESOURCE_ID((short)10, "storageResourceId"),
-    FILE_PATH((short)11, "filePath"),
-    REPLICA_METADATA((short)12, "replicaMetadata");
-
-    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
-
-    static {
-      for (_Fields field : EnumSet.allOf(_Fields.class)) {
-        byName.put(field.getFieldName(), field);
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, or null if its not found.
-     */
-    public static _Fields findByThriftId(int fieldId) {
-      switch(fieldId) {
-        case 1: // REPLICA_ID
-          return REPLICA_ID;
-        case 2: // PRODUCT_URI
-          return PRODUCT_URI;
-        case 3: // REPLICA_NAME
-          return REPLICA_NAME;
-        case 4: // REPLICA_DESCRIPTION
-          return REPLICA_DESCRIPTION;
-        case 5: // CREATION_TIME
-          return CREATION_TIME;
-        case 6: // LAST_MODIFIED_TIME
-          return LAST_MODIFIED_TIME;
-        case 7: // VALID_UNTIL_TIME
-          return VALID_UNTIL_TIME;
-        case 8: // REPLICA_LOCATION_CATEGORY
-          return REPLICA_LOCATION_CATEGORY;
-        case 9: // REPLICA_PERSISTENT_TYPE
-          return REPLICA_PERSISTENT_TYPE;
-        case 10: // STORAGE_RESOURCE_ID
-          return STORAGE_RESOURCE_ID;
-        case 11: // FILE_PATH
-          return FILE_PATH;
-        case 12: // REPLICA_METADATA
-          return REPLICA_METADATA;
-        default:
-          return null;
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, throwing an exception
-     * if it is not found.
-     */
-    public static _Fields findByThriftIdOrThrow(int fieldId) {
-      _Fields fields = findByThriftId(fieldId);
-      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
-      return fields;
-    }
-
-    /**
-     * Find the _Fields constant that matches name, or null if its not found.
-     */
-    public static _Fields findByName(String name) {
-      return byName.get(name);
-    }
-
-    private final short _thriftId;
-    private final String _fieldName;
-
-    _Fields(short thriftId, String fieldName) {
-      _thriftId = thriftId;
-      _fieldName = fieldName;
-    }
-
-    public short getThriftFieldId() {
-      return _thriftId;
-    }
-
-    public String getFieldName() {
-      return _fieldName;
-    }
-  }
-
-  // isset id assignments
-  private static final int __CREATIONTIME_ISSET_ID = 0;
-  private static final int __LASTMODIFIEDTIME_ISSET_ID = 1;
-  private static final int __VALIDUNTILTIME_ISSET_ID = 2;
-  private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.REPLICA_ID,_Fields.PRODUCT_URI,_Fields.REPLICA_NAME,_Fields.REPLICA_DESCRIPTION,_Fields.CREATION_TIME,_Fields.LAST_MODIFIED_TIME,_Fields.VALID_UNTIL_TIME,_Fields.REPLICA_LOCATION_CATEGORY,_Fields.REPLICA_PERSISTENT_TYPE,_Fields.STORAGE_RESOURCE_ID,_Fields.FILE_PATH,_Fields.REPLICA_METADATA};
-  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
-  static {
-    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.REPLICA_ID, new org.apache.thrift.meta_data.FieldMetaData("replicaId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.PRODUCT_URI, new org.apache.thrift.meta_data.FieldMetaData("productUri", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.REPLICA_NAME, new org.apache.thrift.meta_data.FieldMetaData("replicaName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.REPLICA_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("replicaDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.LAST_MODIFIED_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastModifiedTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.VALID_UNTIL_TIME, new org.apache.thrift.meta_data.FieldMetaData("validUntilTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.REPLICA_LOCATION_CATEGORY, new org.apache.thrift.meta_data.FieldMetaData("replicaLocationCategory", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ReplicaLocationCategory.class)));
-    tmpMap.put(_Fields.REPLICA_PERSISTENT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("replicaPersistentType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ReplicaPersistentType.class)));
-    tmpMap.put(_Fields.STORAGE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageResourceId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.FILE_PATH, new org.apache.thrift.meta_data.FieldMetaData("filePath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.REPLICA_METADATA, new org.apache.thrift.meta_data.FieldMetaData("replicaMetadata", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DataReplicaLocationModel.class, metaDataMap);
-  }
-
-  public DataReplicaLocationModel() {
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public DataReplicaLocationModel(DataReplicaLocationModel other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetReplicaId()) {
-      this.replicaId = other.replicaId;
-    }
-    if (other.isSetProductUri()) {
-      this.productUri = other.productUri;
-    }
-    if (other.isSetReplicaName()) {
-      this.replicaName = other.replicaName;
-    }
-    if (other.isSetReplicaDescription()) {
-      this.replicaDescription = other.replicaDescription;
-    }
-    this.creationTime = other.creationTime;
-    this.lastModifiedTime = other.lastModifiedTime;
-    this.validUntilTime = other.validUntilTime;
-    if (other.isSetReplicaLocationCategory()) {
-      this.replicaLocationCategory = other.replicaLocationCategory;
-    }
-    if (other.isSetReplicaPersistentType()) {
-      this.replicaPersistentType = other.replicaPersistentType;
-    }
-    if (other.isSetStorageResourceId()) {
-      this.storageResourceId = other.storageResourceId;
-    }
-    if (other.isSetFilePath()) {
-      this.filePath = other.filePath;
-    }
-    if (other.isSetReplicaMetadata()) {
-      Map<String,String> __this__replicaMetadata = new HashMap<String,String>(other.replicaMetadata);
-      this.replicaMetadata = __this__replicaMetadata;
-    }
-  }
-
-  public DataReplicaLocationModel deepCopy() {
-    return new DataReplicaLocationModel(this);
-  }
-
-  @Override
-  public void clear() {
-    this.replicaId = null;
-    this.productUri = null;
-    this.replicaName = null;
-    this.replicaDescription = null;
-    setCreationTimeIsSet(false);
-    this.creationTime = 0;
-    setLastModifiedTimeIsSet(false);
-    this.lastModifiedTime = 0;
-    setValidUntilTimeIsSet(false);
-    this.validUntilTime = 0;
-    this.replicaLocationCategory = null;
-    this.replicaPersistentType = null;
-    this.storageResourceId = null;
-    this.filePath = null;
-    this.replicaMetadata = null;
-  }
-
-  public String getReplicaId() {
-    return this.replicaId;
-  }
-
-  public void setReplicaId(String replicaId) {
-    this.replicaId = replicaId;
-  }
-
-  public void unsetReplicaId() {
-    this.replicaId = null;
-  }
-
-  /** Returns true if field replicaId is set (has been assigned a value) and false otherwise */
-  public boolean isSetReplicaId() {
-    return this.replicaId != null;
-  }
-
-  public void setReplicaIdIsSet(boolean value) {
-    if (!value) {
-      this.replicaId = null;
-    }
-  }
-
-  public String getProductUri() {
-    return this.productUri;
-  }
-
-  public void setProductUri(String productUri) {
-    this.productUri = productUri;
-  }
-
-  public void unsetProductUri() {
-    this.productUri = null;
-  }
-
-  /** Returns true if field productUri is set (has been assigned a value) and false otherwise */
-  public boolean isSetProductUri() {
-    return this.productUri != null;
-  }
-
-  public void setProductUriIsSet(boolean value) {
-    if (!value) {
-      this.productUri = null;
-    }
-  }
-
-  public String getReplicaName() {
-    return this.replicaName;
-  }
-
-  public void setReplicaName(String replicaName) {
-    this.replicaName = replicaName;
-  }
-
-  public void unsetReplicaName() {
-    this.replicaName = null;
-  }
-
-  /** Returns true if field replicaName is set (has been assigned a value) and false otherwise */
-  public boolean isSetReplicaName() {
-    return this.replicaName != null;
-  }
-
-  public void setReplicaNameIsSet(boolean value) {
-    if (!value) {
-      this.replicaName = null;
-    }
-  }
-
-  public String getReplicaDescription() {
-    return this.replicaDescription;
-  }
-
-  public void setReplicaDescription(String replicaDescription) {
-    this.replicaDescription = replicaDescription;
-  }
-
-  public void unsetReplicaDescription() {
-    this.replicaDescription = null;
-  }
-
-  /** Returns true if field replicaDescription is set (has been assigned a value) and false otherwise */
-  public boolean isSetReplicaDescription() {
-    return this.replicaDescription != null;
-  }
-
-  public void setReplicaDescriptionIsSet(boolean value) {
-    if (!value) {
-      this.replicaDescription = null;
-    }
-  }
-
-  public long getCreationTime() {
-    return this.creationTime;
-  }
-
-  public void setCreationTime(long creationTime) {
-    this.creationTime = creationTime;
-    setCreationTimeIsSet(true);
-  }
-
-  public void unsetCreationTime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
-  }
-
-  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetCreationTime() {
-    return EncodingUtils.testBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
-  }
-
-  public void setCreationTimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
-  }
-
-  public long getLastModifiedTime() {
-    return this.lastModifiedTime;
-  }
-
-  public void setLastModifiedTime(long lastModifiedTime) {
-    this.lastModifiedTime = lastModifiedTime;
-    setLastModifiedTimeIsSet(true);
-  }
-
-  public void unsetLastModifiedTime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
-  }
-
-  /** Returns true if field lastModifiedTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetLastModifiedTime() {
-    return EncodingUtils.testBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
-  }
-
-  public void setLastModifiedTimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID, value);
-  }
-
-  public long getValidUntilTime() {
-    return this.validUntilTime;
-  }
-
-  public void setValidUntilTime(long validUntilTime) {
-    this.validUntilTime = validUntilTime;
-    setValidUntilTimeIsSet(true);
-  }
-
-  public void unsetValidUntilTime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID);
-  }
-
-  /** Returns true if field validUntilTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetValidUntilTime() {
-    return EncodingUtils.testBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID);
-  }
-
-  public void setValidUntilTimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID, value);
-  }
-
-  /**
-   * 
-   * @see ReplicaLocationCategory
-   */
-  public ReplicaLocationCategory getReplicaLocationCategory() {
-    return this.replicaLocationCategory;
-  }
-
-  /**
-   * 
-   * @see ReplicaLocationCategory
-   */
-  public void setReplicaLocationCategory(ReplicaLocationCategory replicaLocationCategory) {
-    this.replicaLocationCategory = replicaLocationCategory;
-  }
-
-  public void unsetReplicaLocationCategory() {
-    this.replicaLocationCategory = null;
-  }
-
-  /** Returns true if field replicaLocationCategory is set (has been assigned a value) and false otherwise */
-  public boolean isSetReplicaLocationCategory() {
-    return this.replicaLocationCategory != null;
-  }
-
-  public void setReplicaLocationCategoryIsSet(boolean value) {
-    if (!value) {
-      this.replicaLocationCategory = null;
-    }
-  }
-
-  /**
-   * 
-   * @see ReplicaPersistentType
-   */
-  public ReplicaPersistentType getReplicaPersistentType() {
-    return this.replicaPersistentType;
-  }
-
-  /**
-   * 
-   * @see ReplicaPersistentType
-   */
-  public void setReplicaPersistentType(ReplicaPersistentType replicaPersistentType) {
-    this.replicaPersistentType = replicaPersistentType;
-  }
-
-  public void unsetReplicaPersistentType() {
-    this.replicaPersistentType = null;
-  }
-
-  /** Returns true if field replicaPersistentType is set (has been assigned a value) and false otherwise */
-  public boolean isSetReplicaPersistentType() {
-    return this.replicaPersistentType != null;
-  }
-
-  public void setReplicaPersistentTypeIsSet(boolean value) {
-    if (!value) {
-      this.replicaPersistentType = null;
-    }
-  }
-
-  public String getStorageResourceId() {
-    return this.storageResourceId;
-  }
-
-  public void setStorageResourceId(String storageResourceId) {
-    this.storageResourceId = storageResourceId;
-  }
-
-  public void unsetStorageResourceId() {
-    this.storageResourceId = null;
-  }
-
-  /** Returns true if field storageResourceId is set (has been assigned a value) and false otherwise */
-  public boolean isSetStorageResourceId() {
-    return this.storageResourceId != null;
-  }
-
-  public void setStorageResourceIdIsSet(boolean value) {
-    if (!value) {
-      this.storageResourceId = null;
-    }
-  }
-
-  public String getFilePath() {
-    return this.filePath;
-  }
-
-  public void setFilePath(String filePath) {
-    this.filePath = filePath;
-  }
-
-  public void unsetFilePath() {
-    this.filePath = null;
-  }
-
-  /** Returns true if field filePath is set (has been assigned a value) and false otherwise */
-  public boolean isSetFilePath() {
-    return this.filePath != null;
-  }
-
-  public void setFilePathIsSet(boolean value) {
-    if (!value) {
-      this.filePath = null;
-    }
-  }
-
-  public int getReplicaMetadataSize() {
-    return (this.replicaMetadata == null) ? 0 : this.replicaMetadata.size();
-  }
-
-  public void putToReplicaMetadata(String key, String val) {
-    if (this.replicaMetadata == null) {
-      this.replicaMetadata = new HashMap<String,String>();
-    }
-    this.replicaMetadata.put(key, val);
-  }
-
-  public Map<String,String> getReplicaMetadata() {
-    return this.replicaMetadata;
-  }
-
-  public void setReplicaMetadata(Map<String,String> replicaMetadata) {
-    this.replicaMetadata = replicaMetadata;
-  }
-
-  public void unsetReplicaMetadata() {
-    this.replicaMetadata = null;
-  }
-
-  /** Returns true if field replicaMetadata is set (has been assigned a value) and false otherwise */
-  public boolean isSetReplicaMetadata() {
-    return this.replicaMetadata != null;
-  }
-
-  public void setReplicaMetadataIsSet(boolean value) {
-    if (!value) {
-      this.replicaMetadata = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case REPLICA_ID:
-      if (value == null) {
-        unsetReplicaId();
-      } else {
-        setReplicaId((String)value);
-      }
-      break;
-
-    case PRODUCT_URI:
-      if (value == null) {
-        unsetProductUri();
-      } else {
-        setProductUri((String)value);
-      }
-      break;
-
-    case REPLICA_NAME:
-      if (value == null) {
-        unsetReplicaName();
-      } else {
-        setReplicaName((String)value);
-      }
-      break;
-
-    case REPLICA_DESCRIPTION:
-      if (value == null) {
-        unsetReplicaDescription();
-      } else {
-        setReplicaDescription((String)value);
-      }
-      break;
-
-    case CREATION_TIME:
-      if (value == null) {
-        unsetCreationTime();
-      } else {
-        setCreationTime((Long)value);
-      }
-      break;
-
-    case LAST_MODIFIED_TIME:
-      if (value == null) {
-        unsetLastModifiedTime();
-      } else {
-        setLastModifiedTime((Long)value);
-      }
-      break;
-
-    case VALID_UNTIL_TIME:
-      if (value == null) {
-        unsetValidUntilTime();
-      } else {
-        setValidUntilTime((Long)value);
-      }
-      break;
-
-    case REPLICA_LOCATION_CATEGORY:
-      if (value == null) {
-        unsetReplicaLocationCategory();
-      } else {
-        setReplicaLocationCategory((ReplicaLocationCategory)value);
-      }
-      break;
-
-    case REPLICA_PERSISTENT_TYPE:
-      if (value == null) {
-        unsetReplicaPersistentType();
-      } else {
-        setReplicaPersistentType((ReplicaPersistentType)value);
-      }
-      break;
-
-    case STORAGE_RESOURCE_ID:
-      if (value == null) {
-        unsetStorageResourceId();
-      } else {
-        setStorageResourceId((String)value);
-      }
-      break;
-
-    case FILE_PATH:
-      if (value == null) {
-        unsetFilePath();
-      } else {
-        setFilePath((String)value);
-      }
-      break;
-
-    case REPLICA_METADATA:
-      if (value == null) {
-        unsetReplicaMetadata();
-      } else {
-        setReplicaMetadata((Map<String,String>)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case REPLICA_ID:
-      return getReplicaId();
-
-    case PRODUCT_URI:
-      return getProductUri();
-
-    case REPLICA_NAME:
-      return getReplicaName();
-
-    case REPLICA_DESCRIPTION:
-      return getReplicaDescription();
-
-    case CREATION_TIME:
-      return getCreationTime();
-
-    case LAST_MODIFIED_TIME:
-      return getLastModifiedTime();
-
-    case VALID_UNTIL_TIME:
-      return getValidUntilTime();
-
-    case REPLICA_LOCATION_CATEGORY:
-      return getReplicaLocationCategory();
-
-    case REPLICA_PERSISTENT_TYPE:
-      return getReplicaPersistentType();
-
-    case STORAGE_RESOURCE_ID:
-      return getStorageResourceId();
-
-    case FILE_PATH:
-      return getFilePath();
-
-    case REPLICA_METADATA:
-      return getReplicaMetadata();
-
-    }
-    throw new IllegalStateException();
-  }
-
-  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
-  public boolean isSet(_Fields field) {
-    if (field == null) {
-      throw new IllegalArgumentException();
-    }
-
-    switch (field) {
-    case REPLICA_ID:
-      return isSetReplicaId();
-    case PRODUCT_URI:
-      return isSetProductUri();
-    case REPLICA_NAME:
-      return isSetReplicaName();
-    case REPLICA_DESCRIPTION:
-      return isSetReplicaDescription();
-    case CREATION_TIME:
-      return isSetCreationTime();
-    case LAST_MODIFIED_TIME:
-      return isSetLastModifiedTime();
-    case VALID_UNTIL_TIME:
-      return isSetValidUntilTime();
-    case REPLICA_LOCATION_CATEGORY:
-      return isSetReplicaLocationCategory();
-    case REPLICA_PERSISTENT_TYPE:
-      return isSetReplicaPersistentType();
-    case STORAGE_RESOURCE_ID:
-      return isSetStorageResourceId();
-    case FILE_PATH:
-      return isSetFilePath();
-    case REPLICA_METADATA:
-      return isSetReplicaMetadata();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof DataReplicaLocationModel)
-      return this.equals((DataReplicaLocationModel)that);
-    return false;
-  }
-
-  public boolean equals(DataReplicaLocationModel that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_replicaId = true && this.isSetReplicaId();
-    boolean that_present_replicaId = true && that.isSetReplicaId();
-    if (this_present_replicaId || that_present_replicaId) {
-      if (!(this_present_replicaId && that_present_replicaId))
-        return false;
-      if (!this.replicaId.equals(that.replicaId))
-        return false;
-    }
-
-    boolean this_present_productUri = true && this.isSetProductUri();
-    boolean that_present_productUri = true && that.isSetProductUri();
-    if (this_present_productUri || that_present_productUri) {
-      if (!(this_present_productUri && that_present_productUri))
-        return false;
-      if (!this.productUri.equals(that.productUri))
-        return false;
-    }
-
-    boolean this_present_replicaName = true && this.isSetReplicaName();
-    boolean that_present_replicaName = true && that.isSetReplicaName();
-    if (this_present_replicaName || that_present_replicaName) {
-      if (!(this_present_replicaName && that_present_replicaName))
-        return false;
-      if (!this.replicaName.equals(that.replicaName))
-        return false;
-    }
-
-    boolean this_present_replicaDescription = true && this.isSetReplicaDescription();
-    boolean that_present_replicaDescription = true && that.isSetReplicaDescription();
-    if (this_present_replicaDescription || that_present_replicaDescription) {
-      if (!(this_present_replicaDescription && that_present_replicaDescription))
-        return false;
-      if (!this.replicaDescription.equals(that.replicaDescription))
-        return false;
-    }
-
-    boolean this_present_creationTime = true && this.isSetCreationTime();
-    boolean that_present_creationTime = true && that.isSetCreationTime();
-    if (this_present_creationTime || that_present_creationTime) {
-      if (!(this_present_creationTime && that_present_creationTime))
-        return false;
-      if (this.creationTime != that.creationTime)
-        return false;
-    }
-
-    boolean this_present_lastModifiedTime = true && this.isSetLastModifiedTime();
-    boolean that_present_lastModifiedTime = true && that.isSetLastModifiedTime();
-    if (this_present_lastModifiedTime || that_present_lastModifiedTime) {
-      if (!(this_present_lastModifiedTime && that_present_lastModifiedTime))
-        return false;
-      if (this.lastModifiedTime != that.lastModifiedTime)
-        return false;
-    }
-
-    boolean this_present_validUntilTime = true && this.isSetValidUntilTime();
-    boolean that_present_validUntilTime = true && that.isSetValidUntilTime();
-    if (this_present_validUntilTime || that_present_validUntilTime) {
-      if (!(this_present_validUntilTime && that_present_validUntilTime))
-        return false;
-      if (this.validUntilTime != that.validUntilTime)
-        return false;
-    }
-
-    boolean this_present_replicaLocationCategory = true && this.isSetReplicaLocationCategory();
-    boolean that_present_replicaLocationCategory = true && that.isSetReplicaLocationCategory();
-    if (this_present_replicaLocationCategory || that_present_replicaLocationCategory) {
-      if (!(this_present_replicaLocationCategory && that_present_replicaLocationCategory))
-        return false;
-      if (!this.replicaLocationCategory.equals(that.replicaLocationCategory))
-        return false;
-    }
-
-    boolean this_present_replicaPersistentType = true && this.isSetReplicaPersistentType();
-    boolean that_present_replicaPersistentType = true && that.isSetReplicaPersistentType();
-    if (this_present_replicaPersistentType || that_present_replicaPersistentType) {
-      if (!(this_present_replicaPersistentType && that_present_replicaPersistentType))
-        return false;
-      if (!this.replicaPersistentType.equals(that.replicaPersistentType))
-        return false;
-    }
-
-    boolean this_present_storageResourceId = true && this.isSetStorageResourceId();
-    boolean that_present_storageResourceId = true && that.isSetStorageResourceId();
-    if (this_present_storageResourceId || that_present_storageResourceId) {
-      if (!(this_present_storageResourceId && that_present_storageResourceId))
-        return false;
-      if (!this.storageResourceId.equals(that.storageResourceId))
-        return false;
-    }
-
-    boolean this_present_filePath = true && this.isSetFilePath();
-    boolean that_present_filePath = true && that.isSetFilePath();
-    if (this_present_filePath || that_present_filePath) {
-      if (!(this_present_filePath && that_present_filePath))
-        return false;
-      if (!this.filePath.equals(that.filePath))
-        return false;
-    }
-
-    boolean this_present_replicaMetadata = true && this.isSetReplicaMetadata();
-    boolean that_present_replicaMetadata = true && that.isSetReplicaMetadata();
-    if (this_present_replicaMetadata || that_present_replicaMetadata) {
-      if (!(this_present_replicaMetadata && that_present_replicaMetadata))
-        return false;
-      if (!this.replicaMetadata.equals(that.replicaMetadata))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    List<Object> list = new ArrayList<Object>();
-
-    boolean present_replicaId = true && (isSetReplicaId());
-    list.add(present_replicaId);
-    if (present_replicaId)
-      list.add(replicaId);
-
-    boolean present_productUri = true && (isSetProductUri());
-    list.add(present_productUri);
-    if (present_productUri)
-      list.add(productUri);
-
-    boolean present_replicaName = true && (isSetReplicaName());
-    list.add(present_replicaName);
-    if (present_replicaName)
-      list.add(replicaName);
-
-    boolean present_replicaDescription = true && (isSetReplicaDescription());
-    list.add(present_replicaDescription);
-    if (present_replicaDescription)
-      list.add(replicaDescription);
-
-    boolean present_creationTime = true && (isSetCreationTime());
-    list.add(present_creationTime);
-    if (present_creationTime)
-      list.add(creationTime);
-
-    boolean present_lastModifiedTime = true && (isSetLastModifiedTime());
-    list.add(present_lastModifiedTime);
-    if (present_lastModifiedTime)
-      list.add(lastModifiedTime);
-
-    boolean present_validUntilTime = true && (isSetValidUntilTime());
-    list.add(present_validUntilTime);
-    if (present_validUntilTime)
-      list.add(validUntilTime);
-
-    boolean present_replicaLocationCategory = true && (isSetReplicaLocationCategory());
-    list.add(present_replicaLocationCategory);
-    if (present_replicaLocationCategory)
-      list.add(replicaLocationCategory.getValue());
-
-    boolean present_replicaPersistentType = true && (isSetReplicaPersistentType());
-    list.add(present_replicaPersistentType);
-    if (present_replicaPersistentType)
-      list.add(replicaPersistentType.getValue());
-
-    boolean present_storageResourceId = true && (isSetStorageResourceId());
-    list.add(present_storageResourceId);
-    if (present_storageResourceId)
-      list.add(storageResourceId);
-
-    boolean present_filePath = true && (isSetFilePath());
-    list.add(present_filePath);
-    if (present_filePath)
-      list.add(filePath);
-
-    boolean present_replicaMetadata = true && (isSetReplicaMetadata());
-    list.add(present_replicaMetadata);
-    if (present_replicaMetadata)
-      list.add(replicaMetadata);
-
-    return list.hashCode();
-  }
-
-  @Override
-  public int compareTo(DataReplicaLocationModel other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetReplicaId()).compareTo(other.isSetReplicaId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetReplicaId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaId, other.replicaId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetProductUri()).compareTo(other.isSetProductUri());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetProductUri()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productUri, other.productUri);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetReplicaName()).compareTo(other.isSetReplicaName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetReplicaName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaName, other.replicaName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetReplicaDescription()).compareTo(other.isSetReplicaDescription());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetReplicaDescription()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaDescription, other.replicaDescription);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetCreationTime()).compareTo(other.isSetCreationTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCreationTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creationTime, other.creationTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetLastModifiedTime()).compareTo(other.isSetLastModifiedTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetLastModifiedTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastModifiedTime, other.lastModifiedTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetValidUntilTime()).compareTo(other.isSetValidUntilTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetValidUntilTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validUntilTime, other.validUntilTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetReplicaLocationCategory()).compareTo(other.isSetReplicaLocationCategory());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetReplicaLocationCategory()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaLocationCategory, other.replicaLocationCategory);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetReplicaPersistentType()).compareTo(other.isSetReplicaPersistentType());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetReplicaPersistentType()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaPersistentType, other.replicaPersistentType);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetStorageResourceId()).compareTo(other.isSetStorageResourceId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetStorageResourceId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceId, other.storageResourceId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetFilePath()).compareTo(other.isSetFilePath());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetFilePath()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filePath, other.filePath);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetReplicaMetadata()).compareTo(other.isSetReplicaMetadata());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetReplicaMetadata()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaMetadata, other.replicaMetadata);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    return 0;
-  }
-
-  public _Fields fieldForId(int fieldId) {
-    return _Fields.findByThriftId(fieldId);
-  }
-
-  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
-    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
-  }
-
-  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
-    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
-  }
-
-  @Override
-  public String toString() {
-    StringBuilder sb = new StringBuilder("DataReplicaLocationModel(");
-    boolean first = true;
-
-    if (isSetReplicaId()) {
-      sb.append("replicaId:");
-      if (this.replicaId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.replicaId);
-      }
-      first = false;
-    }
-    if (isSetProductUri()) {
-      if (!first) sb.append(", ");
-      sb.append("productUri:");
-      if (this.productUri == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.productUri);
-      }
-      first = false;
-    }
-    if (isSetReplicaName()) {
-      if (!first) sb.append(", ");
-      sb.append("replicaName:");
-      if (this.replicaName == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.replicaName);
-      }
-      first = false;
-    }
-    if (isSetReplicaDescription()) {
-      if (!first) sb.append(", ");
-      sb.append("replicaDescription:");
-      if (this.replicaDescription == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.replicaDescription);
-      }
-      first = false;
-    }
-    if (isSetCreationTime()) {
-      if (!first) sb.append(", ");
-      sb.append("creationTime:");
-      sb.append(this.creationTime);
-      first = false;
-    }
-    if (isSetLastModifiedTime()) {
-      if (!first) sb.append(", ");
-      sb.append("lastModifiedTime:");
-      sb.append(this.lastModifiedTime);
-      first = false;
-    }
-    if (isSetValidUntilTime()) {
-      if (!first) sb.append(", ");
-      sb.append("validUntilTime:");
-      sb.append(this.validUntilTime);
-      first = false;
-    }
-    if (isSetReplicaLocationCategory()) {
-      if (!first) sb.append(", ");
-      sb.append("replicaLocationCategory:");
-      if (this.replicaLocationCategory == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.replicaLocationCategory);
-      }
-      first = false;
-    }
-    if (isSetReplicaPersistentType()) {
-      if (!first) sb.append(", ");
-      sb.append("replicaPersistentType:");
-      if (this.replicaPersistentType == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.replicaPersistentType);
-      }
-      first = false;
-    }
-    if (isSetStorageResourceId()) {
-      if (!first) sb.append(", ");
-      sb.append("storageResourceId:");
-      if (this.storageResourceId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.storageResourceId);
-      }
-      first = false;
-    }
-    if (isSetFilePath()) {
-      if (!first) sb.append(", ");
-      sb.append("filePath:");
-      if (this.filePath == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.filePath);
-      }
-      first = false;
-    }
-    if (isSetReplicaMetadata()) {
-      if (!first) sb.append(", ");
-      sb.append("replicaMetadata:");
-      if (this.replicaMetadata == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.replicaMetadata);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    // check for sub-struct validity
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
-    try {
-      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
-      __isset_bitfield = 0;
-      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private static class DataReplicaLocationModelStandardSchemeFactory implements SchemeFactory {
-    public DataReplicaLocationModelStandardScheme getScheme() {
-      return new DataReplicaLocationModelStandardScheme();
-    }
-  }
-
-  private static class DataReplicaLocationModelStandardScheme extends StandardScheme<DataReplicaLocationModel> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, DataReplicaLocationModel struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TField schemeField;
-      iprot.readStructBegin();
-      while (true)
-      {
-        schemeField = iprot.readFieldBegin();
-        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
-          break;
-        }
-        switch (schemeField.id) {
-          case 1: // REPLICA_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.replicaId = iprot.readString();
-              struct.setReplicaIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // PRODUCT_URI
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.productUri = iprot.readString();
-              struct.setProductUriIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // REPLICA_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.replicaName = iprot.readString();
-              struct.setReplicaNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // REPLICA_DESCRIPTION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.replicaDescription = iprot.readString();
-              struct.setReplicaDescriptionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // CREATION_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.creationTime = iprot.readI64();
-              struct.setCreationTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 6: // LAST_MODIFIED_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.lastModifiedTime = iprot.readI64();
-              struct.setLastModifiedTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 7: // VALID_UNTIL_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.validUntilTime = iprot.readI64();
-              struct.setValidUntilTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 8: // REPLICA_LOCATION_CATEGORY
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.replicaLocationCategory = org.apache.airavata.model.data.product.ReplicaLocationCategory.findByValue(iprot.readI32());
-              struct.setReplicaLocationCategoryIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 9: // REPLICA_PERSISTENT_TYPE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.replicaPersistentType = org.apache.airavata.model.data.product.ReplicaPersistentType.findByValue(iprot.readI32());
-              struct.setReplicaPersistentTypeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 10: // STORAGE_RESOURCE_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.storageResourceId = iprot.readString();
-              struct.setStorageResourceIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 11: // FILE_PATH
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.filePath = iprot.readString();
-              struct.setFilePathIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 12: // REPLICA_METADATA
-            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
-              {
-                org.apache.thrift.protocol.TMap _map26 = iprot.readMapBegin();
-                struct.replicaMetadata = new HashMap<String,String>(2*_map26.size);
-                String _key27;
-                String _val28;
-                for (int _i29 = 0; _i29 < _map26.size; ++_i29)
-                {
-                  _key27 = iprot.readString();
-                  _val28 = iprot.readString();
-                  struct.replicaMetadata.put(_key27, _val28);
-                }
-                iprot.readMapEnd();
-              }
-              struct.setReplicaMetadataIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          default:
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-        }
-        iprot.readFieldEnd();
-      }
-      iprot.readStructEnd();
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, DataReplicaLocationModel struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.replicaId != null) {
-        if (struct.isSetReplicaId()) {
-          oprot.writeFieldBegin(REPLICA_ID_FIELD_DESC);
-          oprot.writeString(struct.replicaId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.productUri != null) {
-        if (struct.isSetProductUri()) {
-          oprot.writeFieldBegin(PRODUCT_URI_FIELD_DESC);
-          oprot.writeString(struct.productUri);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.replicaName != null) {
-        if (struct.isSetReplicaName()) {
-          oprot.writeFieldBegin(REPLICA_NAME_FIELD_DESC);
-          oprot.writeString(struct.replicaName);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.replicaDescription != null) {
-        if (struct.isSetReplicaDescription()) {
-          oprot.writeFieldBegin(REPLICA_DESCRIPTION_FIELD_DESC);
-          oprot.writeString(struct.replicaDescription);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetCreationTime()) {
-        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
-        oprot.writeI64(struct.creationTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetLastModifiedTime()) {
-        oprot.writeFieldBegin(LAST_MODIFIED_TIME_FIELD_DESC);
-        oprot.writeI64(struct.lastModifiedTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetValidUntilTime()) {
-        oprot.writeFieldBegin(VALID_UNTIL_TIME_FIELD_DESC);
-        oprot.writeI64(struct.validUntilTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.replicaLocationCategory != null) {
-        if (struct.isSetReplicaLocationCategory()) {
-          oprot.writeFieldBegin(REPLICA_LOCATION_CATEGORY_FIELD_DESC);
-          oprot.writeI32(struct.replicaLocationCategory.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.replicaPersistentType != null) {
-        if (struct.isSetReplicaPersistentType()) {
-          oprot.writeFieldBegin(REPLICA_PERSISTENT_TYPE_FIELD_DESC);
-          oprot.writeI32(struct.replicaPersistentType.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.storageResourceId != null) {
-        if (struct.isSetStorageResourceId()) {
-          oprot.writeFieldBegin(STORAGE_RESOURCE_ID_FIELD_DESC);
-          oprot.writeString(struct.storageResourceId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.filePath != null) {
-        if (struct.isSetFilePath()) {
-          oprot.writeFieldBegin(FILE_PATH_FIELD_DESC);
-          oprot.writeString(struct.filePath);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.replicaMetadata != null) {
-        if (struct.isSetReplicaMetadata()) {
-          oprot.writeFieldBegin(REPLICA_METADATA_FIELD_DESC);
-          {
-            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.replicaMetadata.size()));
-            for (Map.Entry<String, String> _iter30 : struct.replicaMetadata.entrySet())
-            {
-              oprot.writeString(_iter30.getKey());
-              oprot.writeString(_iter30.getValue());
-            }
-            oprot.writeMapEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class DataReplicaLocationModelTupleSchemeFactory implements SchemeFactory {
-    public DataReplicaLocationModelTupleScheme getScheme() {
-      return new DataReplicaLocationModelTupleScheme();
-    }
-  }
-
-  private static class DataReplicaLocationModelTupleScheme extends TupleScheme<DataReplicaLocationModel> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, DataReplicaLocationModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      BitSet optionals = new BitSet();
-      if (struct.isSetReplicaId()) {
-        optionals.set(0);
-      }
-      if (struct.isSetProductUri()) {
-        optionals.set(1);
-      }
-      if (struct.isSetReplicaName()) {
-        optionals.set(2);
-      }
-      if (struct.isSetReplicaDescription()) {
-        optionals.set(3);
-      }
-      if (struct.isSetCreationTime()) {
-        optionals.set(4);
-      }
-      if (struct.isSetLastModifiedTime()) {
-        optionals.set(5);
-      }
-      if (struct.isSetValidUntilTime()) {
-        optionals.set(6);
-      }
-      if (struct.isSetReplicaLocationCategory()) {
-        optionals.set(7);
-      }
-      if (struct.isSetReplicaPersistentType()) {
-        optionals.set(8);
-      }
-      if (struct.isSetStorageResourceId()) {
-        optionals.set(9);
-      }
-      if (struct.isSetFilePath()) {
-        optionals.set(10);
-      }
-      if (struct.isSetReplicaMetadata()) {
-        optionals.set(11);
-      }
-      oprot.writeBitSet(optionals, 12);
-      if (struct.isSetReplicaId()) {
-        oprot.writeString(struct.replicaId);
-      }
-      if (struct.isSetProductUri()) {
-        oprot.writeString(struct.productUri);
-      }
-      if (struct.isSetReplicaName()) {
-        oprot.writeString(struct.replicaName);
-      }
-      if (struct.isSetReplicaDescription()) {
-        oprot.writeString(struct.replicaDescription);
-      }
-      if (struct.isSetCreationTime()) {
-        oprot.writeI64(struct.creationTime);
-      }
-      if (struct.isSetLastModifiedTime()) {
-        oprot.writeI64(struct.lastModifiedTime);
-      }
-      if (struct.isSetValidUntilTime()) {
-        oprot.writeI64(struct.validUntilTime);
-      }
-      if (struct.isSetReplicaLocationCategory()) {
-        oprot.writeI32(struct.replicaLocationCategory.getValue());
-      }
-      if (struct.isSetReplicaPersistentType()) {
-        oprot.writeI32(struct.replicaPersistentType.getValue());
-      }
-      if (struct.isSetStorageResourceId()) {
-        oprot.writeString(struct.storageResourceId);
-      }
-      if (struct.isSetFilePath()) {
-        oprot.writeString(struct.filePath);
-      }
-      if (struct.isSetReplicaMetadata()) {
-        {
-          oprot.writeI32(struct.replicaMetadata.size());
-          for (Map.Entry<String, String> _iter31 : struct.replicaMetadata.entrySet())
-          {
-            oprot.writeString(_iter31.getKey());
-            oprot.writeString(_iter31.getValue());
-          }
-        }
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, DataReplicaLocationModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      BitSet incoming = iprot.readBitSet(12);
-      if (incoming.get(0)) {
-        struct.replicaId = iprot.readString();
-        struct.setReplicaIdIsSet(true);
-      }
-      if (incoming.get(1)) {
-        struct.productUri = iprot.readString();
-        struct.setProductUriIsSet(true);
-      }
-      if (incoming.get(2)) {
-        struct.replicaName = iprot.readString();
-        struct.setReplicaNameIsSet(true);
-      }
-      if (incoming.get(3)) {
-        struct.replicaDescription = iprot.readString();
-        struct.setReplicaDescriptionIsSet(true);
-      }
-      if (incoming.get(4)) {
-        struct.creationTime = iprot.readI64();
-        struct.setCreationTimeIsSet(true);
-      }
-      if (incoming.get(5)) {
-        struct.lastModifiedTime = iprot.readI64();
-        struct.setLastModifiedTimeIsSet(true);
-      }
-      if (incoming.get(6)) {
-        struct.validUntilTime = iprot.readI64();
-        struct.setValidUntilTimeIsSet(true);
-      }
-      if (incoming.get(7)) {
-        struct.replicaLocationCategory = org.apache.airavata.model.data.product.ReplicaLocationCategory.findByValue(iprot.readI32());
-        struct.setReplicaLocationCategoryIsSet(true);
-      }
-      if (incoming.get(8)) {
-        struct.replicaPersistentType = org.apache.airavata.model.data.product.ReplicaPersistentType.findByValue(iprot.readI32());
-        struct.setReplicaPersistentTypeIsSet(true);
-      }
-      if (incoming.get(9)) {
-        struct.storageResourceId = iprot.readString();
-        struct.setStorageResourceIdIsSet(true);
-      }
-      if (incoming.get(10)) {
-        struct.filePath = iprot.readString();
-        struct.setFilePathIsSet(true);
-      }
-      if (incoming.get(11)) {
-        {
-          org.apache.thrift.protocol.TMap _map32 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.replicaMetadata = new HashMap<String,String>(2*_map32.size);
-          String _key33;
-          String _val34;
-          for (int _i35 = 0; _i35 < _map32.size; ++_i35)
-          {
-            _key33 = iprot.readString();
-            _val34 = iprot.readString();
-            struct.replicaMetadata.put(_key33, _val34);
-          }
-        }
-        struct.setReplicaMetadataIsSet(true);
-      }
-    }
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaLocationCategory.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaLocationCategory.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaLocationCategory.java
deleted file mode 100644
index 9985c80..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaLocationCategory.java
+++ /dev/null
@@ -1,68 +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.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.9.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.data.product;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-public enum ReplicaLocationCategory implements org.apache.thrift.TEnum {
-  GATEWAY_DATA_STORE(0),
-  COMPUTE_RESOURCE(1),
-  LONG_TERM_STORAGE_RESOURCE(2),
-  OTHER(3);
-
-  private final int value;
-
-  private ReplicaLocationCategory(int value) {
-    this.value = value;
-  }
-
-  /**
-   * Get the integer value of this enum value, as defined in the Thrift IDL.
-   */
-  public int getValue() {
-    return value;
-  }
-
-  /**
-   * Find a the enum type by its integer value, as defined in the Thrift IDL.
-   * @return null if the value is not found.
-   */
-  public static ReplicaLocationCategory findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return GATEWAY_DATA_STORE;
-      case 1:
-        return COMPUTE_RESOURCE;
-      case 2:
-        return LONG_TERM_STORAGE_RESOURCE;
-      case 3:
-        return OTHER;
-      default:
-        return null;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/04f6f593/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaPersistentType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaPersistentType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaPersistentType.java
deleted file mode 100644
index 22df336..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaPersistentType.java
+++ /dev/null
@@ -1,62 +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.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.9.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.data.product;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-public enum ReplicaPersistentType implements org.apache.thrift.TEnum {
-  TRANSIENT(0),
-  PERSISTENT(1);
-
-  private final int value;
-
-  private ReplicaPersistentType(int value) {
-    this.value = value;
-  }
-
-  /**
-   * Get the integer value of this enum value, as defined in the Thrift IDL.
-   */
-  public int getValue() {
-    return value;
-  }
-
-  /**
-   * Find a the enum type by its integer value, as defined in the Thrift IDL.
-   * @return null if the value is not found.
-   */
-  public static ReplicaPersistentType findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return TRANSIENT;
-      case 1:
-        return PERSISTENT;
-      default:
-        return null;
-    }
-  }
-}