http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/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 6cc454d..7c1766f 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
@@ -71,7 +71,7 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
   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)1);
   private static final org.apache.thrift.protocol.TField 
CREDENTIAL_STORE_TOKEN_FIELD_DESC = new 
org.apache.thrift.protocol.TField("credentialStoreToken", 
org.apache.thrift.protocol.TType.STRING, (short)2);
   private static final org.apache.thrift.protocol.TField 
COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC = new 
org.apache.thrift.protocol.TField("computeResourcePreferences", 
org.apache.thrift.protocol.TType.LIST, (short)3);
-  private static final org.apache.thrift.protocol.TField 
DATA_STORAGE_PREFERENCES_FIELD_DESC = new 
org.apache.thrift.protocol.TField("dataStoragePreferences", 
org.apache.thrift.protocol.TType.LIST, (short)4);
+  private static final org.apache.thrift.protocol.TField 
STORAGE_PREFERENCES_FIELD_DESC = new 
org.apache.thrift.protocol.TField("storagePreferences", 
org.apache.thrift.protocol.TType.LIST, (short)4);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -82,14 +82,14 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
   private String gatewayID; // required
   private String credentialStoreToken; // optional
   private List<ComputeResourcePreference> computeResourcePreferences; // 
optional
-  private List<DataStoragePreference> dataStoragePreferences; // optional
+  private List<StoragePreference> storagePreferences; // 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 {
     GATEWAY_ID((short)1, "gatewayID"),
     CREDENTIAL_STORE_TOKEN((short)2, "credentialStoreToken"),
     COMPUTE_RESOURCE_PREFERENCES((short)3, "computeResourcePreferences"),
-    DATA_STORAGE_PREFERENCES((short)4, "dataStoragePreferences");
+    STORAGE_PREFERENCES((short)4, "storagePreferences");
 
     private static final Map<String, _Fields> byName = new HashMap<String, 
_Fields>();
 
@@ -110,8 +110,8 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
           return CREDENTIAL_STORE_TOKEN;
         case 3: // COMPUTE_RESOURCE_PREFERENCES
           return COMPUTE_RESOURCE_PREFERENCES;
-        case 4: // DATA_STORAGE_PREFERENCES
-          return DATA_STORAGE_PREFERENCES;
+        case 4: // STORAGE_PREFERENCES
+          return STORAGE_PREFERENCES;
         default:
           return null;
       }
@@ -152,7 +152,7 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
   }
 
   // isset id assignments
-  private static final _Fields optionals[] = 
{_Fields.CREDENTIAL_STORE_TOKEN,_Fields.COMPUTE_RESOURCE_PREFERENCES,_Fields.DATA_STORAGE_PREFERENCES};
+  private static final _Fields optionals[] = 
{_Fields.CREDENTIAL_STORE_TOKEN,_Fields.COMPUTE_RESOURCE_PREFERENCES,_Fields.STORAGE_PREFERENCES};
   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);
@@ -163,9 +163,9 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
     tmpMap.put(_Fields.COMPUTE_RESOURCE_PREFERENCES, new 
org.apache.thrift.meta_data.FieldMetaData("computeResourcePreferences", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new 
org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 ComputeResourcePreference.class))));
-    tmpMap.put(_Fields.DATA_STORAGE_PREFERENCES, new 
org.apache.thrift.meta_data.FieldMetaData("dataStoragePreferences", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+    tmpMap.put(_Fields.STORAGE_PREFERENCES, new 
org.apache.thrift.meta_data.FieldMetaData("storagePreferences", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new 
org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 DataStoragePreference.class))));
+            new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 StoragePreference.class))));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GatewayResourceProfile.class,
 metaDataMap);
   }
@@ -197,12 +197,12 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
       }
       this.computeResourcePreferences = __this__computeResourcePreferences;
     }
-    if (other.isSetDataStoragePreferences()) {
-      List<DataStoragePreference> __this__dataStoragePreferences = new 
ArrayList<DataStoragePreference>(other.dataStoragePreferences.size());
-      for (DataStoragePreference other_element : other.dataStoragePreferences) 
{
-        __this__dataStoragePreferences.add(new 
DataStoragePreference(other_element));
+    if (other.isSetStoragePreferences()) {
+      List<StoragePreference> __this__storagePreferences = new 
ArrayList<StoragePreference>(other.storagePreferences.size());
+      for (StoragePreference other_element : other.storagePreferences) {
+        __this__storagePreferences.add(new StoragePreference(other_element));
       }
-      this.dataStoragePreferences = __this__dataStoragePreferences;
+      this.storagePreferences = __this__storagePreferences;
     }
   }
 
@@ -215,7 +215,7 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
     this.gatewayID = null;
     this.credentialStoreToken = null;
     this.computeResourcePreferences = null;
-    this.dataStoragePreferences = null;
+    this.storagePreferences = null;
   }
 
   public String getGatewayID() {
@@ -302,41 +302,41 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
     }
   }
 
