You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ya...@apache.org on 2026/04/01 19:04:46 UTC
(airavata) 13/49: fix: resolve 15 compilation errors from proto migration
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 c4e52b89c5c8ae34e7e0c569027ff1fc1878da11
Author: yasithdev <ya...@icloud.com>
AuthorDate: Tue Mar 31 08:27:18 2026 -0400
fix: resolve 15 compilation errors from proto migration
- ComputeMapper: remove stale gatewayID mappings (now gatewayId in proto),
fix unicoreEndPointURL -> unicoreEndPointUrl
- ExecutionMapper: bridge emailAddresses (CSV String in entity) to
emailAddressesList (repeated string in proto) via expression mappings,
add ByteString <-> byte[] converters for subTaskModel
- GroupResourceProfileRepository: rename GroupSSHAccountProvisionerConfig
to GroupAccountSSHProvisionerConfig and fix accessor casing
- RegistryServerHandler: replace TException with Exception, fully qualify
ComputeResource to resolve ambiguity with proto outer class
---
.../airavata/compute/mapper/ComputeMapper.java | 8 ++------
.../repository/GroupResourceProfileRepository.java | 12 ++++++------
.../execution/handler/RegistryServerHandler.java | 4 ++--
.../airavata/execution/mapper/ExecutionMapper.java | 21 +++++++++++++++++----
4 files changed, 27 insertions(+), 18 deletions(-)
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/mapper/ComputeMapper.java b/airavata-api/src/main/java/org/apache/airavata/compute/mapper/ComputeMapper.java
index f6d48a5fe7..88861aa28f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/mapper/ComputeMapper.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/mapper/ComputeMapper.java
@@ -119,10 +119,8 @@ public interface ComputeMapper {
JobSubmissionInterfaceEntity jobSubmissionInterfaceToEntity(JobSubmissionInterface model);
// --- GatewayResourceProfile / GatewayProfileEntity ---
- @Mapping(source = "gatewayId", target = "gatewayID")
GatewayResourceProfile gatewayProfileToModel(GatewayProfileEntity entity);
- @Mapping(source = "gatewayID", target = "gatewayId")
GatewayProfileEntity gatewayProfileToEntity(GatewayResourceProfile model);
// --- ComputeResourcePreference ---
@@ -151,10 +149,8 @@ public interface ComputeMapper {
BatchQueueResourcePolicyEntity batchQueuePolicyToEntity(BatchQueueResourcePolicy model);
// --- UserResourceProfile ---
- @Mapping(source = "gatewayId", target = "gatewayID")
UserResourceProfile userResourceProfileToModel(UserResourceProfileEntity entity);
- @Mapping(source = "gatewayID", target = "gatewayId")
UserResourceProfileEntity userResourceProfileToEntity(UserResourceProfile model);
// --- UserComputeResourcePreference ---
@@ -220,10 +216,10 @@ public interface ComputeMapper {
ScpDataMovementEntity scpDataMovementToEntity(SCPDataMovement model);
// UnicoreDataMovement
- @Mapping(source = "unicoreEndpointUrl", target = "unicoreEndPointURL")
+ @Mapping(source = "unicoreEndpointUrl", target = "unicoreEndPointUrl")
UnicoreDataMovement unicoreDataMovementToModel(UnicoreDatamovementEntity entity);
- @Mapping(source = "unicoreEndPointURL", target = "unicoreEndpointUrl")
+ @Mapping(source = "unicoreEndPointUrl", target = "unicoreEndpointUrl")
UnicoreDatamovementEntity unicoreDataMovementToEntity(UnicoreDataMovement model);
// GridFTPDataMovement
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/GroupResourceProfileRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/GroupResourceProfileRepository.java
index a40530ff6f..d719e888bc 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/GroupResourceProfileRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/GroupResourceProfileRepository.java
@@ -43,7 +43,7 @@ import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComp
import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupResourceProfile;
import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ComputeResourceReservation;
import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.EnvironmentSpecificPreferences;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupSSHAccountProvisionerConfig;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupAccountSSHProvisionerConfig;
import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ResourceType;
import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.SlurmComputeResourcePreference;
@@ -97,15 +97,15 @@ public class GroupResourceProfileRepository
SlurmComputeResourcePreference.Builder slurmBuilder = slurm.toBuilder();
// update SSH provisioner configs
- if (slurm.getGroupSSHAccountProvisionerConfigsList() != null) {
- List<GroupSSHAccountProvisionerConfig> updatedConfigs = new ArrayList<>();
- for (GroupSSHAccountProvisionerConfig gssh : slurm.getGroupSSHAccountProvisionerConfigsList()) {
+ if (slurm.getGroupSshAccountProvisionerConfigsList() != null) {
+ List<GroupAccountSSHProvisionerConfig> updatedConfigs = new ArrayList<>();
+ for (GroupAccountSSHProvisionerConfig gssh : slurm.getGroupSshAccountProvisionerConfigsList()) {
updatedConfigs.add(gssh.toBuilder()
.setGroupResourceProfileId(groupResourceProfileId)
.build());
}
- slurmBuilder.clearGroupSSHAccountProvisionerConfigs()
- .addAllGroupSSHAccountProvisionerConfigs(updatedConfigs);
+ slurmBuilder.clearGroupSshAccountProvisionerConfigs()
+ .addAllGroupSshAccountProvisionerConfigs(updatedConfigs);
}
// update reservations
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServerHandler.java b/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServerHandler.java
index 858984c06e..318aadd476 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServerHandler.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServerHandler.java
@@ -4653,7 +4653,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
/*Following method wraps the logic of isGatewayExist method and this is to be called by any other method of the API as needed.*/
private boolean isGatewayExistInternal(String gatewayId)
throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException,
- TException {
+ Exception {
try {
return gatewayRepository.isGatewayExist(gatewayId);
} catch (RegistryException e) {
@@ -4738,7 +4738,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
private String addDataMovementInterface(
- ComputeResource computeResource,
+ org.apache.airavata.execution.util.cpi.ComputeResource computeResource,
String computeResourceId,
DMType dmType,
String dataMovementInterfaceId,
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/mapper/ExecutionMapper.java b/airavata-api/src/main/java/org/apache/airavata/execution/mapper/ExecutionMapper.java
index e2a898093d..0f021a72bf 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/mapper/ExecutionMapper.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/mapper/ExecutionMapper.java
@@ -48,6 +48,7 @@ import org.apache.airavata.model.workspace.proto.Notification;
import org.apache.airavata.model.workspace.proto.Project;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
+import org.mapstruct.Named;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
@@ -57,10 +58,10 @@ public interface ExecutionMapper {
ExecutionMapper INSTANCE = Mappers.getMapper(ExecutionMapper.class);
// --- Experiment ---
- @Mapping(target = "emailAddresses", source = "emailAddresses")
+ @Mapping(target = "emailAddressesList", expression = "java(csvToList(entity.getEmailAddresses()))")
ExperimentModel experimentToModel(ExperimentEntity entity);
- @Mapping(target = "emailAddresses", source = "emailAddresses")
+ @Mapping(target = "emailAddresses", expression = "java(listToCsv(model.getEmailAddressesList()))")
ExperimentEntity experimentToEntity(ExperimentModel model);
// --- ExperimentSummary ---
@@ -69,10 +70,10 @@ public interface ExecutionMapper {
ExperimentSummaryEntity experimentSummaryToEntity(ExperimentSummaryModel model);
// --- Process ---
- @Mapping(target = "emailAddresses", source = "emailAddresses")
+ @Mapping(target = "emailAddressesList", expression = "java(csvToList(entity.getEmailAddresses()))")
ProcessModel processToModel(ProcessEntity entity);
- @Mapping(target = "emailAddresses", source = "emailAddresses")
+ @Mapping(target = "emailAddresses", expression = "java(listToCsv(model.getEmailAddressesList()))")
ProcessEntity processToEntity(ProcessModel model);
// --- Task ---
@@ -269,6 +270,7 @@ public interface ExecutionMapper {
}
/** CSV String to List<String> (replaces CsvStringConverter) */
+ @Named("csvToList")
default List<String> csvToList(String csv) {
if (csv == null || csv.isEmpty()) {
return null;
@@ -277,6 +279,7 @@ public interface ExecutionMapper {
}
/** List<String> to CSV String (replaces CsvStringConverter) */
+ @Named("listToCsv")
default String listToCsv(List<String> list) {
if (list == null || list.isEmpty()) {
return null;
@@ -293,4 +296,14 @@ public interface ExecutionMapper {
default long timestampToLong(Timestamp ts) {
return ts == null ? 0 : ts.getTime();
}
+
+ /** ByteString to byte[] (proto ByteString fields mapped to JPA byte[] columns) */
+ default byte[] map(com.google.protobuf.ByteString value) {
+ return value != null ? value.toByteArray() : null;
+ }
+
+ /** byte[] to ByteString (JPA byte[] columns mapped to proto ByteString fields) */
+ default com.google.protobuf.ByteString map(byte[] value) {
+ return value != null ? com.google.protobuf.ByteString.copyFrom(value) : com.google.protobuf.ByteString.EMPTY;
+ }
}