You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2020/09/29 04:23:14 UTC
[shardingsphere-elasticjob] branch master updated: Refactor
EmailJobErrorHandler (#1513)
This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere-elasticjob.git
The following commit(s) were added to refs/heads/master by this push:
new 2bba781 Refactor EmailJobErrorHandler (#1513)
2bba781 is described below
commit 2bba781d33df6f305b07e5e41dd695d3ed608d92
Author: Liang Zhang <te...@163.com>
AuthorDate: Tue Sep 29 12:23:07 2020 +0800
Refactor EmailJobErrorHandler (#1513)
* Refactor EmailJobErrorHandler
* Remove useless test case
* Remove useless check
* Remove NPE catch
---
.../error/handler/email/EmailJobErrorHandler.java | 47 +++++++++-------------
.../handler/email/EmailJobErrorHandlerTest.java | 6 ---
2 files changed, 20 insertions(+), 33 deletions(-)
diff --git a/elasticjob-error-handler/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandler.java b/elasticjob-error-handler/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandler.java
index d1b83d2..4838598 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandler.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandler.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.elasticjob.error.handler.email;
-import com.google.common.base.Preconditions;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandler;
@@ -48,54 +47,47 @@ public final class EmailJobErrorHandler implements JobErrorHandler {
public static final String CONFIG_PREFIX = "email";
- private final EmailConfiguration config;
+ private final EmailConfiguration config = EmailConfigurationLoader.unmarshal(CONFIG_PREFIX);
private Session session;
- public EmailJobErrorHandler() {
- config = EmailConfigurationLoader.unmarshal(CONFIG_PREFIX);
- }
-
@Override
public void handleException(final String jobName, final Throwable cause) {
+ String errorContext = createErrorContext(jobName, cause);
try {
- Preconditions.checkNotNull(config);
- String content = buildContent(jobName, cause);
- Message message = buildMessage(content);
- sendMessage(message);
- } catch (final NullPointerException | MessagingException ex) {
+ sendMessage(createMessage(errorContext));
+ } catch (final MessagingException ex) {
log.error("Elastic job: email job handler error", ex);
}
}
- private String buildContent(final String jobName, final Throwable cause) {
- StringWriter sw = new StringWriter();
- cause.printStackTrace(new PrintWriter(sw, true));
- String causeString = sw.toString();
- return String.format("Job '%s' exception occur in job processing, caused by %s", jobName, causeString);
+ private String createErrorContext(final String jobName, final Throwable cause) {
+ StringWriter writer = new StringWriter();
+ cause.printStackTrace(new PrintWriter(writer, true));
+ return String.format("Job '%s' exception occur in job processing, caused by %s", jobName, writer.toString());
}
- private Message buildMessage(final String content) throws MessagingException {
- MimeMessage message = new MimeMessage(Optional.ofNullable(session).orElseGet(this::buildSession));
- message.setFrom(new InternetAddress(config.getFrom()));
- message.setSubject(config.getSubject());
- message.setSentDate(new Date());
+ private Message createMessage(final String content) throws MessagingException {
+ MimeMessage result = new MimeMessage(Optional.ofNullable(session).orElseGet(this::createSession));
+ result.setFrom(new InternetAddress(config.getFrom()));
+ result.setSubject(config.getSubject());
+ result.setSentDate(new Date());
Multipart multipart = new MimeMultipart();
BodyPart mailBody = new MimeBodyPart();
mailBody.setContent(content, "text/html; charset=utf-8");
multipart.addBodyPart(mailBody);
- message.setContent(multipart);
+ result.setContent(multipart);
if (StringUtils.isNotBlank(config.getTo())) {
- message.addRecipient(Message.RecipientType.TO, new InternetAddress(config.getTo()));
+ result.addRecipient(Message.RecipientType.TO, new InternetAddress(config.getTo()));
}
if (StringUtils.isNotBlank(config.getCc())) {
- message.addRecipient(Message.RecipientType.CC, new InternetAddress(config.getCc()));
+ result.addRecipient(Message.RecipientType.CC, new InternetAddress(config.getCc()));
}
- message.saveChanges();
- return message;
+ result.saveChanges();
+ return result;
}
- private synchronized Session buildSession() {
+ private synchronized Session createSession() {
if (null == session) {
Properties props = new Properties();
props.put("mail.smtp.host", config.getHost());
@@ -108,6 +100,7 @@ public final class EmailJobErrorHandler implements JobErrorHandler {
props.setProperty("mail.smtp.socketFactory.fallback", "false");
}
session = Session.getDefaultInstance(props, new Authenticator() {
+
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(config.getUsername(), config.getPassword());
diff --git a/elasticjob-error-handler/elasticjob-error-handler-email/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandlerTest.java b/elasticjob-error-handler/elasticjob-error-handler-email/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandlerTest.java
index 5ff12ec..54ea0e7 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-email/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandlerTest.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-email/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandlerTest.java
@@ -81,10 +81,4 @@ public final class EmailJobErrorHandlerTest {
modifiers.setInt(field, field.getModifiers() & ~Modifier.FINAL);
field.set(emailJobErrorHandler, log);
}
-
- @Test
- public void assertType() {
- EmailJobErrorHandler emailJobErrorHandler = new EmailJobErrorHandler();
- assertThat(emailJobErrorHandler.getType(), equalTo("EMAIL"));
- }
}