-  public int getDataStoragePreferencesSize() {
-    return (this.dataStoragePreferences == null) ? 0 : 
this.dataStoragePreferences.size();
+  public int getStoragePreferencesSize() {
+    return (this.storagePreferences == null) ? 0 : 
this.storagePreferences.size();
   }
 
-  public java.util.Iterator<DataStoragePreference> 
getDataStoragePreferencesIterator() {
-    return (this.dataStoragePreferences == null) ? null : 
this.dataStoragePreferences.iterator();
+  public java.util.Iterator<StoragePreference> getStoragePreferencesIterator() 
{
+    return (this.storagePreferences == null) ? null : 
this.storagePreferences.iterator();
   }
 
-  public void addToDataStoragePreferences(DataStoragePreference elem) {
-    if (this.dataStoragePreferences == null) {
-      this.dataStoragePreferences = new ArrayList<DataStoragePreference>();
+  public void addToStoragePreferences(StoragePreference elem) {
+    if (this.storagePreferences == null) {
+      this.storagePreferences = new ArrayList<StoragePreference>();
     }
-    this.dataStoragePreferences.add(elem);
+    this.storagePreferences.add(elem);
   }
 
-  public List<DataStoragePreference> getDataStoragePreferences() {
-    return this.dataStoragePreferences;
+  public List<StoragePreference> getStoragePreferences() {
+    return this.storagePreferences;
   }
 
-  public void setDataStoragePreferences(List<DataStoragePreference> 
dataStoragePreferences) {
-    this.dataStoragePreferences = dataStoragePreferences;
+  public void setStoragePreferences(List<StoragePreference> 
storagePreferences) {
+    this.storagePreferences = storagePreferences;
   }
 
-  public void unsetDataStoragePreferences() {
-    this.dataStoragePreferences = null;
+  public void unsetStoragePreferences() {
+    this.storagePreferences = null;
   }
 
-  /** Returns true if field dataStoragePreferences is set (has been assigned a 
value) and false otherwise */
-  public boolean isSetDataStoragePreferences() {
-    return this.dataStoragePreferences != null;
+  /** Returns true if field storagePreferences is set (has been assigned a 
value) and false otherwise */
+  public boolean isSetStoragePreferences() {
+    return this.storagePreferences != null;
   }
 
-  public void setDataStoragePreferencesIsSet(boolean value) {
+  public void setStoragePreferencesIsSet(boolean value) {
     if (!value) {
-      this.dataStoragePreferences = null;
+      this.storagePreferences = null;
     }
   }
 
@@ -366,11 +366,11 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
       }
       break;
 
-    case DATA_STORAGE_PREFERENCES:
+    case STORAGE_PREFERENCES:
       if (value == null) {
-        unsetDataStoragePreferences();
+        unsetStoragePreferences();
       } else {
-        setDataStoragePreferences((List<DataStoragePreference>)value);
+        setStoragePreferences((List<StoragePreference>)value);
       }
       break;
 
@@ -388,8 +388,8 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
     case COMPUTE_RESOURCE_PREFERENCES:
       return getComputeResourcePreferences();
 
-    case DATA_STORAGE_PREFERENCES:
-      return getDataStoragePreferences();
+    case STORAGE_PREFERENCES:
+      return getStoragePreferences();
 
     }
     throw new IllegalStateException();
@@ -408,8 +408,8 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
       return isSetCredentialStoreToken();
     case COMPUTE_RESOURCE_PREFERENCES:
       return isSetComputeResourcePreferences();
-    case DATA_STORAGE_PREFERENCES:
-      return isSetDataStoragePreferences();
+    case STORAGE_PREFERENCES:
+      return isSetStoragePreferences();
     }
     throw new IllegalStateException();
   }
@@ -454,12 +454,12 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
         return false;
     }
 
-    boolean this_present_dataStoragePreferences = true && 
this.isSetDataStoragePreferences();
-    boolean that_present_dataStoragePreferences = true && 
that.isSetDataStoragePreferences();
-    if (this_present_dataStoragePreferences || 
that_present_dataStoragePreferences) {
-      if (!(this_present_dataStoragePreferences && 
that_present_dataStoragePreferences))
+    boolean this_present_storagePreferences = true && 
this.isSetStoragePreferences();
+    boolean that_present_storagePreferences = true && 
that.isSetStoragePreferences();
+    if (this_present_storagePreferences || that_present_storagePreferences) {
+      if (!(this_present_storagePreferences && 
that_present_storagePreferences))
         return false;
-      if (!this.dataStoragePreferences.equals(that.dataStoragePreferences))
+      if (!this.storagePreferences.equals(that.storagePreferences))
         return false;
     }
 
@@ -485,10 +485,10 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
     if (present_computeResourcePreferences)
       list.add(computeResourcePreferences);
 
-    boolean present_dataStoragePreferences = true && 
(isSetDataStoragePreferences());
-    list.add(present_dataStoragePreferences);
-    if (present_dataStoragePreferences)
-      list.add(dataStoragePreferences);
+    boolean present_storagePreferences = true && (isSetStoragePreferences());
+    list.add(present_storagePreferences);
+    if (present_storagePreferences)
+      list.add(storagePreferences);
 
     return list.hashCode();
   }
@@ -531,12 +531,12 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
         return lastComparison;
       }
     }
-    lastComparison = 
Boolean.valueOf(isSetDataStoragePreferences()).compareTo(other.isSetDataStoragePreferences());
+    lastComparison = 
Boolean.valueOf(isSetStoragePreferences()).compareTo(other.isSetStoragePreferences());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetDataStoragePreferences()) {
-      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.dataStoragePreferences, 
other.dataStoragePreferences);
+    if (isSetStoragePreferences()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.storagePreferences, 
other.storagePreferences);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -588,13 +588,13 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
       }
       first = false;
     }
-    if (isSetDataStoragePreferences()) {
+    if (isSetStoragePreferences()) {
       if (!first) sb.append(", ");
-      sb.append("dataStoragePreferences:");
-      if (this.dataStoragePreferences == null) {
+      sb.append("storagePreferences:");
+      if (this.storagePreferences == null) {
         sb.append("null");
       } else {
-        sb.append(this.dataStoragePreferences);
+        sb.append(this.storagePreferences);
       }
       first = false;
     }
@@ -680,21 +680,21 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
             }
             break;
-          case 4: // DATA_STORAGE_PREFERENCES
+          case 4: // STORAGE_PREFERENCES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list3 = 
iprot.readListBegin();
-                struct.dataStoragePreferences = new 
ArrayList<DataStoragePreference>(_list3.size);
-                DataStoragePreference _elem4;
+                struct.storagePreferences = new 
ArrayList<StoragePreference>(_list3.size);
+                StoragePreference _elem4;
                 for (int _i5 = 0; _i5 < _list3.size; ++_i5)
                 {
-                  _elem4 = new DataStoragePreference();
+                  _elem4 = new StoragePreference();
                   _elem4.read(iprot);
-                  struct.dataStoragePreferences.add(_elem4);
+                  struct.storagePreferences.add(_elem4);
                 }
                 iprot.readListEnd();
               }
-              struct.setDataStoragePreferencesIsSet(true);
+              struct.setStoragePreferencesIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
             }
@@ -738,12 +738,12 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
           oprot.writeFieldEnd();
         }
       }
