This is an automated email from the ASF dual-hosted git repository.

yasithdev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata.git


The following commit(s) were added to refs/heads/master by this push:
     new c5e5199c3c refactor: flatten the sharing packages into the iam 
namespace (#647)
c5e5199c3c is described below

commit c5e5199c3ca2ace735abd5f973f0e2ed4777d0fd
Author: Yasith Jayawardana <[email protected]>
AuthorDate: Sun Jun 7 23:00:26 2026 -0400

    refactor: flatten the sharing packages into the iam namespace (#647)
    
    Now that the sharing code lives in iam-service, collapse its 
org.apache.airavata.sharing.{config,event,grpc,model,repository,service,util} 
Java packages into the matching org.apache.airavata.iam.* packages so the 
module has a single coherent namespace. This is an internal, server-side-only 
move: the proto packages (org.apache.airavata.api.sharing / .groupmanager) and 
the shared org.apache.airavata.sharing.registry.models.proto types are 
deliberately left untouched, and every external  [...]
---
 .../event/SharingServiceDBEventHandler.java        |  8 ++---
 .../SharingServiceDBEventMessagingFactory.java     |  4 +--
 .../grpc/GroupManagerGrpcService.java              |  8 ++---
 .../{sharing => iam}/grpc/SharingGrpcService.java  | 42 +++++++++++-----------
 .../{sharing => iam}/model/DomainEntity.java       |  2 +-
 .../model/DuplicateEntryException.java             |  2 +-
 .../{sharing => iam}/model/EntityEntity.java       |  2 +-
 .../airavata/{sharing => iam}/model/EntityPK.java  |  2 +-
 .../{sharing => iam}/model/EntityTypeEntity.java   |  2 +-
 .../{sharing => iam}/model/EntityTypePK.java       |  2 +-
 .../{sharing => iam}/model/GroupAdminEntity.java   |  2 +-
 .../{sharing => iam}/model/GroupAdminPK.java       |  2 +-
 .../model/GroupMembershipEntity.java               |  2 +-
 .../{sharing => iam}/model/GroupMembershipPK.java  |  2 +-
 .../model/PermissionTypeEntity.java                |  2 +-
 .../{sharing => iam}/model/PermissionTypePK.java   |  2 +-
 .../{sharing => iam}/model/SharingEntity.java      |  2 +-
 .../airavata/{sharing => iam}/model/SharingPK.java |  2 +-
 .../model/SharingRegistryException.java            |  2 +-
 .../{sharing => iam}/model/UserEntity.java         |  2 +-
 .../{sharing => iam}/model/UserGroupEntity.java    |  2 +-
 .../{sharing => iam}/model/UserGroupPK.java        |  2 +-
 .../airavata/{sharing => iam}/model/UserPK.java    |  2 +-
 .../repository/AbstractSharingRepository.java}     | 12 +++----
 .../repository/DomainRepository.java               |  6 ++--
 .../repository/EntityRepository.java               |  8 ++---
 .../repository/EntityTypeRepository.java           |  8 ++---
 .../repository/GroupAdminRepository.java           |  8 ++---
 .../repository/GroupMembershipRepository.java      |  8 ++---
 .../repository/PermissionTypeRepository.java       | 14 ++++----
 .../repository/SharingRepository.java              | 12 +++----
 .../repository/UserGroupRepository.java            |  8 ++---
 .../repository/UserRepository.java                 |  8 ++---
 .../service/ResourceSharingService.java            |  6 ++--
 .../{sharing => iam}/service/SharingService.java   | 10 +++---
 .../{sharing => iam}/util/ConnectionFactory.java   |  2 +-
 .../{sharing => iam}/util/DBConstants.java         |  2 +-
 .../{sharing => iam}/util/SharingConstants.java    |  2 +-
 .../util/SharingModelConverter.java                |  4 +--
 .../util/SharingRegistryDBInitConfig.java          |  2 +-
 .../sharing/config/SharingServiceConfig.java       | 27 --------------
 .../service/ResourceSharingServiceTest.java        |  8 ++---
 .../src/test/resources/META-INF/persistence.xml    | 18 +++++-----
 43 files changed, 123 insertions(+), 150 deletions(-)

diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/event/SharingServiceDBEventHandler.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/event/SharingServiceDBEventHandler.java
similarity index 99%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/event/SharingServiceDBEventHandler.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/event/SharingServiceDBEventHandler.java
index ba37d15efd..9c38694d76 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/event/SharingServiceDBEventHandler.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/event/SharingServiceDBEventHandler.java
@@ -17,11 +17,14 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.event;
+package org.apache.airavata.iam.event;
 
 import com.google.protobuf.InvalidProtocolBufferException;
 import org.apache.airavata.exception.AiravataException;
 import org.apache.airavata.exception.ApplicationSettingsException;
+import org.apache.airavata.iam.model.*;
+import org.apache.airavata.iam.service.SharingService;
+import org.apache.airavata.iam.util.SharingModelConverter;
 import org.apache.airavata.messaging.service.MessageContext;
 import org.apache.airavata.messaging.service.MessageHandler;
 import org.apache.airavata.model.dbevent.proto.DBEventMessage;
@@ -30,9 +33,6 @@ import org.apache.airavata.model.group.proto.ResourceType;
 import org.apache.airavata.model.user.proto.UserProfile;
 import org.apache.airavata.model.workspace.proto.Gateway;
 import org.apache.airavata.model.workspace.proto.Project;
-import org.apache.airavata.sharing.model.*;
-import org.apache.airavata.sharing.service.SharingService;
-import org.apache.airavata.sharing.util.SharingModelConverter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/event/SharingServiceDBEventMessagingFactory.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/event/SharingServiceDBEventMessagingFactory.java
similarity index 97%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/event/SharingServiceDBEventMessagingFactory.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/event/SharingServiceDBEventMessagingFactory.java
index 2e403197b7..7659182130 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/event/SharingServiceDBEventMessagingFactory.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/event/SharingServiceDBEventMessagingFactory.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.event;
+package org.apache.airavata.iam.event;
 
 import java.util.List;
 import org.apache.airavata.exception.AiravataException;
@@ -73,7 +73,7 @@ public class SharingServiceDBEventMessagingFactory {
                     try {
                         sharingServiceDBEventSubscriber = 
MessagingFactory.getDBEventSubscriber(
                                 new SharingServiceDBEventHandler(), 
DBEventService.SHARING.toString());
-                    } catch 
(org.apache.airavata.sharing.model.SharingRegistryException e) {
+                    } catch 
(org.apache.airavata.iam.model.SharingRegistryException e) {
                         throw new AiravataException("Failed to create 
SharingServiceDBEventHandler", e);
                     }
                     log.info("DB Event publisher created");
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/grpc/GroupManagerGrpcService.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/grpc/GroupManagerGrpcService.java
similarity index 97%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/grpc/GroupManagerGrpcService.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/grpc/GroupManagerGrpcService.java
index 0524f2d72d..0426f10fa5 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/grpc/GroupManagerGrpcService.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/grpc/GroupManagerGrpcService.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.grpc;
+package org.apache.airavata.iam.grpc;
 
 import com.google.protobuf.Empty;
 import io.grpc.stub.StreamObserver;
@@ -27,10 +27,10 @@ import org.apache.airavata.api.groupmanager.*;
 import org.apache.airavata.config.RequestContext;
 import org.apache.airavata.grpc.GrpcRequestContext;
 import org.apache.airavata.grpc.GrpcStatusMapper;
+import org.apache.airavata.iam.model.GroupAdminEntity;
+import org.apache.airavata.iam.model.UserGroupEntity;
+import org.apache.airavata.iam.service.SharingService;
 import org.apache.airavata.model.group.proto.GroupModel;
-import org.apache.airavata.sharing.model.GroupAdminEntity;
-import org.apache.airavata.sharing.model.UserGroupEntity;
-import org.apache.airavata.sharing.service.SharingService;
 import org.springframework.stereotype.Component;
 
 @Component
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/grpc/SharingGrpcService.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/grpc/SharingGrpcService.java
similarity index 97%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/grpc/SharingGrpcService.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/grpc/SharingGrpcService.java
index 2838f67b47..690c28d2f1 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/grpc/SharingGrpcService.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/grpc/SharingGrpcService.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.grpc;
+package org.apache.airavata.iam.grpc;
 
 import com.google.protobuf.ByteString;
 import com.google.protobuf.Empty;
@@ -29,9 +29,9 @@ import org.apache.airavata.api.sharing.*;
 import org.apache.airavata.config.RequestContext;
 import org.apache.airavata.grpc.GrpcRequestContext;
 import org.apache.airavata.grpc.GrpcStatusMapper;
+import org.apache.airavata.iam.service.ResourceSharingService;
+import org.apache.airavata.iam.service.SharingService;
 import org.apache.airavata.model.group.proto.ResourcePermissionType;
-import org.apache.airavata.sharing.service.ResourceSharingService;
-import org.apache.airavata.sharing.service.SharingService;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -939,9 +939,9 @@ public class SharingGrpcService extends 
SharingServiceGrpc.SharingServiceImplBas
 
     // --- Domain ---
 
-    private static org.apache.airavata.sharing.model.DomainEntity 
toDomainEntity(
+    private static org.apache.airavata.iam.model.DomainEntity toDomainEntity(
             org.apache.airavata.sharing.registry.models.proto.Domain proto) {
-        var t = new org.apache.airavata.sharing.model.DomainEntity();
+        var t = new org.apache.airavata.iam.model.DomainEntity();
         if (!proto.getDomainId().isEmpty()) t.setDomainId(proto.getDomainId());
         if (!proto.getName().isEmpty()) t.setName(proto.getName());
         if (!proto.getDescription().isEmpty()) 
t.setDescription(proto.getDescription());
@@ -952,7 +952,7 @@ public class SharingGrpcService extends 
SharingServiceGrpc.SharingServiceImplBas
     }
 
     private static org.apache.airavata.sharing.registry.models.proto.Domain 
toProtoDomain(
-            org.apache.airavata.sharing.model.DomainEntity t) {
+            org.apache.airavata.iam.model.DomainEntity t) {
         var b = 
org.apache.airavata.sharing.registry.models.proto.Domain.newBuilder();
         if (t.getDomainId() != null) b.setDomainId(t.getDomainId());
         if (t.getName() != null) b.setName(t.getName());
@@ -965,9 +965,9 @@ public class SharingGrpcService extends 
SharingServiceGrpc.SharingServiceImplBas
 
     // --- User ---
 
-    private static org.apache.airavata.sharing.model.UserEntity toUserEntity(
+    private static org.apache.airavata.iam.model.UserEntity toUserEntity(
             org.apache.airavata.sharing.registry.models.proto.User proto) {
-        var t = new org.apache.airavata.sharing.model.UserEntity();
+        var t = new org.apache.airavata.iam.model.UserEntity();
         if (!proto.getUserId().isEmpty()) t.setUserId(proto.getUserId());
         if (!proto.getDomainId().isEmpty()) t.setDomainId(proto.getDomainId());
         if (!proto.getUserName().isEmpty()) t.setUserName(proto.getUserName());
@@ -977,7 +977,7 @@ public class SharingGrpcService extends 
SharingServiceGrpc.SharingServiceImplBas
     }
 
     private static org.apache.airavata.sharing.registry.models.proto.User 
toProtoUser(
-            org.apache.airavata.sharing.model.UserEntity t) {
+            org.apache.airavata.iam.model.UserEntity t) {
         var b = 
org.apache.airavata.sharing.registry.models.proto.User.newBuilder();
         if (t.getUserId() != null) b.setUserId(t.getUserId());
         if (t.getDomainId() != null) b.setDomainId(t.getDomainId());
@@ -989,9 +989,9 @@ public class SharingGrpcService extends 
SharingServiceGrpc.SharingServiceImplBas
 
     // --- UserGroup ---
 
-    private static org.apache.airavata.sharing.model.UserGroupEntity 
toUserGroupEntity(
+    private static org.apache.airavata.iam.model.UserGroupEntity 
toUserGroupEntity(
             org.apache.airavata.sharing.registry.models.proto.UserGroup proto) 
{
-        var t = new org.apache.airavata.sharing.model.UserGroupEntity();
+        var t = new org.apache.airavata.iam.model.UserGroupEntity();
         if (!proto.getGroupId().isEmpty()) t.setGroupId(proto.getGroupId());
         if (!proto.getDomainId().isEmpty()) t.setDomainId(proto.getDomainId());
         if (!proto.getName().isEmpty()) t.setName(proto.getName());
@@ -1013,7 +1013,7 @@ public class SharingGrpcService extends 
SharingServiceGrpc.SharingServiceImplBas
     }
 
     private static org.apache.airavata.sharing.registry.models.proto.UserGroup 
toProtoUserGroup(
-            org.apache.airavata.sharing.model.UserGroupEntity t) {
+            org.apache.airavata.iam.model.UserGroupEntity t) {
         var b = 
org.apache.airavata.sharing.registry.models.proto.UserGroup.newBuilder();
         if (t.getGroupId() != null) b.setGroupId(t.getGroupId());
         if (t.getDomainId() != null) b.setDomainId(t.getDomainId());
@@ -1034,9 +1034,9 @@ public class SharingGrpcService extends 
SharingServiceGrpc.SharingServiceImplBas
 
     // --- EntityType ---
 
-    private static org.apache.airavata.sharing.model.EntityTypeEntity 
toEntityTypeEntity(
+    private static org.apache.airavata.iam.model.EntityTypeEntity 
toEntityTypeEntity(
             org.apache.airavata.sharing.registry.models.proto.EntityType 
proto) {
-        var t = new org.apache.airavata.sharing.model.EntityTypeEntity();
+        var t = new org.apache.airavata.iam.model.EntityTypeEntity();
         if (!proto.getEntityTypeId().isEmpty()) 
t.setEntityTypeId(proto.getEntityTypeId());
         if (!proto.getDomainId().isEmpty()) t.setDomainId(proto.getDomainId());
         if (!proto.getName().isEmpty()) t.setName(proto.getName());
@@ -1047,7 +1047,7 @@ public class SharingGrpcService extends 
SharingServiceGrpc.SharingServiceImplBas
     }
 
     private static 
org.apache.airavata.sharing.registry.models.proto.EntityType toProtoEntityType(
-            org.apache.airavata.sharing.model.EntityTypeEntity t) {
+            org.apache.airavata.iam.model.EntityTypeEntity t) {
         var b = 
org.apache.airavata.sharing.registry.models.proto.EntityType.newBuilder();
         if (t.getEntityTypeId() != null) 
b.setEntityTypeId(t.getEntityTypeId());
         if (t.getDomainId() != null) b.setDomainId(t.getDomainId());
@@ -1060,9 +1060,9 @@ public class SharingGrpcService extends 
SharingServiceGrpc.SharingServiceImplBas
 
     // --- Entity ---
 
-    private static org.apache.airavata.sharing.model.EntityEntity 
toEntityEntity(
+    private static org.apache.airavata.iam.model.EntityEntity toEntityEntity(
             org.apache.airavata.sharing.registry.models.proto.Entity proto) {
-        var t = new org.apache.airavata.sharing.model.EntityEntity();
+        var t = new org.apache.airavata.iam.model.EntityEntity();
         if (!proto.getEntityId().isEmpty()) t.setEntityId(proto.getEntityId());
         if (!proto.getDomainId().isEmpty()) t.setDomainId(proto.getDomainId());
         if (!proto.getEntityTypeId().isEmpty()) 
t.setEntityTypeId(proto.getEntityTypeId());
@@ -1082,7 +1082,7 @@ public class SharingGrpcService extends 
SharingServiceGrpc.SharingServiceImplBas
     }
 
     private static org.apache.airavata.sharing.registry.models.proto.Entity 
toProtoEntity(
-            org.apache.airavata.sharing.model.EntityEntity t) {
+            org.apache.airavata.iam.model.EntityEntity t) {
         var b = 
org.apache.airavata.sharing.registry.models.proto.Entity.newBuilder();
         if (t.getEntityId() != null) b.setEntityId(t.getEntityId());
         if (t.getDomainId() != null) b.setDomainId(t.getDomainId());
@@ -1102,9 +1102,9 @@ public class SharingGrpcService extends 
SharingServiceGrpc.SharingServiceImplBas
 
     // --- PermissionType ---
 
-    private static org.apache.airavata.sharing.model.PermissionTypeEntity 
toPermissionTypeEntity(
+    private static org.apache.airavata.iam.model.PermissionTypeEntity 
toPermissionTypeEntity(
             org.apache.airavata.sharing.registry.models.proto.PermissionType 
proto) {
-        var t = new org.apache.airavata.sharing.model.PermissionTypeEntity();
+        var t = new org.apache.airavata.iam.model.PermissionTypeEntity();
         if (!proto.getPermissionTypeId().isEmpty()) 
t.setPermissionTypeId(proto.getPermissionTypeId());
         if (!proto.getDomainId().isEmpty()) t.setDomainId(proto.getDomainId());
         if (!proto.getName().isEmpty()) t.setName(proto.getName());
@@ -1115,7 +1115,7 @@ public class SharingGrpcService extends 
SharingServiceGrpc.SharingServiceImplBas
     }
 
     private static 
org.apache.airavata.sharing.registry.models.proto.PermissionType 
toProtoPermissionType(
-            org.apache.airavata.sharing.model.PermissionTypeEntity t) {
+            org.apache.airavata.iam.model.PermissionTypeEntity t) {
         var b = 
org.apache.airavata.sharing.registry.models.proto.PermissionType.newBuilder();
         if (t.getPermissionTypeId() != null) 
b.setPermissionTypeId(t.getPermissionTypeId());
         if (t.getDomainId() != null) b.setDomainId(t.getDomainId());
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/DomainEntity.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/DomainEntity.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/DomainEntity.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/DomainEntity.java
index 5a404e49ce..143ec30439 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/DomainEntity.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/DomainEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.*;
 import org.slf4j.Logger;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/DuplicateEntryException.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/DuplicateEntryException.java
similarity index 96%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/DuplicateEntryException.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/DuplicateEntryException.java
index 6fab2df078..6cb32212b7 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/DuplicateEntryException.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/DuplicateEntryException.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 /**
  * Exception thrown when attempting to create a duplicate entry.
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/EntityEntity.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/EntityEntity.java
similarity index 99%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/EntityEntity.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/EntityEntity.java
index 6be5f9febd..ee024b5682 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/EntityEntity.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/EntityEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.*;
 import org.slf4j.Logger;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/EntityPK.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/EntityPK.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/EntityPK.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/EntityPK.java
index 2938a5cd7a..d5625df3af 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/EntityPK.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/EntityPK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.Column;
 import jakarta.persistence.Id;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/EntityTypeEntity.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/EntityTypeEntity.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/EntityTypeEntity.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/EntityTypeEntity.java
index e398e4535d..f89c0c26d3 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/EntityTypeEntity.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/EntityTypeEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.*;
 import org.slf4j.Logger;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/EntityTypePK.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/EntityTypePK.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/EntityTypePK.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/EntityTypePK.java
index 12defcc839..0183a0b62e 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/EntityTypePK.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/EntityTypePK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.Column;
 import jakarta.persistence.Id;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/GroupAdminEntity.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/GroupAdminEntity.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/GroupAdminEntity.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/GroupAdminEntity.java
index 5793d2d601..a47a31d03c 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/GroupAdminEntity.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/GroupAdminEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.*;
 import org.slf4j.Logger;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/GroupAdminPK.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/GroupAdminPK.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/GroupAdminPK.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/GroupAdminPK.java
index 7256a66be7..594f679433 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/GroupAdminPK.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/GroupAdminPK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.Column;
 import jakarta.persistence.Id;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/GroupMembershipEntity.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/GroupMembershipEntity.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/GroupMembershipEntity.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/GroupMembershipEntity.java
index 4744475af4..527fef7a28 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/GroupMembershipEntity.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/GroupMembershipEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.*;
 import org.slf4j.Logger;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/GroupMembershipPK.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/GroupMembershipPK.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/GroupMembershipPK.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/GroupMembershipPK.java
index a7770fd5c3..6f2324624b 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/GroupMembershipPK.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/GroupMembershipPK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.Column;
 import jakarta.persistence.Id;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/PermissionTypeEntity.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/PermissionTypeEntity.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/PermissionTypeEntity.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/PermissionTypeEntity.java
index 251db81bf3..f38de8f851 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/PermissionTypeEntity.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/PermissionTypeEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.*;
 import org.slf4j.Logger;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/PermissionTypePK.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/PermissionTypePK.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/PermissionTypePK.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/PermissionTypePK.java
index 6f8c43a0cd..e1b09538eb 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/PermissionTypePK.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/PermissionTypePK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.Column;
 import jakarta.persistence.Id;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/SharingEntity.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/SharingEntity.java
similarity index 99%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/SharingEntity.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/SharingEntity.java
index d926ce4476..70eccb6d59 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/SharingEntity.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/SharingEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.*;
 import org.slf4j.Logger;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/SharingPK.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/SharingPK.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/SharingPK.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/SharingPK.java
index 70e562d11c..61c9f8916a 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/SharingPK.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/SharingPK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.Column;
 import jakarta.persistence.Id;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/SharingRegistryException.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/SharingRegistryException.java
similarity index 96%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/SharingRegistryException.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/SharingRegistryException.java
index 81d621cfc6..bf61ec480f 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/SharingRegistryException.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/SharingRegistryException.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 /**
  * Exception thrown by the sharing registry when an operation fails.
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/UserEntity.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/UserEntity.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/UserEntity.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/UserEntity.java
index 36fa5c7598..41e7f52f4f 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/UserEntity.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/UserEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.*;
 import org.slf4j.Logger;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/UserGroupEntity.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/UserGroupEntity.java
similarity index 99%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/UserGroupEntity.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/UserGroupEntity.java
index ab9ce5d6c1..f0d1e1a9f8 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/UserGroupEntity.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/UserGroupEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.*;
 import java.util.List;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/UserGroupPK.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/UserGroupPK.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/UserGroupPK.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/UserGroupPK.java
index 772d970900..1991256943 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/UserGroupPK.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/UserGroupPK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.Column;
 import jakarta.persistence.Id;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/UserPK.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/UserPK.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/UserPK.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/UserPK.java
index 16e201fe86..ce1ec2e406 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/model/UserPK.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/model/UserPK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.model;
+package org.apache.airavata.iam.model;
 
 import jakarta.persistence.Column;
 import jakarta.persistence.Id;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/AbstractRepository.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/AbstractSharingRepository.java
similarity index 95%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/AbstractRepository.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/AbstractSharingRepository.java
index 051a670016..01206290a2 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/AbstractRepository.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/AbstractSharingRepository.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.repository;
+package org.apache.airavata.iam.repository;
 
 import jakarta.persistence.Entity;
 import jakarta.persistence.EntityManager;
@@ -27,17 +27,17 @@ import java.util.List;
 import java.util.Map;
 import org.apache.airavata.db.Committer;
 import org.apache.airavata.db.EntityManagerFactoryHolder;
-import org.apache.airavata.sharing.model.SharingRegistryException;
-import org.apache.airavata.sharing.util.DBConstants;
+import org.apache.airavata.iam.model.SharingRegistryException;
+import org.apache.airavata.iam.util.DBConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public abstract class AbstractRepository<E, Id> {
-    private static final Logger logger = 
LoggerFactory.getLogger(AbstractRepository.class);
+public abstract class AbstractSharingRepository<E, Id> {
+    private static final Logger logger = 
LoggerFactory.getLogger(AbstractSharingRepository.class);
 
     private Class<E> entityClass;
 
-    public AbstractRepository(Class<E> entityClass) {
+    public AbstractSharingRepository(Class<E> entityClass) {
         this.entityClass = entityClass;
     }
 
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/DomainRepository.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/DomainRepository.java
similarity index 85%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/DomainRepository.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/DomainRepository.java
index c6ec27e97a..c637345124 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/DomainRepository.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/DomainRepository.java
@@ -17,15 +17,15 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.repository;
+package org.apache.airavata.iam.repository;
 
-import org.apache.airavata.sharing.model.DomainEntity;
+import org.apache.airavata.iam.model.DomainEntity;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 @Component
-public class DomainRepository extends AbstractRepository<DomainEntity, String> 
{
+public class DomainRepository extends AbstractSharingRepository<DomainEntity, 
String> {
     private static final Logger logger = 
LoggerFactory.getLogger(DomainRepository.class);
 
     public DomainRepository() {
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/EntityRepository.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/EntityRepository.java
similarity index 97%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/EntityRepository.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/EntityRepository.java
index 44436b77bf..30203bcb02 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/EntityRepository.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/EntityRepository.java
@@ -17,18 +17,18 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.repository;
+package org.apache.airavata.iam.repository;
 
 import java.util.*;
-import org.apache.airavata.sharing.model.*;
+import org.apache.airavata.iam.model.*;
+import org.apache.airavata.iam.util.DBConstants;
 import org.apache.airavata.sharing.registry.models.proto.EntitySearchField;
 import org.apache.airavata.sharing.registry.models.proto.SearchCondition;
 import org.apache.airavata.sharing.registry.models.proto.SearchCriteria;
-import org.apache.airavata.sharing.util.DBConstants;
 import org.springframework.stereotype.Component;
 
 @Component
-public class EntityRepository extends AbstractRepository<EntityEntity, 
EntityPK> {
+public class EntityRepository extends AbstractSharingRepository<EntityEntity, 
EntityPK> {
 
     public EntityRepository() {
         super(EntityEntity.class);
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/EntityTypeRepository.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/EntityTypeRepository.java
similarity index 80%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/EntityTypeRepository.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/EntityTypeRepository.java
index edc6c12ffc..0d698479a6 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/EntityTypeRepository.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/EntityTypeRepository.java
@@ -17,16 +17,16 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.repository;
+package org.apache.airavata.iam.repository;
 
-import org.apache.airavata.sharing.model.EntityTypeEntity;
-import org.apache.airavata.sharing.model.EntityTypePK;
+import org.apache.airavata.iam.model.EntityTypeEntity;
+import org.apache.airavata.iam.model.EntityTypePK;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 @Component
-public class EntityTypeRepository extends AbstractRepository<EntityTypeEntity, 
EntityTypePK> {
+public class EntityTypeRepository extends 
AbstractSharingRepository<EntityTypeEntity, EntityTypePK> {
     private static final Logger logger = 
LoggerFactory.getLogger(EntityTypeRepository.class);
 
     public EntityTypeRepository() {
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/GroupAdminRepository.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/GroupAdminRepository.java
similarity index 80%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/GroupAdminRepository.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/GroupAdminRepository.java
index 59fac9cbb7..a9bcf587ec 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/GroupAdminRepository.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/GroupAdminRepository.java
@@ -17,16 +17,16 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.repository;
+package org.apache.airavata.iam.repository;
 
-import org.apache.airavata.sharing.model.GroupAdminEntity;
-import org.apache.airavata.sharing.model.GroupAdminPK;
+import org.apache.airavata.iam.model.GroupAdminEntity;
+import org.apache.airavata.iam.model.GroupAdminPK;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 @Component
-public class GroupAdminRepository extends AbstractRepository<GroupAdminEntity, 
GroupAdminPK> {
+public class GroupAdminRepository extends 
AbstractSharingRepository<GroupAdminEntity, GroupAdminPK> {
 
     private static final Logger logger = 
LoggerFactory.getLogger(GroupAdminRepository.class);
 
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/GroupMembershipRepository.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/GroupMembershipRepository.java
similarity index 96%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/GroupMembershipRepository.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/GroupMembershipRepository.java
index b4dcc4f7c1..5c9c87a640 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/GroupMembershipRepository.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/GroupMembershipRepository.java
@@ -17,17 +17,17 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.repository;
+package org.apache.airavata.iam.repository;
 
 import java.util.*;
-import org.apache.airavata.sharing.model.*;
+import org.apache.airavata.iam.model.*;
+import org.apache.airavata.iam.util.DBConstants;
 import org.apache.airavata.sharing.registry.models.proto.GroupCardinality;
 import org.apache.airavata.sharing.registry.models.proto.GroupChildType;
-import org.apache.airavata.sharing.util.DBConstants;
 import org.springframework.stereotype.Component;
 
 @Component
-public class GroupMembershipRepository extends 
AbstractRepository<GroupMembershipEntity, GroupMembershipPK> {
+public class GroupMembershipRepository extends 
AbstractSharingRepository<GroupMembershipEntity, GroupMembershipPK> {
 
     public GroupMembershipRepository() {
         super(GroupMembershipEntity.class);
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/PermissionTypeRepository.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/PermissionTypeRepository.java
similarity index 80%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/PermissionTypeRepository.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/PermissionTypeRepository.java
index d3d85c9692..eebd0610fa 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/PermissionTypeRepository.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/PermissionTypeRepository.java
@@ -17,21 +17,21 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.repository;
+package org.apache.airavata.iam.repository;
 
 import java.util.HashMap;
 import java.util.List;
-import org.apache.airavata.sharing.model.PermissionTypeEntity;
-import org.apache.airavata.sharing.model.PermissionTypePK;
-import org.apache.airavata.sharing.model.SharingRegistryException;
-import org.apache.airavata.sharing.service.SharingService;
-import org.apache.airavata.sharing.util.DBConstants;
+import org.apache.airavata.iam.model.PermissionTypeEntity;
+import org.apache.airavata.iam.model.PermissionTypePK;
+import org.apache.airavata.iam.model.SharingRegistryException;
+import org.apache.airavata.iam.service.SharingService;
+import org.apache.airavata.iam.util.DBConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 @Component
-public class PermissionTypeRepository extends 
AbstractRepository<PermissionTypeEntity, PermissionTypePK> {
+public class PermissionTypeRepository extends 
AbstractSharingRepository<PermissionTypeEntity, PermissionTypePK> {
     private static final Logger logger = 
LoggerFactory.getLogger(PermissionTypeRepository.class);
 
     public PermissionTypeRepository() {
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/SharingRepository.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/SharingRepository.java
similarity index 94%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/SharingRepository.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/SharingRepository.java
index 6296936725..3ee0c23a3c 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/SharingRepository.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/SharingRepository.java
@@ -17,23 +17,23 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.repository;
+package org.apache.airavata.iam.repository;
 
 import jakarta.persistence.Query;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import org.apache.airavata.sharing.model.SharingEntity;
-import org.apache.airavata.sharing.model.SharingPK;
-import org.apache.airavata.sharing.model.SharingRegistryException;
+import org.apache.airavata.iam.model.SharingEntity;
+import org.apache.airavata.iam.model.SharingPK;
+import org.apache.airavata.iam.model.SharingRegistryException;
+import org.apache.airavata.iam.util.DBConstants;
 import org.apache.airavata.sharing.registry.models.proto.SharingType;
-import org.apache.airavata.sharing.util.DBConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 @Component
-public class SharingRepository extends AbstractRepository<SharingEntity, 
SharingPK> {
+public class SharingRepository extends 
AbstractSharingRepository<SharingEntity, SharingPK> {
     private static final Logger logger = 
LoggerFactory.getLogger(SharingRepository.class);
 
     public SharingRepository() {
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/UserGroupRepository.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/UserGroupRepository.java
similarity index 95%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/UserGroupRepository.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/UserGroupRepository.java
index ee991a121d..7d4a26a07f 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/UserGroupRepository.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/UserGroupRepository.java
@@ -17,23 +17,23 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.repository;
+package org.apache.airavata.iam.repository;
 
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
-import org.apache.airavata.sharing.model.*;
+import org.apache.airavata.iam.model.*;
+import org.apache.airavata.iam.util.DBConstants;
 import org.apache.airavata.sharing.registry.models.proto.GroupCardinality;
 import org.apache.airavata.sharing.registry.models.proto.SharingType;
-import org.apache.airavata.sharing.util.DBConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 @Component
-public class UserGroupRepository extends AbstractRepository<UserGroupEntity, 
UserGroupPK> {
+public class UserGroupRepository extends 
AbstractSharingRepository<UserGroupEntity, UserGroupPK> {
     private static final Logger logger = 
LoggerFactory.getLogger(UserGroupRepository.class);
 
     public UserGroupRepository() {
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/UserRepository.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/UserRepository.java
similarity index 94%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/UserRepository.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/UserRepository.java
index 54ba0383b2..69707c218b 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/repository/UserRepository.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/repository/UserRepository.java
@@ -17,22 +17,22 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.repository;
+package org.apache.airavata.iam.repository;
 
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
-import org.apache.airavata.sharing.model.*;
+import org.apache.airavata.iam.model.*;
+import org.apache.airavata.iam.util.DBConstants;
 import org.apache.airavata.sharing.registry.models.proto.SharingType;
-import org.apache.airavata.sharing.util.DBConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 @Component
-public class UserRepository extends AbstractRepository<UserEntity, UserPK> {
+public class UserRepository extends AbstractSharingRepository<UserEntity, 
UserPK> {
     private static final Logger logger = 
LoggerFactory.getLogger(UserRepository.class);
 
     public UserRepository() {
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/service/ResourceSharingService.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/service/ResourceSharingService.java
similarity index 99%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/service/ResourceSharingService.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/service/ResourceSharingService.java
index 90f0443c57..c074e8ba6c 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/service/ResourceSharingService.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/service/ResourceSharingService.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.service;
+package org.apache.airavata.iam.service;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -29,13 +29,13 @@ import java.util.function.BiFunction;
 import org.apache.airavata.config.RequestContext;
 import org.apache.airavata.exception.ServiceAuthorizationException;
 import org.apache.airavata.exception.ServiceException;
+import org.apache.airavata.iam.model.UserEntity;
+import org.apache.airavata.iam.model.UserGroupEntity;
 import org.apache.airavata.interfaces.GatewayGroupsProvider;
 import org.apache.airavata.interfaces.RegistryProvider;
 import org.apache.airavata.model.appcatalog.gatewaygroups.proto.GatewayGroups;
 import org.apache.airavata.model.group.proto.ResourcePermissionType;
 import org.apache.airavata.model.group.proto.ResourceType;
-import org.apache.airavata.sharing.model.UserEntity;
-import org.apache.airavata.sharing.model.UserGroupEntity;
 import org.apache.airavata.util.SharingHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/service/SharingService.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/service/SharingService.java
similarity index 99%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/service/SharingService.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/service/SharingService.java
index 21f5f41d9b..7c0f9d6822 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/service/SharingService.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/service/SharingService.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.service;
+package org.apache.airavata.iam.service;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
@@ -25,18 +25,18 @@ import java.util.*;
 import java.util.stream.Collectors;
 import org.apache.airavata.db.DBInitializer;
 import org.apache.airavata.exception.ApplicationSettingsException;
+import org.apache.airavata.iam.model.*;
+import org.apache.airavata.iam.repository.*;
+import org.apache.airavata.iam.util.DBConstants;
+import org.apache.airavata.iam.util.SharingRegistryDBInitConfig;
 import org.apache.airavata.interfaces.SharingFacade;
 import org.apache.airavata.interfaces.SharingProvider;
-import org.apache.airavata.sharing.model.*;
 import org.apache.airavata.sharing.registry.models.proto.GroupCardinality;
 import org.apache.airavata.sharing.registry.models.proto.GroupChildType;
 import org.apache.airavata.sharing.registry.models.proto.GroupType;
 import org.apache.airavata.sharing.registry.models.proto.SearchCriteria;
 import org.apache.airavata.sharing.registry.models.proto.SharingType;
 import org.apache.airavata.sharing.registry.models.proto.UserGroup;
-import org.apache.airavata.sharing.repository.*;
-import org.apache.airavata.sharing.util.DBConstants;
-import org.apache.airavata.sharing.util.SharingRegistryDBInitConfig;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/ConnectionFactory.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/ConnectionFactory.java
similarity index 98%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/ConnectionFactory.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/ConnectionFactory.java
index 6373c2a6ed..c92b6baa94 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/ConnectionFactory.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/ConnectionFactory.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.util;
+package org.apache.airavata.iam.util;
 
 import java.sql.Connection;
 import java.sql.DriverManager;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/DBConstants.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/DBConstants.java
similarity index 99%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/DBConstants.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/DBConstants.java
index b51511fd4c..a5d52c045b 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/DBConstants.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/DBConstants.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.util;
+package org.apache.airavata.iam.util;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/SharingConstants.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/SharingConstants.java
similarity index 97%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/SharingConstants.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/SharingConstants.java
index 1a01c7021f..76e21f53a4 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/SharingConstants.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/SharingConstants.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.util;
+package org.apache.airavata.iam.util;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/SharingModelConverter.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/SharingModelConverter.java
similarity index 93%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/SharingModelConverter.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/SharingModelConverter.java
index d057f277b5..0d4e265a4c 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/SharingModelConverter.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/SharingModelConverter.java
@@ -17,10 +17,10 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.util;
+package org.apache.airavata.iam.util;
 
+import org.apache.airavata.iam.model.UserEntity;
 import org.apache.airavata.model.user.proto.UserProfile;
-import org.apache.airavata.sharing.model.UserEntity;
 
 /**
  * Converts proto data models to sharing entity types.
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/SharingRegistryDBInitConfig.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/SharingRegistryDBInitConfig.java
similarity index 97%
rename from 
airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/SharingRegistryDBInitConfig.java
rename to 
airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/SharingRegistryDBInitConfig.java
index 39421da9ed..e829756d25 100644
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/util/SharingRegistryDBInitConfig.java
+++ 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/iam/util/SharingRegistryDBInitConfig.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.util;
+package org.apache.airavata.iam.util;
 
 import org.apache.airavata.db.DBInitConfig;
 import org.apache.airavata.db.JDBCConfig;
diff --git 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/config/SharingServiceConfig.java
 
b/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/config/SharingServiceConfig.java
deleted file mode 100644
index d3091b9d05..0000000000
--- 
a/airavata-api/iam-service/src/main/java/org/apache/airavata/sharing/config/SharingServiceConfig.java
+++ /dev/null
@@ -1,27 +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.sharing.config;
-
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@ComponentScan(basePackages = "org.apache.airavata.sharing")
-public class SharingServiceConfig {}
diff --git 
a/airavata-api/iam-service/src/test/java/org/apache/airavata/sharing/service/ResourceSharingServiceTest.java
 
b/airavata-api/iam-service/src/test/java/org/apache/airavata/iam/service/ResourceSharingServiceTest.java
similarity index 98%
rename from 
airavata-api/iam-service/src/test/java/org/apache/airavata/sharing/service/ResourceSharingServiceTest.java
rename to 
airavata-api/iam-service/src/test/java/org/apache/airavata/iam/service/ResourceSharingServiceTest.java
index 2bc9c21b87..470222555f 100644
--- 
a/airavata-api/iam-service/src/test/java/org/apache/airavata/sharing/service/ResourceSharingServiceTest.java
+++ 
b/airavata-api/iam-service/src/test/java/org/apache/airavata/iam/service/ResourceSharingServiceTest.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.sharing.service;
+package org.apache.airavata.iam.service;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
@@ -27,10 +27,10 @@ import java.util.List;
 import java.util.Map;
 import org.apache.airavata.config.RequestContext;
 import org.apache.airavata.exception.ServiceAuthorizationException;
+import org.apache.airavata.iam.model.EntityEntity;
+import org.apache.airavata.iam.model.UserEntity;
+import org.apache.airavata.iam.model.UserGroupEntity;
 import org.apache.airavata.model.group.proto.ResourcePermissionType;
-import org.apache.airavata.sharing.model.EntityEntity;
-import org.apache.airavata.sharing.model.UserEntity;
-import org.apache.airavata.sharing.model.UserGroupEntity;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/airavata-api/src/test/resources/META-INF/persistence.xml 
b/airavata-api/src/test/resources/META-INF/persistence.xml
index 758f1d3e88..673efcd507 100644
--- a/airavata-api/src/test/resources/META-INF/persistence.xml
+++ b/airavata-api/src/test/resources/META-INF/persistence.xml
@@ -101,15 +101,15 @@
     <class>org.apache.airavata.research.model.TagEntity</class>
 
     <!-- iam-service (sharing / access control) -->
-    <class>org.apache.airavata.sharing.model.DomainEntity</class>
-    <class>org.apache.airavata.sharing.model.EntityEntity</class>
-    <class>org.apache.airavata.sharing.model.EntityTypeEntity</class>
-    <class>org.apache.airavata.sharing.model.GroupAdminEntity</class>
-    <class>org.apache.airavata.sharing.model.GroupMembershipEntity</class>
-    <class>org.apache.airavata.sharing.model.PermissionTypeEntity</class>
-    <class>org.apache.airavata.sharing.model.SharingEntity</class>
-    <class>org.apache.airavata.sharing.model.UserEntity</class>
-    <class>org.apache.airavata.sharing.model.UserGroupEntity</class>
+    <class>org.apache.airavata.iam.model.DomainEntity</class>
+    <class>org.apache.airavata.iam.model.EntityEntity</class>
+    <class>org.apache.airavata.iam.model.EntityTypeEntity</class>
+    <class>org.apache.airavata.iam.model.GroupAdminEntity</class>
+    <class>org.apache.airavata.iam.model.GroupMembershipEntity</class>
+    <class>org.apache.airavata.iam.model.PermissionTypeEntity</class>
+    <class>org.apache.airavata.iam.model.SharingEntity</class>
+    <class>org.apache.airavata.iam.model.UserEntity</class>
+    <class>org.apache.airavata.iam.model.UserGroupEntity</class>
 
     <!-- storage-service -->
     
<class>org.apache.airavata.storage.model.DataMovementInterfaceEntity</class>

Reply via email to