[ 
https://issues.apache.org/jira/browse/AIRAVATA-2712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16418118#comment-16418118
 ] 

ASF GitHub Bot commented on AIRAVATA-2712:
------------------------------------------

machristie closed pull request #185: [AIRAVATA-2712] Refactoring App Catalog 
Implementation - UserResourceProfile
URL: https://github.com/apache/airavata/pull/185
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserComputeResourcePreferenceEntity.java
 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserComputeResourcePreferenceEntity.java
new file mode 100644
index 0000000000..3250b69393
--- /dev/null
+++ 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserComputeResourcePreferenceEntity.java
@@ -0,0 +1,198 @@
+/*
+ *
+ * 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.entities.appcatalog;
+
+import javax.persistence.*;
+import java.sql.Timestamp;
+
+/**
+ * The persistent class for the user_compute_resource_preference database 
table.
+ */
+@Entity
+@Table(name = "USER_COMPUTE_RESOURCE_PREFERENCE")
+@IdClass(UserComputeResourcePreferencePK.class)
+public class UserComputeResourcePreferenceEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name = "RESOURCE_ID")
+    private String computeResourceId;
+
+    @Id
+    @Column(name = "USER_ID")
+    private String userId;
+
+    @Id
+    @Column(name = "GATEWAY_ID")
+    private String gatewayId;
+
+    @Column(name = "PREFERED_BATCH_QUEUE")
+    private String preferredBatchQueue;
+
+    @Column(name = "RESOURCE_CS_TOKEN")
+    private String resourceSpecificCredentialStoreToken;
+
+    @Column(name = "LOGIN_USERNAME")
+    private String loginUserName;
+
+    @Column(name = "ALLOCATION_PROJECT_NUMBER")
+    private String allocationProjectNumber;
+
+    @Column(name = "QUALITY_OF_SERVICE")
+    private String qualityOfService;
+
+    @Column(name = "RESERVATION")
+    private String reservation;
+
+    @Column(name = "RESERVATION_START_TIME")
+    private Timestamp reservationStartTime;
+
+    @Column(name = "RESERVATION_END_TIME")
+    private Timestamp reservationEndTime;
+
+    @Column(name = "SCRATCH_LOCATION")
+    private String scratchLocation;
+
+    @Column(name = "VALIDATED")
+    private boolean validated;
+
+    @ManyToOne(targetEntity = UserResourceProfileEntity.class, cascade = 
CascadeType.MERGE)
+    @JoinColumns({
+            @JoinColumn(name = "USER_ID"),
+            @JoinColumn(name="GATEWAY_ID")
+    })
+    private UserResourceProfileEntity userResourceProfile;
+
+    public UserComputeResourcePreferenceEntity() {
+    }
+
+    public String getComputeResourceId() {
+        return computeResourceId;
+    }
+
+    public void setComputeResourceId(String computeResourceId) {
+        this.computeResourceId = computeResourceId;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public String getPreferredBatchQueue() {
+        return preferredBatchQueue;
+    }
+
+    public void setPreferredBatchQueue(String preferredBatchQueue) {
+        this.preferredBatchQueue = preferredBatchQueue;
+    }
+
+    public String getResourceSpecificCredentialStoreToken() {
+        return resourceSpecificCredentialStoreToken;
+    }
+
+    public void setResourceSpecificCredentialStoreToken(String 
resourceSpecificCredentialStoreToken) {
+        this.resourceSpecificCredentialStoreToken = 
resourceSpecificCredentialStoreToken;
+    }
+
+    public String getLoginUserName() {
+        return loginUserName;
+    }
+
+    public void setLoginUserName(String loginUserName) {
+        this.loginUserName = loginUserName;
+    }
+
+    public String getAllocationProjectNumber() {
+        return allocationProjectNumber;
+    }
+
+    public void setAllocationProjectNumber(String allocationProjectNumber) {
+        this.allocationProjectNumber = allocationProjectNumber;
+    }
+
+    public String getQualityOfService() {
+        return qualityOfService;
+    }
+
+    public void setQualityOfService(String qualityOfService) {
+        this.qualityOfService = qualityOfService;
+    }
+
+    public String getReservation() {
+        return reservation;
+    }
+
+    public void setReservation(String reservation) {
+        this.reservation = reservation;
+    }
+
+    public Timestamp getReservationStartTime() {
+        return reservationStartTime;
+    }
+
+    public void setReservationStartTime(Timestamp reservationStartTime) {
+        this.reservationStartTime = reservationStartTime;
+    }
+
+    public Timestamp getReservationEndTime() {
+        return reservationEndTime;
+    }
+
+    public void setReservationEndTime(Timestamp reservationEndTime) {
+        this.reservationEndTime = reservationEndTime;
+    }
+
+    public String getScratchLocation() {
+        return scratchLocation;
+    }
+
+    public void setScratchLocation(String scratchLocation) {
+        this.scratchLocation = scratchLocation;
+    }
+
+    public boolean isValidated() {
+        return validated;
+    }
+
+    public void setValidated(boolean validated) {
+        this.validated = validated;
+    }
+
+    public UserResourceProfileEntity getUserResourceProfile() {
+        return userResourceProfile;
+    }
+
+    public void setUserResourceProfile(UserResourceProfileEntity 
userResourceProfile) {
+        this.userResourceProfile = userResourceProfile;
+    }
+}
diff --git 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserComputeResourcePreferencePK.java
 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserComputeResourcePreferencePK.java
