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

yasith pushed a commit to branch refactor/phase2-mid-tier-modules
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit c14ce17441cade65691e70be23802952ead9a7af
Author: yasithdev <[email protected]>
AuthorDate: Fri Mar 27 12:36:46 2026 -0500

    refactor: reorganize storage entities, repositories, services, tasks, and 
adaptors into o.a.a.storage
    
    Move storage resource entities, data movement entities, and replica catalog
    entities into storage/model/; storage and replica repositories into
    storage/repository/; DataProductService into storage/service/; data staging
    tasks into storage/task/; and storage adaptor interfaces and implementations
    into storage/util/. Update persistence.xml, dozer_mapping.xml, and all
    import statements across the codebase.
---
 .../apache/airavata/agents/api/AgentAdaptor.java   |  1 +
 .../airavata/helix/adaptor/SSHJAgentAdaptor.java   |  1 +
 .../airavata/helix/agent/ssh/SshAgentAdaptor.java  |  1 +
 .../core/support/adaptor/AdaptorSupportImpl.java   |  4 +--
 .../helix/core/support/adaptor/AgentStore.java     |  2 +-
 .../helix/impl/participant/GlobalParticipant.java  |  6 ++---
 .../airavata/helix/impl/task/SlurmTaskFactory.java |  6 ++---
 .../helix/impl/task/parsing/DataParsingTask.java   |  2 +-
 .../helix/task/api/support/AdaptorSupport.java     |  2 +-
 .../api/service/handler/RegistryServerHandler.java |  5 ++--
 .../entities/appcatalog/ComputeResourceEntity.java |  1 +
 .../entities/appcatalog/GatewayProfileEntity.java  |  1 +
 .../appcatalog/UserResourceProfileEntity.java      |  1 +
 .../appcatalog/ComputeResourceRepository.java      | 13 +++++-----
 .../appcatalog/GwyResourceProfileRepository.java   |  2 ++
 .../appcatalog/UserResourceProfileRepository.java  |  3 ++-
 .../registry/core/utils/QueryConstants.java        |  6 ++++-
 .../model}/ConfigurationEntity.java                |  2 +-
 .../model}/ConfigurationPK.java                    |  2 +-
 .../model}/DataMovementInterfaceEntity.java        |  3 ++-
 .../model}/DataMovementInterfacePK.java            |  2 +-
 .../model}/DataProductEntity.java                  |  2 +-
 .../model}/DataProductMetadataEntity.java          |  2 +-
 .../model}/DataProductMetadataPK.java              |  2 +-
 .../model}/DataReplicaLocationEntity.java          |  2 +-
 .../model}/DataReplicaMetadataEntity.java          |  2 +-
 .../model}/DataReplicaMetadataPK.java              |  2 +-
 .../model}/GridftpDataMovementEntity.java          |  2 +-
 .../model}/GridftpEndpointEntity.java              |  2 +-
 .../model}/GridftpEndpointPK.java                  |  2 +-
 .../model}/LocalDataMovementEntity.java            |  2 +-
 .../model}/ScpDataMovementEntity.java              |  2 +-
 .../model}/StorageInterfaceEntity.java             |  2 +-
 .../model}/StorageInterfacePK.java                 |  2 +-
 .../model}/StoragePreferenceEntity.java            |  3 ++-
 .../model}/StoragePreferencePK.java                |  2 +-
 .../model}/StorageResourceEntity.java              |  2 +-
 .../model}/UnicoreDatamovementEntity.java          |  2 +-
 .../model}/UserStoragePreferenceEntity.java        |  3 ++-
 .../model}/UserStoragePreferencePK.java            |  2 +-
 .../repository}/DataMovementRepository.java        |  7 ++---
 .../repository}/DataProductRepository.java         |  4 +--
 .../repository}/DataReplicaLocationRepository.java |  4 +--
 .../repository}/RepCatAbstractRepository.java      |  2 +-
 .../repository}/StoragePrefRepository.java         |  7 ++---
 .../repository}/StorageResourceRepository.java     |  9 ++++---
 .../UserStoragePreferenceRepository.java           |  7 ++---
 .../service}/DataProductService.java               |  2 +-
 .../task/staging => storage/task}/ArchiveTask.java |  4 ++-
 .../staging => storage/task}/DataStagingTask.java  | 10 ++++----
 .../task}/InputDataStagingTask.java                |  4 +--
 .../task}/OutputDataStagingTask.java               |  4 +--
 .../{agents/api => storage/util}/FileMetadata.java |  2 +-
 .../util}/SSHJStorageAdaptor.java                  |  4 +--
 .../util}/StorageResourceAdaptor.java              |  5 +++-
 .../util}/StorageResourceAdaptorImpl.java          |  4 +--
 .../streaming => storage/util}/TransferResult.java |  2 +-
 .../util}/VirtualInputStream.java                  |  2 +-
 .../util}/VirtualOutputStream.java                 |  2 +-
 .../util}/VirtualStreamProducer.java               |  2 +-
 .../src/main/resources/META-INF/persistence.xml    | 30 +++++++++++-----------
 airavata-api/src/main/resources/dozer_mapping.xml  |  2 +-
 .../appcatalog/StorageResourceRepositoryTest.java  |  1 +
 .../replicacatalog/DataProductRepositoryTest.java  |  3 ++-
 .../DataReplicaLocationRepositoryTest.java         |  4 ++-
 .../dataproduct/DataProductServiceTest.java        |  1 +
 .../api/server/handler/AiravataServerHandler.java  |  2 +-
 .../tools/load/StorageResourceManager.java         |  2 +-
 .../file/server/model/AiravataDirectory.java       |  2 +-
 .../airavata/file/server/model/AiravataFile.java   |  2 +-
 .../file/server/service/AirvataFileService.java    |  2 +-
 .../file/server/service/ProcessDataManager.java    |  2 +-
 72 files changed, 139 insertions(+), 107 deletions(-)

diff --git 
a/airavata-api/src/main/java/org/apache/airavata/agents/api/AgentAdaptor.java 
b/airavata-api/src/main/java/org/apache/airavata/agents/api/AgentAdaptor.java
index 575e2c396f..87c87b6fde 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/agents/api/AgentAdaptor.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/agents/api/AgentAdaptor.java
@@ -24,6 +24,7 @@ import java.io.OutputStream;
 import java.util.List;
 import 
org.apache.airavata.model.appcatalog.storageresource.StorageDirectoryInfo;
 import org.apache.airavata.model.appcatalog.storageresource.StorageVolumeInfo;