-      if (struct.dataStoragePreferences != null) {
-        if (struct.isSetDataStoragePreferences()) {
-          oprot.writeFieldBegin(DATA_STORAGE_PREFERENCES_FIELD_DESC);
+      if (struct.storagePreferences != null) {
+        if (struct.isSetStoragePreferences()) {
+          oprot.writeFieldBegin(STORAGE_PREFERENCES_FIELD_DESC);
           {
-            oprot.writeListBegin(new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, 
struct.dataStoragePreferences.size()));
-            for (DataStoragePreference _iter7 : struct.dataStoragePreferences)
+            oprot.writeListBegin(new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, 
struct.storagePreferences.size()));
+            for (StoragePreference _iter7 : struct.storagePreferences)
             {
               _iter7.write(oprot);
             }
@@ -777,7 +777,7 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
       if (struct.isSetComputeResourcePreferences()) {
         optionals.set(1);
       }
-      if (struct.isSetDataStoragePreferences()) {
+      if (struct.isSetStoragePreferences()) {
         optionals.set(2);
       }
       oprot.writeBitSet(optionals, 3);
@@ -793,10 +793,10 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
           }
         }
       }
-      if (struct.isSetDataStoragePreferences()) {
+      if (struct.isSetStoragePreferences()) {
         {
-          oprot.writeI32(struct.dataStoragePreferences.size());
-          for (DataStoragePreference _iter9 : struct.dataStoragePreferences)
+          oprot.writeI32(struct.storagePreferences.size());
+          for (StoragePreference _iter9 : struct.storagePreferences)
           {
             _iter9.write(oprot);
           }
@@ -831,16 +831,16 @@ public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayRe
       if (incoming.get(2)) {
         {
           org.apache.thrift.protocol.TList _list13 = new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, 
iprot.readI32());
-          struct.dataStoragePreferences = new 
ArrayList<DataStoragePreference>(_list13.size);
-          DataStoragePreference _elem14;
+          struct.storagePreferences = new 
ArrayList<StoragePreference>(_list13.size);
+          StoragePreference _elem14;
           for (int _i15 = 0; _i15 < _list13.size; ++_i15)
           {
-            _elem14 = new DataStoragePreference();
+            _elem14 = new StoragePreference();
             _elem14.read(iprot);
-            struct.dataStoragePreferences.add(_elem14);
+            struct.storagePreferences.add(_elem14);
           }
         }
-        struct.setDataStoragePreferencesIsSet(true);
+        struct.setStoragePreferencesIsSet(true);
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/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
new file mode 100644
index 0000000..269cb6d
--- /dev/null
+++ 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
@@ -0,0 +1,728 @@
+/**
+ * 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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.gatewayprofile;
+
+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.2)", date = 
"2015-11-17")
+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");
+
+  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)1);
+  private static final org.apache.thrift.protocol.TField 
LOGIN_USER_NAME_FIELD_DESC = new 
org.apache.thrift.protocol.TField("loginUserName", 
org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField 
FILE_SYSTEM_ROOT_LOCATION_FIELD_DESC = new 
org.apache.thrift.protocol.TField("fileSystemRootLocation", 
org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField 
RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC = new 
org.apache.thrift.protocol.TField("resourceSpecificCredentialStoreToken", 
org.apache.thrift.protocol.TType.STRING, (short)4);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new 
StoragePreferenceStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new StoragePreferenceTupleSchemeFactory());
+  }
+
+  private String storageResourceId; // required
+  private String loginUserName; // optional
+  private String fileSystemRootLocation; // optional
+  private String resourceSpecificCredentialStoreToken; // 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 {
+    STORAGE_RESOURCE_ID((short)1, "storageResourceId"),
+    LOGIN_USER_NAME((short)2, "loginUserName"),
+    FILE_SYSTEM_ROOT_LOCATION((short)3, "fileSystemRootLocation"),
+    RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN((short)4, 
"resourceSpecificCredentialStoreToken");
+
+    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: // STORAGE_RESOURCE_ID
+          return STORAGE_RESOURCE_ID;
+        case 2: // LOGIN_USER_NAME
+          return LOGIN_USER_NAME;
+        case 3: // FILE_SYSTEM_ROOT_LOCATION
+          return FILE_SYSTEM_ROOT_LOCATION;
+        case 4: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+          return RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN;
+        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 _Fields optionals[] = 
{_Fields.LOGIN_USER_NAME,_Fields.FILE_SYSTEM_ROOT_LOCATION,_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN};
+  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.STORAGE_RESOURCE_ID, new 
org.apache.thrift.meta_data.FieldMetaData("storageResourceId", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.LOGIN_USER_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("loginUserName", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.FILE_SYSTEM_ROOT_LOCATION, new 
org.apache.thrift.meta_data.FieldMetaData("fileSystemRootLocation", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN, new 
org.apache.thrift.meta_data.FieldMetaData("resourceSpecificCredentialStoreToken",
 org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(StoragePreference.class,
 metaDataMap);
+  }
+
+  public StoragePreference() {
+  }
+
+  public StoragePreference(
+    String storageResourceId)
+  {
+    this();
+    this.storageResourceId = storageResourceId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public StoragePreference(StoragePreference other) {
+    if (other.isSetStorageResourceId()) {
+      this.storageResourceId = other.storageResourceId;
+    }
+    if (other.isSetLoginUserName()) {
+      this.loginUserName = other.loginUserName;
+    }
+    if (other.isSetFileSystemRootLocation()) {
+      this.fileSystemRootLocation = other.fileSystemRootLocation;
+    }
+    if (other.isSetResourceSpecificCredentialStoreToken()) {
+      this.resourceSpecificCredentialStoreToken = 
other.resourceSpecificCredentialStoreToken;
+    }
+  }
+
+  public StoragePreference deepCopy() {
+    return new StoragePreference(this);
+  }
+
+  @Override
+  public void clear() {
+    this.storageResourceId = null;
+    this.loginUserName = null;
+    this.fileSystemRootLocation = null;
+    this.resourceSpecificCredentialStoreToken = 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 getLoginUserName() {
+    return this.loginUserName;
+  }
+
+  public void setLoginUserName(String loginUserName) {
+    this.loginUserName = loginUserName;
+  }
+
+  public void unsetLoginUserName() {
+    this.loginUserName = null;
+  }
+
+  /** Returns true if field loginUserName is set (has been assigned a value) 
and false otherwise */
+  public boolean isSetLoginUserName() {
+    return this.loginUserName != null;
+  }
+
+  public void setLoginUserNameIsSet(boolean value) {
+    if (!value) {
+      this.loginUserName = null;
+    }
+  }
+
+  public String getFileSystemRootLocation() {
+    return this.fileSystemRootLocation;
+  }
+
+  public void setFileSystemRootLocation(String fileSystemRootLocation) {
+    this.fileSystemRootLocation = fileSystemRootLocation;
+  }
+
+  public void unsetFileSystemRootLocation() {
+    this.fileSystemRootLocation = null;
+  }
+
+  /** Returns true if field fileSystemRootLocation is set (has been assigned a 
value) and false otherwise */
+  public boolean isSetFileSystemRootLocation() {
+    return this.fileSystemRootLocation != null;
+  }
+
+  public void setFileSystemRootLocationIsSet(boolean value) {
+    if (!value) {
+      this.fileSystemRootLocation = null;
+    }
+  }
+
+  public String getResourceSpecificCredentialStoreToken() {
+    return this.resourceSpecificCredentialStoreToken;
+  }
+
+  public void setResourceSpecificCredentialStoreToken(String 
resourceSpecificCredentialStoreToken) {
+    this.resourceSpecificCredentialStoreToken = 
resourceSpecificCredentialStoreToken;
+  }
+
+  public void unsetResourceSpecificCredentialStoreToken() {
+    this.resourceSpecificCredentialStoreToken = null;
+  }
+
+  /** Returns true if field resourceSpecificCredentialStoreToken is set (has 
been assigned a value) and false otherwise */
+  public boolean isSetResourceSpecificCredentialStoreToken() {
+    return this.resourceSpecificCredentialStoreToken != null;
+  }
+
+  public void setResourceSpecificCredentialStoreTokenIsSet(boolean value) {
+    if (!value) {
+      this.resourceSpecificCredentialStoreToken = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STORAGE_RESOURCE_ID:
+      if (value == null) {
+        unsetStorageResourceId();
+      } else {
+        setStorageResourceId((String)value);
+      }
+      break;
+
+    case LOGIN_USER_NAME:
+      if (value == null) {
+        unsetLoginUserName();
+      } else {
+        setLoginUserName((String)value);
+      }
+      break;
+
+    case FILE_SYSTEM_ROOT_LOCATION:
+      if (value == null) {
+        unsetFileSystemRootLocation();
+      } else {
+        setFileSystemRootLocation((String)value);
+      }
+      break;
+
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      if (value == null) {
+        unsetResourceSpecificCredentialStoreToken();
+      } else {
+        setResourceSpecificCredentialStoreToken((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STORAGE_RESOURCE_ID:
+      return getStorageResourceId();
+
+    case LOGIN_USER_NAME:
+      return getLoginUserName();
+
+    case FILE_SYSTEM_ROOT_LOCATION:
+      return getFileSystemRootLocation();
+
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return getResourceSpecificCredentialStoreToken();
+
+    }
+    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 STORAGE_RESOURCE_ID:
+      return isSetStorageResourceId();
+    case LOGIN_USER_NAME:
+      return isSetLoginUserName();
+    case FILE_SYSTEM_ROOT_LOCATION:
+      return isSetFileSystemRootLocation();
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return isSetResourceSpecificCredentialStoreToken();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof StoragePreference)
+      return this.equals((StoragePreference)that);
+    return false;
+  }
+
+  public boolean equals(StoragePreference that) {
+    if (that == null)
+      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_loginUserName = true && this.isSetLoginUserName();
+    boolean that_present_loginUserName = true && that.isSetLoginUserName();
+    if (this_present_loginUserName || that_present_loginUserName) {
+      if (!(this_present_loginUserName && that_present_loginUserName))
+        return false;
+      if (!this.loginUserName.equals(that.loginUserName))
+        return false;
+    }
+
+    boolean this_present_fileSystemRootLocation = true && 
this.isSetFileSystemRootLocation();
+    boolean that_present_fileSystemRootLocation = true && 
that.isSetFileSystemRootLocation();
+    if (this_present_fileSystemRootLocation || 
that_present_fileSystemRootLocation) {
+      if (!(this_present_fileSystemRootLocation && 
that_present_fileSystemRootLocation))
+        return false;
+      if (!this.fileSystemRootLocation.equals(that.fileSystemRootLocation))
+        return false;
+    }
+
+    boolean this_present_resourceSpecificCredentialStoreToken = true && 
this.isSetResourceSpecificCredentialStoreToken();
+    boolean that_present_resourceSpecificCredentialStoreToken = true && 
that.isSetResourceSpecificCredentialStoreToken();
+    if (this_present_resourceSpecificCredentialStoreToken || 
that_present_resourceSpecificCredentialStoreToken) {
+      if (!(this_present_resourceSpecificCredentialStoreToken && 
that_present_resourceSpecificCredentialStoreToken))
+        return false;
+      if 
(!this.resourceSpecificCredentialStoreToken.equals(that.resourceSpecificCredentialStoreToken))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_storageResourceId = true && (isSetStorageResourceId());
+    list.add(present_storageResourceId);
+    if (present_storageResourceId)
+      list.add(storageResourceId);
+
+    boolean present_loginUserName = true && (isSetLoginUserName());
+    list.add(present_loginUserName);
+    if (present_loginUserName)
+      list.add(loginUserName);
+
+    boolean present_fileSystemRootLocation = true && 
(isSetFileSystemRootLocation());
+    list.add(present_fileSystemRootLocation);
+    if (present_fileSystemRootLocation)
+      list.add(fileSystemRootLocation);
+
+    boolean present_resourceSpecificCredentialStoreToken = true && 
(isSetResourceSpecificCredentialStoreToken());
+    list.add(present_resourceSpecificCredentialStoreToken);
+    if (present_resourceSpecificCredentialStoreToken)
+      list.add(resourceSpecificCredentialStoreToken);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(StoragePreference other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    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(isSetLoginUserName()).compareTo(other.isSetLoginUserName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLoginUserName()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.loginUserName, 
other.loginUserName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetFileSystemRootLocation()).compareTo(other.isSetFileSystemRootLocation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileSystemRootLocation()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.fileSystemRootLocation, 
other.fileSystemRootLocation);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetResourceSpecificCredentialStoreToken()).compareTo(other.isSetResourceSpecificCredentialStoreToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceSpecificCredentialStoreToken()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.resourceSpecificCredentialStoreToken,
 other.resourceSpecificCredentialStoreToken);
+      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("StoragePreference(");
+    boolean first = true;
+
+    sb.append("storageResourceId:");
+    if (this.storageResourceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.storageResourceId);
+    }
+    first = false;
+    if (isSetLoginUserName()) {
+      if (!first) sb.append(", ");
+      sb.append("loginUserName:");
+      if (this.loginUserName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.loginUserName);
+      }
+      first = false;
+    }
+    if (isSetFileSystemRootLocation()) {
+      if (!first) sb.append(", ");
+      sb.append("fileSystemRootLocation:");
+      if (this.fileSystemRootLocation == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fileSystemRootLocation);
+      }
+      first = false;
+    }
+    if (isSetResourceSpecificCredentialStoreToken()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceSpecificCredentialStoreToken:");
+      if (this.resourceSpecificCredentialStoreToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceSpecificCredentialStoreToken);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetStorageResourceId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'storageResourceId' is unset! Struct:" + toString());
+    }
+
+    // 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 {
+      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 StoragePreferenceStandardSchemeFactory implements 
SchemeFactory {
+    public StoragePreferenceStandardScheme getScheme() {
+      return new StoragePreferenceStandardScheme();
+    }
+  }
+
+  private static class StoragePreferenceStandardScheme extends 
StandardScheme<StoragePreference> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, 
StoragePreference 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: // 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 2: // LOGIN_USER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.loginUserName = iprot.readString();
+              struct.setLoginUserNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 3: // FILE_SYSTEM_ROOT_LOCATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.fileSystemRootLocation = iprot.readString();
+              struct.setFileSystemRootLocationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 4: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceSpecificCredentialStoreToken = iprot.readString();
+              struct.setResourceSpecificCredentialStoreTokenIsSet(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, 
StoragePreference struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.storageResourceId != null) {
+        oprot.writeFieldBegin(STORAGE_RESOURCE_ID_FIELD_DESC);
+        oprot.writeString(struct.storageResourceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.loginUserName != null) {
+        if (struct.isSetLoginUserName()) {
+          oprot.writeFieldBegin(LOGIN_USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.loginUserName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.fileSystemRootLocation != null) {
+        if (struct.isSetFileSystemRootLocation()) {
+          oprot.writeFieldBegin(FILE_SYSTEM_ROOT_LOCATION_FIELD_DESC);
+          oprot.writeString(struct.fileSystemRootLocation);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.resourceSpecificCredentialStoreToken != null) {
+        if (struct.isSetResourceSpecificCredentialStoreToken()) {
+          
oprot.writeFieldBegin(RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC);
+          oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class StoragePreferenceTupleSchemeFactory implements 
SchemeFactory {
+    public StoragePreferenceTupleScheme getScheme() {
+      return new StoragePreferenceTupleScheme();
+    }
+  }
+
+  private static class StoragePreferenceTupleScheme extends 
TupleScheme<StoragePreference> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, 
StoragePreference struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.storageResourceId);
+      BitSet optionals = new BitSet();
+      if (struct.isSetLoginUserName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetFileSystemRootLocation()) {
+        optionals.set(1);
+      }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetLoginUserName()) {
+        oprot.writeString(struct.loginUserName);
+      }
+      if (struct.isSetFileSystemRootLocation()) {
+        oprot.writeString(struct.fileSystemRootLocation);
+      }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, 
StoragePreference struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.storageResourceId = iprot.readString();
+      struct.setStorageResourceIdIsSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.loginUserName = iprot.readString();
+        struct.setLoginUserNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.fileSystemRootLocation = iprot.readString();
+        struct.setFileSystemRootLocationIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.resourceSpecificCredentialStoreToken = iprot.readString();
+        struct.setResourceSpecificCredentialStoreTokenIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
 
b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
index 01dd216..14a5712 100644
--- 
a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
+++ 
b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
@@ -25,20 +25,17 @@ import java.util.*;
 
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.gfac.core.context.ProcessContext;
 import 
org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
 import org.apache.airavata.model.appcatalog.computeresource.*;
 import 
org.apache.airavata.model.appcatalog.computeresource.DataMovementInterface;
 import 
org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
 import 
org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
 import 
org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
-import 
org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
 import org.apache.airavata.model.process.ProcessModel;
 import org.apache.airavata.orchestrator.core.OrchestratorConfiguration;
 import org.apache.airavata.orchestrator.core.context.OrchestratorContext;
 import org.apache.airavata.orchestrator.core.exception.OrchestratorException;
-import org.apache.airavata.registry.core.app.catalog.model.*;
-import 
org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
 import org.apache.airavata.registry.cpi.*;
 import org.apache.airavata.registry.cpi.ApplicationInterface;
 import org.slf4j.Logger;
@@ -110,11 +107,11 @@ public class OrchestratorUtils {
         }
     }
 
-    public static DataStoragePreference 
getDateStoragePreference(OrchestratorContext context, ProcessModel 
processModel, String gatewayId) throws RegistryException {
+    public static StoragePreference getStoragePreference(OrchestratorContext 
context, ProcessModel processModel, String gatewayId) throws RegistryException {
         try {
             GwyResourceProfile gatewayProfile = 
context.getRegistry().getAppCatalog().getGatewayProfile();
             String resourceHostId = processModel.getComputeResourceId();
-            return gatewayProfile.getDataStoragePreference(gatewayId, 
resourceHostId);
+            return gatewayProfile.getStoragePreference(gatewayId, 
resourceHostId);
         } catch (AppCatalogException e) {
             logger.error("Error occurred while initializing app catalog", e);
             throw new RegistryException("Error occurred while initializing app 
catalog", e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/GwyResourceProfileImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/GwyResourceProfileImpl.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/GwyResourceProfileImpl.java
index a72ebff..925073f 100644
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/GwyResourceProfileImpl.java
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/GwyResourceProfileImpl.java
@@ -22,8 +22,8 @@
 package org.apache.airavata.registry.core.app.catalog.impl;
 
 import 
org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
-import 
org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference;
 import 
org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
+import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
 import org.apache.airavata.registry.core.app.catalog.resources.*;
 import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogThriftConversion;
 import org.apache.airavata.registry.cpi.AppCatalogException;
@@ -75,11 +75,11 @@ public class GwyResourceProfileImpl implements 
GwyResourceProfile {
                     resource.save();
                 }
             }
-            List<DataStoragePreference> dataStoragePreferences = 
gatewayProfile.getDataStoragePreferences();
+            List<StoragePreference> dataStoragePreferences = 
gatewayProfile.getStoragePreferences();
             if (dataStoragePreferences != null && 
!dataStoragePreferences.isEmpty()){
-                for (DataStoragePreference storagePreference : 
dataStoragePreferences){
-                    DataStoragePreferenceResource resource = new 
DataStoragePreferenceResource();
-                    
resource.setDataMoveId(storagePreference.getDataMovememtResourceId());
+                for (StoragePreference storagePreference : 
dataStoragePreferences){
+                    StoragePreferenceResource resource = new 
StoragePreferenceResource();
+                    
resource.setStorageResourceId(storagePreference.getStorageResourceId());
                     resource.setGatewayId(profileResource.getGatewayID());
                     
resource.setFsRootLocation(storagePreference.getFileSystemRootLocation());
                     
resource.setLoginUserName(storagePreference.getLoginUserName());
@@ -128,11 +128,11 @@ public class GwyResourceProfileImpl implements 
GwyResourceProfile {
                     resource.save();
                 }
             }
-            List<DataStoragePreference> dataStoragePreferences = 
updatedProfile.getDataStoragePreferences();
+            List<StoragePreference> dataStoragePreferences = 
updatedProfile.getStoragePreferences();
             if (dataStoragePreferences != null && 
!dataStoragePreferences.isEmpty()){
-                for (DataStoragePreference storagePreference : 
dataStoragePreferences){
-                    DataStoragePreferenceResource resource = new 
DataStoragePreferenceResource();
-                    
resource.setDataMoveId(storagePreference.getDataMovememtResourceId());
+                for (StoragePreference storagePreference : 
dataStoragePreferences){
+                    StoragePreferenceResource resource = new 
StoragePreferenceResource();
+                    
resource.setStorageResourceId(storagePreference.getStorageResourceId());
                     resource.setGatewayId(profileResource.getGatewayID());
                     
resource.setFsRootLocation(storagePreference.getFileSystemRootLocation());
                     
resource.setLoginUserName(storagePreference.getLoginUserName());
@@ -155,7 +155,7 @@ public class GwyResourceProfileImpl implements 
GwyResourceProfile {
             ComputeHostPreferenceResource prefResource = new 
ComputeHostPreferenceResource();
             List<AppCatalogResource> computePrefList = 
prefResource.get(AppCatAbstractResource.ComputeResourcePreferenceConstants.GATEWAY_ID,
 gatewayId);
             List<ComputeResourcePreference> computeResourcePreferences = 
AppCatalogThriftConversion.getComputeResourcePreferences(computePrefList);
-            List<DataStoragePreference> dataStoragePreferences = 
getAllDataStoragePreferences(gatewayId);
+            List<StoragePreference> dataStoragePreferences = 
getAllStoragePreferences(gatewayId);
             return 
AppCatalogThriftConversion.getGatewayResourceProfile(gwresource, 
computeResourcePreferences, dataStoragePreferences);
         }catch (Exception e) {
             logger.error("Error while retrieving gateway profile...", e);
@@ -193,10 +193,10 @@ public class GwyResourceProfileImpl implements 
GwyResourceProfile {
     @Override
     public boolean removeDataStoragePreferenceFromGateway(String gatewayId, 
String preferenceId) throws AppCatalogException {
         try {
-            DataStoragePreferenceResource resource = new 
DataStoragePreferenceResource();
+            StoragePreferenceResource resource = new 
StoragePreferenceResource();
             Map<String, String> ids = new HashMap<String, String>();
-            
ids.put(AppCatAbstractResource.DataStoragePreferenceConstants.GATEWAY_ID, 
gatewayId);
-            
ids.put(AppCatAbstractResource.DataStoragePreferenceConstants.DATA_MOVEMENT_ID, 
preferenceId);
+            
ids.put(AppCatAbstractResource.StoragePreferenceConstants.GATEWAY_ID, 
gatewayId);
+            
ids.put(AppCatAbstractResource.StoragePreferenceConstants.STORAGE_ID, 
preferenceId);
             resource.remove(ids);
             return true;
         }catch (Exception e) {
@@ -242,14 +242,14 @@ public class GwyResourceProfileImpl implements 
GwyResourceProfile {
     }
 
     @Override
-    public DataStoragePreference getDataStoragePreference(String gatewayId, 
String dataMoveId) throws AppCatalogException {
+    public StoragePreference getStoragePreference(String gatewayId, String 
dataMoveId) throws AppCatalogException {
         try {
-            DataStoragePreferenceResource prefResource = new 
DataStoragePreferenceResource();
+            StoragePreferenceResource prefResource = new 
StoragePreferenceResource();
             List<AppCatalogResource> computePrefList = 
prefResource.get(AppCatAbstractResource.ComputeResourcePreferenceConstants.GATEWAY_ID,
 gatewayId);
             for (AppCatalogResource resource : computePrefList){
-                DataStoragePreferenceResource dsP = 
(DataStoragePreferenceResource) resource;
-                if (dsP.getDataMoveId() != null && 
!dsP.getDataMoveId().equals("")){
-                    if (dsP.getDataMoveId().equals(dataMoveId)){
+                StoragePreferenceResource dsP = (StoragePreferenceResource) 
resource;
+                if (dsP.getStorageResourceId() != null && 
!dsP.getStorageResourceId().equals("")){
+                    if (dsP.getStorageResourceId().equals(dataMoveId)){
                         return 
AppCatalogThriftConversion.getDataStoragePreference(dsP);
                     }
                 }
@@ -278,10 +278,10 @@ public class GwyResourceProfileImpl implements 
GwyResourceProfile {
     }
 
     @Override
-    public List<DataStoragePreference> getAllDataStoragePreferences(String 
gatewayId) throws AppCatalogException {
+    public List<StoragePreference> getAllStoragePreferences(String gatewayId) 
throws AppCatalogException {
         try {
-            DataStoragePreferenceResource prefResource = new 
DataStoragePreferenceResource();
-            List<AppCatalogResource> dataStoragePrefList = 
prefResource.get(AppCatAbstractResource.DataStoragePreferenceConstants.GATEWAY_ID,
 gatewayId);
+            StoragePreferenceResource prefResource = new 
StoragePreferenceResource();
+            List<AppCatalogResource> dataStoragePrefList = 
prefResource.get(AppCatAbstractResource.StoragePreferenceConstants.GATEWAY_ID, 
gatewayId);
             return 
AppCatalogThriftConversion.getDataStoragePreferences(dataStoragePrefList);
         }catch (Exception e) {
             logger.error("Error while retrieving data storage preference...", 
e);
@@ -317,7 +317,7 @@ public class GwyResourceProfileImpl implements 
GwyResourceProfile {
                 for (AppCatalogResource resource : resourceList){
                     GatewayProfileResource gatewayProfileResource = 
(GatewayProfileResource)resource;
                     List<ComputeResourcePreference> computeResourcePreferences 
= getAllComputeResourcePreferences(gatewayProfileResource.getGatewayID());
-                    List<DataStoragePreference> dataStoragePreferences = 
getAllDataStoragePreferences(gatewayProfileResource.getGatewayID());
+                    List<StoragePreference> dataStoragePreferences = 
getAllStoragePreferences(gatewayProfileResource.getGatewayID());
                     GatewayResourceProfile gatewayResourceProfile = 
AppCatalogThriftConversion.getGatewayResourceProfile(gatewayProfileResource, 
computeResourcePreferences, dataStoragePreferences);
                     gatewayResourceProfileList.add(gatewayResourceProfile);
                 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/StorageResourceImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/StorageResourceImpl.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/StorageResourceImpl.java
index 64b9e73..0c3a6be 100644
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/StorageResourceImpl.java
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/StorageResourceImpl.java
@@ -46,7 +46,7 @@ public class StorageResourceImpl implements StorageResource {
                        StorageResourceDescription description) throws 
AppCatalogException {
                //TODO remove existing one
         StorageResourceResource storageResourceResource = 
saveStorageResource(description);
-               return storageResourceResource.getResourceId();
+               return storageResourceResource.getStorageResourceId();
        }
 
        protected StorageResourceResource saveStorageResource(
@@ -176,7 +176,7 @@ public class StorageResourceImpl implements StorageResource 
{
             if (allStorageResources != null && !allStorageResources.isEmpty()){
                 for (AppCatalogResource sr : allStorageResources){
                     StorageResourceResource srr = 
(StorageResourceResource)allStorageResources;
-                    storageResourceMap.put(srr.getResourceId(), 
srr.getHostName());
+                    storageResourceMap.put(srr.getStorageResourceId(), 
srr.getHostName());
                 }
             }
             return storageResourceMap;
@@ -202,7 +202,7 @@ public class StorageResourceImpl implements StorageResource 
{
                 for (AppCatalogResource sr : allStorageResources){
                     StorageResourceResource srr = (StorageResourceResource)sr;
                     if(srr.isEnabled()) {
-                        storageResourceMap.put(srr.getResourceId(), 
srr.getHostName());
+                        storageResourceMap.put(srr.getStorageResourceId(), 
srr.getHostName());
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageInterface.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageInterface.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageInterface.java
deleted file mode 100644
index 624ba07..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageInterface.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.registry.core.app.catalog.model;
-
-import javax.persistence.*;
-import java.io.Serializable;
-import java.sql.Timestamp;
-
-@Entity
-@Table(name = "DATA_STORAGE_INTERFACE")
-@IdClass(DataStorageInterface_PK.class)
-public class DataStorageInterface implements Serializable {
-       
-       @Id
-       @Column(name = "STORAGE_RESOURCE_ID")
-       private String computeResourceId;
-       
-       @ManyToOne(cascade= CascadeType.MERGE)
-       @JoinColumn(name = "COMPUTE_RESOURCE_ID")
-       private ComputeResource computeResource;
-       
-       @Column(name = "DATA_MOVEMENT_PROTOCOL")
-       private String dataMovementProtocol;
-       
-       @Id
-       @Column(name = "DATA_MOVEMENT_INTERFACE_ID")
-       private String dataMovementInterfaceId;
-       
-       @Column(name = "PRIORITY_ORDER")
-       private int priorityOrder;
-
-    @Column(name = "CREATION_TIME")
-    private Timestamp creationTime;
-
-    @Column(name = "UPDATE_TIME")
-    private Timestamp updateTime;
-
-    public Timestamp getCreationTime() {
-        return creationTime;
-    }
-
-    public void setCreationTime(Timestamp creationTime) {
-        this.creationTime = creationTime;
-    }
-
-    public Timestamp getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Timestamp updateTime) {
-        this.updateTime = updateTime;
-    }
-
-
-    public String getComputeResourceId() {
-               return computeResourceId;
-       }
-       
-       public ComputeResource getComputeResource() {
-               return computeResource;
-       }
-       
-       public String getDataMovementProtocol() {
-               return dataMovementProtocol;
-       }
-       
-       public String getDataMovementInterfaceId() {
-               return dataMovementInterfaceId;
-       }
-       
-       public int getPriorityOrder() {
-               return priorityOrder;
-       }
-       
-       public void setComputeResourceId(String computeResourceId) {
-               this.computeResourceId=computeResourceId;
-       }
-       
-       public void setComputeResource(ComputeResource computeResource) {
-               this.computeResource=computeResource;
-       }
-       
-       public void setDataMovementProtocol(String dataMovementProtocol) {
-               this.dataMovementProtocol=dataMovementProtocol;
-       }
-       
-       public void setDataMovementInterfaceId(String dataMovementInterfaceId) {
-               this.dataMovementInterfaceId=dataMovementInterfaceId;
-       }
-       
-       public void setPriorityOrder(int priorityOrder) {
-               this.priorityOrder=priorityOrder;
-       }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageInterface_PK.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageInterface_PK.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageInterface_PK.java
deleted file mode 100644
index e1c164e..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageInterface_PK.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.
- *
- */
-
-package org.apache.airavata.registry.core.app.catalog.model;
-
-import java.io.Serializable;
-
-public class DataStorageInterface_PK implements Serializable {
-       private String storageResourceId;
-       private String dataMovementInterfaceId;
-       public DataStorageInterface_PK(String storageResourceId, String 
dataMovementInterfaceId){
-               this.storageResourceId = storageResourceId;
-               this.dataMovementInterfaceId = dataMovementInterfaceId;
-       }
-
-       public DataStorageInterface_PK() {
-       }
-       
-       @Override
-       public boolean equals(Object o) {
-               return false;
-       }
-       
-       @Override
-       public int hashCode() {
-               return 1;
-       }
-
-    public String getStorageResourceId() {
-        return storageResourceId;
-    }
-
-    public void setStorageResourceId(String storageResourceId) {
-        this.storageResourceId = storageResourceId;
-    }
-
-    public String getDataMovementInterfaceId() {
-               return dataMovementInterfaceId;
-       }
-       
-       public void setDataMovementInterfaceId(String dataMovementInterfaceId) {
-               this.dataMovementInterfaceId=dataMovementInterfaceId;
-       }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreference.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreference.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreference.java
deleted file mode 100644
index 601f0db..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreference.java
+++ /dev/null
@@ -1,96 +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.app.catalog.model;
-
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = "DATA_STORAGE_PREFERENCE")
-@IdClass(DataStoragePreferencePK.class)
-public class DataStoragePreference {
-    @Id
-    @Column(name = "GATEWAY_ID")
-    private String gatewayId;
-    @Id
-    @Column(name = "DATA_MOVEMENT_ID")
-    private String dataMovementId;
-    @Column(name = "LOGIN_USERNAME")
-    private String loginUserName;
-    @Column(name = "FS_ROOT_LOCATION")
-    private String fsRootLocation;
-    @Column(name = "RESOURCE_CS_TOKEN")
-    private String computeResourceCSToken;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "GATEWAY_ID")
-    private GatewayProfile gatewayProfile;
-
-    public String getGatewayId() {
-        return gatewayId;
-    }
-
-    public void setGatewayId(String gatewayId) {
-        this.gatewayId = gatewayId;
-    }
-
-    public GatewayProfile getGatewayProfile() {
-        return gatewayProfile;
-    }
-
-    public void setGatewayProfile(GatewayProfile gatewayProfile) {
-        this.gatewayProfile = gatewayProfile;
-    }
-
-    public String getLoginUserName() {
-        return loginUserName;
-    }
-
-    public void setLoginUserName(String loginUserName) {
-        this.loginUserName = loginUserName;
-    }
-
-    public String getComputeResourceCSToken() {
-        return computeResourceCSToken;
-    }
-
-    public void setComputeResourceCSToken(String computeResourceCSToken) {
-        this.computeResourceCSToken = computeResourceCSToken;
-    }
-
-    public String getDataMovementID() {
-        return dataMovementId;
-    }
-
-    public void setDataMovementID(String dataMovementId) {
-        this.dataMovementId = dataMovementId;
-    }
-
-    public String getFsRootLocation() {
-        return fsRootLocation;
-    }
-
-    public void setFsRootLocation(String fsRootLocation) {
-        this.fsRootLocation = fsRootLocation;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreferencePK.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreferencePK.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreferencePK.java
deleted file mode 100644
index b33f221..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreferencePK.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.registry.core.app.catalog.model;
-
-import java.io.Serializable;
-
-public class DataStoragePreferencePK implements Serializable {
-    private String gatewayId;
-    private String dataMovementId;
-
-    public DataStoragePreferencePK(String gatewayId, String dataMoveId) {
-        this.gatewayId = gatewayId;
-        this.dataMovementId = dataMoveId;
-    }
-
-    public DataStoragePreferencePK() {
-        ;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        return false;
-    }
-
-    @Override
-    public int hashCode() {
-        return 1;
-    }
-
-    public String getGatewayId() {
-        return gatewayId;
-    }
-
-    public void setGatewayId(String gatewayId) {
-        this.gatewayId = gatewayId;
-    }
-
-    public String getDataMoveId() {
-        return dataMovementId;
-    }
-
-    public void setDataMoveId(String dataMoveId) {
-        this.dataMovementId = dataMoveId;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageResource.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageResource.java
index 7179360..3ecbe29 100644
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageResource.java
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStorageResource.java
@@ -27,7 +27,7 @@ import java.sql.Timestamp;
 
 @Entity
 @Table(name = "DATA_STORAGE_INTERFACE")
-@IdClass(DataStorageInterface_PK.class)
+@IdClass(StorageInterface_PK.class)
 public class DataStorageResource implements Serializable {
        
        @Id

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StorageInterface.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StorageInterface.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StorageInterface.java
new file mode 100644
index 0000000..f509dfd
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StorageInterface.java
@@ -0,0 +1,102 @@
+/*
+ *
+ * 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.app.catalog.model;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name = "STORAGE_INTERFACE")
+@IdClass(StorageInterface_PK.class)
+public class StorageInterface implements Serializable {
+
+    @Id
+    @Column(name = "STORAGE_RESOURCE_ID")
+    private String storageResourceId;
+
+    @ManyToOne(cascade = CascadeType.MERGE)
+    @JoinColumn(name = "STORAGE_RESOURCE_ID")
+    private StorageResource storageResource;
+
+    @Column(name = "DATA_MOVEMENT_PROTOCOL")
+    private String dataMovementProtocol;
+
+    @Id
+    @Column(name = "DATA_MOVEMENT_INTERFACE_ID")
+    private String dataMovementInterfaceId;
+
+    @Column(name = "CREATION_TIME")
+    private Timestamp creationTime;
+
+    @Column(name = "UPDATE_TIME")
+    private Timestamp updateTime;
+
+    public Timestamp getCreationTime() {
+        return creationTime;
+    }
+
+    public void setCreationTime(Timestamp creationTime) {
+        this.creationTime = creationTime;
+    }
+
+    public Timestamp getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Timestamp updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getDataMovementProtocol() {
+        return dataMovementProtocol;
+    }
+
+    public String getDataMovementInterfaceId() {
+        return dataMovementInterfaceId;
+    }
+
+    public void setDataMovementProtocol(String dataMovementProtocol) {
+        this.dataMovementProtocol = dataMovementProtocol;
+    }
+
+    public void setDataMovementInterfaceId(String dataMovementInterfaceId) {
+        this.dataMovementInterfaceId = dataMovementInterfaceId;
+    }
+
+    public String getStorageResourceId() {
+        return storageResourceId;
+    }
+
+    public void setStorageResourceId(String storageResourceId) {
+        this.storageResourceId = storageResourceId;
+    }
+
+    public StorageResource getStorageResource() {
+        return storageResource;
+    }
+
+    public void setStorageResource(StorageResource storageResource) {
+        this.storageResource = storageResource;
+    }
+}
+       

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StorageInterface_PK.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StorageInterface_PK.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StorageInterface_PK.java
new file mode 100644
index 0000000..def0ba2
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StorageInterface_PK.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.
+ *
+ */
+
+package org.apache.airavata.registry.core.app.catalog.model;
+
+import java.io.Serializable;
+
+public class StorageInterface_PK implements Serializable {
+       private String storageResourceId;
+       private String dataMovementInterfaceId;
+       public StorageInterface_PK(String storageResourceId, String 
dataMovementInterfaceId){
+               this.storageResourceId = storageResourceId;
+               this.dataMovementInterfaceId = dataMovementInterfaceId;
+       }
+
+       public StorageInterface_PK() {
+       }
+       
+       @Override
+       public boolean equals(Object o) {
+               return false;
+       }
+       
+       @Override
+       public int hashCode() {
+               return 1;
+       }
+
+    public String getStorageResourceId() {
+        return storageResourceId;
+    }
+
+    public void setStorageResourceId(String storageResourceId) {
+        this.storageResourceId = storageResourceId;
+    }
+
+    public String getDataMovementInterfaceId() {
+               return dataMovementInterfaceId;
+       }
+       
+       public void setDataMovementInterfaceId(String dataMovementInterfaceId) {
+               this.dataMovementInterfaceId=dataMovementInterfaceId;
+       }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StoragePreference.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StoragePreference.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StoragePreference.java
new file mode 100644
index 0000000..0aafa66
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StoragePreference.java
@@ -0,0 +1,95 @@
+/*
+ *
+ * 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.app.catalog.model;
+
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "STORAGE_PREFERENCE")
+@IdClass(StoragePreferencePK.class)
+public class StoragePreference {
+    @Id
+    @Column(name = "GATEWAY_ID")
+    private String gatewayId;
+    @Id
+    @Column(name = "STORAGE_RESOURCE_ID")
+    private String storageResourceId;
+    @Column(name = "LOGIN_USERNAME")
+    private String loginUserName;
+    @Column(name = "FS_ROOT_LOCATION")
+    private String fsRootLocation;
+    @Column(name = "RESOURCE_CS_TOKEN")
+    private String computeResourceCSToken;
+
+    @ManyToOne(cascade= CascadeType.MERGE)
+    @JoinColumn(name = "GATEWAY_ID")
+    private GatewayProfile gatewayProfile;
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public GatewayProfile getGatewayProfile() {
+        return gatewayProfile;
+    }
+
+    public void setGatewayProfile(GatewayProfile gatewayProfile) {
+        this.gatewayProfile = gatewayProfile;
+    }
+
+    public String getLoginUserName() {
+        return loginUserName;
+    }
+
+    public void setLoginUserName(String loginUserName) {
+        this.loginUserName = loginUserName;
+    }
+
+    public String getComputeResourceCSToken() {
+        return computeResourceCSToken;
+    }
+
+    public void setComputeResourceCSToken(String computeResourceCSToken) {
+        this.computeResourceCSToken = computeResourceCSToken;
+    }
+
+    public String getFsRootLocation() {
+        return fsRootLocation;
+    }
+
+    public void setFsRootLocation(String fsRootLocation) {
+        this.fsRootLocation = fsRootLocation;
+    }
+
+    public String getStorageResourceId() {
+        return storageResourceId;
+    }
+
+    public void setStorageResourceId(String storageResourceId) {
+        this.storageResourceId = storageResourceId;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b50f7a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StoragePreferencePK.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StoragePreferencePK.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StoragePreferencePK.java
new file mode 100644
index 0000000..aff3912
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/StoragePreferencePK.java
@@ -0,0 +1,64 @@
+/*
+ *
+ * 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.app.catalog.model;
+
+import java.io.Serializable;
+
+public class StoragePreferencePK implements Serializable {
+    private String gatewayId;
+    private String storageResourceId;
+
+    public StoragePreferencePK(String gatewayId, String storageResourceId) {
+        this.gatewayId = gatewayId;
+        this.storageResourceId = storageResourceId;
+    }
+
+    public StoragePreferencePK() {
+        ;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return 1;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public String getStorageResourceId() {
+        return storageResourceId;
+    }
+
+    public void setStorageResourceId(String storageResourceId) {
+        this.storageResourceId = storageResourceId;
+    }
+}

Reply via email to