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

yasith pushed a commit to branch feat/grpc-armeria-migration
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit 0c6f05ec276d67af63687b4a51b75776fa311574
Author: yasithdev <[email protected]>
AuthorDate: Wed Apr 1 13:32:30 2026 -0400

    feat: expand research-service with experiments, projects, apps, parsers, 
notifications
---
 airavata-api/agent-service/pom.xml                 |  5 +++++
 .../service/services/AiravataService.java          |  6 +++---
 airavata-api/research-service/pom.xml              | 24 ++++++++++++++++++++++
 .../service/ApplicationCatalogService.java         |  2 +-
 .../research}/service/ExperimentService.java       |  6 +++++-
 .../research}/service/NotificationService.java     |  4 +++-
 .../airavata/research}/service/ParserService.java  |  2 +-
 .../airavata/research}/service/ProjectService.java |  6 +++++-
 .../service/ApplicationCatalogServiceTest.java     |  2 +-
 .../research}/service/ExperimentServiceTest.java   |  5 ++++-
 .../research}/service/NotificationServiceTest.java |  4 +++-
 .../research}/service/ParserServiceTest.java       |  2 +-
 .../research}/service/ProjectServiceTest.java      |  5 ++++-
 .../server/config/ServiceWiringConfig.java         |  2 +-
 .../services/ApplicationCatalogGrpcService.java    |  2 +-
 .../grpc/services/ExperimentGrpcService.java       |  2 +-
 .../grpc/services/NotificationGrpcService.java     |  2 +-
 .../server/grpc/services/ParserGrpcService.java    |  2 +-
 .../server/grpc/services/ProjectGrpcService.java   |  2 +-
 19 files changed, 66 insertions(+), 19 deletions(-)