+import org.apache.airavata.storage.util.FileMetadata;
 
 /**
  * TODO: Class level comments please
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJAgentAdaptor.java
 
b/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJAgentAdaptor.java
index fbbd3b3437..1a2c45caa4 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJAgentAdaptor.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJAgentAdaptor.java
@@ -43,6 +43,7 @@ import net.schmizz.sshj.xfer.LocalDestFile;
 import net.schmizz.sshj.xfer.LocalFileFilter;
 import net.schmizz.sshj.xfer.LocalSourceFile;
 import org.apache.airavata.agents.api.*;
+import org.apache.airavata.storage.util.FileMetadata;
 import org.apache.airavata.helix.adaptor.wrapper.SCPFileTransferWrapper;
 import org.apache.airavata.helix.adaptor.wrapper.SFTPClientWrapper;
 import org.apache.airavata.helix.adaptor.wrapper.SessionWrapper;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/agent/ssh/SshAgentAdaptor.java
 
b/airavata-api/src/main/java/org/apache/airavata/helix/agent/ssh/SshAgentAdaptor.java
index f2da8f8a7a..5ab5040fed 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/agent/ssh/SshAgentAdaptor.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/helix/agent/ssh/SshAgentAdaptor.java
@@ -25,6 +25,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 import org.apache.airavata.agents.api.*;
+import org.apache.airavata.storage.util.FileMetadata;
 import org.apache.airavata.model.appcatalog.computeresource.*;
 import 
org.apache.airavata.model.appcatalog.storageresource.StorageDirectoryInfo;
 import org.apache.airavata.model.appcatalog.storageresource.StorageVolumeInfo;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AdaptorSupportImpl.java
 
b/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AdaptorSupportImpl.java
index 06d01f39bb..6ca8086728 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AdaptorSupportImpl.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AdaptorSupportImpl.java
@@ -22,9 +22,9 @@ package org.apache.airavata.helix.core.support.adaptor;
 import java.util.Optional;
 import org.apache.airavata.agents.api.AgentAdaptor;
 import org.apache.airavata.agents.api.AgentException;
-import org.apache.airavata.agents.api.StorageResourceAdaptor;
+import org.apache.airavata.storage.util.StorageResourceAdaptor;
 import org.apache.airavata.helix.adaptor.SSHJAgentAdaptor;
-import org.apache.airavata.helix.adaptor.SSHJStorageAdaptor;
+import org.apache.airavata.storage.util.SSHJStorageAdaptor;
 import org.apache.airavata.helix.task.api.support.AdaptorSupport;
 import 
org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
 import org.apache.airavata.model.data.movement.DataMovementProtocol;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AgentStore.java
 
b/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AgentStore.java
index 29e0f6399e..bf1fedfe71 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AgentStore.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AgentStore.java
@@ -23,7 +23,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 import org.apache.airavata.agents.api.AgentAdaptor;
-import org.apache.airavata.agents.api.StorageResourceAdaptor;
+import org.apache.airavata.storage.util.StorageResourceAdaptor;
 import 
org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
 import org.apache.airavata.model.data.movement.DataMovementProtocol;
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/participant/GlobalParticipant.java
 
b/airavata-api/src/main/java/org/apache/airavata/helix/impl/participant/GlobalParticipant.java
index cdafa7f466..31b41ca5e8 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/participant/GlobalParticipant.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/helix/impl/participant/GlobalParticipant.java
@@ -38,14 +38,14 @@ public class GlobalParticipant extends 
HelixParticipant<AbstractTask> implements
 
     public static final String[] TASK_CLASS_NAMES = {
         "org.apache.airavata.credential.task.EnvSetupTask",
-        "org.apache.airavata.helix.impl.task.staging.InputDataStagingTask",
-        "org.apache.airavata.helix.impl.task.staging.OutputDataStagingTask",
+        "org.apache.airavata.storage.task.InputDataStagingTask",
+        "org.apache.airavata.storage.task.OutputDataStagingTask",
         "org.apache.airavata.helix.impl.task.staging.JobVerificationTask",
         "org.apache.airavata.helix.impl.task.completing.CompletingTask",
         "org.apache.airavata.helix.impl.task.submission.ForkJobSubmissionTask",
         
"org.apache.airavata.helix.impl.task.submission.DefaultJobSubmissionTask",
         
"org.apache.airavata.helix.impl.task.submission.LocalJobSubmissionTask",
-        "org.apache.airavata.helix.impl.task.staging.ArchiveTask",
+        "org.apache.airavata.storage.task.ArchiveTask",
         "org.apache.airavata.helix.impl.task.cancel.WorkflowCancellationTask",
         "org.apache.airavata.helix.impl.task.cancel.RemoteJobCancellationTask",
         "org.apache.airavata.helix.impl.task.cancel.CancelCompletingTask",
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/SlurmTaskFactory.java
 
b/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/SlurmTaskFactory.java
index da50de72c5..a84e9eb4c2 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/SlurmTaskFactory.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/SlurmTaskFactory.java
@@ -22,10 +22,10 @@ package org.apache.airavata.helix.impl.task;
 import org.apache.airavata.helix.impl.task.completing.CompletingTask;
 import org.apache.airavata.credential.task.EnvSetupTask;
 import org.apache.airavata.helix.impl.task.parsing.ParsingTriggeringTask;
-import org.apache.airavata.helix.impl.task.staging.ArchiveTask;
-import org.apache.airavata.helix.impl.task.staging.InputDataStagingTask;
+import org.apache.airavata.storage.task.ArchiveTask;
+import org.apache.airavata.storage.task.InputDataStagingTask;
 import org.apache.airavata.helix.impl.task.staging.JobVerificationTask;
-import org.apache.airavata.helix.impl.task.staging.OutputDataStagingTask;
+import org.apache.airavata.storage.task.OutputDataStagingTask;
 import org.apache.airavata.helix.impl.task.submission.DefaultJobSubmissionTask;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/parsing/DataParsingTask.java
 
b/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/parsing/DataParsingTask.java
index a27b3a5c7d..7d530bf820 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/parsing/DataParsingTask.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/parsing/DataParsingTask.java
@@ -38,7 +38,7 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Collectors;
 import org.apache.airavata.agents.api.AgentException;
-import org.apache.airavata.agents.api.StorageResourceAdaptor;
+import org.apache.airavata.storage.util.StorageResourceAdaptor;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.config.ServerSettings;
 import org.apache.airavata.helix.core.AbstractTask;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/task/api/support/AdaptorSupport.java
 
b/airavata-api/src/main/java/org/apache/airavata/helix/task/api/support/AdaptorSupport.java
index 404d03175b..fff437ed35 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/task/api/support/AdaptorSupport.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/helix/task/api/support/AdaptorSupport.java
@@ -21,7 +21,7 @@ package org.apache.airavata.helix.task.api.support;
 
 import org.apache.airavata.agents.api.AgentAdaptor;
 import org.apache.airavata.agents.api.AgentException;
-import org.apache.airavata.agents.api.StorageResourceAdaptor;
+import org.apache.airavata.storage.util.StorageResourceAdaptor;
 import 
org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
 import org.apache.airavata.model.data.movement.DataMovementProtocol;
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
index ae7317f402..1dbc03488f 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
@@ -68,8 +68,9 @@ import org.apache.airavata.registry.api.registry_apiConstants;
 import org.apache.airavata.registry.core.entities.expcatalog.JobPK;
 import org.apache.airavata.registry.core.repositories.appcatalog.*;
 import org.apache.airavata.registry.core.repositories.expcatalog.*;
-import 
org.apache.airavata.registry.core.repositories.replicacatalog.DataProductRepository;
-import 
org.apache.airavata.registry.core.repositories.replicacatalog.DataReplicaLocationRepository;
+import org.apache.airavata.storage.repository.DataProductRepository;
+import org.apache.airavata.storage.repository.DataReplicaLocationRepository;
+import org.apache.airavata.storage.repository.StorageResourceRepository;
 import 
org.apache.airavata.registry.core.repositories.workflowcatalog.WorkflowRepository;
 import org.apache.airavata.registry.core.utils.DBConstants;
 import org.apache.airavata.registry.cpi.*;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ComputeResourceEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ComputeResourceEntity.java
index d77db7d873..edde077c1a 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ComputeResourceEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ComputeResourceEntity.java
@@ -23,6 +23,7 @@ import jakarta.persistence.*;
 import java.io.Serializable;
 import java.sql.Timestamp;
 import java.util.List;
+import org.apache.airavata.storage.model.DataMovementInterfaceEntity;
 
 /**
  * The persistent class for the compute_resource database table.
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GatewayProfileEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GatewayProfileEntity.java
index 582a177335..ce5c8fb8ec 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GatewayProfileEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GatewayProfileEntity.java
@@ -23,6 +23,7 @@ import jakarta.persistence.*;
 import java.io.Serializable;
 import java.sql.Timestamp;
 import java.util.List;
+import org.apache.airavata.storage.model.StoragePreferenceEntity;
 
 /**
  * The persistent class for the gateway_profile database table.
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserResourceProfileEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserResourceProfileEntity.java
index aad7572fec..0b9040b4e7 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserResourceProfileEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserResourceProfileEntity.java
@@ -22,6 +22,7 @@ package org.apache.airavata.registry.core.entities.appcatalog;
 import jakarta.persistence.*;
 import java.sql.Timestamp;
 import java.util.*;
+import org.apache.airavata.storage.model.UserStoragePreferenceEntity;
 
 /**
  * The persistent class for the user_resource_profile database table.
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/ComputeResourceRepository.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/ComputeResourceRepository.java
index 2999bf5be0..d97a12701f 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/ComputeResourceRepository.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/ComputeResourceRepository.java
@@ -48,21 +48,22 @@ import 
org.apache.airavata.registry.core.entities.appcatalog.BatchQueuePK;
 import 
org.apache.airavata.registry.core.entities.appcatalog.CloudJobSubmissionEntity;
 import 
org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceEntity;
 import 
org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceFileSystemEntity;
-import 
org.apache.airavata.registry.core.entities.appcatalog.DataMovementInterfacePK;
-import 
org.apache.airavata.registry.core.entities.appcatalog.GridftpDataMovementEntity;
-import 
org.apache.airavata.registry.core.entities.appcatalog.GridftpEndpointEntity;
+import org.apache.airavata.storage.model.DataMovementInterfacePK;
+import org.apache.airavata.storage.model.GridftpDataMovementEntity;
+import org.apache.airavata.storage.model.GridftpEndpointEntity;
 import 
org.apache.airavata.registry.core.entities.appcatalog.JobSubmissionInterfacePK;
-import 
org.apache.airavata.registry.core.entities.appcatalog.LocalDataMovementEntity;
+import org.apache.airavata.storage.model.LocalDataMovementEntity;
 import 
org.apache.airavata.registry.core.entities.appcatalog.LocalSubmissionEntity;
 import 
org.apache.airavata.registry.core.entities.appcatalog.ResourceJobManagerEntity;
-import 
org.apache.airavata.registry.core.entities.appcatalog.ScpDataMovementEntity;
+import org.apache.airavata.storage.model.ScpDataMovementEntity;
 import 
org.apache.airavata.registry.core.entities.appcatalog.SshJobSubmissionEntity;
-import 
org.apache.airavata.registry.core.entities.appcatalog.UnicoreDatamovementEntity;
+import org.apache.airavata.storage.model.UnicoreDatamovementEntity;
 import 
org.apache.airavata.registry.core.entities.appcatalog.UnicoreSubmissionEntity;
 import org.apache.airavata.registry.core.utils.AppCatalogUtils;
 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.storage.repository.DataMovementRepository;
 import org.apache.airavata.registry.cpi.AppCatalogException;
 import org.apache.airavata.registry.cpi.ComputeResource;
 import org.slf4j.Logger;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/GwyResourceProfileRepository.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/GwyResourceProfileRepository.java
index 5ed3911793..2805d6edee 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/GwyResourceProfileRepository.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/GwyResourceProfileRepository.java
@@ -29,6 +29,8 @@ import 
org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePrefer
 import 
org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
 import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
 import org.apache.airavata.registry.core.entities.appcatalog.*;
+import org.apache.airavata.storage.model.StoragePreferencePK;
+import org.apache.airavata.storage.repository.StoragePrefRepository;
 import org.apache.airavata.registry.core.utils.DBConstants;
 import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
 import org.apache.airavata.registry.core.utils.QueryConstants;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserResourceProfileRepository.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserResourceProfileRepository.java
index 8091926915..55840e778e 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserResourceProfileRepository.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserResourceProfileRepository.java
@@ -28,7 +28,8 @@ import 
org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePrefe
 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.storage.model.UserStoragePreferencePK;
+import org.apache.airavata.storage.repository.UserStoragePreferenceRepository;
 import org.apache.airavata.registry.core.utils.DBConstants;
 import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
 import org.apache.airavata.registry.core.utils.QueryConstants;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/utils/QueryConstants.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/utils/QueryConstants.java
index 0c74f2790c..7381ba0b48 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/utils/QueryConstants.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/registry/core/utils/QueryConstants.java
@@ -23,7 +23,11 @@ import org.apache.airavata.model.user.UserProfile;
 import 
org.apache.airavata.registry.core.entities.airavataworkflowcatalog.AiravataWorkflowEntity;
 import org.apache.airavata.registry.core.entities.appcatalog.*;
 import org.apache.airavata.registry.core.entities.expcatalog.*;
-import 
org.apache.airavata.registry.core.entities.replicacatalog.DataProductEntity;
+import org.apache.airavata.storage.model.DataProductEntity;
+import org.apache.airavata.storage.model.GridftpEndpointEntity;
+import org.apache.airavata.storage.model.StoragePreferenceEntity;
+import org.apache.airavata.storage.model.StorageResourceEntity;
+import org.apache.airavata.storage.model.UserStoragePreferenceEntity;
 
 public interface QueryConstants {
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/ConfigurationEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/ConfigurationEntity.java
similarity index 95%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/ConfigurationEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/ConfigurationEntity.java
index 4b42b56b37..3410ea5aef 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/ConfigurationEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/ConfigurationEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.replicacatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
 import java.io.Serializable;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/ConfigurationPK.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/ConfigurationPK.java
similarity index 96%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/ConfigurationPK.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/ConfigurationPK.java
index 7783415078..bd0d716757 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/ConfigurationPK.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/ConfigurationPK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.replicacatalog;
+package org.apache.airavata.storage.model;
 
 import java.io.Serializable;
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/DataMovementInterfaceEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataMovementInterfaceEntity.java
similarity index 96%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/DataMovementInterfaceEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/DataMovementInterfaceEntity.java
index 21e1f2a038..6a609a0070 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/DataMovementInterfaceEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataMovementInterfaceEntity.java
@@ -17,12 +17,13 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
 import java.io.Serializable;
 import java.sql.Timestamp;
 import org.apache.airavata.model.data.movement.DataMovementProtocol;
+import 
org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceEntity;
 
 /**
  * The persistent class for the data_movement_interface database table.
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/DataMovementInterfacePK.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataMovementInterfacePK.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/DataMovementInterfacePK.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/DataMovementInterfacePK.java
index 69107b29b7..3e757888bc 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/DataMovementInterfacePK.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataMovementInterfacePK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import java.io.Serializable;
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataProductEntity.java
similarity index 98%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/DataProductEntity.java
index ea08b24e37..3fa6a57454 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataProductEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.replicacatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
 import java.io.Serializable;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductMetadataEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataProductMetadataEntity.java
similarity index 96%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductMetadataEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/DataProductMetadataEntity.java
index 9d3276f4ca..3cb55a5b0e 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductMetadataEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataProductMetadataEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.replicacatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
 import java.io.Serializable;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductMetadataPK.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataProductMetadataPK.java
similarity index 96%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductMetadataPK.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/DataProductMetadataPK.java
index 7a27156bc7..5e88dc65cb 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductMetadataPK.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataProductMetadataPK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.replicacatalog;
+package org.apache.airavata.storage.model;
 
 import java.io.Serializable;
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaLocationEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataReplicaLocationEntity.java
similarity index 98%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaLocationEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/DataReplicaLocationEntity.java
index 449019f022..307b833d50 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaLocationEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataReplicaLocationEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.replicacatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
 import java.io.Serializable;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaMetadataEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataReplicaMetadataEntity.java
similarity index 96%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaMetadataEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/DataReplicaMetadataEntity.java
index 894d524a19..a4eb613c1e 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaMetadataEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataReplicaMetadataEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.replicacatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
 import java.io.Serializable;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaMetadataPK.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataReplicaMetadataPK.java
similarity index 96%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaMetadataPK.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/DataReplicaMetadataPK.java
index 83322d8130..25666ebdf7 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaMetadataPK.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/DataReplicaMetadataPK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.replicacatalog;
+package org.apache.airavata.storage.model;
 
 import java.io.Serializable;
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GridftpDataMovementEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/GridftpDataMovementEntity.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GridftpDataMovementEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/GridftpDataMovementEntity.java
index 632e12615e..ef405ec3f7 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GridftpDataMovementEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/GridftpDataMovementEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
 import java.io.Serializable;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GridftpEndpointEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/GridftpEndpointEntity.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GridftpEndpointEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/GridftpEndpointEntity.java
index add631d206..c27bea4933 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GridftpEndpointEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/GridftpEndpointEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
 import java.io.Serializable;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GridftpEndpointPK.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/GridftpEndpointPK.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GridftpEndpointPK.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/GridftpEndpointPK.java
index 6e9dad4ff7..e658c3985f 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GridftpEndpointPK.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/GridftpEndpointPK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import java.io.Serializable;
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/LocalDataMovementEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/LocalDataMovementEntity.java
similarity index 96%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/LocalDataMovementEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/LocalDataMovementEntity.java
index ea67fec888..ef72fd97a9 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/LocalDataMovementEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/LocalDataMovementEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.Column;
 import jakarta.persistence.Entity;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ScpDataMovementEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/ScpDataMovementEntity.java
similarity index 98%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ScpDataMovementEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/ScpDataMovementEntity.java
index 561ddfebb6..92b10b4efe 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ScpDataMovementEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/ScpDataMovementEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
 import java.io.Serializable;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StorageInterfaceEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/StorageInterfaceEntity.java
similarity index 98%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StorageInterfaceEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/StorageInterfaceEntity.java
index 60cff0bbaa..8541884f0f 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StorageInterfaceEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/StorageInterfaceEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
 import java.io.Serializable;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StorageInterfacePK.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/StorageInterfacePK.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StorageInterfacePK.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/StorageInterfacePK.java
index 6b2b6047c7..f612a9d03b 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StorageInterfacePK.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/StorageInterfacePK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import java.io.Serializable;
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StoragePreferenceEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/StoragePreferenceEntity.java
similarity index 96%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StoragePreferenceEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/StoragePreferenceEntity.java
index e0a53b33df..ee12263363 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StoragePreferenceEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/StoragePreferenceEntity.java
@@ -17,10 +17,11 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
 import java.io.Serializable;
+import 
org.apache.airavata.registry.core.entities.appcatalog.GatewayProfileEntity;
 
 /**
  * The persistent class for the storage_preference database table.
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StoragePreferencePK.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/StoragePreferencePK.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StoragePreferencePK.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/StoragePreferencePK.java
index 8d4649f3c5..02027b5005 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StoragePreferencePK.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/StoragePreferencePK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import java.io.Serializable;
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StorageResourceEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/StorageResourceEntity.java
similarity index 98%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StorageResourceEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/StorageResourceEntity.java
index c17d489dac..7a318803e2 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/StorageResourceEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/StorageResourceEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
 import java.io.Serializable;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UnicoreDatamovementEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/UnicoreDatamovementEntity.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UnicoreDatamovementEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/UnicoreDatamovementEntity.java
index 4ab072241b..4aea6d2f61 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UnicoreDatamovementEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/UnicoreDatamovementEntity.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.Column;
 import jakarta.persistence.Entity;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserStoragePreferenceEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/UserStoragePreferenceEntity.java
similarity index 96%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserStoragePreferenceEntity.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/UserStoragePreferenceEntity.java
index e3ae98ca6d..e82b7c1094 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserStoragePreferenceEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/UserStoragePreferenceEntity.java
@@ -17,9 +17,10 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import jakarta.persistence.*;
+import 
org.apache.airavata.registry.core.entities.appcatalog.UserResourceProfileEntity;
 
 /**
  * The persistent class for the user_storage_preference database table.
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserStoragePreferencePK.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/UserStoragePreferencePK.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserStoragePreferencePK.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/model/UserStoragePreferencePK.java
index fcf81e263b..a90e2601a1 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/UserStoragePreferencePK.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/model/UserStoragePreferencePK.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.entities.appcatalog;
+package org.apache.airavata.storage.model;
 
 import java.io.Serializable;
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/DataMovementRepository.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/DataMovementRepository.java
similarity index 86%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/DataMovementRepository.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/repository/DataMovementRepository.java
index 5476698b23..776429f7b2 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/DataMovementRepository.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/DataMovementRepository.java
@@ -17,12 +17,13 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.repositories.appcatalog;
+package org.apache.airavata.storage.repository;
 
 import com.github.dozermapper.core.Mapper;
 import org.apache.airavata.model.data.movement.DataMovementInterface;
-import 
org.apache.airavata.registry.core.entities.appcatalog.DataMovementInterfaceEntity;
-import 
org.apache.airavata.registry.core.entities.appcatalog.DataMovementInterfacePK;
+import 
org.apache.airavata.registry.core.repositories.appcatalog.AppCatAbstractRepository;
+import org.apache.airavata.storage.model.DataMovementInterfaceEntity;
+import org.apache.airavata.storage.model.DataMovementInterfacePK;
 import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
 
 public class DataMovementRepository
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataProductRepository.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/DataProductRepository.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataProductRepository.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/repository/DataProductRepository.java
index c9fc69d68a..222c402fa9 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataProductRepository.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/DataProductRepository.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.repositories.replicacatalog;
+package org.apache.airavata.storage.repository;
 
 import com.github.dozermapper.core.Mapper;
 import java.sql.Timestamp;
@@ -25,7 +25,7 @@ import java.time.Duration;
 import java.util.*;
 import org.apache.airavata.model.data.replica.DataProductModel;
 import org.apache.airavata.model.data.replica.DataProductType;
-import 
org.apache.airavata.registry.core.entities.replicacatalog.DataProductEntity;
+import org.apache.airavata.storage.model.DataProductEntity;
 import org.apache.airavata.registry.core.utils.DBConstants;
 import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
 import org.apache.airavata.registry.core.utils.QueryConstants;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataReplicaLocationRepository.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/DataReplicaLocationRepository.java
similarity index 96%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataReplicaLocationRepository.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/repository/DataReplicaLocationRepository.java
index df0ad7693e..a370fb7f56 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataReplicaLocationRepository.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/DataReplicaLocationRepository.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.repositories.replicacatalog;
+package org.apache.airavata.storage.repository;
 
 import com.github.dozermapper.core.Mapper;
 import java.sql.Timestamp;
@@ -25,7 +25,7 @@ import java.util.List;
 import java.util.UUID;
 import org.apache.airavata.model.data.replica.DataProductModel;
 import org.apache.airavata.model.data.replica.DataReplicaLocationModel;
-import 
org.apache.airavata.registry.core.entities.replicacatalog.DataReplicaLocationEntity;
+import org.apache.airavata.storage.model.DataReplicaLocationEntity;
 import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
 import org.apache.airavata.registry.cpi.DataReplicaLocationInterface;
 import org.apache.airavata.registry.cpi.ReplicaCatalogException;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/RepCatAbstractRepository.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/RepCatAbstractRepository.java
similarity index 95%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/RepCatAbstractRepository.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/repository/RepCatAbstractRepository.java
index 1572045ae4..e6ecad5cc2 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/RepCatAbstractRepository.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/RepCatAbstractRepository.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.repositories.replicacatalog;
+package org.apache.airavata.storage.repository;
 
 import jakarta.persistence.EntityManager;
 import org.apache.airavata.registry.core.repositories.AbstractRepository;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/StoragePrefRepository.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/StoragePrefRepository.java
similarity index 80%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/StoragePrefRepository.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/repository/StoragePrefRepository.java
index b2c70bd1ff..3b4265f617 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/StoragePrefRepository.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/StoragePrefRepository.java
@@ -17,11 +17,12 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.repositories.appcatalog;
+package org.apache.airavata.storage.repository;
 
 import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
-import 
org.apache.airavata.registry.core.entities.appcatalog.StoragePreferenceEntity;
-import 
org.apache.airavata.registry.core.entities.appcatalog.StoragePreferencePK;
+import 
org.apache.airavata.registry.core.repositories.appcatalog.AppCatAbstractRepository;
+import org.apache.airavata.storage.model.StoragePreferenceEntity;
+import org.apache.airavata.storage.model.StoragePreferencePK;
 
 public class StoragePrefRepository
         extends AppCatAbstractRepository<StoragePreference, 
StoragePreferenceEntity, StoragePreferencePK> {
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/StorageResourceRepository.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/StorageResourceRepository.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/StorageResourceRepository.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/repository/StorageResourceRepository.java
index 475e414226..f608e06820 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/StorageResourceRepository.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/StorageResourceRepository.java
@@ -17,18 +17,19 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.repositories.appcatalog;
+package org.apache.airavata.storage.repository;
 
 import com.github.dozermapper.core.Mapper;
+import 
org.apache.airavata.registry.core.repositories.appcatalog.AppCatAbstractRepository;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import 
org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription;
 import org.apache.airavata.model.commons.airavata_commonsConstants;
 import org.apache.airavata.model.data.movement.DataMovementInterface;
-import 
org.apache.airavata.registry.core.entities.appcatalog.StorageInterfaceEntity;
-import 
org.apache.airavata.registry.core.entities.appcatalog.StorageInterfacePK;
-import 
org.apache.airavata.registry.core.entities.appcatalog.StorageResourceEntity;
+import org.apache.airavata.storage.model.StorageInterfaceEntity;
+import org.apache.airavata.storage.model.StorageInterfacePK;
+import org.apache.airavata.storage.model.StorageResourceEntity;
 import org.apache.airavata.registry.core.utils.AppCatalogUtils;
 import org.apache.airavata.registry.core.utils.DBConstants;
 import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserStoragePreferenceRepository.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/UserStoragePreferenceRepository.java
similarity index 81%
rename from 
airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserStoragePreferenceRepository.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/repository/UserStoragePreferenceRepository.java
index 66060ad772..67796b3013 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/UserStoragePreferenceRepository.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/repository/UserStoragePreferenceRepository.java
@@ -17,11 +17,12 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.registry.core.repositories.appcatalog;
+package org.apache.airavata.storage.repository;
 
 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.apache.airavata.registry.core.repositories.appcatalog.AppCatAbstractRepository;
+import org.apache.airavata.storage.model.UserStoragePreferenceEntity;
+import org.apache.airavata.storage.model.UserStoragePreferencePK;
 
 public class UserStoragePreferenceRepository
         extends AppCatAbstractRepository<UserStoragePreference, 
UserStoragePreferenceEntity, UserStoragePreferencePK> {
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/service/dataproduct/DataProductService.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/service/DataProductService.java
similarity index 98%
rename from 
airavata-api/src/main/java/org/apache/airavata/service/dataproduct/DataProductService.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/service/DataProductService.java
index 9fc0f712a7..31d69ae800 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/service/dataproduct/DataProductService.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/service/DataProductService.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.service.dataproduct;
+package org.apache.airavata.storage.service;
 
 import java.util.List;
 import org.apache.airavata.model.data.replica.DataProductModel;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/ArchiveTask.java
 b/airavata-api/src/main/java/org/apache/airavata/storage/task/ArchiveTask.java
similarity index 98%
rename from 
airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/ArchiveTask.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/task/ArchiveTask.java
index ad31584191..f2991401cb 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/ArchiveTask.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/task/ArchiveTask.java
@@ -17,12 +17,14 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.helix.impl.task.staging;
+package org.apache.airavata.storage.task;
 
 import java.io.File;
 import java.net.URI;
 import java.net.URISyntaxException;
 import org.apache.airavata.agents.api.*;
+import org.apache.airavata.storage.util.FileMetadata;
+import org.apache.airavata.storage.util.StorageResourceAdaptor;
 import org.apache.airavata.common.config.ServerSettings;
 import org.apache.airavata.helix.impl.task.TaskContext;
 import org.apache.airavata.helix.impl.task.TaskOnFailException;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/DataStagingTask.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/task/DataStagingTask.java
similarity index 98%
rename from 
airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/DataStagingTask.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/task/DataStagingTask.java
index 8cd0fb026b..44e2b0a01a 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/DataStagingTask.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/task/DataStagingTask.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.helix.impl.task.staging;
+package org.apache.airavata.storage.task;
 
 import java.io.File;
 import java.io.IOException;
@@ -28,10 +28,10 @@ import java.util.Map;
 import java.util.concurrent.*;
 import org.apache.airavata.agents.api.AgentAdaptor;
 import org.apache.airavata.agents.api.AgentException;
-import org.apache.airavata.agents.api.FileMetadata;
-import org.apache.airavata.agents.api.StorageResourceAdaptor;
-import org.apache.airavata.agents.streaming.TransferResult;
-import org.apache.airavata.agents.streaming.VirtualStreamProducer;
+import org.apache.airavata.storage.util.FileMetadata;
+import org.apache.airavata.storage.util.StorageResourceAdaptor;
+import org.apache.airavata.storage.util.TransferResult;
+import org.apache.airavata.storage.util.VirtualStreamProducer;
 import org.apache.airavata.common.config.ServerSettings;
 import org.apache.airavata.helix.impl.task.AiravataTask;
 import org.apache.airavata.helix.impl.task.TaskOnFailException;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/InputDataStagingTask.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/task/InputDataStagingTask.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/InputDataStagingTask.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/task/InputDataStagingTask.java
index ebdf93df05..bd03552066 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/InputDataStagingTask.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/task/InputDataStagingTask.java
@@ -17,12 +17,12 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.helix.impl.task.staging;
+package org.apache.airavata.storage.task;
 
 import java.net.URI;
 import java.net.URISyntaxException;
 import org.apache.airavata.agents.api.AgentAdaptor;
-import org.apache.airavata.agents.api.StorageResourceAdaptor;
+import org.apache.airavata.storage.util.StorageResourceAdaptor;
 import org.apache.airavata.helix.impl.task.TaskContext;
 import org.apache.airavata.helix.impl.task.TaskOnFailException;
 import org.apache.airavata.helix.task.api.TaskHelper;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/OutputDataStagingTask.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/task/OutputDataStagingTask.java
similarity index 99%
rename from 
airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/OutputDataStagingTask.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/task/OutputDataStagingTask.java
index 36872c25dc..ddea719fe4 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/OutputDataStagingTask.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/task/OutputDataStagingTask.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.helix.impl.task.staging;
+package org.apache.airavata.storage.task;
 
 import java.io.File;
 import java.net.URI;
@@ -28,7 +28,7 @@ import java.util.stream.Collectors;
 import org.apache.airavata.agents.api.AgentAdaptor;
 import org.apache.airavata.agents.api.AgentException;
 import org.apache.airavata.agents.api.CommandOutput;
-import org.apache.airavata.agents.api.StorageResourceAdaptor;
+import org.apache.airavata.storage.util.StorageResourceAdaptor;
 import org.apache.airavata.helix.impl.task.TaskContext;
 import org.apache.airavata.helix.impl.task.TaskOnFailException;
 import org.apache.airavata.helix.task.api.TaskHelper;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/agents/api/FileMetadata.java 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/FileMetadata.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/agents/api/FileMetadata.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/util/FileMetadata.java
index 38cdd0ab85..d52d4f48ef 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/agents/api/FileMetadata.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/FileMetadata.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.agents.api;
+package org.apache.airavata.storage.util;
 
 public class FileMetadata {
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJStorageAdaptor.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/SSHJStorageAdaptor.java
similarity index 98%
rename from 
airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJStorageAdaptor.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/util/SSHJStorageAdaptor.java
index b1a6c4e800..994d34098e 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJStorageAdaptor.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/SSHJStorageAdaptor.java
@@ -17,13 +17,13 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.helix.adaptor;
+package org.apache.airavata.storage.util;
 
 import java.util.Optional;
 import org.apache.airavata.agents.api.AgentException;
 import org.apache.airavata.agents.api.AgentUtils;
 import org.apache.airavata.agents.api.CommandOutput;
-import org.apache.airavata.agents.api.StorageResourceAdaptor;
+import org.apache.airavata.helix.adaptor.SSHJAgentAdaptor;
 import 
org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription;
 import org.apache.airavata.model.credential.store.SSHCredential;
 import org.apache.airavata.model.data.movement.DataMovementInterface;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/agents/api/StorageResourceAdaptor.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/StorageResourceAdaptor.java
similarity index 91%
rename from 
airavata-api/src/main/java/org/apache/airavata/agents/api/StorageResourceAdaptor.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/util/StorageResourceAdaptor.java
index 83ee95945c..bad3b92f4c 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/agents/api/StorageResourceAdaptor.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/StorageResourceAdaptor.java
@@ -17,11 +17,14 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.agents.api;
+package org.apache.airavata.storage.util;
 
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.List;
+import org.apache.airavata.agents.api.AgentAdaptor;
+import org.apache.airavata.agents.api.AgentException;
+import org.apache.airavata.agents.api.CommandOutput;
 
 public interface StorageResourceAdaptor extends AgentAdaptor {
     public void init(String storageResourceId, String gatewayId, String 
loginUser, String token) throws AgentException;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/agent/storage/StorageResourceAdaptorImpl.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/StorageResourceAdaptorImpl.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/helix/agent/storage/StorageResourceAdaptorImpl.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/util/StorageResourceAdaptorImpl.java
index da6fe5759a..1577b712d1 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/agent/storage/StorageResourceAdaptorImpl.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/StorageResourceAdaptorImpl.java
@@ -17,12 +17,12 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.helix.agent.storage;
+package org.apache.airavata.storage.util;
 
 import org.apache.airavata.agents.api.AgentException;
 import org.apache.airavata.agents.api.AgentUtils;
 import org.apache.airavata.agents.api.CommandOutput;
-import org.apache.airavata.agents.api.StorageResourceAdaptor;
+import org.apache.airavata.storage.util.StorageResourceAdaptor;
 import org.apache.airavata.helix.agent.ssh.SshAdaptorParams;
 import org.apache.airavata.helix.agent.ssh.SshAgentAdaptor;
 import 
org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/agents/streaming/TransferResult.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/TransferResult.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/agents/streaming/TransferResult.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/util/TransferResult.java
index f9b67e2147..1b8521cd4f 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/agents/streaming/TransferResult.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/TransferResult.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.agents.streaming;
+package org.apache.airavata.storage.util;
 
 public class TransferResult {
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/agents/streaming/VirtualInputStream.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/VirtualInputStream.java
similarity index 98%
rename from 
airavata-api/src/main/java/org/apache/airavata/agents/streaming/VirtualInputStream.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/util/VirtualInputStream.java
index 6510d90002..2560490731 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/agents/streaming/VirtualInputStream.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/VirtualInputStream.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.agents.streaming;
+package org.apache.airavata.storage.util;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/agents/streaming/VirtualOutputStream.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/VirtualOutputStream.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/agents/streaming/VirtualOutputStream.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/util/VirtualOutputStream.java
index 02390b7073..fb732b5777 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/agents/streaming/VirtualOutputStream.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/VirtualOutputStream.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.agents.streaming;
+package org.apache.airavata.storage.util;
 
 import java.io.IOException;
 import java.io.OutputStream;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/agents/streaming/VirtualStreamProducer.java
 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/VirtualStreamProducer.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/agents/streaming/VirtualStreamProducer.java
rename to 
airavata-api/src/main/java/org/apache/airavata/storage/util/VirtualStreamProducer.java
index b82fa76c5c..9ecd3c2d18 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/agents/streaming/VirtualStreamProducer.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/storage/util/VirtualStreamProducer.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.agents.streaming;
+package org.apache.airavata.storage.util;
 
 import java.io.InputStream;
 import java.io.OutputStream;
diff --git a/airavata-api/src/main/resources/META-INF/persistence.xml 
b/airavata-api/src/main/resources/META-INF/persistence.xml
index e314714f89..eed1cbbb00 100644
--- a/airavata-api/src/main/resources/META-INF/persistence.xml
+++ b/airavata-api/src/main/resources/META-INF/persistence.xml
@@ -35,7 +35,7 @@
   </persistence-unit>
   <persistence-unit name="appcatalog_data_new">
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
-    
<class>org.apache.airavata.registry.core.entities.appcatalog.GridftpDataMovementEntity</class>
+    <class>org.apache.airavata.storage.model.GridftpDataMovementEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.ResourceJobManagerEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationModuleEntity</class>
@@ -43,19 +43,19 @@
     
<class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationInterfaceEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.GatewayGroupsEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.GatewayProfileEntity</class>
-    
<class>org.apache.airavata.registry.core.entities.appcatalog.StorageResourceEntity</class>
-    
<class>org.apache.airavata.registry.core.entities.appcatalog.ScpDataMovementEntity</class>
+    <class>org.apache.airavata.storage.model.StorageResourceEntity</class>
+    <class>org.apache.airavata.storage.model.ScpDataMovementEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.SshJobSubmissionEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.GlobusSubmissionEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.GsisshSubmissionEntity</class>
-    
<class>org.apache.airavata.registry.core.entities.appcatalog.GridftpEndpointEntity</class>
+    <class>org.apache.airavata.storage.model.GridftpEndpointEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourcePreferenceEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.JobSubmissionInterfaceEntity</class>
-    
<class>org.apache.airavata.registry.core.entities.appcatalog.DataMovementInterfaceEntity</class>
-    
<class>org.apache.airavata.registry.core.entities.appcatalog.StorageInterfaceEntity</class>
+    
<class>org.apache.airavata.storage.model.DataMovementInterfaceEntity</class>
+    <class>org.apache.airavata.storage.model.StorageInterfaceEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.LocalSubmissionEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.GlobusGkEndpointEntity</class>
-    
<class>org.apache.airavata.registry.core.entities.appcatalog.UnicoreDatamovementEntity</class>
+    <class>org.apache.airavata.storage.model.UnicoreDatamovementEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.UnicoreSubmissionEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.GsisshPostjobcommandEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.GsisshPrejobcommandEntity</class>
@@ -73,8 +73,8 @@
     
<class>org.apache.airavata.registry.core.entities.appcatalog.CloudJobSubmissionEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.JobManagerCommandEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.ParallelismCommandEntity</class>
-    
<class>org.apache.airavata.registry.core.entities.appcatalog.LocalDataMovementEntity</class>
-    
<class>org.apache.airavata.registry.core.entities.appcatalog.StoragePreferenceEntity</class>
+    <class>org.apache.airavata.storage.model.LocalDataMovementEntity</class>
+    <class>org.apache.airavata.storage.model.StoragePreferenceEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.SSHAccountProvisionerConfiguration</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.BatchQueueResourcePolicyEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.ComputeResourcePolicyEntity</class>
@@ -86,7 +86,7 @@
     
<class>org.apache.airavata.registry.core.entities.appcatalog.ModuleLoadCmdEntity</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>
+    
<class>org.apache.airavata.storage.model.UserStoragePreferenceEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.ParserEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.ParserInputEntity</class>
     
<class>org.apache.airavata.registry.core.entities.appcatalog.ParserOutputEntity</class>
@@ -104,11 +104,11 @@
   </persistence-unit>
   <persistence-unit name="replicacatalog_data_new">
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
-    
<class>org.apache.airavata.registry.core.entities.replicacatalog.ConfigurationEntity</class>
-    
<class>org.apache.airavata.registry.core.entities.replicacatalog.DataProductEntity</class>
-    
<class>org.apache.airavata.registry.core.entities.replicacatalog.DataProductMetadataEntity</class>
-    
<class>org.apache.airavata.registry.core.entities.replicacatalog.DataReplicaLocationEntity</class>
-    
<class>org.apache.airavata.registry.core.entities.replicacatalog.DataReplicaMetadataEntity</class>
+    <class>org.apache.airavata.storage.model.ConfigurationEntity</class>
+    <class>org.apache.airavata.storage.model.DataProductEntity</class>
+    <class>org.apache.airavata.storage.model.DataProductMetadataEntity</class>
+    <class>org.apache.airavata.storage.model.DataReplicaLocationEntity</class>
+    <class>org.apache.airavata.storage.model.DataReplicaMetadataEntity</class>
     <exclude-unlisted-classes>true</exclude-unlisted-classes>
     <properties>
       <property name="openjpa.jdbc.MappingDefaults"
diff --git a/airavata-api/src/main/resources/dozer_mapping.xml 
b/airavata-api/src/main/resources/dozer_mapping.xml
index 5576403229..43d5893d83 100644
--- a/airavata-api/src/main/resources/dozer_mapping.xml
+++ b/airavata-api/src/main/resources/dozer_mapping.xml
@@ -31,7 +31,7 @@
 
     <mapping>
         
<class-a>org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription</class-a>
-        
<class-b>org.apache.airavata.registry.core.entities.appcatalog.StorageInterfaceEntity</class-b>
+        
<class-b>org.apache.airavata.storage.model.StorageInterfaceEntity</class-b>
         <field 
custom-converter="org.apache.airavata.registry.core.utils.DozerConverter.StorageDateConverter">
             <a>creationTime</a>
             <b>creationTime</b>
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/StorageResourceRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/StorageResourceRepositoryTest.java
index d3d220d84b..2ce15a97be 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/StorageResourceRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/StorageResourceRepositoryTest.java
@@ -31,6 +31,7 @@ import 
org.apache.airavata.model.data.movement.GridFTPDataMovement;
 import org.apache.airavata.model.data.movement.SCPDataMovement;
 import org.apache.airavata.model.data.movement.SecurityProtocol;
 import org.apache.airavata.registry.core.repositories.common.TestBase;
+import org.apache.airavata.storage.repository.StorageResourceRepository;
 import org.apache.airavata.registry.cpi.AppCatalogException;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataProductRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataProductRepositoryTest.java
index 1e16386398..441f4395d6 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataProductRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataProductRepositoryTest.java
@@ -31,8 +31,9 @@ import org.apache.airavata.model.data.replica.DataProductType;
 import org.apache.airavata.model.data.replica.DataReplicaLocationModel;
 import org.apache.airavata.model.data.replica.ReplicaLocationCategory;
 import org.apache.airavata.model.data.replica.ReplicaPersistentType;
-import 
org.apache.airavata.registry.core.entities.replicacatalog.DataProductMetadataEntity;
+import org.apache.airavata.storage.model.DataProductMetadataEntity;
 import org.apache.airavata.registry.core.repositories.common.TestBase;
+import org.apache.airavata.storage.repository.DataProductRepository;
 import org.apache.airavata.registry.cpi.ReplicaCatalogException;
 import org.junit.jupiter.api.Test;
 
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataReplicaLocationRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataReplicaLocationRepositoryTest.java
index 70e802aa31..e144510361 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataReplicaLocationRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/core/repositories/replicacatalog/DataReplicaLocationRepositoryTest.java
@@ -30,8 +30,10 @@ import 
org.apache.airavata.model.data.replica.DataProductModel;
 import org.apache.airavata.model.data.replica.DataProductType;
 import org.apache.airavata.model.data.replica.DataReplicaLocationModel;
 import org.apache.airavata.model.data.replica.ReplicaPersistentType;
-import 
org.apache.airavata.registry.core.entities.replicacatalog.DataReplicaMetadataEntity;
+import org.apache.airavata.storage.model.DataReplicaMetadataEntity;
 import org.apache.airavata.registry.core.repositories.common.TestBase;
+import org.apache.airavata.storage.repository.DataProductRepository;
+import org.apache.airavata.storage.repository.DataReplicaLocationRepository;
 import org.apache.airavata.registry.cpi.ReplicaCatalogException;
 import org.junit.jupiter.api.Test;
 
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/service/dataproduct/DataProductServiceTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/service/dataproduct/DataProductServiceTest.java
index 989378d6e7..47a0791046 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/service/dataproduct/DataProductServiceTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/service/dataproduct/DataProductServiceTest.java
@@ -28,6 +28,7 @@ import 
org.apache.airavata.model.data.replica.DataProductModel;
 import org.apache.airavata.model.data.replica.DataReplicaLocationModel;
 import org.apache.airavata.registry.api.service.handler.RegistryServerHandler;
 import org.apache.airavata.service.context.RequestContext;
+import org.apache.airavata.storage.service.DataProductService;
 import org.apache.airavata.service.exception.ServiceException;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
diff --git 
a/airavata-thrift-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
 
b/airavata-thrift-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index 67350b48ff..a55d8e1c88 100644
--- 
a/airavata-thrift-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ 
b/airavata-thrift-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -75,7 +75,7 @@ import org.apache.airavata.model.workspace.Project;
 import org.apache.airavata.registry.api.service.handler.RegistryServerHandler;
 import org.apache.airavata.service.appcatalog.ApplicationCatalogService;
 import org.apache.airavata.credential.service.CredentialService;
-import org.apache.airavata.service.dataproduct.DataProductService;
+import org.apache.airavata.storage.service.DataProductService;
 import org.apache.airavata.service.experiment.ExperimentService;
 import org.apache.airavata.service.gateway.GatewayService;
 import org.apache.airavata.service.groupprofile.GroupResourceProfileService;
diff --git 
a/dev-tools/load-client/src/main/java/org/apache/airavata/tools/load/StorageResourceManager.java
 
b/dev-tools/load-client/src/main/java/org/apache/airavata/tools/load/StorageResourceManager.java
index c189e88e5e..230d9ee125 100644
--- 
a/dev-tools/load-client/src/main/java/org/apache/airavata/tools/load/StorageResourceManager.java
+++ 
b/dev-tools/load-client/src/main/java/org/apache/airavata/tools/load/StorageResourceManager.java
@@ -27,7 +27,7 @@ import java.nio.file.Paths;
 import java.util.Collections;
 import org.apache.airavata.agents.api.AgentException;
 import org.apache.airavata.api.Airavata;
-import org.apache.airavata.helix.adaptor.SSHJStorageAdaptor;
+import org.apache.airavata.storage.util.SSHJStorageAdaptor;
 import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
 import 
org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription;
 import org.apache.airavata.model.data.replica.*;
diff --git 
a/modules/file-server/src/main/java/org/apache/airavata/file/server/model/AiravataDirectory.java
 
b/modules/file-server/src/main/java/org/apache/airavata/file/server/model/AiravataDirectory.java
index ab86919033..344fa787b8 100644
--- 
a/modules/file-server/src/main/java/org/apache/airavata/file/server/model/AiravataDirectory.java
+++ 
b/modules/file-server/src/main/java/org/apache/airavata/file/server/model/AiravataDirectory.java
@@ -21,7 +21,7 @@ package org.apache.airavata.file.server.model;
 
 import java.util.ArrayList;
 import java.util.List;
-import org.apache.airavata.agents.api.FileMetadata;
+import org.apache.airavata.storage.util.FileMetadata;
 
 public class AiravataDirectory {
     private String directoryName;
diff --git 
a/modules/file-server/src/main/java/org/apache/airavata/file/server/model/AiravataFile.java
 
b/modules/file-server/src/main/java/org/apache/airavata/file/server/model/AiravataFile.java
index 511f5a35cc..218e0c85a6 100644
--- 
a/modules/file-server/src/main/java/org/apache/airavata/file/server/model/AiravataFile.java
+++ 
b/modules/file-server/src/main/java/org/apache/airavata/file/server/model/AiravataFile.java
@@ -19,7 +19,7 @@
 */
 package org.apache.airavata.file.server.model;
 
