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/10/18 14:21:11 UTC
[shardingsphere-elasticjob] branch master updated: Redesign
JobErrorHandler's interface (#1583)
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 2128695 Redesign JobErrorHandler's interface (#1583)
2128695 is described below
commit 2128695b30d59fd209725c1c27026656cf1fcf6f
Author: Liang Zhang <te...@163.com>
AuthorDate: Sun Oct 18 22:21:00 2020 +0800
Redesign JobErrorHandler's interface (#1583)
* Redesign JobErrorHandler's interface
* For code format
---
.../elasticjob/error/handler/JobErrorHandler.java | 8 ++--
.../handler/dingtalk/DingtalkJobErrorHandler.java | 38 +++++++--------
.../dingtalk/DingtalkJobErrorHandlerTest.java | 42 ++++++++---------
.../error/handler/email/EmailJobErrorHandler.java | 55 +++++++++++-----------
.../handler/email/EmailJobErrorHandlerTest.java | 40 ++++++++--------
.../handler/general/IgnoreJobErrorHandler.java | 5 +-
.../error/handler/general/LogJobErrorHandler.java | 7 +--
.../handler/general/ThrowJobErrorHandler.java | 5 +-
.../handler/general/IgnoreJobErrorHandlerTest.java | 5 +-
.../handler/general/LogJobErrorHandlerTest.java | 4 +-
.../handler/general/ThrowJobErrorHandlerTest.java | 5 +-
.../handler/wechat/WechatJobErrorHandler.java | 26 +++++-----
.../handler/wechat/WechatJobErrorHandlerTest.java | 22 ++++-----
.../elasticjob/executor/ElasticJobExecutor.java | 8 ++--
14 files changed, 138 insertions(+), 132 deletions(-)
diff --git a/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/JobErrorHandler.java b/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/JobErrorHandler.java
index 11973d7..95757b4 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/JobErrorHandler.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-spi/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/JobErrorHandler.java
@@ -17,9 +17,10 @@
package org.apache.shardingsphere.elasticjob.error.handler;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.infra.spi.TypedSPI;
+import java.util.Properties;
+
/**
* Job error handler.
*/
@@ -28,8 +29,9 @@ public interface JobErrorHandler extends TypedSPI {
/**
* Handle exception.
*
- * @param jobConfig job configuration
+ * @param jobName job name
+ * @param props job properties
* @param cause failure cause
*/
- void handleException(JobConfiguration jobConfig, Throwable cause);
+ void handleException(String jobName, Properties props, Throwable cause);
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkJobErrorHandler.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkJobErrorHandler.java
index fd2a53f..c08a294 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkJobErrorHandler.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkJobErrorHandler.java
@@ -29,7 +29,6 @@ import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandler;
import org.apache.shardingsphere.elasticjob.error.handler.dingtalk.config.DingtalkConfiguration;
import org.apache.shardingsphere.elasticjob.infra.json.GsonFactory;
@@ -47,6 +46,7 @@ import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
import java.util.Collections;
+import java.util.Properties;
/**
* Job error handler for send error message via dingtalk.
@@ -73,45 +73,45 @@ public final class DingtalkJobErrorHandler implements JobErrorHandler {
}
@Override
- public void handleException(final JobConfiguration jobConfig, final Throwable cause) {
- DingtalkConfiguration dingtalkConfig = new DingtalkConfiguration(jobConfig.getProps());
- HttpPost httpPost = createHTTPPostMethod(jobConfig.getJobName(), cause, dingtalkConfig);
+ public void handleException(final String jobName, final Properties props, final Throwable cause) {
+ DingtalkConfiguration config = new DingtalkConfiguration(props);
+ HttpPost httpPost = createHTTPPostMethod(jobName, cause, config);
try (CloseableHttpResponse response = httpclient.execute(httpPost)) {
int status = response.getStatusLine().getStatusCode();
if (HttpURLConnection.HTTP_OK == status) {
JsonObject responseMessage = GsonFactory.getGson().fromJson(EntityUtils.toString(response.getEntity()), JsonObject.class);
if (!"0".equals(responseMessage.get("errcode").getAsString())) {
- log.info("An exception has occurred in Job '{}', But failed to send alert by Dingtalk because of: {}", jobConfig.getJobName(), responseMessage.get("errmsg").getAsString(), cause);
+ log.info("An exception has occurred in Job '{}', But failed to send alert by Dingtalk because of: {}", jobName, responseMessage.get("errmsg").getAsString(), cause);
} else {
- log.info("An exception has occurred in Job '{}', Notification to Dingtalk was successful.", jobConfig.getJobName(), cause);
+ log.info("An exception has occurred in Job '{}', Notification to Dingtalk was successful.", jobName, cause);
}
} else {
- log.error("An exception has occurred in Job '{}', But failed to send alert by Dingtalk because of: Unexpected response status: {}", jobConfig.getJobName(), status, cause);
+ log.error("An exception has occurred in Job '{}', But failed to send alert by Dingtalk because of: Unexpected response status: {}", jobName, status, cause);
}
} catch (final IOException ex) {
cause.addSuppressed(ex);
- log.error("An exception has occurred in Job '{}', But failed to send alert by Dingtalk because of", jobConfig.getJobName(), cause);
+ log.error("An exception has occurred in Job '{}', But failed to send alert by Dingtalk because of", jobName, cause);
}
}
- private HttpPost createHTTPPostMethod(final String jobName, final Throwable cause, final DingtalkConfiguration dingtalkConfig) {
- HttpPost result = new HttpPost(getURL(dingtalkConfig));
- RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(dingtalkConfig.getConnectTimeoutMillisecond()).setSocketTimeout(dingtalkConfig.getReadTimeoutMillisecond()).build();
+ private HttpPost createHTTPPostMethod(final String jobName, final Throwable cause, final DingtalkConfiguration config) {
+ HttpPost result = new HttpPost(getURL(config));
+ RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(config.getConnectTimeoutMillisecond()).setSocketTimeout(config.getReadTimeoutMillisecond()).build();
result.setConfig(requestConfig);
- StringEntity entity = new StringEntity(getJsonParameter(getErrorMessage(jobName, dingtalkConfig, cause)), StandardCharsets.UTF_8);
+ StringEntity entity = new StringEntity(getJsonParameter(getErrorMessage(jobName, config, cause)), StandardCharsets.UTF_8);
entity.setContentEncoding(StandardCharsets.UTF_8.name());
entity.setContentType("application/json");
result.setEntity(entity);
return result;
}
- private String getURL(final DingtalkConfiguration dingtalkConfig) {
- return Strings.isNullOrEmpty(dingtalkConfig.getSecret()) ? dingtalkConfig.getWebhook() : getSignedURL(dingtalkConfig);
+ private String getURL(final DingtalkConfiguration config) {
+ return Strings.isNullOrEmpty(config.getSecret()) ? config.getWebhook() : getSignedURL(config);
}
- private String getSignedURL(final DingtalkConfiguration dingtalkConfig) {
+ private String getSignedURL(final DingtalkConfiguration config) {
long timestamp = System.currentTimeMillis();
- return String.format("%s×tamp=%s&sign=%s", dingtalkConfig.getWebhook(), timestamp, generateSignature(timestamp, dingtalkConfig.getSecret()));
+ return String.format("%s×tamp=%s&sign=%s", config.getWebhook(), timestamp, generateSignature(timestamp, config.getSecret()));
}
@SneakyThrows({NoSuchAlgorithmException.class, UnsupportedEncodingException.class, InvalidKeyException.class})
@@ -127,12 +127,12 @@ public final class DingtalkJobErrorHandler implements JobErrorHandler {
return GsonFactory.getGson().toJson(ImmutableMap.of("msgtype", "text", "text", Collections.singletonMap("content", message)));
}
- private String getErrorMessage(final String jobName, final DingtalkConfiguration dingtalkConfig, final Throwable cause) {
+ private String getErrorMessage(final String jobName, final DingtalkConfiguration config, final Throwable cause) {
StringWriter writer = new StringWriter();
cause.printStackTrace(new PrintWriter(writer, true));
String result = String.format("Job '%s' exception occur in job processing, caused by %s", jobName, writer.toString());
- if (!Strings.isNullOrEmpty(dingtalkConfig.getKeyword())) {
- result = dingtalkConfig.getKeyword().concat(result);
+ if (!Strings.isNullOrEmpty(config.getKeyword())) {
+ result = config.getKeyword().concat(result);
}
return result;
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkJobErrorHandlerTest.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkJobErrorHandlerTest.java
index 01fdb9f..0ca80ce 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkJobErrorHandlerTest.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkJobErrorHandlerTest.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.elasticjob.error.handler.dingtalk;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandlerFactory;
import org.apache.shardingsphere.elasticjob.error.handler.dingtalk.config.DingtalkPropertiesConstants;
import org.apache.shardingsphere.elasticjob.error.handler.dingtalk.fixture.DingtalkInternalController;
@@ -36,6 +35,7 @@ import org.slf4j.Logger;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
+import java.util.Properties;
import static org.mockito.Mockito.verify;
@@ -72,7 +72,7 @@ public final class DingtalkJobErrorHandlerTest {
DingtalkJobErrorHandler actual = getDingtalkJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException(getJobConfiguration("http://localhost:9875/send?access_token=42eead064e81ce81fc6af2c107fbe10a4339a3d40a7db8abf5b34d8261527a3f"), cause);
+ actual.handleException("test_job", createJobProperties("http://localhost:9875/send?access_token=42eead064e81ce81fc6af2c107fbe10a4339a3d40a7db8abf5b34d8261527a3f"), cause);
verify(log).info("An exception has occurred in Job '{}', Notification to Dingtalk was successful.", "test_job", cause);
}
@@ -81,7 +81,7 @@ public final class DingtalkJobErrorHandlerTest {
DingtalkJobErrorHandler actual = getDingtalkJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException(getJobConfiguration("http://localhost:9875/send?access_token=wrongToken"), cause);
+ actual.handleException("test_job", createJobProperties("http://localhost:9875/send?access_token=wrongToken"), cause);
verify(log).info("An exception has occurred in Job '{}', But failed to send alert by Dingtalk because of: {}", "test_job", "token is not exist", cause);
}
@@ -90,7 +90,7 @@ public final class DingtalkJobErrorHandlerTest {
DingtalkJobErrorHandler actual = getDingtalkJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException(getJobConfiguration("http://localhost:9875/404"), cause);
+ actual.handleException("test_job", createJobProperties("http://localhost:9875/404"), cause);
verify(log).error("An exception has occurred in Job '{}', But failed to send alert by Dingtalk because of: Unexpected response status: {}", "test_job", 404, cause);
}
@@ -99,7 +99,7 @@ public final class DingtalkJobErrorHandlerTest {
DingtalkJobErrorHandler actual = getDingtalkJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException(getNoSignJobConfiguration("http://wrongUrl"), cause);
+ actual.handleException("test_job", createNoSignJobProperties("http://wrongUrl"), cause);
verify(log).error("An exception has occurred in Job '{}', But failed to send alert by Dingtalk because of", "test_job", cause);
}
@@ -108,7 +108,7 @@ public final class DingtalkJobErrorHandlerTest {
DingtalkJobErrorHandler actual = getDingtalkJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException(getNoSignJobConfiguration("http://localhost:9875/send?access_token=42eead064e81ce81fc6af2c107fbe10a4339a3d40a7db8abf5b34d8261527a3f"), cause);
+ actual.handleException("test_job", createNoSignJobProperties("http://localhost:9875/send?access_token=42eead064e81ce81fc6af2c107fbe10a4339a3d40a7db8abf5b34d8261527a3f"), cause);
verify(log).info("An exception has occurred in Job '{}', Notification to Dingtalk was successful.", "test_job", cause);
}
@@ -126,22 +126,22 @@ public final class DingtalkJobErrorHandlerTest {
field.set(dingtalkJobErrorHandler, log);
}
- private JobConfiguration getJobConfiguration(final String webhook) {
- return JobConfiguration.newBuilder("test_job", 3)
- .setProperty(DingtalkPropertiesConstants.WEBHOOK, webhook)
- .setProperty(DingtalkPropertiesConstants.KEYWORD, "keyword")
- .setProperty(DingtalkPropertiesConstants.SECRET, "SEC0b0a6b13b6823b95737dd83491c23adee5d8a7a649899a12217e038eddc84ff4")
- .setProperty(DingtalkPropertiesConstants.CONNECT_TIMEOUT_MILLISECOND, "4000")
- .setProperty(DingtalkPropertiesConstants.READ_TIMEOUT_MILLISECOND, "6000")
- .build();
+ private Properties createJobProperties(final String webhook) {
+ Properties result = new Properties();
+ result.setProperty(DingtalkPropertiesConstants.WEBHOOK, webhook);
+ result.setProperty(DingtalkPropertiesConstants.KEYWORD, "keyword");
+ result.setProperty(DingtalkPropertiesConstants.SECRET, "SEC0b0a6b13b6823b95737dd83491c23adee5d8a7a649899a12217e038eddc84ff4");
+ result.setProperty(DingtalkPropertiesConstants.CONNECT_TIMEOUT_MILLISECOND, "4000");
+ result.setProperty(DingtalkPropertiesConstants.READ_TIMEOUT_MILLISECOND, "6000");
+ return result;
}
- private JobConfiguration getNoSignJobConfiguration(final String webhook) {
- return JobConfiguration.newBuilder("test_job", 3)
- .setProperty(DingtalkPropertiesConstants.WEBHOOK, webhook)
- .setProperty(DingtalkPropertiesConstants.KEYWORD, "keyword")
- .setProperty(DingtalkPropertiesConstants.CONNECT_TIMEOUT_MILLISECOND, "4000")
- .setProperty(DingtalkPropertiesConstants.READ_TIMEOUT_MILLISECOND, "6000")
- .build();
+ private Properties createNoSignJobProperties(final String webhook) {
+ Properties result = new Properties();
+ result.setProperty(DingtalkPropertiesConstants.WEBHOOK, webhook);
+ result.setProperty(DingtalkPropertiesConstants.KEYWORD, "keyword");
+ result.setProperty(DingtalkPropertiesConstants.CONNECT_TIMEOUT_MILLISECOND, "4000");
+ result.setProperty(DingtalkPropertiesConstants.READ_TIMEOUT_MILLISECOND, "6000");
+ return result;
}
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandler.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandler.java
index 40e9494..7e575a1 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandler.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandler.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.elasticjob.error.handler.email;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandler;
import org.apache.shardingsphere.elasticjob.error.handler.email.config.EmailConfiguration;
@@ -50,15 +49,15 @@ public final class EmailJobErrorHandler implements JobErrorHandler {
private Session session;
@Override
- public void handleException(final JobConfiguration jobConfig, final Throwable cause) {
- EmailConfiguration emailConfig = new EmailConfiguration(jobConfig.getProps());
- String errorMessage = getErrorMessage(jobConfig.getJobName(), cause);
+ public void handleException(final String jobName, final Properties props, final Throwable cause) {
+ EmailConfiguration config = new EmailConfiguration(props);
+ String errorMessage = getErrorMessage(jobName, cause);
try {
- sendMessage(createMessage(errorMessage, emailConfig), emailConfig);
- log.error("An exception has occurred in Job '{}', Notification to email was successful..", jobConfig.getJobName(), cause);
+ sendMessage(createMessage(errorMessage, config), config);
+ log.error("An exception has occurred in Job '{}', Notification to email was successful..", jobName, cause);
} catch (final MessagingException ex) {
cause.addSuppressed(ex);
- log.error("An exception has occurred in Job '{}', But failed to send alert by email because of", jobConfig.getJobName(), cause);
+ log.error("An exception has occurred in Job '{}', But failed to send alert by email because of", jobName, cause);
}
}
@@ -68,67 +67,67 @@ public final class EmailJobErrorHandler implements JobErrorHandler {
return String.format("Job '%s' exception occur in job processing, caused by %s", jobName, writer.toString());
}
- private Message createMessage(final String content, final EmailConfiguration emailConfig) throws MessagingException {
- MimeMessage result = new MimeMessage(Optional.ofNullable(session).orElseGet(() -> createSession(emailConfig)));
- result.setFrom(new InternetAddress(emailConfig.getFrom()));
- result.setSubject(emailConfig.getSubject());
+ private Message createMessage(final String content, final EmailConfiguration config) throws MessagingException {
+ MimeMessage result = new MimeMessage(Optional.ofNullable(session).orElseGet(() -> createSession(config)));
+ 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);
result.setContent(multipart);
- String to = emailConfig.getTo();
+ String to = config.getTo();
if (StringUtils.isNotBlank(to)) {
String[] tos = to.split(",");
for (String each : tos) {
result.addRecipient(Message.RecipientType.TO, new InternetAddress(each));
}
}
- if (StringUtils.isNotBlank(emailConfig.getCc())) {
- result.addRecipient(Message.RecipientType.CC, new InternetAddress(emailConfig.getCc()));
+ if (StringUtils.isNotBlank(config.getCc())) {
+ result.addRecipient(Message.RecipientType.CC, new InternetAddress(config.getCc()));
}
- if (StringUtils.isNotBlank(emailConfig.getBcc())) {
- result.addRecipient(Message.RecipientType.BCC, new InternetAddress(emailConfig.getBcc()));
+ if (StringUtils.isNotBlank(config.getBcc())) {
+ result.addRecipient(Message.RecipientType.BCC, new InternetAddress(config.getBcc()));
}
result.saveChanges();
return result;
}
- private void sendMessage(final Message message, final EmailConfiguration emailConfig) throws MessagingException {
- try (Transport transport = Optional.ofNullable(session).orElseGet(() -> createSession(emailConfig)).getTransport()) {
+ private void sendMessage(final Message message, final EmailConfiguration config) throws MessagingException {
+ try (Transport transport = Optional.ofNullable(session).orElseGet(() -> createSession(config)).getTransport()) {
transport.connect();
transport.sendMessage(message, message.getAllRecipients());
}
}
- private synchronized Session createSession(final EmailConfiguration emailConfig) {
+ private synchronized Session createSession(final EmailConfiguration config) {
if (null == session) {
- session = Session.getDefaultInstance(createSessionProperties(emailConfig), getSessionAuthenticator(emailConfig));
+ session = Session.getDefaultInstance(createSessionProperties(config), getSessionAuthenticator(config));
}
return session;
}
- private Properties createSessionProperties(final EmailConfiguration emailConfig) {
+ private Properties createSessionProperties(final EmailConfiguration config) {
Properties result = new Properties();
- result.put("mail.smtp.host", emailConfig.getHost());
- result.put("mail.smtp.port", emailConfig.getPort());
+ result.put("mail.smtp.host", config.getHost());
+ result.put("mail.smtp.port", config.getPort());
result.put("mail.smtp.auth", "true");
result.put("mail.transport.protocol", "smtp");
- result.setProperty("mail.debug", Boolean.toString(emailConfig.isDebug()));
- if (emailConfig.isUseSsl()) {
+ result.setProperty("mail.debug", Boolean.toString(config.isDebug()));
+ if (config.isUseSsl()) {
result.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
result.setProperty("mail.smtp.socketFactory.fallback", "false");
}
return result;
}
- private Authenticator getSessionAuthenticator(final EmailConfiguration emailConfig) {
+ private Authenticator getSessionAuthenticator(final EmailConfiguration config) {
return new Authenticator() {
-
+
@Override
public PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication(emailConfig.getUsername(), emailConfig.getPassword());
+ return new PasswordAuthentication(config.getUsername(), config.getPassword());
}
};
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandlerTest.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandlerTest.java
index 816da79..f4cd111 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandlerTest.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailJobErrorHandlerTest.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.elasticjob.error.handler.email;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandlerFactory;
import org.apache.shardingsphere.elasticjob.error.handler.email.config.EmailPropertiesConstants;
import org.apache.shardingsphere.elasticjob.infra.exception.JobConfigurationException;
@@ -30,6 +29,7 @@ import org.slf4j.Logger;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
+import java.util.Properties;
import static org.mockito.Mockito.verify;
@@ -44,10 +44,14 @@ public final class EmailJobErrorHandlerTest {
EmailJobErrorHandler emailJobErrorHandler = getEmailJobErrorHandler();
setStaticFieldValue(emailJobErrorHandler, "log", log);
Throwable cause = new RuntimeException("test");
- emailJobErrorHandler.handleException(getJobConfiguration(), cause);
+ emailJobErrorHandler.handleException("test_job", createJobProperties(), cause);
verify(log).error("An exception has occurred in Job '{}', But failed to send alert by email because of", "test_job", cause);
}
+ private EmailJobErrorHandler getEmailJobErrorHandler() {
+ return (EmailJobErrorHandler) JobErrorHandlerFactory.createHandler("EMAIL").orElseThrow(() -> new JobConfigurationException("EMAIL error handler not found."));
+ }
+
@SneakyThrows
private void setStaticFieldValue(final EmailJobErrorHandler wechatJobErrorHandler, final String name, final Object value) {
Field fieldLog = wechatJobErrorHandler.getClass().getDeclaredField(name);
@@ -58,23 +62,19 @@ public final class EmailJobErrorHandlerTest {
fieldLog.set(wechatJobErrorHandler, value);
}
- private JobConfiguration getJobConfiguration() {
- return JobConfiguration.newBuilder("test_job", 3)
- .setProperty(EmailPropertiesConstants.HOST, "xxx")
- .setProperty(EmailPropertiesConstants.PORT, "465")
- .setProperty(EmailPropertiesConstants.USERNAME, "xxx")
- .setProperty(EmailPropertiesConstants.PASSWORD, "xxx")
- .setProperty(EmailPropertiesConstants.IS_USE_SSL, "true")
- .setProperty(EmailPropertiesConstants.SUBJECT, "Unit test notification")
- .setProperty(EmailPropertiesConstants.FROM, "from@xxx.com")
- .setProperty(EmailPropertiesConstants.TO, "to1@xxx.com,to2@xxx.com")
- .setProperty(EmailPropertiesConstants.CC, "cc@xxx.com")
- .setProperty(EmailPropertiesConstants.BCC, "bcc@xxx.com")
- .setProperty(EmailPropertiesConstants.IS_DEBUG, "false")
- .build();
- }
-
- private EmailJobErrorHandler getEmailJobErrorHandler() {
- return (EmailJobErrorHandler) JobErrorHandlerFactory.createHandler("EMAIL").orElseThrow(() -> new JobConfigurationException("EMAIL error handler not found."));
+ private Properties createJobProperties() {
+ Properties result = new Properties();
+ result.setProperty(EmailPropertiesConstants.HOST, "xxx");
+ result.setProperty(EmailPropertiesConstants.PORT, "465");
+ result.setProperty(EmailPropertiesConstants.USERNAME, "xxx");
+ result.setProperty(EmailPropertiesConstants.PASSWORD, "xxx");
+ result.setProperty(EmailPropertiesConstants.IS_USE_SSL, "true");
+ result.setProperty(EmailPropertiesConstants.SUBJECT, "Unit test notification");
+ result.setProperty(EmailPropertiesConstants.FROM, "from@xxx.com");
+ result.setProperty(EmailPropertiesConstants.TO, "to1@xxx.com,to2@xxx.com");
+ result.setProperty(EmailPropertiesConstants.CC, "cc@xxx.com");
+ result.setProperty(EmailPropertiesConstants.BCC, "bcc@xxx.com");
+ result.setProperty(EmailPropertiesConstants.IS_DEBUG, Boolean.FALSE.toString());
+ return result;
}
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/general/IgnoreJobErrorHandler.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/general/IgnoreJobErrorHandler.java
index 0f361b0..6e8ad3d 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/general/IgnoreJobErrorHandler.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/general/IgnoreJobErrorHandler.java
@@ -17,16 +17,17 @@
package org.apache.shardingsphere.elasticjob.error.handler.general;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandler;
+import java.util.Properties;
+
/**
* Job error handler for ignore exception.
*/
public final class IgnoreJobErrorHandler implements JobErrorHandler {
@Override
- public void handleException(final JobConfiguration jobConfig, final Throwable cause) {
+ public void handleException(final String jobName, final Properties props, final Throwable cause) {
}
@Override
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/general/LogJobErrorHandler.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/general/LogJobErrorHandler.java
index 8833c19..0e83df1 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/general/LogJobErrorHandler.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/general/LogJobErrorHandler.java
@@ -18,9 +18,10 @@
package org.apache.shardingsphere.elasticjob.error.handler.general;
import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandler;
+import java.util.Properties;
+
/**
* Job error handler for log error message.
*/
@@ -28,8 +29,8 @@ import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandler;
public final class LogJobErrorHandler implements JobErrorHandler {
@Override
- public void handleException(final JobConfiguration jobConfig, final Throwable cause) {
- log.error(String.format("Job '%s' exception occur in job processing", jobConfig.getJobName()), cause);
+ public void handleException(final String jobName, final Properties props, final Throwable cause) {
+ log.error(String.format("Job '%s' exception occur in job processing", jobName), cause);
}
@Override
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/general/ThrowJobErrorHandler.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/general/ThrowJobErrorHandler.java
index 9d3e12d..f9f9e3e 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/general/ThrowJobErrorHandler.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/general/ThrowJobErrorHandler.java
@@ -17,17 +17,18 @@
package org.apache.shardingsphere.elasticjob.error.handler.general;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandler;
import org.apache.shardingsphere.elasticjob.infra.exception.JobSystemException;
+import java.util.Properties;
+
/**
* Job error handler for throw exception.
*/
public final class ThrowJobErrorHandler implements JobErrorHandler {
@Override
- public void handleException(final JobConfiguration jobConfig, final Throwable cause) {
+ public void handleException(final String jobName, final Properties props, final Throwable cause) {
throw new JobSystemException(cause);
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/general/IgnoreJobErrorHandlerTest.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/general/IgnoreJobErrorHandlerTest.java
index ef86fcf..d160a37 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/general/IgnoreJobErrorHandlerTest.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/general/IgnoreJobErrorHandlerTest.java
@@ -17,16 +17,17 @@
package org.apache.shardingsphere.elasticjob.error.handler.general;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandlerFactory;
import org.apache.shardingsphere.elasticjob.infra.exception.JobConfigurationException;
import org.junit.Test;
+import java.util.Properties;
+
public final class IgnoreJobErrorHandlerTest {
@Test
public void assertHandleException() {
JobErrorHandlerFactory.createHandler("IGNORE").orElseThrow(() -> new JobConfigurationException("IGNORE error handler not found."))
- .handleException(JobConfiguration.newBuilder("test_job", 3).build(), new RuntimeException("test"));
+ .handleException("test_job", new Properties(), new RuntimeException("test"));
}
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/general/LogJobErrorHandlerTest.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/general/LogJobErrorHandlerTest.java
index bc38321..18fe5ce 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/general/LogJobErrorHandlerTest.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/general/LogJobErrorHandlerTest.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.elasticjob.error.handler.general;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandlerFactory;
import org.apache.shardingsphere.elasticjob.infra.exception.JobConfigurationException;
import org.junit.Test;
@@ -29,6 +28,7 @@ import org.slf4j.Logger;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
+import java.util.Properties;
import static org.mockito.Mockito.verify;
@@ -43,7 +43,7 @@ public final class LogJobErrorHandlerTest {
LogJobErrorHandler actual = (LogJobErrorHandler) JobErrorHandlerFactory.createHandler("LOG").orElseThrow(() -> new JobConfigurationException("LOG error handler not found."));
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException(JobConfiguration.newBuilder("test_job", 3).build(), cause);
+ actual.handleException("test_job", new Properties(), cause);
verify(log).error("Job 'test_job' exception occur in job processing", cause);
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/general/ThrowJobErrorHandlerTest.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/general/ThrowJobErrorHandlerTest.java
index bd89cc3..273a5e9 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/general/ThrowJobErrorHandlerTest.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-general/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/general/ThrowJobErrorHandlerTest.java
@@ -17,17 +17,18 @@
package org.apache.shardingsphere.elasticjob.error.handler.general;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandlerFactory;
import org.apache.shardingsphere.elasticjob.infra.exception.JobConfigurationException;
import org.apache.shardingsphere.elasticjob.infra.exception.JobSystemException;
import org.junit.Test;
+import java.util.Properties;
+
public final class ThrowJobErrorHandlerTest {
@Test(expected = JobSystemException.class)
public void assertHandleException() {
JobErrorHandlerFactory.createHandler("THROW").orElseThrow(() -> new JobConfigurationException("THROW error handler not found."))
- .handleException(JobConfiguration.newBuilder("test_job", 3).build(), new RuntimeException("test"));
+ .handleException("test_job", new Properties(), new RuntimeException("test"));
}
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatJobErrorHandler.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatJobErrorHandler.java
index 56c7958..73c62c2 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatJobErrorHandler.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatJobErrorHandler.java
@@ -28,7 +28,6 @@ import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandler;
import org.apache.shardingsphere.elasticjob.error.handler.wechat.config.WechatConfiguration;
import org.apache.shardingsphere.elasticjob.infra.json.GsonFactory;
@@ -39,6 +38,7 @@ import java.io.StringWriter;
import java.net.HttpURLConnection;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
+import java.util.Properties;
/**
* Job error handler for send error message via wechat.
@@ -65,30 +65,30 @@ public final class WechatJobErrorHandler implements JobErrorHandler {
}
@Override
- public void handleException(final JobConfiguration jobConfig, final Throwable cause) {
- WechatConfiguration wechatConfig = new WechatConfiguration(jobConfig.getProps());
- HttpPost httpPost = createHTTPPostMethod(jobConfig.getJobName(), cause, wechatConfig);
+ public void handleException(final String jobName, final Properties props, final Throwable cause) {
+ WechatConfiguration config = new WechatConfiguration(props);
+ HttpPost httpPost = createHTTPPostMethod(jobName, cause, config);
try (CloseableHttpResponse response = httpclient.execute(httpPost)) {
int status = response.getStatusLine().getStatusCode();
if (HttpURLConnection.HTTP_OK == status) {
JsonObject resp = GsonFactory.getGson().fromJson(EntityUtils.toString(response.getEntity()), JsonObject.class);
if (!"0".equals(resp.get("errcode").getAsString())) {
- log.info("An exception has occurred in Job '{}', But failed to send alert by wechat because of: {}", jobConfig.getJobName(), resp.get("errmsg").getAsString(), cause);
+ log.info("An exception has occurred in Job '{}', But failed to send alert by wechat because of: {}", jobName, resp.get("errmsg").getAsString(), cause);
} else {
- log.info("An exception has occurred in Job '{}', Notification to wechat was successful.", jobConfig.getJobName(), cause);
+ log.info("An exception has occurred in Job '{}', Notification to wechat was successful.", jobName, cause);
}
} else {
- log.error("An exception has occurred in Job '{}', But failed to send alert by wechat because of: Unexpected response status: {}", jobConfig.getJobName(), status, cause);
+ log.error("An exception has occurred in Job '{}', But failed to send alert by wechat because of: Unexpected response status: {}", jobName, status, cause);
}
} catch (final IOException ex) {
cause.addSuppressed(ex);
- log.error("An exception has occurred in Job '{}', But failed to send alert by wechat because of", jobConfig.getJobName(), cause);
+ log.error("An exception has occurred in Job '{}', But failed to send alert by wechat because of", jobName, cause);
}
}
-
- private HttpPost createHTTPPostMethod(final String jobName, final Throwable cause, final WechatConfiguration wechatConfig) {
- HttpPost result = new HttpPost(wechatConfig.getWebhook());
- RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(wechatConfig.getConnectTimeoutMillisecond()).setSocketTimeout(wechatConfig.getReadTimeoutMillisecond()).build();
+
+ private HttpPost createHTTPPostMethod(final String jobName, final Throwable cause, final WechatConfiguration config) {
+ HttpPost result = new HttpPost(config.getWebhook());
+ RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(config.getConnectTimeoutMillisecond()).setSocketTimeout(config.getReadTimeoutMillisecond()).build();
result.setConfig(requestConfig);
StringEntity entity = new StringEntity(getJsonParameter(getErrorMessage(jobName, cause)), StandardCharsets.UTF_8);
entity.setContentEncoding(StandardCharsets.UTF_8.name());
@@ -96,7 +96,7 @@ public final class WechatJobErrorHandler implements JobErrorHandler {
result.setEntity(entity);
return result;
}
-
+
private String getJsonParameter(final String message) {
return GsonFactory.getGson().toJson(ImmutableMap.of("msgtype", "text", "text", Collections.singletonMap("content", message)));
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatJobErrorHandlerTest.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatJobErrorHandlerTest.java
index c668c30..3098a74 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatJobErrorHandlerTest.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatJobErrorHandlerTest.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.elasticjob.error.handler.wechat;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.error.handler.JobErrorHandlerFactory;
import org.apache.shardingsphere.elasticjob.error.handler.wechat.config.WechatPropertiesConstants;
import org.apache.shardingsphere.elasticjob.error.handler.wechat.fixture.WechatInternalController;
@@ -36,6 +35,7 @@ import org.slf4j.Logger;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
+import java.util.Properties;
import static org.mockito.Mockito.verify;
@@ -72,7 +72,7 @@ public final class WechatJobErrorHandlerTest {
WechatJobErrorHandler actual = getWechatJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException(getJobConfiguration("http://localhost:9872/send?key=TLQEC0cPivqV1MkT0IPMtzunTBBVyIV3"), cause);
+ actual.handleException("test_job", getJobProperties("http://localhost:9872/send?key=TLQEC0cPivqV1MkT0IPMtzunTBBVyIV3"), cause);
verify(log).info("An exception has occurred in Job '{}', Notification to wechat was successful.", "test_job", cause);
}
@@ -81,7 +81,7 @@ public final class WechatJobErrorHandlerTest {
WechatJobErrorHandler actual = getWechatJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException(getJobConfiguration("http://localhost:9872/send?key=wrongToken"), cause);
+ actual.handleException("test_job", getJobProperties("http://localhost:9872/send?key=wrongToken"), cause);
verify(log).info("An exception has occurred in Job '{}', But failed to send alert by wechat because of: {}", "test_job", "token is invalid", cause);
}
@@ -90,7 +90,7 @@ public final class WechatJobErrorHandlerTest {
WechatJobErrorHandler actual = getWechatJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException(getJobConfiguration("http://wrongUrl"), cause);
+ actual.handleException("test_job", getJobProperties("http://wrongUrl"), cause);
verify(log).error("An exception has occurred in Job '{}', But failed to send alert by wechat because of", "test_job", cause);
}
@@ -99,7 +99,7 @@ public final class WechatJobErrorHandlerTest {
WechatJobErrorHandler actual = getWechatJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException(getJobConfiguration("http://localhost:9872/404"), cause);
+ actual.handleException("test_job", getJobProperties("http://localhost:9872/404"), cause);
verify(log).error("An exception has occurred in Job '{}', But failed to send alert by wechat because of: Unexpected response status: {}", "test_job", 404, cause);
}
@@ -117,11 +117,11 @@ public final class WechatJobErrorHandlerTest {
field.set(wechatJobErrorHandler, log);
}
- private JobConfiguration getJobConfiguration(final String webhook) {
- return JobConfiguration.newBuilder("test_job", 3)
- .setProperty(WechatPropertiesConstants.WEBHOOK, webhook)
- .setProperty(WechatPropertiesConstants.CONNECT_TIMEOUT_MILLISECOND, "1000")
- .setProperty(WechatPropertiesConstants.READ_TIMEOUT_MILLISECOND, "2000")
- .build();
+ private Properties getJobProperties(final String webhook) {
+ Properties result = new Properties();
+ result.setProperty(WechatPropertiesConstants.WEBHOOK, webhook);
+ result.setProperty(WechatPropertiesConstants.CONNECT_TIMEOUT_MILLISECOND, "1000");
+ result.setProperty(WechatPropertiesConstants.READ_TIMEOUT_MILLISECOND, "2000");
+ return result;
}
}
diff --git a/elasticjob-executor/elasticjob-executor-kernel/src/main/java/org/apache/shardingsphere/elasticjob/executor/ElasticJobExecutor.java b/elasticjob-executor/elasticjob-executor-kernel/src/main/java/org/apache/shardingsphere/elasticjob/executor/ElasticJobExecutor.java
index 6cfd9f9..c828434 100644
--- a/elasticjob-executor/elasticjob-executor-kernel/src/main/java/org/apache/shardingsphere/elasticjob/executor/ElasticJobExecutor.java
+++ b/elasticjob-executor/elasticjob-executor-kernel/src/main/java/org/apache/shardingsphere/elasticjob/executor/ElasticJobExecutor.java
@@ -86,7 +86,7 @@ public final class ElasticJobExecutor {
try {
jobFacade.checkJobExecutionEnvironment();
} catch (final JobExecutionEnvironmentException cause) {
- jobErrorHandler.handleException(jobConfig, cause);
+ jobErrorHandler.handleException(jobConfig.getJobName(), jobConfig.getProps(), cause);
}
ShardingContexts shardingContexts = jobFacade.getShardingContexts();
jobFacade.postJobStatusTraceEvent(shardingContexts.getTaskId(), State.TASK_STAGING, String.format("Job '%s' execute begin.", jobConfig.getJobName()));
@@ -101,7 +101,7 @@ public final class ElasticJobExecutor {
//CHECKSTYLE:OFF
} catch (final Throwable cause) {
//CHECKSTYLE:ON
- jobErrorHandler.handleException(jobConfig, cause);
+ jobErrorHandler.handleException(jobConfig.getJobName(), jobConfig.getProps(), cause);
}
execute(shardingContexts, ExecutionSource.NORMAL_TRIGGER);
while (jobFacade.isExecuteMisfired(shardingContexts.getShardingItemParameters().keySet())) {
@@ -114,7 +114,7 @@ public final class ElasticJobExecutor {
//CHECKSTYLE:OFF
} catch (final Throwable cause) {
//CHECKSTYLE:ON
- jobErrorHandler.handleException(jobConfig, cause);
+ jobErrorHandler.handleException(jobConfig.getJobName(), jobConfig.getProps(), cause);
}
}
@@ -184,7 +184,7 @@ public final class ElasticJobExecutor {
completeEvent = startEvent.executionFailure(ExceptionUtils.transform(cause));
jobFacade.postJobExecutionEvent(completeEvent);
itemErrorMessages.put(item, ExceptionUtils.transform(cause));
- jobErrorHandler.handleException(jobConfig, cause);
+ jobErrorHandler.handleException(jobConfig.getJobName(), jobConfig.getProps(), cause);
}
}