new file mode 100644
index 0000000000..e40ea53491
--- /dev/null
+++ 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserComputeResourcePreferencePK.java
@@ -0,0 +1,90 @@
+/*
+ *
+ * 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.entities.appcatalog;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+/**
+ * The primary key class for the user_compute_resource_preference database 
table.
+ *
+ */
+public class UserComputeResourcePreferencePK implements Serializable {
+    //default serial version id, required for serializable classes.
+    private static final long serialVersionUID = 1L;
+
+    private String computeResourceId;
+    private String userId;
+    private String gatewayId;
+
+    public UserComputeResourcePreferencePK() {
+    }
+
+    public String getComputeResourceId() {
+        return computeResourceId;
+    }
+
+    public void setComputeResourceId(String computeResourceId) {
+        this.computeResourceId = computeResourceId;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public boolean equals(Object other) {
+        if (this == other) {
+            return true;
+        }
+        if (!(other instanceof UserComputeResourcePreferencePK)) {
+            return false;
+        }
+        UserComputeResourcePreferencePK castOther = 
(UserComputeResourcePreferencePK)other;
+        return
+                this.computeResourceId.equals(castOther.computeResourceId)
+                    && this.userId.equals(castOther.userId)
+                        && this.gatewayId.equals(castOther.gatewayId);
+    }
+
+    public int hashCode() {
+        final int prime = 31;
+        int hash = 17;
+        hash = hash * prime + this.computeResourceId.hashCode();
+        hash = hash * prime + this.userId.hashCode();
+        hash = hash * prime + this.gatewayId.hashCode();
+
+        return hash;
+    }
+
+}
diff --git 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserResourceProfileEntity.java
 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserResourceProfileEntity.java
new file mode 100644
index 0000000000..2756219271
--- /dev/null
+++ 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserResourceProfileEntity.java
@@ -0,0 +1,142 @@
+/*
+ *
+ * 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.entities.appcatalog;
+
+import java.util.*;
+import javax.persistence.*;
+import java.sql.Timestamp;
+
+/**
+ * The persistent class for the user_resource_profile database table.
+ */
+@Entity
+@Table(name = "USER_RESOURCE_PROFILE")
+@IdClass(UserResourceProfilePK.class)
+public class UserResourceProfileEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name = "USER_ID")
+    private String userId;
+
+    @Id
+    @Column(name = "GATEWAY_ID")
+    private String gatewayId;
+
+    @Column(name = "CS_TOKEN")
+    private String credentialStoreToken;
+
+    @Column(name = "IDENTITY_SERVER_PWD_CRED_TOKEN")
+    private String identityServerPwdCredToken;
+
+    @Column(name = "IDENTITY_SERVER_TENANT")
+    private String identityServerTenant;
+
+    @Column(name = "CREATION_TIME")
+    private Timestamp creationTime;
+
+    @Column(name = "UPDATE_TIME")
+    private Timestamp updateTime;
+
+    @OneToMany (targetEntity = UserComputeResourcePreferenceEntity.class, 
cascade = CascadeType.ALL,
+            mappedBy = "userResourceProfile", fetch = FetchType.EAGER)
+    private List<UserComputeResourcePreferenceEntity> 
userComputeResourcePreferences;
+
+    @OneToMany (targetEntity = UserStoragePreferenceEntity.class, cascade = 
CascadeType.ALL,
+            mappedBy = "userResourceProfile", fetch = FetchType.EAGER)
+    private List<UserStoragePreferenceEntity> userStoragePreferences;
+
+    public UserResourceProfileEntity() {
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public String getCredentialStoreToken() {
+        return credentialStoreToken;
+    }
+
+    public void setCredentialStoreToken(String credentialStoreToken) {
+        this.credentialStoreToken = credentialStoreToken;
+    }
+
+    public String getIdentityServerPwdCredToken() {
+        return identityServerPwdCredToken;
+    }
+
+    public void setIdentityServerPwdCredToken(String 
identityServerPwdCredToken) {
+        this.identityServerPwdCredToken = identityServerPwdCredToken;
+    }
+
+    public String getIdentityServerTenant() {
+        return identityServerTenant;
+    }
+
+    public void setIdentityServerTenant(String identityServerTenant) {
+        this.identityServerTenant = identityServerTenant;
+    }
+
+    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 List<UserComputeResourcePreferenceEntity> 
getUserComputeResourcePreferences() {
+        return userComputeResourcePreferences;
+    }
+
+    public void 
setUserComputeResourcePreferences(List<UserComputeResourcePreferenceEntity> 
userComputeResourcePreferences) {
+        this.userComputeResourcePreferences = userComputeResourcePreferences;
+    }
+
+    public List<UserStoragePreferenceEntity> getUserStoragePreferences() {
+        return userStoragePreferences;
+    }
+
+    public void setUserStoragePreferences(List<UserStoragePreferenceEntity> 
userStoragePreferences) {
+        this.userStoragePreferences = userStoragePreferences;
+    }
+
+}
diff --git 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserResourceProfilePK.java
 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserResourceProfilePK.java
new file mode 100644
index 0000000000..6b530e99c4
--- /dev/null
+++ 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserResourceProfilePK.java
@@ -0,0 +1,78 @@
+/*
+ *
+ * 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.entities.appcatalog;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+/**
+ * The primary key class for the user_resource_profile database table.
+ *
+ */
+public class UserResourceProfilePK implements Serializable {
+    //default serial version id, required for serializable classes.
+    private static final long serialVersionUID = 1L;
+
+    private String userId;
+    private String gatewayId;
+
+    public UserResourceProfilePK() {
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public boolean equals(Object other) {
+        if (this == other) {
+            return true;
+        }
+        if (!(other instanceof UserResourceProfilePK)) {
+            return false;
+        }
+        UserResourceProfilePK castOther = (UserResourceProfilePK)other;
+        return
+                this.userId.equals(castOther.userId)
+                        && this.gatewayId.equals(castOther.gatewayId);
+    }
+
+    public int hashCode() {
+        final int prime = 31;
+        int hash = 17;
+        hash = hash * prime + this.userId.hashCode();
+        hash = hash * prime + this.gatewayId.hashCode();
+
+        return hash;
+    }
+}
diff --git 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserStoragePreferenceEntity.java
 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserStoragePreferenceEntity.java
new file mode 100644
index 0000000000..8d73eafa24
--- /dev/null
+++ 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserStoragePreferenceEntity.java
@@ -0,0 +1,121 @@
+/*
+ *
+ * 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.entities.appcatalog;
+
+import javax.persistence.*;
+
+/**
+ * The persistent class for the user_storage_preference database table.
+ */
+@Entity
+@Table(name = "USER_STORAGE_PREFERENCE")
+@IdClass(UserStoragePreferencePK.class)
+public class UserStoragePreferenceEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name = "STORAGE_RESOURCE_ID")
+    private String storageResourceId;
+
+    @Id
+    @Column(name = "USER_ID")
+    private String userId;
+
+    @Id
+    @Column(name = "GATEWAY_ID")
+    private String gatewayId;
+
+    @Column(name = "RESOURCE_CS_TOKEN")
+    private String resourceSpecificCredentialStoreToken;
+
+    @Column(name = "FS_ROOT_LOCATION")
+    private String fileSystemRootLocation;
+
+    @Column(name = "LOGIN_USERNAME")
+    private String loginUserName;
+
+    @ManyToOne(targetEntity = UserResourceProfileEntity.class, cascade = 
CascadeType.MERGE)
+    @JoinColumns({
+            @JoinColumn(name = "USER_ID"),
+            @JoinColumn(name="GATEWAY_ID")
+    })
+    private UserResourceProfileEntity userResourceProfile;
+
+    public UserStoragePreferenceEntity() {
+    }
+
+    public String getStorageResourceId() {
+        return storageResourceId;
+    }
+
+    public void setStorageResourceId(String storageResourceId) {
+        this.storageResourceId = storageResourceId;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public String getResourceSpecificCredentialStoreToken() {
+        return resourceSpecificCredentialStoreToken;
+    }
+
+    public void setResourceSpecificCredentialStoreToken(String 
resourceSpecificCredentialStoreToken) {
+        this.resourceSpecificCredentialStoreToken = 
resourceSpecificCredentialStoreToken;
+    }
+
+    public String getFileSystemRootLocation() {
+        return fileSystemRootLocation;
+    }
+
+    public void setFileSystemRootLocation(String fileSystemRootLocation) {
+        this.fileSystemRootLocation = fileSystemRootLocation;
+    }
+
+    public String getLoginUserName() {
+        return loginUserName;
+    }
+
+    public void setLoginUserName(String loginUserName) {
+        this.loginUserName = loginUserName;
+    }
+
+    public UserResourceProfileEntity getUserResourceProfile() {
+        return userResourceProfile;
+    }
+
+    public void setUserResourceProfile(UserResourceProfileEntity 
userResourceProfile) {
+        this.userResourceProfile = userResourceProfile;
+    }
+
+}
diff --git 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserStoragePreferencePK.java
 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserStoragePreferencePK.java
