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 2025/04/23 17:32:12 UTC
(airavata) 15/24: migrate javax.mail to jakarta.mail to fix email-monitor bug. exclude conflicting angus-mail dependency. add missing @Deprecated tags.
This is an automated email from the ASF dual-hosted git repository.
yasith pushed a commit to branch cybershuttle-dev
in repository https://gitbox.apache.org/repos/asf/airavata.git
commit feaee51f771e6af624f6647d222b51158238f125
Author: yasithdev <ya...@gatech.edu>
AuthorDate: Tue Mar 18 07:21:17 2025 +0000
migrate javax.mail to jakarta.mail to fix email-monitor bug. exclude conflicting angus-mail dependency. add missing @Deprecated tags.
---
.../iam-admin-services-core/pom.xml | 6 ++++++
.../profile/user/cpi/UserProfileService.java | 1 +
modules/agent-framework/agent-service/pom.xml | 5 -----
.../service/controllers/AgentController.java | 15 ++++++-------
.../service/controllers/ExperimentController.java | 8 +++----
.../airavata/common/utils/ApplicationSettings.java | 3 +++
.../src/main/assembly/controller-bin-assembly.xml | 2 +-
.../main/assembly/email-monitor-bin-assembly.xml | 4 ++--
.../src/main/assembly/parser-wm-bin-assembly.xml | 2 +-
.../src/main/assembly/participant-bin-assembly.xml | 2 +-
.../src/main/assembly/post-wm-bin-assembly.xml | 2 +-
.../src/main/assembly/pre-wm-bin-assembly.xml | 2 +-
modules/job-monitor/email-monitor/pom.xml | 9 +++-----
.../airavata/monitor/email/EmailBasedMonitor.java | 25 +++++++++++++---------
.../email/parser/AiravataCustomMailParser.java | 4 ++--
.../airavata/monitor/email/parser/EmailParser.java | 4 ++--
.../monitor/email/parser/HTCondorEmailParser.java | 4 ++--
.../monitor/email/parser/LSFEmailParser.java | 4 ++--
.../monitor/email/parser/PBSEmailParser.java | 4 ++--
.../monitor/email/parser/SLURMEmailParser.java | 4 ++--
.../monitor/email/parser/UGEEmailParser.java | 4 ++--
modules/job-monitor/pom.xml | 11 +++-------
pom.xml | 2 +-
tools/load-client/pom.xml | 6 ++++++
24 files changed, 70 insertions(+), 63 deletions(-)
diff --git a/airavata-services/profile-service/iam-admin-services-core/pom.xml b/airavata-services/profile-service/iam-admin-services-core/pom.xml
index 3c40866258..1d02d39acf 100644
--- a/airavata-services/profile-service/iam-admin-services-core/pom.xml
+++ b/airavata-services/profile-service/iam-admin-services-core/pom.xml
@@ -58,6 +58,12 @@
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
<version>${keycloak.admin.client.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.eclipse.angus</groupId>
+ <artifactId>angus-mail</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.airavata</groupId>
diff --git a/airavata-services/profile-service/profile-service-stubs/src/main/java/org/apache/airavata/service/profile/user/cpi/UserProfileService.java b/airavata-services/profile-service/profile-service-stubs/src/main/java/org/apache/airavata/service/profile/user/cpi/UserProfileService.java
index 8bc718e7eb..f8f018f029 100644
--- a/airavata-services/profile-service/profile-service-stubs/src/main/java/org/apache/airavata/service/profile/user/cpi/UserProfileService.java
+++ b/airavata-services/profile-service/profile-service-stubs/src/main/java/org/apache/airavata/service/profile/user/cpi/UserProfileService.java
@@ -44,6 +44,7 @@ public class UserProfileService {
* @param authzToken
* @param userProfile
*/
+ @Deprecated
public java.lang.String addUserProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.user.UserProfile userProfile) throws org.apache.airavata.service.profile.user.cpi.exception.UserProfileServiceException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
public boolean updateUserProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.user.UserProfile userProfile) throws org.apache.airavata.service.profile.user.cpi.exception.UserProfileServiceException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
diff --git a/modules/agent-framework/agent-service/pom.xml b/modules/agent-framework/agent-service/pom.xml
index b9dd019fe8..638ccb768a 100644
--- a/modules/agent-framework/agent-service/pom.xml
+++ b/modules/agent-framework/agent-service/pom.xml
@@ -100,11 +100,6 @@
<artifactId>grpc-server-spring-boot-starter</artifactId>
<version>3.0.0.RELEASE</version>
</dependency>
- <dependency>
- <groupId>javax.validation</groupId>
- <artifactId>validation-api</artifactId>
- <version>${javax.version}</version>
- </dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
diff --git a/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/controllers/AgentController.java b/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/controllers/AgentController.java
index f223264c92..0f49324f43 100644
--- a/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/controllers/AgentController.java
+++ b/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/controllers/AgentController.java
@@ -1,7 +1,5 @@
package org.apache.airavata.agent.connection.service.controllers;
-import javax.validation.Valid;
-
import org.apache.airavata.agent.connection.service.handlers.AgentConnectionHandler;
import org.apache.airavata.agent.connection.service.models.AgentCommandExecutionAck;
import org.apache.airavata.agent.connection.service.models.AgentCommandExecutionRequest;
@@ -24,6 +22,7 @@ import org.apache.airavata.agent.connection.service.models.AgentTunnelRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
@@ -48,12 +47,12 @@ public class AgentController {
}
@PostMapping("/setup/tunnel")
- public ResponseEntity<AgentTunnelAck> runTunnelCreationOnAgent(@Valid @RequestBody AgentTunnelRequest tunnelRequest) {
+ public ResponseEntity<AgentTunnelAck> runTunnelCreationOnAgent(@Validated @RequestBody AgentTunnelRequest tunnelRequest) {
return ResponseEntity.accepted().body(agentConnectionHandler.runTunnelOnAgent(tunnelRequest));
}
@PostMapping("/setup/env")
- public ResponseEntity<AgentEnvSetupAck> runEnvSetupOnAgent(@Valid @RequestBody AgentEnvSetupRequest envSetupRequest) {
+ public ResponseEntity<AgentEnvSetupAck> runEnvSetupOnAgent(@Validated @RequestBody AgentEnvSetupRequest envSetupRequest) {
logger.info("Received env setup request to run on agent {}", envSetupRequest.getAgentId());
if (agentConnectionHandler.isAgentUp(envSetupRequest.getAgentId()).isAgentUp()) {
return ResponseEntity.accepted().body(agentConnectionHandler.runEnvSetupOnAgent(envSetupRequest));
@@ -71,7 +70,7 @@ public class AgentController {
}
@PostMapping("/setup/restart")
- public ResponseEntity<AgentKernelRestartAck> runKernelRestartOnAgent(@Valid @RequestBody AgentKernelRestartRequest kernelRestartRequest) {
+ public ResponseEntity<AgentKernelRestartAck> runKernelRestartOnAgent(@Validated @RequestBody AgentKernelRestartRequest kernelRestartRequest) {
logger.info("Received kernel restart request to run on agent {}", kernelRestartRequest.getAgentId());
if (agentConnectionHandler.isAgentUp(kernelRestartRequest.getAgentId()).isAgentUp()) {
return ResponseEntity.accepted().body(agentConnectionHandler.runKernelRestartOnAgent(kernelRestartRequest));
@@ -89,7 +88,7 @@ public class AgentController {
}
@PostMapping("/execute/shell")
- public ResponseEntity<AgentCommandExecutionAck> runCommandOnAgent(@Valid @RequestBody AgentCommandExecutionRequest commandRequest) {
+ public ResponseEntity<AgentCommandExecutionAck> runCommandOnAgent(@Validated @RequestBody AgentCommandExecutionRequest commandRequest) {
logger.info("Received command request to run on agent {}", commandRequest.getAgentId());
if (agentConnectionHandler.isAgentUp(commandRequest.getAgentId()).isAgentUp()) {
return ResponseEntity.accepted().body(agentConnectionHandler.runCommandOnAgent(commandRequest));
@@ -107,7 +106,7 @@ public class AgentController {
}
@PostMapping("/execute/jupyter")
- public ResponseEntity<AgentJupyterExecutionAck> runJupyterOnAgent(@Valid @RequestBody AgentJupyterExecutionRequest executionRequest) {
+ public ResponseEntity<AgentJupyterExecutionAck> runJupyterOnAgent(@Validated @RequestBody AgentJupyterExecutionRequest executionRequest) {
logger.info("Received jupyter execution request to run on agent {}", executionRequest.getAgentId());
if (agentConnectionHandler.isAgentUp(executionRequest.getAgentId()).isAgentUp()) {
return ResponseEntity.accepted().body(agentConnectionHandler.runJupyterOnAgent(executionRequest));
@@ -125,7 +124,7 @@ public class AgentController {
}
@PostMapping("/execute/python")
- public ResponseEntity<AgentPythonExecutionAck> runPythonOnAgent(@Valid @RequestBody AgentPythonExecutionRequest pythonRunRequest) {
+ public ResponseEntity<AgentPythonExecutionAck> runPythonOnAgent(@Validated @RequestBody AgentPythonExecutionRequest pythonRunRequest) {
logger.info("Received python execution request to run on agent {}", pythonRunRequest.getAgentId());
if (agentConnectionHandler.isAgentUp(pythonRunRequest.getAgentId()).isAgentUp()) {
return ResponseEntity.accepted().body(agentConnectionHandler.runPythonOnAgent(pythonRunRequest));
diff --git a/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/controllers/ExperimentController.java b/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/controllers/ExperimentController.java
index fcd93327a4..8a2b83e4a0 100644
--- a/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/controllers/ExperimentController.java
+++ b/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/controllers/ExperimentController.java
@@ -1,7 +1,5 @@
package org.apache.airavata.agent.connection.service.controllers;
-import javax.validation.Valid;
-
import org.apache.airavata.agent.connection.service.handlers.AgentManagementHandler;
import org.apache.airavata.agent.connection.service.models.AgentLaunchRequest;
import org.apache.airavata.agent.connection.service.models.AgentLaunchResponse;
@@ -21,6 +19,8 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List;
+import org.springframework.validation.annotation.Validated;
+
@RestController
@RequestMapping("/api/v1/exp")
public class ExperimentController {
@@ -39,13 +39,13 @@ public class ExperimentController {
}
@PostMapping(value = "/launch", consumes = MediaType.APPLICATION_JSON_VALUE)
- public ResponseEntity<AgentLaunchResponse> createAndLaunchExperiment(@Valid @RequestBody AgentLaunchRequest request) {
+ public ResponseEntity<AgentLaunchResponse> createAndLaunchExperiment(@Validated @RequestBody AgentLaunchRequest request) {
AgentLaunchResponse agentResponse = agentManagementHandler.createAndLaunchExperiment(request);
return ResponseEntity.ok(agentResponse);
}
@PostMapping(value = "/launchoptimize", consumes = MediaType.APPLICATION_JSON_VALUE)
- public ResponseEntity<AgentLaunchResponse> createAndLaunchOptimizedExperiment(@Valid @RequestBody List<AgentLaunchRequest> request) {
+ public ResponseEntity<AgentLaunchResponse> createAndLaunchOptimizedExperiment(@Validated @RequestBody List<AgentLaunchRequest> request) {
try {
AgentLaunchRequest agentLaunchRequest = agentManagementHandler.filterOptimumLaunchRequest(request);
AgentLaunchResponse agentResponse = agentManagementHandler.createAndLaunchExperiment(agentLaunchRequest);
diff --git a/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java b/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
index 88c334dd97..5c0a218357 100644
--- a/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
+++ b/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
@@ -145,6 +145,7 @@ public class ApplicationSettings {
* @throws ApplicationSettingsException If an error occurred while reading configurations.
* @deprecated use #getSetting(String) instead
*/
+ @Deprecated
public String getAbsoluteSetting(String key) throws ApplicationSettingsException {
String configurationValueWithVariables = ApplicationSettings.getSetting(key);
@@ -290,6 +291,7 @@ public class ApplicationSettings {
* @deprecated use {{@link #getSetting(String)}}
* @return
*/
+ @Deprecated
public Properties getPropertiesImpl() {
return properties;
}
@@ -501,6 +503,7 @@ public class ApplicationSettings {
* @return
* @throws ApplicationSettingsException
*/
+ @Deprecated
public static Properties getProperties() throws ApplicationSettingsException {
return getInstance().properties;
}
diff --git a/modules/distribution/src/main/assembly/controller-bin-assembly.xml b/modules/distribution/src/main/assembly/controller-bin-assembly.xml
index 29f17779cc..767d8360e4 100644
--- a/modules/distribution/src/main/assembly/controller-bin-assembly.xml
+++ b/modules/distribution/src/main/assembly/controller-bin-assembly.xml
@@ -133,7 +133,7 @@
<include>com.github.danielwegener:logback-kafka-appender:jar</include>
<include>net.logstash.logback:logstash-logback-encoder:jar</include>
<include>org.lz4:lz4-java:jar</include>
- <include>javax.mail:mail:jar</include>
+ <include>jakarta.mail:jakarta.mail:jar</include>
<include>io.dropwizard.metrics:metrics-core:jar</include>
<include>org.jboss.netty:netty:jar</include>
<include>org.apache.openjpa:openjpa:jar</include>
diff --git a/modules/distribution/src/main/assembly/email-monitor-bin-assembly.xml b/modules/distribution/src/main/assembly/email-monitor-bin-assembly.xml
index c0519fbb09..64400e89fb 100644
--- a/modules/distribution/src/main/assembly/email-monitor-bin-assembly.xml
+++ b/modules/distribution/src/main/assembly/email-monitor-bin-assembly.xml
@@ -92,8 +92,8 @@
<include>org.apache.airavata:airavata-data-models:jar</include>
<include>org.apache.thrift:libthrift:jar</include>
- <include>javax.mail:javax.mail-api:jar</include>
- <include>com.sun.mail:javax.mail:jar</include>
+ <include>jakarta.mail:jakarta.mail-api:jar</include>
+ <include>jakarta.mail:jakarta.mail:jar</include>
<include>javax.activation:activation:jar</include>
<include>org.yaml:snakeyaml:jar</include>
diff --git a/modules/distribution/src/main/assembly/parser-wm-bin-assembly.xml b/modules/distribution/src/main/assembly/parser-wm-bin-assembly.xml
index fb69c836c4..3a30e919e5 100644
--- a/modules/distribution/src/main/assembly/parser-wm-bin-assembly.xml
+++ b/modules/distribution/src/main/assembly/parser-wm-bin-assembly.xml
@@ -138,7 +138,7 @@
<include>com.github.danielwegener:logback-kafka-appender:jar</include>
<include>net.logstash.logback:logstash-logback-encoder:jar</include>
<include>org.lz4:lz4-java:jar</include>
- <include>javax.mail:mail:jar</include>
+ <include>jakarta.mail:jakarta.mail:jar</include>
<include>io.dropwizard.metrics:metrics-core:jar</include>
<include>org.jboss.netty:netty:jar</include>
<include>org.apache.openjpa:openjpa:jar</include>
diff --git a/modules/distribution/src/main/assembly/participant-bin-assembly.xml b/modules/distribution/src/main/assembly/participant-bin-assembly.xml
index 1cc4499a97..5ea4d98327 100644
--- a/modules/distribution/src/main/assembly/participant-bin-assembly.xml
+++ b/modules/distribution/src/main/assembly/participant-bin-assembly.xml
@@ -139,7 +139,7 @@
<include>com.github.danielwegener:logback-kafka-appender:jar</include>
<include>net.logstash.logback:logstash-logback-encoder:jar</include>
<include>org.lz4:lz4-java:jar</include>
- <include>javax.mail:mail:jar</include>
+ <include>jakarta.mail:jakarta.mail:jar</include>
<include>io.dropwizard.metrics:metrics-core:jar</include>
<include>org.jboss.netty:netty:jar</include>
<include>org.apache.openjpa:openjpa:jar</include>
diff --git a/modules/distribution/src/main/assembly/post-wm-bin-assembly.xml b/modules/distribution/src/main/assembly/post-wm-bin-assembly.xml
index 2d5b00b9ad..6dab1016dd 100644
--- a/modules/distribution/src/main/assembly/post-wm-bin-assembly.xml
+++ b/modules/distribution/src/main/assembly/post-wm-bin-assembly.xml
@@ -138,8 +138,8 @@
<include>com.github.danielwegener:logback-kafka-appender:jar</include>
<include>net.logstash.logback:logstash-logback-encoder:jar</include>
<include>org.lz4:lz4-java:jar</include>
- <include>javax.mail:mail:jar</include>
<include>io.dropwizard.metrics:metrics-core:jar</include>
+ <include>jakarta.mail:jakarta.mail:jar</include>
<include>org.jboss.netty:netty:jar</include>
<include>org.apache.openjpa:openjpa:jar</include>
<include>org.apache.airavata:platform-monitor:jar</include>
diff --git a/modules/distribution/src/main/assembly/pre-wm-bin-assembly.xml b/modules/distribution/src/main/assembly/pre-wm-bin-assembly.xml
index 75fa397967..d6b0e9ae5e 100644
--- a/modules/distribution/src/main/assembly/pre-wm-bin-assembly.xml
+++ b/modules/distribution/src/main/assembly/pre-wm-bin-assembly.xml
@@ -138,7 +138,7 @@
<include>com.github.danielwegener:logback-kafka-appender:jar</include>
<include>net.logstash.logback:logstash-logback-encoder:jar</include>
<include>org.lz4:lz4-java:jar</include>
- <include>javax.mail:mail:jar</include>
+ <include>jakarta.mail:jakarta.mail:jar</include>
<include>io.dropwizard.metrics:metrics-core:jar</include>
<include>org.jboss.netty:netty:jar</include>
<include>org.apache.openjpa:openjpa:jar</include>
diff --git a/modules/job-monitor/email-monitor/pom.xml b/modules/job-monitor/email-monitor/pom.xml
index 3a062933e8..ac66537f89 100644
--- a/modules/job-monitor/email-monitor/pom.xml
+++ b/modules/job-monitor/email-monitor/pom.xml
@@ -41,12 +41,9 @@
<artifactId>snakeyaml</artifactId>
</dependency>
<dependency>
- <groupId>javax.mail</groupId>
- <artifactId>javax.mail-api</artifactId>
- </dependency>
- <dependency>
- <groupId>com.sun.mail</groupId>
- <artifactId>javax.mail</artifactId>
+ <groupId>jakarta.mail</groupId>
+ <artifactId>jakarta.mail-api</artifactId>
+ <version>2.1.2</version>
</dependency>
</dependencies>
</project>
diff --git a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java
index 63f9e47ee5..9c35025f26 100644
--- a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java
+++ b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java
@@ -33,15 +33,15 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.yaml.snakeyaml.Yaml;
-import javax.mail.Address;
-import javax.mail.Flags;
-import javax.mail.Folder;
-import javax.mail.Message;
-import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.Store;
-import javax.mail.search.FlagTerm;
-import javax.mail.search.SearchTerm;
+import jakarta.mail.Address;
+import jakarta.mail.Flags;
+import jakarta.mail.Folder;
+import jakarta.mail.Message;
+import jakarta.mail.MessagingException;
+import jakarta.mail.Session;
+import jakarta.mail.Store;
+import jakarta.mail.search.FlagTerm;
+import jakarta.mail.search.SearchTerm;
import java.io.InputStream;
import java.util.*;
@@ -193,6 +193,9 @@ public class EmailBasedMonitor extends AbstractMonitor implements Runnable {
emailFolder = store.getFolder(folderName);
}
log.info("[EJM]: Retrieving unseen emails");
+ if (emailFolder == null) {
+ return;
+ }
emailFolder.open(Folder.READ_WRITE);
if (emailFolder.isOpen()) {
// flush if any message left in flushUnseenMessage
@@ -228,7 +231,9 @@ public class EmailBasedMonitor extends AbstractMonitor implements Runnable {
log.error("[EJM]: Caught a throwable ", e);
} finally {
try {
- emailFolder.close(false);
+ if (emailFolder != null) {
+ emailFolder.close(false);
+ }
store.close();
} catch (MessagingException e) {
log.error("[EJM]: Store close operation failed, couldn't close store", e);
diff --git a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/AiravataCustomMailParser.java b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/AiravataCustomMailParser.java
index ae0cecb900..20c561207e 100644
--- a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/AiravataCustomMailParser.java
+++ b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/AiravataCustomMailParser.java
@@ -26,8 +26,8 @@ import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.mail.Message;
-import javax.mail.MessagingException;
+import jakarta.mail.Message;
+import jakarta.mail.MessagingException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/EmailParser.java b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/EmailParser.java
index d76f733c19..2996dd50cd 100644
--- a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/EmailParser.java
+++ b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/EmailParser.java
@@ -23,8 +23,8 @@ import org.apache.airavata.common.exception.AiravataException;
import org.apache.airavata.monitor.JobStatusResult;
import org.apache.airavata.registry.api.RegistryService;
-import javax.mail.Message;
-import javax.mail.MessagingException;
+import jakarta.mail.Message;
+import jakarta.mail.MessagingException;
public interface EmailParser {
static final String STATUS = "status";
diff --git a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/HTCondorEmailParser.java b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/HTCondorEmailParser.java
index e91b0153ec..5e9d5d15ee 100644
--- a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/HTCondorEmailParser.java
+++ b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/HTCondorEmailParser.java
@@ -27,8 +27,8 @@ import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.mail.Message;
-import javax.mail.MessagingException;
+import jakarta.mail.Message;
+import jakarta.mail.MessagingException;
import java.io.IOException;
import java.util.List;
import java.util.Optional;
diff --git a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/LSFEmailParser.java b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/LSFEmailParser.java
index 99660c2ae8..be61fad37e 100644
--- a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/LSFEmailParser.java
+++ b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/LSFEmailParser.java
@@ -26,8 +26,8 @@ import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.mail.Message;
-import javax.mail.MessagingException;
+import jakarta.mail.Message;
+import jakarta.mail.MessagingException;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/PBSEmailParser.java b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/PBSEmailParser.java
index b0c22988e7..2da293d827 100644
--- a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/PBSEmailParser.java
+++ b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/PBSEmailParser.java
@@ -26,8 +26,8 @@ import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.mail.Message;
-import javax.mail.MessagingException;
+import jakarta.mail.Message;
+import jakarta.mail.MessagingException;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/SLURMEmailParser.java b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/SLURMEmailParser.java
index eaae04071d..0e8b4b3386 100644
--- a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/SLURMEmailParser.java
+++ b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/SLURMEmailParser.java
@@ -26,8 +26,8 @@ import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.mail.Message;
-import javax.mail.MessagingException;
+import jakarta.mail.Message;
+import jakarta.mail.MessagingException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/UGEEmailParser.java b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/UGEEmailParser.java
index ebaf84d90e..728182d128 100644
--- a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/UGEEmailParser.java
+++ b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/parser/UGEEmailParser.java
@@ -26,8 +26,8 @@ import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.mail.Message;
-import javax.mail.MessagingException;
+import jakarta.mail.Message;
+import jakarta.mail.MessagingException;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/modules/job-monitor/pom.xml b/modules/job-monitor/pom.xml
index dc8657564d..8a62fcc7b2 100644
--- a/modules/job-monitor/pom.xml
+++ b/modules/job-monitor/pom.xml
@@ -44,14 +44,9 @@
<version>1.15</version>
</dependency>
<dependency>
- <groupId>javax.mail</groupId>
- <artifactId>javax.mail-api</artifactId>
- <version>1.6.2</version>
- </dependency>
- <dependency>
- <groupId>com.sun.mail</groupId>
- <artifactId>javax.mail</artifactId>
- <version>1.6.2</version>
+ <groupId>jakarta.mail</groupId>
+ <artifactId>jakarta.mail-api</artifactId>
+ <version>2.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.airavata</groupId>
diff --git a/pom.xml b/pom.xml
index 558f017b8d..65e844913b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -155,7 +155,7 @@
<org.apache.commons.pool2.version>2.7.0</org.apache.commons.pool2.version>
<helix.version>0.9.7</helix.version>
<keycloak.admin.client.version>24.0.4</keycloak.admin.client.version>
- <rest.easy.client.version>6.2.8.Final</rest.easy.client.version>
+ <rest.easy.client.version>6.2.12.Final</rest.easy.client.version>
<httpclient.version>4.5.14</httpclient.version>
<codehaus.jackson.version>1.9.13</codehaus.jackson.version>
<spring.boot.version>3.2.4</spring.boot.version>
diff --git a/tools/load-client/pom.xml b/tools/load-client/pom.xml
index 499eb83329..3d880b001a 100644
--- a/tools/load-client/pom.xml
+++ b/tools/load-client/pom.xml
@@ -28,6 +28,12 @@
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
<version>${keycloak.admin.client.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.eclipse.angus</groupId>
+ <artifactId>angus-mail</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.airavata</groupId>