-import org.apache.airavata.agents.api.FileMetadata;
+import org.apache.airavata.storage.util.FileMetadata;
 
 public class AiravataFile {
     private String fileName;
diff --git 
a/modules/file-server/src/main/java/org/apache/airavata/file/server/service/AirvataFileService.java
 
b/modules/file-server/src/main/java/org/apache/airavata/file/server/service/AirvataFileService.java
index eafbd93c7a..bf4fe21d03 100644
--- 
a/modules/file-server/src/main/java/org/apache/airavata/file/server/service/AirvataFileService.java
+++ 
b/modules/file-server/src/main/java/org/apache/airavata/file/server/service/AirvataFileService.java
@@ -25,7 +25,7 @@ import java.nio.file.Path;
 import java.nio.file.StandardCopyOption;
 import java.util.List;
 import org.apache.airavata.agents.api.AgentAdaptor;
-import org.apache.airavata.agents.api.FileMetadata;
+import org.apache.airavata.storage.util.FileMetadata;
 import org.apache.airavata.common.util.ThriftClientPool;
 import org.apache.airavata.file.server.model.AiravataDirectory;
 import org.apache.airavata.file.server.model.AiravataFile;
diff --git 
a/modules/file-server/src/main/java/org/apache/airavata/file/server/service/ProcessDataManager.java
 
b/modules/file-server/src/main/java/org/apache/airavata/file/server/service/ProcessDataManager.java
index d228f7ca94..92b3d9509b 100644
--- 
a/modules/file-server/src/main/java/org/apache/airavata/file/server/service/ProcessDataManager.java
+++ 
b/modules/file-server/src/main/java/org/apache/airavata/file/server/service/ProcessDataManager.java
@@ -25,7 +25,7 @@ import org.apache.airavata.agents.api.AgentUtils;
 import org.apache.airavata.common.util.ThriftClientPool;
 import org.apache.airavata.helix.adaptor.SSHJAgentAdaptor;
 import org.apache.airavata.helix.impl.task.aws.AWSProcessContextManager;
-import org.apache.airavata.helix.impl.task.staging.OutputDataStagingTask;
+import org.apache.airavata.storage.task.OutputDataStagingTask;
 import org.apache.airavata.helix.task.api.support.AdaptorSupport;
 import org.apache.airavata.model.appcatalog.groupresourceprofile.ResourceType;
 import org.apache.airavata.model.credential.store.SSHCredential;


Reply via email to