new file mode 100644
index 0000000000..fa11d85179
--- /dev/null
+++ 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserStoragePreferencePK.java
@@ -0,0 +1,90 @@
+/*
+ *
+ * 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.entities.appcatalog;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+/**
+ * The primary key class for the user_storage_preference database table.
+ *
+ */
+public class UserStoragePreferencePK implements Serializable {
+    //default serial version id, required for serializable classes.
+    private static final long serialVersionUID = 1L;
+
+    private String storageResourceId;
+    private String userId;
+    private String gatewayId;
+
+    public UserStoragePreferencePK() {
+    }
+
+    public String getStorageResourceId() {
+        return storageResourceId;
+    }
+
+    public void setStorageResourceId(String storageResourceId) {
+        this.storageResourceId = storageResourceId;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public boolean equals(Object other) {
+        if (this == other) {
+            return true;
+        }
+        if (!(other instanceof UserStoragePreferencePK)) {
+            return false;
+        }
+        UserStoragePreferencePK castOther = (UserStoragePreferencePK)other;
+        return
+                this.storageResourceId.equals(castOther.storageResourceId)
+                    && this.userId.equals(castOther.userId)
+                        && this.gatewayId.equals(castOther.gatewayId);
+    }
+
+    public int hashCode() {
+        final int prime = 31;
+        int hash = 17;
+        hash = hash * prime + this.storageResourceId.hashCode();
+        hash = hash * prime + this.userId.hashCode();
+        hash = hash * prime + this.gatewayId.hashCode();
+
+        return hash;
+    }
+
+}
diff --git 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserComputeResourcePreferenceRepository.java
 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserComputeResourcePreferenceRepository.java
new file mode 100644
index 0000000000..3b2d3098a4
--- /dev/null
+++ 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserComputeResourcePreferenceRepository.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.core.repositories.appcatalog;
+
+import 
org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
+import 
org.apache.airavata.registry.core.entities.appcatalog.UserComputeResourcePreferenceEntity;
+import 
org.apache.airavata.registry.core.entities.appcatalog.UserComputeResourcePreferencePK;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class UserComputeResourcePreferenceRepository extends 
AppCatAbstractRepository<UserComputeResourcePreference, 
UserComputeResourcePreferenceEntity, UserComputeResourcePreferencePK> {
+    private final static Logger logger = 
LoggerFactory.getLogger(UserComputeResourcePreferenceRepository.class);
+
+    public UserComputeResourcePreferenceRepository() {
+        super(UserComputeResourcePreference.class, 
UserComputeResourcePreferenceEntity.class);
+    }
+
+}
diff --git 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserResourceProfileRepository.java
 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserResourceProfileRepository.java
new file mode 100644
index 0000000000..5cf0c1126a
--- /dev/null
+++ 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserResourceProfileRepository.java
@@ -0,0 +1,207 @@
+/**
+ *
+ * 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.repositories.appcatalog;
+
+import 
org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
+import 
org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
+import 
org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
+import 
org.apache.airavata.registry.core.entities.appcatalog.UserComputeResourcePreferencePK;
+import 
org.apache.airavata.registry.core.entities.appcatalog.UserResourceProfileEntity;
+import 
org.apache.airavata.registry.core.entities.appcatalog.UserResourceProfilePK;
+import 
org.apache.airavata.registry.core.entities.appcatalog.UserStoragePreferencePK;
+import org.apache.airavata.registry.core.utils.DBConstants;
+import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
+import org.apache.airavata.registry.core.utils.QueryConstants;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.apache.airavata.registry.cpi.CompositeIdentifier;
+import org.apache.airavata.registry.cpi.UsrResourceProfile;
+import org.dozer.Mapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.sql.Timestamp;
+import java.util.*;
+
+public class UserResourceProfileRepository extends 
AppCatAbstractRepository<UserResourceProfile, UserResourceProfileEntity, 
UserResourceProfilePK> implements UsrResourceProfile {
+    private final static Logger logger = 
LoggerFactory.getLogger(UserResourceProfileRepository.class);
+
+    public UserResourceProfileRepository() {
+        super(UserResourceProfile.class, UserResourceProfileEntity.class);
+    }
+
+    protected String saveUserResourceProfileData(UserResourceProfile 
userResourceProfile) throws AppCatalogException {
+        UserResourceProfileEntity userResourceProfileEntity = 
saveUserResourceProfile(userResourceProfile);
+        return userResourceProfileEntity.getUserId();
+    }
+
+    protected UserResourceProfileEntity 
saveUserResourceProfile(UserResourceProfile userResourceProfile) throws 
AppCatalogException {
+        String userId = userResourceProfile.getUserId();
+        String gatewayId = userResourceProfile.getGatewayID();
+        Mapper mapper = ObjectMapperSingleton.getInstance();
+        UserResourceProfileEntity userResourceProfileEntity = 
mapper.map(userResourceProfile, UserResourceProfileEntity.class);
+
+        if (userResourceProfileEntity.getUserComputeResourcePreferences() != 
null) {
+            logger.debug("Populating the Primary Key 
UserComputeResourcePreferences objects for the User Resource Profile");
+            
userResourceProfileEntity.getUserComputeResourcePreferences().forEach(userComputeResourcePreferenceEntity
 -> { userComputeResourcePreferenceEntity.setUserId(userId);
+                userComputeResourcePreferenceEntity.setGatewayId(gatewayId); 
});
+        }
+
+        if (userResourceProfileEntity.getUserStoragePreferences() != null) {
+            logger.debug("Populating the Primary Key UserStoragePreferences 
objects for the User Resource Profile");
+            
userResourceProfileEntity.getUserStoragePreferences().forEach(userStoragePreferenceEntity
 -> { userStoragePreferenceEntity.setUserId(userId);
+                userStoragePreferenceEntity.setGatewayId(gatewayId); });
+        }
+
+        if (!isUserResourceProfileExists(userId, gatewayId)) {
+            logger.debug("Checking if the User Resource Profile already 
exists");
+            userResourceProfileEntity.setCreationTime(new 
Timestamp(System.currentTimeMillis()));
+        }
+
+        userResourceProfileEntity.setUpdateTime(new 
Timestamp(System.currentTimeMillis()));
+        return execute(entityManager -> 
entityManager.merge(userResourceProfileEntity));
+    }
+
+    @Override
+    public String addUserResourceProfile(UserResourceProfile 
userResourceProfile) throws AppCatalogException {
+        return saveUserResourceProfileData(userResourceProfile);
+    }
+
+    @Override
+    public void updateUserResourceProfile(String userId, String gatewayId, 
UserResourceProfile updatedProfile) throws AppCatalogException {
+        saveUserResourceProfileData(updatedProfile);
+    }
+
+    @Override
+    public UserResourceProfile getUserResourceProfile(String userId, String 
gatewayId) throws AppCatalogException {
+        UserResourceProfilePK userResourceProfilePK = new 
UserResourceProfilePK();
+        userResourceProfilePK.setUserId(userId);
+        userResourceProfilePK.setGatewayId(gatewayId);
+        UserResourceProfile userResourceProfile = get(userResourceProfilePK);
+        return userResourceProfile;
+    }
+
+    @Override
+    public UserComputeResourcePreference 
getUserComputeResourcePreference(String userId, String gatewayId, String 
hostId) throws AppCatalogException {
+        UserComputeResourcePreferenceRepository 
userComputeResourcePreferenceRepository = new 
UserComputeResourcePreferenceRepository();
+        UserComputeResourcePreferencePK userComputeResourcePreferencePK = new 
UserComputeResourcePreferencePK();
+        userComputeResourcePreferencePK.setUserId(userId);
+        userComputeResourcePreferencePK.setGatewayId(gatewayId);
+        userComputeResourcePreferencePK.setComputeResourceId(hostId);
+        UserComputeResourcePreference userComputeResourcePreference = 
userComputeResourcePreferenceRepository.get(userComputeResourcePreferencePK);
+        return userComputeResourcePreference;
+    }
+
+    @Override
+    public UserStoragePreference getUserStoragePreference(String userId, 
String gatewayId, String storageId) throws AppCatalogException {
+        UserStoragePreferenceRepository userStoragePreferenceRepository = new 
UserStoragePreferenceRepository();
+        UserStoragePreferencePK userStoragePreferencePK = new 
UserStoragePreferencePK();
+        userStoragePreferencePK.setUserId(userId);
+        userStoragePreferencePK.setGatewayId(gatewayId);
+        userStoragePreferencePK.setStorageResourceId(storageId);
+        UserStoragePreference userStoragePreference = 
userStoragePreferenceRepository.get(userStoragePreferencePK);
+        return userStoragePreference;
+    }
+
+    @Override
+    public List<UserResourceProfile> getAllUserResourceProfiles() throws 
AppCatalogException {
+        List<UserResourceProfile> userResourceProfileList = 
select(QueryConstants.GET_ALL_USER_RESOURCE_PROFILE, 0);
+        return userResourceProfileList;
+    }
+
+    @Override
+    public List<UserComputeResourcePreference> 
getAllUserComputeResourcePreferences(String userId, String gatewayId) throws 
AppCatalogException {
+        UserComputeResourcePreferenceRepository 
userComputeResourcePreferenceRepository = new 
UserComputeResourcePreferenceRepository();
+        Map<String, Object> queryParameters = new HashMap<>();
+        queryParameters.put(DBConstants.UserComputeResourcePreference.USER_ID, 
userId);
+        
queryParameters.put(DBConstants.UserComputeResourcePreference.GATEWAY_ID, 
gatewayId);
+        List<UserComputeResourcePreference> userComputeResourcePreferenceList =
+                
userComputeResourcePreferenceRepository.select(QueryConstants.GET_ALL_USER_COMPUTE_RESOURCE_PREFERENCE,
 -1, 0, queryParameters);
+        return userComputeResourcePreferenceList;
+    }
+
+    @Override
+    public List<UserStoragePreference> getAllUserStoragePreferences(String 
userId, String gatewayId) throws AppCatalogException {
+        UserStoragePreferenceRepository userStoragePreferenceRepository = new 
UserStoragePreferenceRepository();
+        Map<String, Object> queryParameters = new HashMap<>();
+        queryParameters.put(DBConstants.UserStoragePreference.USER_ID, userId);
+        queryParameters.put(DBConstants.UserStoragePreference.GATEWAY_ID, 
gatewayId);
+        List<UserStoragePreference> userStoragePreferenceList =
+                
userStoragePreferenceRepository.select(QueryConstants.GET_ALL_USER_STORAGE_PREFERENCE,
 -1, 0, queryParameters);
+        return userStoragePreferenceList;
+    }
+
+    @Override
+    public List<String> getGatewayProfileIds(String gatewayName) throws 
AppCatalogException {
+        Map<String, Object> queryParameters = new HashMap<>();
+        queryParameters.put(DBConstants.UserResourceProfile.GATEWAY_ID, 
gatewayName);
+        List<UserResourceProfile> userResourceProfileList = 
select(QueryConstants.GET_ALL_GATEWAY_ID, -1, 0, queryParameters);
+        List<String> gatewayIdList = new ArrayList<>();
+        for (UserResourceProfile userResourceProfile : 
userResourceProfileList) {
+            gatewayIdList.add(userResourceProfile.getGatewayID());
+        }
+        return gatewayIdList;
+    }
+
+    @Override
+    public String getUserNamefromID(String userId, String gatewayID) throws 
AppCatalogException {
+        return userId;
+    }
+
+    @Override
+    public boolean removeUserResourceProfile(String userId, String gatewayId) 
throws AppCatalogException {
+        UserResourceProfilePK userResourceProfilePK = new 
UserResourceProfilePK();
+        userResourceProfilePK.setUserId(userId);
+        userResourceProfilePK.setGatewayId(gatewayId);
+        return delete(userResourceProfilePK);
+    }
+
+    @Override
+    public boolean removeUserComputeResourcePreferenceFromGateway(String 
userId, String gatewayId, String preferenceId) throws AppCatalogException {
+        UserComputeResourcePreferenceRepository 
userComputeResourcePreferenceRepository = new 
UserComputeResourcePreferenceRepository();
+        UserComputeResourcePreferencePK userComputeResourcePreferencePK = new 
UserComputeResourcePreferencePK();
+        userComputeResourcePreferencePK.setUserId(userId);
+        userComputeResourcePreferencePK.setGatewayId(gatewayId);
+        userComputeResourcePreferencePK.setComputeResourceId(preferenceId);
+        return 
userComputeResourcePreferenceRepository.delete(userComputeResourcePreferencePK);
+    }
+
+    @Override
+    public boolean removeUserDataStoragePreferenceFromGateway(String userId, 
String gatewayId, String preferenceId) throws AppCatalogException {
+        UserStoragePreferenceRepository userStoragePreferenceRepository = new 
UserStoragePreferenceRepository();
+        UserStoragePreferencePK userStoragePreferencePK = new 
UserStoragePreferencePK();
+        userStoragePreferencePK.setUserId(userId);
+        userStoragePreferencePK.setGatewayId(gatewayId);
+        userStoragePreferencePK.setStorageResourceId(preferenceId);
+        return userStoragePreferenceRepository.delete(userStoragePreferencePK);
+    }
+
+    @Override
+    public boolean isUserResourceProfileExists(String userId, String 
gatewayId) throws AppCatalogException {
+        UserResourceProfilePK userResourceProfilePK = new 
UserResourceProfilePK();
+        userResourceProfilePK.setUserId(userId);
+        userResourceProfilePK.setGatewayId(gatewayId);
+        return isExists(userResourceProfilePK);
+    }
+
+    public static Logger getLogger() {
+        return logger;
+    }
+
+}
diff --git 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserStoragePreferenceRepository.java
 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserStoragePreferenceRepository.java
new file mode 100644
index 0000000000..3c21ca90e3
--- /dev/null
+++ 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserStoragePreferenceRepository.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.core.repositories.appcatalog;
+
+import 
org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
+import 
org.apache.airavata.registry.core.entities.appcatalog.UserStoragePreferenceEntity;
+import 
org.apache.airavata.registry.core.entities.appcatalog.UserStoragePreferencePK;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class UserStoragePreferenceRepository extends 
AppCatAbstractRepository<UserStoragePreference, UserStoragePreferenceEntity, 
UserStoragePreferencePK> {
+    private final static Logger logger = 
LoggerFactory.getLogger(UserStoragePreferenceRepository.class);
+
+    public UserStoragePreferenceRepository() {
+        super(UserStoragePreference.class, UserStoragePreferenceEntity.class);
+    }
+
+}
diff --git 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/utils/DBConstants.java
 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/utils/DBConstants.java
index b79e8db62c..531153d422 100644
--- 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/utils/DBConstants.java
+++ 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/utils/DBConstants.java
@@ -26,4 +26,21 @@
         public static final String GROUP_RESOURCE_PROFILE_ID = 
"groupResourceProfileId";
     }
 
+    public static class UserResourceProfile {
+        public static final String USER_ID = "userId";
+        public static final String GATEWAY_ID = "gatewayId";
+    }
+
+    public static class UserComputeResourcePreference {
+        public static final String USER_ID = "userId";
+        public static final String GATEWAY_ID = "gatewayId";
+        public static final String COMPUTE_RESOURCE_ID = "computeResourceId";
+    }
+
+    public static class UserStoragePreference {
+        public static final String USER_ID = "userId";
+        public static final String GATEWAY_ID = "gatewayId";
+        public static final String STORAGE_RESOURCE_ID = "storageResourceId";
+    }
+
 }
diff --git 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/utils/QueryConstants.java
 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/utils/QueryConstants.java
index 73ab4d6932..57e7f231cd 100644
--- 
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/utils/QueryConstants.java
+++ 
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/utils/QueryConstants.java
@@ -37,4 +37,17 @@
             "WHERE BQ.groupResourceProfileId LIKE : " + 
DBConstants.GroupResourceProfile.GROUP_RESOURCE_PROFILE_ID;
     String FIND_ALL_GROUP_COMPUTE_RESOURCE_POLICY = "SELECT CR FROM "+ 
ComputeResourcePolicyEntity.class.getSimpleName() + " CR " +
             "WHERE CR.groupResourceProfileId LIKE : " + 
DBConstants.GroupResourceProfile.GROUP_RESOURCE_PROFILE_ID;
+
+    String GET_ALL_USER_RESOURCE_PROFILE = "SELECT URP FROM " + 
UserResourceProfileEntity.class.getSimpleName() + " URP";
+    String GET_ALL_GATEWAY_ID = "SELECT DISTINCT URP FROM " + 
UserResourceProfileEntity.class.getSimpleName() + " URP " +
+            "WHERE URP.gatewayId LIKE :" + 
DBConstants.UserResourceProfile.GATEWAY_ID;
+
+    String GET_ALL_USER_COMPUTE_RESOURCE_PREFERENCE = "SELECT UCRP FROM " + 
UserComputeResourcePreferenceEntity.class.getSimpleName() + " UCRP " +
+            "WHERE UCRP.userId LIKE :" + 
DBConstants.UserComputeResourcePreference.USER_ID + " AND UCRP.gatewayId LIKE 
:" +
+            DBConstants.UserComputeResourcePreference.GATEWAY_ID;
+
+    String GET_ALL_USER_STORAGE_PREFERENCE = "SELECT USP FROM " + 
UserStoragePreferenceEntity.class.getSimpleName() + " USP " +
+            "WHERE USP.userId LIKE :" + 
DBConstants.UserStoragePreference.USER_ID + " AND USP.gatewayId LIKE :" +
+            DBConstants.UserStoragePreference.GATEWAY_ID;
+
 }
diff --git 
a/modules/registry-refactoring/src/main/resources/META-INF/persistence.xml 
b/modules/registry-refactoring/src/main/resources/META-INF/persistence.xml
index a7edb6d3d0..8418eb975e 100644
--- a/modules/registry-refactoring/src/main/resources/META-INF/persistence.xml
+++ b/modules/registry-refactoring/src/main/resources/META-INF/persistence.xml
@@ -122,6 +122,9 @@
         
<class>org.apache.airavata.registry.core.entities.appcatalog.StorageInterfacePK</class>
         
<class>org.apache.airavata.registry.core.entities.appcatalog.JobManagerCommandPK</class>
         
<class>org.apache.airavata.registry.core.entities.appcatalog.ParallelismCommandPK</class>
+        
<class>org.apache.airavata.registry.core.entities.appcatalog.UserResourceProfileEntity</class>
+        
<class>org.apache.airavata.registry.core.entities.appcatalog.UserComputeResourcePreferenceEntity</class>
+        
<class>org.apache.airavata.registry.core.entities.appcatalog.UserStoragePreferenceEntity</class>
         <exclude-unlisted-classes>true</exclude-unlisted-classes>
     </persistence-unit>
 </persistence>
diff --git 
a/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/UserResourceProfileRepositoryTest.java
 
b/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/UserResourceProfileRepositoryTest.java
new file mode 100644
index 0000000000..47fbfea57f
--- /dev/null
+++ 
b/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/UserResourceProfileRepositoryTest.java
@@ -0,0 +1,97 @@
+package org.apache.airavata.registry.core.repositories.appcatalog;
+
+import 
org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
+import 
org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
+import 
org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
+import org.apache.airavata.registry.core.repositories.util.Initialize;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.*;
+
+public class UserResourceProfileRepositoryTest {
+
+    private static Initialize initialize;
+    private UserResourceProfileRepository userResourceProfileRepository;
+    private String userId = "testUser";
+    private String gatewayId = "testGateway";
+    private static final Logger logger = 
LoggerFactory.getLogger(UserResourceProfileRepositoryTest.class);
+
+    @Before
+    public void setUp() {
+        try {
+            initialize = new Initialize("appcatalog-derby.sql");
+            initialize.initializeDB();
+            userResourceProfileRepository = new 
UserResourceProfileRepository();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+        }
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        System.out.println("********** TEAR DOWN ************");
+        initialize.stopDerbyServer();
+    }
+
+    @Test
+    public void UserResourceProfileRepositoryTest() throws AppCatalogException 
{
+        UserComputeResourcePreference userComputeResourcePreference = new 
UserComputeResourcePreference();
+        userComputeResourcePreference.setComputeResourceId("computeResource1");
+        userComputeResourcePreference.setLoginUserName(userId);
+        userComputeResourcePreference.setPreferredBatchQueue("queue1");
+        userComputeResourcePreference.setScratchLocation("location1");
+
+        UserStoragePreference userStoragePreference = new 
UserStoragePreference();
+        userStoragePreference.setStorageResourceId("storageResource1");
+        userStoragePreference.setLoginUserName(userId);
+        userStoragePreference.setFileSystemRootLocation("location2");
+        
userStoragePreference.setResourceSpecificCredentialStoreToken("token1");
+
+        UserResourceProfile userResourceProfile = new UserResourceProfile();
+        userResourceProfile.setUserId(userId);
+        userResourceProfile.setGatewayID(gatewayId);
+        userResourceProfile.setCredentialStoreToken("token");
+        
userResourceProfile.setUserComputeResourcePreferences(Arrays.asList(userComputeResourcePreference));
+        
userResourceProfile.setUserStoragePreferences(Arrays.asList(userStoragePreference));
+        userResourceProfile.setIdentityServerTenant("tenant1");
+        userResourceProfile.setIdentityServerPwdCredToken("password");
+        if (!userResourceProfileRepository.isUserResourceProfileExists(userId, 
gatewayId))
+            
userResourceProfileRepository.addUserResourceProfile(userResourceProfile);
+        assertEquals(userId, userResourceProfile.getUserId());
+
+        userResourceProfile.setIdentityServerTenant("tenant2");
+        userResourceProfileRepository.updateUserResourceProfile(userId, 
gatewayId, userResourceProfile);
+
+        UserResourceProfile retrievedUserResourceProfile = 
userResourceProfileRepository.getUserResourceProfile(userId, gatewayId);
+        
assertTrue(retrievedUserResourceProfile.getUserStoragePreferences().size() == 
1);
+        assertEquals(userResourceProfile.getIdentityServerTenant(), 
retrievedUserResourceProfile.getIdentityServerTenant());
+
+        UserComputeResourcePreference retrievedUserComputeResourcePreference = 
userResourceProfileRepository.getUserComputeResourcePreference(
+                userId, gatewayId, 
userComputeResourcePreference.getComputeResourceId());
+        assertEquals(userComputeResourcePreference.getLoginUserName(), 
retrievedUserComputeResourcePreference.getLoginUserName());
+
+        UserStoragePreference retrievedUserStoragePreference = 
userResourceProfileRepository.getUserStoragePreference(
+                userId, gatewayId, 
userStoragePreference.getStorageResourceId());
+        assertEquals(userStoragePreference.getFileSystemRootLocation(), 
retrievedUserStoragePreference.getFileSystemRootLocation());
+
+        
assertTrue(userResourceProfileRepository.getAllUserResourceProfiles().size() == 
1);
+        
assertTrue(userResourceProfileRepository.getAllUserComputeResourcePreferences(userId,
 gatewayId).size() == 1);
+        
assertTrue(userResourceProfileRepository.getAllUserStoragePreferences(userId, 
gatewayId).size() == 1);
+        
assertTrue(userResourceProfileRepository.getGatewayProfileIds(gatewayId).size() 
== 1);
+        assertEquals(userId, 
userResourceProfileRepository.getUserNamefromID(userId, gatewayId));
+
+        
userResourceProfileRepository.removeUserComputeResourcePreferenceFromGateway(userId,
 gatewayId, userComputeResourcePreference.getComputeResourceId());
+        
userResourceProfileRepository.removeUserDataStoragePreferenceFromGateway(userId,
 gatewayId, userStoragePreference.getStorageResourceId());
+        userResourceProfileRepository.removeUserResourceProfile(userId, 
gatewayId);
+
+    }
+
+}
diff --git 
a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java
 
b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java
index b3ef0318f9..df0fa54221 100644
--- 
a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java
+++ 
b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java
@@ -26,14 +26,14 @@
 
 public interface UsrResourceProfile {
     /**
-     * This method will add a gateway profile
+     * This method will add user resource profile
      * @param userResourceProfile object of User resource profile
      * @return gateway id
      */
     String addUserResourceProfile(UserResourceProfile userResourceProfile) 
throws AppCatalogException;
 
     /**
-     * This method will update a gateway profile
+     * This method will update user resource profile
      * @param userId unique User id
      * @param gatewayId unique gateway id
      * @param updatedProfile updated profile
@@ -43,22 +43,38 @@
     /**
      * @param userId
      * @param gatewayId
-     * @return
+     * @return UserResourceProfile
      */
     UserResourceProfile getUserResourceProfile(String userId, String 
gatewayId) throws AppCatalogException;
 
     /**
-     * This method will remove a gateway profile
+     * This method will remove a user resource profile
      * @param userId
      * @param gatewayId unique gateway id
      * @return true or false
      */
     boolean removeUserResourceProfile(String userId, String gatewayId) throws 
AppCatalogException;
+
+    /**
+     * This method will remove a user compute resource preference
+     * @param userId
+     * @param gatewayId unique gateway id
+     * @param preferenceId
+     * @return true or false
+     */
     boolean removeUserComputeResourcePreferenceFromGateway(String userId, 
String gatewayId, String preferenceId) throws AppCatalogException;
+
+    /**
+     * This method will remove a user storage preference
+     * @param userId
+     * @param gatewayId unique gateway id
+     * @param preferenceId
+     * @return true or false
+     */
     boolean removeUserDataStoragePreferenceFromGateway(String userId, String 
gatewayId, String preferenceId) throws AppCatalogException;
 
     /**
-     * This method will check whether gateway profile exists
+     * This method will check whether user resource profile exists
      * @param userId
      * @param gatewayId unique gateway id
      * @return true or false
@@ -70,21 +86,46 @@
      * @param userId
      * @param gatewayId
      * @param hostId
-     * @return ComputeResourcePreference
+     * @return UserComputeResourcePreference
      */
     UserComputeResourcePreference getUserComputeResourcePreference(String 
userId, String gatewayId, String hostId) throws AppCatalogException;
-    UserStoragePreference getUserStoragePreference(String userId, String 
gatewayId, String storageId) throws AppCatalogException;
 
+    /**
+     * @param userId
+     * @param gatewayId
+     * @return UserStoragePreference
+     */
+    UserStoragePreference getUserStoragePreference(String userId, String 
gatewayId, String storageId) throws AppCatalogException;
 
+    /**
+     * @param gatewayName
+     * @return List of gateway ids
+     */
     List<String> getGatewayProfileIds(String gatewayName) throws 
AppCatalogException;
 
-    /* Implementing this method is critical to validate User Resource Profile
-     *
+    /**
+     * @param userId
+     * @param gatewayID
+     * @return username
      */
     String getUserNamefromID(String userId, String gatewayID) throws 
AppCatalogException;
 
+    /**
+     * @param userId
+     * @param gatewayId
+     * @return List of UserComputeResourcePreference for given user and gateway
+     */
     List<UserComputeResourcePreference> getAllUserComputeResourcePreferences 
(String userId, String gatewayId) throws AppCatalogException;
+
+    /**
+     * @param userId
+     * @param gatewayId
+     * @return List of UserStoragePreference for given user and gateway
+     */
     List<UserStoragePreference> getAllUserStoragePreferences(String userId, 
String gatewayId) throws AppCatalogException;
 
+    /**
+     * @return List of user resource profiles
+     */
     List<UserResourceProfile> getAllUserResourceProfiles() throws 
AppCatalogException;
 }