diff --git a/airavata-api/agent-service/pom.xml 
b/airavata-api/agent-service/pom.xml
index 6915dadc7f..fd9316f392 100644
--- a/airavata-api/agent-service/pom.xml
+++ b/airavata-api/agent-service/pom.xml
@@ -124,6 +124,11 @@ under the License.
       <artifactId>compute-service</artifactId>
       <version>${project.version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.apache.airavata</groupId>
+      <artifactId>research-service</artifactId>
+      <version>${project.version}</version>
+    </dependency>
     <dependency>
       <groupId>org.apache.airavata</groupId>
       <artifactId>airavata-api</artifactId>
diff --git 
a/airavata-api/agent-service/src/main/java/org/apache/airavata/agent/connection/service/services/AiravataService.java
 
b/airavata-api/agent-service/src/main/java/org/apache/airavata/agent/connection/service/services/AiravataService.java
index 400c4ff767..4a2076f0a6 100644
--- 
a/airavata-api/agent-service/src/main/java/org/apache/airavata/agent/connection/service/services/AiravataService.java
+++ 
b/airavata-api/agent-service/src/main/java/org/apache/airavata/agent/connection/service/services/AiravataService.java
@@ -27,10 +27,10 @@ import java.util.Optional;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import org.apache.airavata.common.security.UserContext;
-import org.apache.airavata.compute.service.ApplicationCatalogService;
 import org.apache.airavata.compute.service.GroupResourceProfileService;
-import org.apache.airavata.execution.service.ExperimentService;
-import org.apache.airavata.execution.service.ProjectService;
+import org.apache.airavata.research.service.ApplicationCatalogService;
+import org.apache.airavata.research.service.ExperimentService;
+import org.apache.airavata.research.service.ProjectService;
 import org.apache.airavata.execution.service.RequestContext;
 import org.apache.airavata.execution.service.ServiceException;
 import 
org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
diff --git a/airavata-api/research-service/pom.xml 
b/airavata-api/research-service/pom.xml
index e22b961894..57072953bf 100644
--- a/airavata-api/research-service/pom.xml
+++ b/airavata-api/research-service/pom.xml
@@ -142,6 +142,30 @@ under the License.
         </exclusion>
       </exclusions>
     </dependency>
+    <dependency>
+      <groupId>org.apache.airavata</groupId>
+      <artifactId>credential-service</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
+    <!-- Test dependencies -->
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <version>5.23.0</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-junit-jupiter</artifactId>
+      <version>5.23.0</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>
diff --git 
a/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/service/ApplicationCatalogService.java
 
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ApplicationCatalogService.java
similarity index 99%
rename from 
airavata-api/compute-service/src/main/java/org/apache/airavata/compute/service/ApplicationCatalogService.java
rename to 
airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ApplicationCatalogService.java
index 3ec333518a..18b14c3fdc 100644
--- 
a/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/service/ApplicationCatalogService.java
+++ 
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ApplicationCatalogService.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.compute.service;
+package org.apache.airavata.research.service;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/execution/service/ExperimentService.java
 
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ExperimentService.java
similarity index 99%
rename from 
airavata-api/src/main/java/org/apache/airavata/execution/service/ExperimentService.java
rename to 
airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ExperimentService.java
index 8df022bd13..72e7d58145 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/execution/service/ExperimentService.java
+++ 
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ExperimentService.java
@@ -17,7 +17,11 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.execution.service;
+package org.apache.airavata.research.service;
+import org.apache.airavata.execution.service.RequestContext;
+import org.apache.airavata.execution.service.ServiceException;
+import org.apache.airavata.execution.service.ServiceNotFoundException;
+import org.apache.airavata.execution.service.ServiceAuthorizationException;
 
 import java.util.ArrayList;
 import java.util.Comparator;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/execution/service/NotificationService.java
 
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/NotificationService.java
similarity index 94%
rename from 
airavata-api/src/main/java/org/apache/airavata/execution/service/NotificationService.java
rename to 
airavata-api/research-service/src/main/java/org/apache/airavata/research/service/NotificationService.java
index c96f3e7aee..68c72febde 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/execution/service/NotificationService.java
+++ 
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/NotificationService.java
@@ -17,7 +17,9 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.execution.service;
+package org.apache.airavata.research.service;
+import org.apache.airavata.execution.service.RequestContext;
+import org.apache.airavata.execution.service.ServiceException;
 
 import java.util.List;
 import org.apache.airavata.execution.handler.RegistryServerHandler;
diff --git 
a/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/service/ParserService.java
 
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ParserService.java
similarity index 99%
rename from 
airavata-api/compute-service/src/main/java/org/apache/airavata/compute/service/ParserService.java
rename to 
airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ParserService.java
index 1d85f107b0..e567cd84ac 100644
--- 
a/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/service/ParserService.java
+++ 
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ParserService.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.compute.service;
+package org.apache.airavata.research.service;
 
 import java.util.List;
 import org.apache.airavata.execution.handler.RegistryServerHandler;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/execution/service/ProjectService.java
 
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ProjectService.java
similarity index 97%
rename from 
airavata-api/src/main/java/org/apache/airavata/execution/service/ProjectService.java
rename to 
airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ProjectService.java
index 7621f7db20..fc2c9fa589 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/execution/service/ProjectService.java
+++ 
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ProjectService.java
@@ -17,7 +17,11 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.execution.service;
+package org.apache.airavata.research.service;
+import org.apache.airavata.execution.service.RequestContext;
+import org.apache.airavata.execution.service.ServiceException;
+import org.apache.airavata.execution.service.ServiceNotFoundException;
+import org.apache.airavata.execution.service.ServiceAuthorizationException;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git 
a/airavata-api/compute-service/src/test/java/org/apache/airavata/compute/service/ApplicationCatalogServiceTest.java
 
b/airavata-api/research-service/src/test/java/org/apache/airavata/research/service/ApplicationCatalogServiceTest.java
similarity index 99%
rename from 
airavata-api/compute-service/src/test/java/org/apache/airavata/compute/service/ApplicationCatalogServiceTest.java
rename to 
airavata-api/research-service/src/test/java/org/apache/airavata/research/service/ApplicationCatalogServiceTest.java
index 233c1205bd..df5e5e049a 100644
--- 
a/airavata-api/compute-service/src/test/java/org/apache/airavata/compute/service/ApplicationCatalogServiceTest.java
+++ 
b/airavata-api/research-service/src/test/java/org/apache/airavata/research/service/ApplicationCatalogServiceTest.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.compute.service;
+package org.apache.airavata.research.service;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/execution/service/ExperimentServiceTest.java
 
b/airavata-api/research-service/src/test/java/org/apache/airavata/research/service/ExperimentServiceTest.java
similarity index 98%
rename from 
airavata-api/src/test/java/org/apache/airavata/execution/service/ExperimentServiceTest.java
rename to 
airavata-api/research-service/src/test/java/org/apache/airavata/research/service/ExperimentServiceTest.java
index fbf8ec8ee6..b34441c499 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/execution/service/ExperimentServiceTest.java
+++ 
b/airavata-api/research-service/src/test/java/org/apache/airavata/research/service/ExperimentServiceTest.java
@@ -17,7 +17,10 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.execution.service;
+package org.apache.airavata.research.service;
+import org.apache.airavata.execution.service.RequestContext;
+import org.apache.airavata.execution.service.ServiceException;
+import org.apache.airavata.execution.service.ServiceAuthorizationException;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/execution/service/NotificationServiceTest.java
 
b/airavata-api/research-service/src/test/java/org/apache/airavata/research/service/NotificationServiceTest.java
similarity index 96%
rename from 
airavata-api/src/test/java/org/apache/airavata/execution/service/NotificationServiceTest.java
rename to 
airavata-api/research-service/src/test/java/org/apache/airavata/research/service/NotificationServiceTest.java
index d27cd48259..cb6d3a7b4c 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/execution/service/NotificationServiceTest.java
+++ 
b/airavata-api/research-service/src/test/java/org/apache/airavata/research/service/NotificationServiceTest.java
@@ -17,7 +17,9 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.execution.service;
+package org.apache.airavata.research.service;
+import org.apache.airavata.execution.service.RequestContext;
+import org.apache.airavata.execution.service.ServiceException;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
diff --git 
a/airavata-api/compute-service/src/test/java/org/apache/airavata/compute/service/ParserServiceTest.java
 
b/airavata-api/research-service/src/test/java/org/apache/airavata/research/service/ParserServiceTest.java
similarity index 99%
rename from 
airavata-api/compute-service/src/test/java/org/apache/airavata/compute/service/ParserServiceTest.java
rename to 
airavata-api/research-service/src/test/java/org/apache/airavata/research/service/ParserServiceTest.java
index 40ac5ff637..414ee21cc1 100644
--- 
a/airavata-api/compute-service/src/test/java/org/apache/airavata/compute/service/ParserServiceTest.java
+++ 
b/airavata-api/research-service/src/test/java/org/apache/airavata/research/service/ParserServiceTest.java
@@ -17,7 +17,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.compute.service;
+package org.apache.airavata.research.service;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/execution/service/ProjectServiceTest.java
 
b/airavata-api/research-service/src/test/java/org/apache/airavata/research/service/ProjectServiceTest.java
similarity index 95%
rename from 
airavata-api/src/test/java/org/apache/airavata/execution/service/ProjectServiceTest.java
rename to 
airavata-api/research-service/src/test/java/org/apache/airavata/research/service/ProjectServiceTest.java
index fcfc45d02f..7a6a043d36 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/execution/service/ProjectServiceTest.java
+++ 
b/airavata-api/research-service/src/test/java/org/apache/airavata/research/service/ProjectServiceTest.java
@@ -17,7 +17,10 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.airavata.execution.service;
+package org.apache.airavata.research.service;
+import org.apache.airavata.execution.service.RequestContext;
+import org.apache.airavata.execution.service.ServiceException;
+import org.apache.airavata.execution.service.ServiceAuthorizationException;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
diff --git 
a/airavata-server/src/main/java/org/apache/airavata/server/config/ServiceWiringConfig.java
 
b/airavata-server/src/main/java/org/apache/airavata/server/config/ServiceWiringConfig.java
index c4a0b842da..c02f1b81bd 100644
--- 
a/airavata-server/src/main/java/org/apache/airavata/server/config/ServiceWiringConfig.java
+++ 
b/airavata-server/src/main/java/org/apache/airavata/server/config/ServiceWiringConfig.java
@@ -20,7 +20,7 @@
 package org.apache.airavata.server.config;
 
 import org.apache.airavata.compute.service.GroupResourceProfileService;
-import org.apache.airavata.execution.service.ExperimentService;
+import org.apache.airavata.research.service.ExperimentService;
 import org.springframework.context.annotation.Configuration;
 
 /**
diff --git 
a/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ApplicationCatalogGrpcService.java
 
b/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ApplicationCatalogGrpcService.java
index 3e11b27b14..0d8b322ca9 100644
--- 
a/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ApplicationCatalogGrpcService.java
+++ 
b/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ApplicationCatalogGrpcService.java
@@ -24,7 +24,7 @@ import io.grpc.stub.StreamObserver;
 import java.util.List;
 import java.util.Map;
 import org.apache.airavata.api.appcatalog.*;
-import org.apache.airavata.compute.service.ApplicationCatalogService;
+import org.apache.airavata.research.service.ApplicationCatalogService;
 import org.apache.airavata.execution.service.RequestContext;
 import 
org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationDeploymentDescription;
 import 
org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationModule;
diff --git 
a/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ExperimentGrpcService.java
 
b/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ExperimentGrpcService.java
index e18c9bd0de..1f5253f53c 100644
--- 
a/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ExperimentGrpcService.java
+++ 
b/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ExperimentGrpcService.java
@@ -25,7 +25,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.apache.airavata.api.experiment.*;
-import org.apache.airavata.execution.service.ExperimentService;
+import org.apache.airavata.research.service.ExperimentService;
 import org.apache.airavata.execution.service.RequestContext;
 import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
 import org.apache.airavata.model.experiment.proto.ExperimentModel;
diff --git 
a/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/NotificationGrpcService.java
 
b/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/NotificationGrpcService.java
index fececd51e2..f4aed96d4d 100644
--- 
a/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/NotificationGrpcService.java
+++ 
b/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/NotificationGrpcService.java
@@ -23,7 +23,7 @@ import com.google.protobuf.Empty;
 import io.grpc.stub.StreamObserver;
 import java.util.List;
 import org.apache.airavata.api.notification.*;
-import org.apache.airavata.execution.service.NotificationService;
+import org.apache.airavata.research.service.NotificationService;
 import org.apache.airavata.execution.service.RequestContext;
 import org.apache.airavata.model.workspace.proto.Notification;
 import org.apache.airavata.server.grpc.GrpcStatusMapper;
diff --git 
a/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ParserGrpcService.java
 
b/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ParserGrpcService.java
index 6aac4b8a43..b5b11e2726 100644
--- 
a/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ParserGrpcService.java
+++ 
b/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ParserGrpcService.java
@@ -23,7 +23,7 @@ import com.google.protobuf.Empty;
 import io.grpc.stub.StreamObserver;
 import java.util.List;
 import org.apache.airavata.api.parser.*;
-import org.apache.airavata.compute.service.ParserService;
+import org.apache.airavata.research.service.ParserService;
 import org.apache.airavata.execution.service.RequestContext;
 import org.apache.airavata.model.appcatalog.parser.proto.Parser;
 import org.apache.airavata.model.appcatalog.parser.proto.ParsingTemplate;
diff --git 
a/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ProjectGrpcService.java
 
b/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ProjectGrpcService.java
index 1c2da3b11d..e5fd96fe3a 100644
--- 
a/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ProjectGrpcService.java
+++ 
b/airavata-server/src/main/java/org/apache/airavata/server/grpc/services/ProjectGrpcService.java
@@ -25,7 +25,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.apache.airavata.api.project.*;
-import org.apache.airavata.execution.service.ProjectService;
+import org.apache.airavata.research.service.ProjectService;
 import org.apache.airavata.execution.service.RequestContext;
 import org.apache.airavata.model.experiment.proto.ProjectSearchFields;
 import org.apache.airavata.model.workspace.proto.Project;

Reply via email to