diff --git 
a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
 
b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
index b7d9a47ba5..d8e7fb978d 100644
--- 
a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
+++ 
b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
@@ -68,6 +68,7 @@
 import 
org.apache.airavata.registry.core.repositories.appcatalog.ComputeResourceRepository;
 import 
org.apache.airavata.registry.core.repositories.appcatalog.GroupResourceProfileRepository;
 import 
org.apache.airavata.registry.core.repositories.appcatalog.GwyResourceProfileRepository;
+import 
org.apache.airavata.registry.core.repositories.appcatalog.UserResourceProfileRepository;
 import org.apache.airavata.registry.cpi.*;
 import org.apache.airavata.registry.cpi.utils.Constants;
 import org.apache.thrift.TException;
@@ -83,6 +84,7 @@
     private AppCatalog appCatalog;
     private ReplicaCatalog dataCatalog;
     private WorkflowCatalog workflowCatalog;
+    private UserResourceProfileRepository userResourceProfileRepository = new 
UserResourceProfileRepository();
 
     /**
      * Fetch Apache Registry API version
@@ -4352,9 +4354,7 @@ public String 
registerUserResourceProfile(UserResourceProfile userResourceProfil
                 logger.error("User does not exist.Please provide a valid user 
ID...");
                 throw new RegistryServiceException("User does not exist.Please 
provide a valid user ID...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            String resourceProfile = 
userProfile.addUserResourceProfile(userResourceProfile);
+            String resourceProfile = 
userResourceProfileRepository.addUserResourceProfile(userResourceProfile);
             logger.debug("Airavata registered user resource profile with 
gateway id : " + userResourceProfile.getGatewayID() + "and user id : " + 
userResourceProfile.getUserId());
             return resourceProfile;
         } catch (AppCatalogException e) {
@@ -4384,9 +4384,7 @@ public UserResourceProfile getUserResourceProfile(String 
userId, String gatewayI
                 logger.error("user does not exist.Please provide a valid 
gateway id...");
                 throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile usrResourceProfile = 
appCatalog.getUserResourceProfile();
-            UserResourceProfile userResourceProfile = 
usrResourceProfile.getUserResourceProfile(userId,gatewayId);
+            UserResourceProfile userResourceProfile = 
userResourceProfileRepository.getUserResourceProfile(userId, gatewayId);
             logger.debug("Airavata retrieved User resource profile with user 
id : " + userId);
             return userResourceProfile;
         } catch (AppCatalogException e) {
@@ -4418,9 +4416,7 @@ public boolean updateUserResourceProfile(String userId, 
String gatewayID, UserRe
                 logger.error("User does not exist.Please provide a valid user 
id...");
                 throw new RegistryServiceException("user does not exist.Please 
provide a valid user id...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            userProfile.updateUserResourceProfile(userId, gatewayID, 
userResourceProfile);
+            userResourceProfileRepository.updateUserResourceProfile(userId, 
gatewayID, userResourceProfile);
             logger.debug("Airavata updated gateway profile with gateway id : " 
+ userId);
             return true;
         } catch (AppCatalogException e) {
@@ -4450,9 +4446,7 @@ public boolean deleteUserResourceProfile(String userId, 
String gatewayID) throws
                 logger.error("user does not exist.Please provide a valid user 
id...");
                 throw new RegistryServiceException("user does not exist.Please 
provide a valid user id...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userResourceProfile = 
appCatalog.getUserResourceProfile();
-            userResourceProfile.removeUserResourceProfile(userId, gatewayID);
+            userResourceProfileRepository.removeUserResourceProfile(userId, 
gatewayID);
             logger.debug("Airavata deleted User profile with gateway id : " + 
gatewayID + " and user id : " + userId);
             return true;
         } catch (AppCatalogException e) {
@@ -4504,15 +4498,13 @@ public boolean addUserComputeResourcePreference(String 
userId, String gatewayID,
                 logger.error("user does not exist.Please provide a valid user 
id...");
                 throw new RegistryServiceException("user does not exist.Please 
provide a valid user id...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            if (!userProfile.isUserResourceProfileExists(userId, gatewayID)){
+            if (! 
userResourceProfileRepository.isUserResourceProfileExists(userId, gatewayID)) {
                 throw new RegistryServiceException("User resource profile with 
user id'"+userId+" &  gateway Id"+gatewayID+"' does not exist!!!");
             }
-            UserResourceProfile profile = 
userProfile.getUserResourceProfile(userId,gatewayID);
+            UserResourceProfile profile = 
userResourceProfileRepository.getUserResourceProfile(userId, gatewayID);
 //            gatewayProfile.removeGatewayResourceProfile(gatewayID);
             
profile.addToUserComputeResourcePreferences(userComputeResourcePreference);
-            userProfile.updateUserResourceProfile(userId, gatewayID, profile);
+            userResourceProfileRepository.updateUserResourceProfile(userId, 
gatewayID, profile);
             logger.debug("Airavata added User compute resource preference with 
gateway id : " + gatewayID + " and for compute resource id : " + 
computeResourceId );
             return true;
         } catch (AppCatalogException e) {
@@ -4545,16 +4537,14 @@ public boolean addUserStoragePreference(String userId, 
String gatewayID, String
                 logger.error("user does not exist.Please provide a valid user 
id...");
                 throw new RegistryServiceException("user does not exist.Please 
provide a valid user id...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            if (!userProfile.isUserResourceProfileExists(userId, gatewayID)){
+            if (! 
userResourceProfileRepository.isUserResourceProfileExists(userId, gatewayID)){
                 throw new RegistryServiceException("User resource profile with 
user id'"+userId+" &  gateway Id"+gatewayID+"' does not exist!!!");
             }
-            UserResourceProfile profile = 
userProfile.getUserResourceProfile(userId,gatewayID);
+            UserResourceProfile profile = 
userResourceProfileRepository.getUserResourceProfile(userId,gatewayID);
 //            gatewayProfile.removeGatewayResourceProfile(gatewayID);
             dataStoragePreference.setStorageResourceId(storageResourceId);
             profile.addToUserStoragePreferences(dataStoragePreference);
-            userProfile.updateUserResourceProfile(userId, gatewayID, profile);
+            userResourceProfileRepository.updateUserResourceProfile(userId, 
gatewayID, profile);
             logger.debug("Airavata added storage resource preference with 
gateway id : " + gatewayID + " and for storage resource id : " + 
storageResourceId );
             return true;
         } catch (AppCatalogException e) {
@@ -4585,10 +4575,7 @@ public UserComputeResourcePreference 
getUserComputeResourcePreference(String use
                 logger.error("user does not exist.Please provide a valid user 
id...");
                 throw new RegistryServiceException("user does not exist.Please 
provide a valid user id...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            if (!userProfile.isUserResourceProfileExists(userId, gatewayID)){
+            if 
(!userResourceProfileRepository.isUserResourceProfileExists(userId, gatewayID)){
                 throw new RegistryServiceException("User resource profile with 
user id'"+userId+" &  gateway Id"+gatewayID+"' does not exist!!!");
             }
             ComputeResourceRepository computeResourceRepository = new 
ComputeResourceRepository();
@@ -4598,7 +4585,7 @@ public UserComputeResourcePreference 
getUserComputeResourcePreference(String use
                 exception.setMessage("Given compute resource does not exist in 
the system. Please provide a valid compute resource id...");
                 throw exception;
             }
-            UserComputeResourcePreference userComputeResourcePreference = 
userProfile.getUserComputeResourcePreference(userId, gatewayID, 
userComputeResourceId);
+            UserComputeResourcePreference userComputeResourcePreference = 
userResourceProfileRepository.getUserComputeResourcePreference(userId, 
gatewayID, userComputeResourceId);
             logger.debug("Airavata retrieved user compute resource preference 
with gateway id : " + gatewayID + " and for compute resoruce id : " + 
userComputeResourceId );
             return userComputeResourcePreference;
         } catch (AppCatalogException e) {
@@ -4629,13 +4616,11 @@ public UserStoragePreference 
getUserStoragePreference(String userId, String gate
                 logger.error("user does not exist.Please provide a valid user 
id...");
                 throw new RegistryServiceException("user does not exist.Please 
provide a valid user id...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            if (!userProfile.isUserResourceProfileExists(userId, gatewayID)){
+            if (! 
userResourceProfileRepository.isUserResourceProfileExists(userId, gatewayID)){
                 throw new RegistryServiceException("User resource profile with 
user id'"+userId+" &  gateway Id"+gatewayID+"' does not exist!!!");
             }
 
-            UserStoragePreference storagePreference = 
userProfile.getUserStoragePreference(userId, gatewayID, storageId);
+            UserStoragePreference storagePreference = 
userResourceProfileRepository.getUserStoragePreference(userId, gatewayID, 
storageId);
             logger.debug("Airavata retrieved user storage resource preference 
with gateway id : " + gatewayID + " and for storage resource id : " + 
storageId);
             return storagePreference;
         } catch (AppCatalogException e) {
@@ -4660,9 +4645,7 @@ public UserStoragePreference 
getUserStoragePreference(String userId, String gate
     @Override
     public List<UserResourceProfile> getAllUserResourceProfiles() throws 
RegistryServiceException, TException {
         try {
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            return userProfile.getAllUserResourceProfiles();
+            return userResourceProfileRepository.getAllUserResourceProfiles();
         } catch (AppCatalogException e) {
             RegistryServiceException exception = new 
RegistryServiceException();
             exception.setMessage("Error while reading retrieving all gateway 
profiles. More info : " + e.getMessage());
@@ -4686,9 +4669,7 @@ public boolean updateUserComputeResourcePreference(String 
userId, String gateway
                 logger.error("user does not exist.Please provide a valid user 
id...");
                 throw new RegistryServiceException("user does not exist.Please 
provide a valid user id...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            UserResourceProfile profile = 
userProfile.getUserResourceProfile(userId,gatewayID);
+            UserResourceProfile profile = 
userResourceProfileRepository.getUserResourceProfile(userId,gatewayID);
             List<UserComputeResourcePreference> userComputeResourcePreferences 
= profile.getUserComputeResourcePreferences();
             UserComputeResourcePreference preferenceToRemove = null;
             for (UserComputeResourcePreference preference : 
userComputeResourcePreferences) {
@@ -4702,7 +4683,7 @@ public boolean updateUserComputeResourcePreference(String 
userId, String gateway
                         preferenceToRemove);
             }
             
profile.getUserComputeResourcePreferences().add(userComputeResourcePreference);
-            userProfile.updateUserResourceProfile(userId, gatewayID, profile);
+            userResourceProfileRepository.updateUserResourceProfile(userId, 
gatewayID, profile);
             logger.debug("Airavata updated compute resource preference with 
gateway id : " + gatewayID + " and for compute resource id : " + 
computeResourceId );
             return true;
         } catch (AppCatalogException e) {
@@ -4734,9 +4715,7 @@ public boolean updateUserStoragePreference(String userId, 
String gatewayID, Stri
                 logger.error("user does not exist.Please provide a valid user 
id...");
                 throw new RegistryServiceException("user does not exist.Please 
provide a valid user id...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            UserResourceProfile profile = 
userProfile.getUserResourceProfile(userId,gatewayID);
+            UserResourceProfile profile = 
userResourceProfileRepository.getUserResourceProfile(userId,gatewayID);
             List<UserStoragePreference> dataStoragePreferences = 
profile.getUserStoragePreferences();
             UserStoragePreference preferenceToRemove = null;
             for (UserStoragePreference preference : dataStoragePreferences) {
@@ -4750,7 +4729,7 @@ public boolean updateUserStoragePreference(String userId, 
String gatewayID, Stri
                         preferenceToRemove);
             }
             profile.getUserStoragePreferences().add(userStoragePreference);
-            userProfile.updateUserResourceProfile(userId, gatewayID, profile);
+            userResourceProfileRepository.updateUserResourceProfile(userId, 
gatewayID, profile);
             logger.debug("Airavata updated user storage resource preference 
with gateway id : " + gatewayID + " and for storage resource id : " + storageId 
);
             return true;
         } catch (AppCatalogException e) {
@@ -4781,9 +4760,7 @@ public boolean deleteUserComputeResourcePreference(String 
userId, String gateway
                 logger.error("user does not exist.Please provide a valid user 
id...");
                 throw new RegistryServiceException("user does not exist.Please 
provide a valid user id...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            return 
userProfile.removeUserComputeResourcePreferenceFromGateway(userId, gatewayID, 
computeResourceId);
+            return 
userResourceProfileRepository.removeUserComputeResourcePreferenceFromGateway(userId,
 gatewayID, computeResourceId);
         } catch (AppCatalogException e) {
             logger.error(userId, "Error while reading user compute resource 
preference...", e);
             RegistryServiceException exception = new 
RegistryServiceException();
@@ -4812,9 +4789,7 @@ public boolean deleteUserStoragePreference(String userId, 
String gatewayID, Stri
                 logger.error("user does not exist.Please provide a valid user 
id...");
                 throw new RegistryServiceException("user does not exist.Please 
provide a valid user id...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            return 
userProfile.removeUserDataStoragePreferenceFromGateway(userId, gatewayID, 
storageId);
+            return 
userResourceProfileRepository.removeUserDataStoragePreferenceFromGateway(userId,
 gatewayID, storageId);
         } catch (AppCatalogException e) {
             logger.error(gatewayID, "Error while reading user data storage 
preference...", e);
             RegistryServiceException exception = new 
RegistryServiceException();
@@ -4878,9 +4853,7 @@ public void registerQueueStatuses(List<QueueStatusModel> 
queueStatuses) throws R
                 logger.error("User Resource Profile does not exist.Please 
provide a valid gateway id...");
                 throw new RegistryServiceException("User Resource Profile does 
not exist.Please provide a valid gateway id...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            return userProfile.getUserResourceProfile(userId, 
gatewayID).getUserComputeResourcePreferences();
+            return 
userResourceProfileRepository.getUserResourceProfile(userId, 
gatewayID).getUserComputeResourcePreferences();
         } catch (AppCatalogException e) {
             logger.error(userId, "Error while reading User Resource Profile 
compute resource preferences...", e);
             RegistryServiceException exception = new 
RegistryServiceException();
@@ -4904,9 +4877,7 @@ public void registerQueueStatuses(List<QueueStatusModel> 
queueStatuses) throws R
                 logger.error("User does not exist.Please provide a valid 
gateway id...");
                 throw new RegistryServiceException("Gateway does not 
exist.Please provide a valid gateway id...");
             }
-            appCatalog = RegistryFactory.getAppCatalog();
-            UsrResourceProfile userProfile = 
appCatalog.getUserResourceProfile();
-            return userProfile.getUserResourceProfile(userId, 
gatewayID).getUserStoragePreferences();
+            return 
userResourceProfileRepository.getUserResourceProfile(userId, 
gatewayID).getUserStoragePreferences();
         } catch (AppCatalogException e) {
             logger.error(userId, "Error while reading user resource Profile 
data storage preferences...", e);
             RegistryServiceException exception = new 
RegistryServiceException();


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Refactoring App Catalog Implementation - User Resource Profile
> --------------------------------------------------------------
>
>                 Key: AIRAVATA-2712
>                 URL: https://issues.apache.org/jira/browse/AIRAVATA-2712
>             Project: Airavata
>          Issue Type: Improvement
>          Components: Registry API
>            Reporter: Sneha Tilak
>            Assignee: Sneha Tilak
>            Priority: Major
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to