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/20 15:11:51 UTC
[shardingsphere-elasticjob] branch master updated: Revise error
handler configuration builder (#1621)
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 e1bf862 Revise error handler configuration builder (#1621)
e1bf862 is described below
commit e1bf8623713742d19500518545848f91b6d9944d
Author: Liang Zhang <te...@163.com>
AuthorDate: Tue Oct 20 23:10:50 2020 +0800
Revise error handler configuration builder (#1621)
* Revise DingtalkConfiguration
* Revise WechatConfiguration
* Revise EmailConfiguration
* Fix example
* Fix DingtalkConfiguration
---
.../handler/dingtalk/DingtalkConfiguration.java | 61 +++++++-----
.../dingtalk/DingtalkConfigurationTest.java | 58 +++---------
.../dingtalk/DingtalkJobErrorHandlerTest.java | 4 +-
.../error/handler/email/EmailConfiguration.java | 48 +++++-----
.../handler/email/EmailConfigurationTest.java | 104 +++++++--------------
.../handler/email/EmailJobErrorHandlerTest.java | 2 +-
.../error/handler/wechat/WechatConfiguration.java | 28 +++---
.../handler/wechat/WechatConfigurationTest.java | 35 ++-----
.../handler/wechat/WechatJobErrorHandlerTest.java | 8 +-
.../elasticjob/lite/example/JavaMain.java | 8 +-
10 files changed, 143 insertions(+), 213 deletions(-)
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkConfiguration.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkConfiguration.java
index b6ab4eb..9d5f29f 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkConfiguration.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkConfiguration.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.elasticjob.error.handler.ErrorHandlerConfigurat
/**
* Job error handler configuration for send error message via dingtalk.
*/
-@RequiredArgsConstructor
+@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
@Getter
public final class DingtalkConfiguration implements ErrorHandlerConfiguration {
@@ -47,36 +47,55 @@ public final class DingtalkConfiguration implements ErrorHandlerConfiguration {
}
/**
- * Create DingTalk configuration builder.
+ * Create dingtalk configuration builder.
*
* @param webhook webhook
- * @param keyword keyword
- * @param secret secret
- * @return DingTalk configuration builder
+ * @return dingtalk configuration builder
*/
- public static Builder newBuilder(final String webhook, final String keyword,
- final String secret) {
- return new Builder(webhook, keyword, secret);
+ public static Builder newBuilder(final String webhook) {
+ return new Builder(webhook);
}
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
- public static class Builder {
+ public static final class Builder {
private final String webhook;
- private final String keyword;
+ private String keyword;
- private final String secret;
+ private String secret;
private int connectTimeoutMillisecond = 3000;
private int readTimeoutMillisecond = 5000;
/**
- * Set connect timeout.
+ * Set keyword.
*
- * @param connectTimeoutMillisecond connect timeout
- * @return DingTalk configuration builder
+ * @param keyword keyword
+ * @return dingTalk configuration builder
+ */
+ public Builder keyword(final String keyword) {
+ this.keyword = keyword;
+ return this;
+ }
+
+ /**
+ * Set secret.
+ *
+ * @param secret secret
+ * @return dingTalk configuration builder
+ */
+ public Builder secret(final String secret) {
+ this.secret = secret;
+ return this;
+ }
+
+ /**
+ * Set connect timeout millisecond.
+ *
+ * @param connectTimeoutMillisecond connect timeout millisecond
+ * @return dingTalk configuration builder
*/
public Builder connectTimeoutMillisecond(final int connectTimeoutMillisecond) {
this.connectTimeoutMillisecond = connectTimeoutMillisecond;
@@ -84,10 +103,10 @@ public final class DingtalkConfiguration implements ErrorHandlerConfiguration {
}
/**
- * Set read timeout.
+ * Set read timeout millisecond.
*
- * @param readTimeoutMillisecond read timeout
- * @return DingTalk configuration builder
+ * @param readTimeoutMillisecond read timeout millisecond
+ * @return dingTalk configuration builder
*/
public Builder readTimeoutMillisecond(final int readTimeoutMillisecond) {
this.readTimeoutMillisecond = readTimeoutMillisecond;
@@ -95,14 +114,12 @@ public final class DingtalkConfiguration implements ErrorHandlerConfiguration {
}
/**
- * Build DingTalk configuration.
+ * Build dingTalk configuration.
*
- * @return DingTalk configuration
+ * @return dingTalk configuration
*/
- public final DingtalkConfiguration build() {
+ public DingtalkConfiguration build() {
Preconditions.checkArgument(!Strings.isNullOrEmpty(webhook), "webhook can not be empty.");
- Preconditions.checkArgument(!Strings.isNullOrEmpty(keyword), "keyword can not be empty.");
- Preconditions.checkArgument(!Strings.isNullOrEmpty(secret), "secret can not be empty.");
return new DingtalkConfiguration(webhook, keyword, secret, connectTimeoutMillisecond, readTimeoutMillisecond);
}
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkConfigurationTest.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkConfigurationTest.java
index 5ef02c0..0038fd1 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkConfigurationTest.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-dingtalk/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/dingtalk/DingtalkConfigurationTest.java
@@ -22,62 +22,34 @@ import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
@RunWith(MockitoJUnitRunner.class)
-public class DingtalkConfigurationTest {
-
- private static final String WEBHOOK = "webhook";
-
- private static final String KEYWORD = "keyword";
-
- private static final String SECRET = "secret";
-
- private static final int CONNECT_TIMEOUT = 4000;
-
- private static final int CONNECT_TIMEOUT_DEFAULT_VALUE = 3000;
-
- private static final int READ_TIMEOUT = 4000;
-
- private static final int READ_TIMEOUT_DEFAULT_VALUE = 5000;
-
- private static final String EMPTY_STRING = "";
+public final class DingtalkConfigurationTest {
@Test
public void assertBuildAllProperties() {
- DingtalkConfiguration actual = DingtalkConfiguration.newBuilder(WEBHOOK, KEYWORD, SECRET)
- .connectTimeoutMillisecond(CONNECT_TIMEOUT)
- .readTimeoutMillisecond(READ_TIMEOUT)
- .build();
- assertThat(actual.getWebhook(), is(WEBHOOK));
- assertThat(actual.getKeyword(), is(KEYWORD));
- assertThat(actual.getSecret(), is(SECRET));
- assertThat(actual.getConnectTimeoutMillisecond(), is(CONNECT_TIMEOUT));
- assertThat(actual.getReadTimeoutMillisecond(), is(CONNECT_TIMEOUT));
+ DingtalkConfiguration actual = DingtalkConfiguration.newBuilder("webhook").keyword("keyword").secret("secret").connectTimeoutMillisecond(4000).readTimeoutMillisecond(2000).build();
+ assertThat(actual.getWebhook(), is("webhook"));
+ assertThat(actual.getKeyword(), is("keyword"));
+ assertThat(actual.getSecret(), is("secret"));
+ assertThat(actual.getConnectTimeoutMillisecond(), is(4000));
+ assertThat(actual.getReadTimeoutMillisecond(), is(2000));
}
@Test
public void assertBuildRequiredProperties() {
- DingtalkConfiguration actual = DingtalkConfiguration.newBuilder(WEBHOOK, KEYWORD, SECRET).build();
- assertThat(actual.getWebhook(), is(WEBHOOK));
- assertThat(actual.getKeyword(), is(KEYWORD));
- assertThat(actual.getSecret(), is(SECRET));
- assertThat(actual.getConnectTimeoutMillisecond(), is(CONNECT_TIMEOUT_DEFAULT_VALUE));
- assertThat(actual.getReadTimeoutMillisecond(), is(READ_TIMEOUT_DEFAULT_VALUE));
+ DingtalkConfiguration actual = DingtalkConfiguration.newBuilder("webhook").build();
+ assertThat(actual.getWebhook(), is("webhook"));
+ assertNull(actual.getKeyword());
+ assertNull(actual.getSecret());
+ assertThat(actual.getConnectTimeoutMillisecond(), is(3000));
+ assertThat(actual.getReadTimeoutMillisecond(), is(5000));
}
@Test(expected = IllegalArgumentException.class)
public void assertBuildWithEmptyWebhook() {
- DingtalkConfiguration.newBuilder(EMPTY_STRING, KEYWORD, SECRET).build();
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void assertBuildWithEmptyKeyword() {
- DingtalkConfiguration.newBuilder(WEBHOOK, EMPTY_STRING, SECRET).build();
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void assertBuildWithEmptySecret() {
- DingtalkConfiguration.newBuilder(WEBHOOK, KEYWORD, EMPTY_STRING).build();
+ DingtalkConfiguration.newBuilder("").build();
}
}
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 794b8d2..87e1141 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
@@ -125,10 +125,10 @@ public final class DingtalkJobErrorHandlerTest {
}
private DingtalkConfiguration createDingtalkConfiguration(final String webhook) {
- return new DingtalkConfiguration(webhook, "mocked_keyword", "mocked_secret", 4000, 6000);
+ return DingtalkConfiguration.newBuilder(webhook).keyword("mocked_keyword").secret("mocked_secret").connectTimeoutMillisecond(4000).readTimeoutMillisecond(6000).build();
}
private DingtalkConfiguration createNoSignJobDingtalkConfiguration(final String webhook) {
- return new DingtalkConfiguration(webhook, "mocked_keyword", null, 4000, 6000);
+ return DingtalkConfiguration.newBuilder(webhook).keyword("mocked_keyword").connectTimeoutMillisecond(4000).readTimeoutMillisecond(6000).build();
}
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailConfiguration.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailConfiguration.java
index ed9c457..b6a8957 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailConfiguration.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailConfiguration.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.elasticjob.error.handler.ErrorHandlerConfigurat
/**
* Job error handler configuration for send error message via email.
*/
-@RequiredArgsConstructor
+@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
@Getter
public final class EmailConfiguration implements ErrorHandlerConfiguration {
@@ -59,23 +59,22 @@ public final class EmailConfiguration implements ErrorHandlerConfiguration {
}
/**
- * Create Email configuration builder.
+ * Create email configuration builder.
*
- * @param host host
- * @param port port
+ * @param host host
+ * @param port port
* @param username username
* @param password password
- * @param from from
- * @param to to
- * @return Email configuration builder
+ * @param from from
+ * @param to to
+ * @return email configuration builder
*/
- public static Builder newBuilder(final String host, final int port, final String username,
- final String password, final String from, final String to) {
+ public static Builder newBuilder(final String host, final int port, final String username, final String password, final String from, final String to) {
return new Builder(host, port, username, password, from, to);
}
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
- public static class Builder {
+ public static final class Builder {
private final String host;
@@ -100,10 +99,10 @@ public final class EmailConfiguration implements ErrorHandlerConfiguration {
private boolean debug;
/**
- * Set useSsl.
+ * Set whether use SSL.
*
- * @param useSsl useSsl
- * @return Email configuration builder
+ * @param useSsl use SSL or not
+ * @return email configuration builder
*/
public Builder useSsl(final boolean useSsl) {
this.useSsl = useSsl;
@@ -114,7 +113,7 @@ public final class EmailConfiguration implements ErrorHandlerConfiguration {
* Set subject.
*
* @param subject subject
- * @return Email configuration builder
+ * @return email configuration builder
*/
public Builder subject(final String subject) {
if (!Strings.isNullOrEmpty(subject)) {
@@ -127,7 +126,7 @@ public final class EmailConfiguration implements ErrorHandlerConfiguration {
* Set cc.
*
* @param cc cc
- * @return Email configuration builder
+ * @return email configuration builder
*/
public Builder cc(final String cc) {
this.cc = cc;
@@ -138,7 +137,7 @@ public final class EmailConfiguration implements ErrorHandlerConfiguration {
* Set bcc.
*
* @param bcc bcc
- * @return Email configuration builder
+ * @return email configuration builder
*/
public Builder bcc(final String bcc) {
this.bcc = bcc;
@@ -146,10 +145,10 @@ public final class EmailConfiguration implements ErrorHandlerConfiguration {
}
/**
- * Set debug.
+ * Set whether use debug mode.
*
- * @param debug debug
- * @return Email configuration builder
+ * @param debug use debug mode or not
+ * @return email configuration builder
*/
public Builder debug(final boolean debug) {
this.debug = debug;
@@ -157,19 +156,18 @@ public final class EmailConfiguration implements ErrorHandlerConfiguration {
}
/**
- * Build Email configuration.
+ * Build email configuration.
*
- * @return Email configuration
+ * @return email configuration
*/
- public final EmailConfiguration build() {
+ public EmailConfiguration build() {
Preconditions.checkArgument(!Strings.isNullOrEmpty(host), "host can not be empty.");
- Preconditions.checkArgument(0 < port && 65535 > port, "port should larger than 0 and small than 65535.");
+ Preconditions.checkArgument(port > 0 && port < 65535, "port should larger than 0 and small than 65535.");
Preconditions.checkArgument(!Strings.isNullOrEmpty(username), "username can not be empty.");
Preconditions.checkArgument(!Strings.isNullOrEmpty(password), "password can not be empty.");
Preconditions.checkArgument(!Strings.isNullOrEmpty(from), "from can not be empty.");
Preconditions.checkArgument(!Strings.isNullOrEmpty(to), "to can not be empty.");
- return new EmailConfiguration(host, port, username, password, useSsl, subject,
- from, to, cc, bcc, debug);
+ return new EmailConfiguration(host, port, username, password, useSsl, subject, from, to, cc, bcc, debug);
}
}
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailConfigurationTest.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailConfigurationTest.java
index abb65bd..da36dfa 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailConfigurationTest.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-email/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/email/EmailConfigurationTest.java
@@ -22,111 +22,71 @@ import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
@RunWith(MockitoJUnitRunner.class)
-public class EmailConfigurationTest {
-
- private static final String HOST = "smtp.xxx.com";
-
- private static final int PORT = 25;
-
- private static final String USERNAME = "username";
-
- private static final String PASSWORD = "password";
-
- private static final String FROM = "from";
-
- private static final String TO = "to";
-
- private static final String SUBJECT = "subject";
-
- private static final String SUBJECT_DEFAULT_VALUE = "ElasticJob error message";
-
- private static final String CC = "cc";
-
- private static final String BCC = "bcc";
-
- private static final boolean USE_SSL = false;
-
- private static final boolean USE_SSL_DEFAULT_VALUE = true;
-
- private static final boolean DEBUG = true;
-
- private static final boolean DEBUG_DEFAULT_VALUE = false;
-
- private static final String EMPTY_STRING = "";
+public final class EmailConfigurationTest {
@Test
public void assertBuildAllProperties() {
- EmailConfiguration actual = EmailConfiguration.newBuilder(HOST, PORT, USERNAME, PASSWORD, FROM, TO)
- .useSsl(USE_SSL)
- .subject(SUBJECT)
- .cc(CC)
- .bcc(BCC)
- .debug(DEBUG)
- .build();
- assertThat(actual.getHost(), is(HOST));
- assertThat(actual.getPort(), is(PORT));
- assertThat(actual.getUsername(), is(USERNAME));
- assertThat(actual.getPassword(), is(PASSWORD));
- assertThat(actual.isUseSsl(), is(USE_SSL));
- assertThat(actual.getSubject(), is(SUBJECT));
- assertThat(actual.getFrom(), is(FROM));
- assertThat(actual.getTo(), is(TO));
- assertThat(actual.getCc(), is(CC));
- assertThat(actual.getBcc(), is(BCC));
- assertThat(actual.isDebug(), is(DEBUG));
+ EmailConfiguration actual = EmailConfiguration.newBuilder("smtp.xxx.com", 25, "username", "password", "from@xx.xx", "to@xx.xx")
+ .useSsl(false).subject("subject").cc("cc@xx.xx").bcc("bcc@xx.xx").debug(true).build();
+ assertThat(actual.getHost(), is("smtp.xxx.com"));
+ assertThat(actual.getPort(), is(25));
+ assertThat(actual.getUsername(), is("username"));
+ assertThat(actual.getPassword(), is("password"));
+ assertFalse(actual.isUseSsl());
+ assertThat(actual.getSubject(), is("subject"));
+ assertThat(actual.getFrom(), is("from@xx.xx"));
+ assertThat(actual.getTo(), is("to@xx.xx"));
+ assertThat(actual.getCc(), is("cc@xx.xx"));
+ assertThat(actual.getBcc(), is("bcc@xx.xx"));
+ assertTrue(actual.isDebug());
}
@Test
public void assertBuildRequiredProperties() {
- EmailConfiguration actual = EmailConfiguration.newBuilder(HOST, PORT, USERNAME, PASSWORD, FROM, TO)
- .build();
- assertThat(actual.getHost(), is(HOST));
- assertThat(actual.getPort(), is(PORT));
- assertThat(actual.getUsername(), is(USERNAME));
- assertThat(actual.getPassword(), is(PASSWORD));
- assertThat(actual.isUseSsl(), is(USE_SSL_DEFAULT_VALUE));
- assertThat(actual.getSubject(), is(SUBJECT_DEFAULT_VALUE));
- assertThat(actual.getFrom(), is(FROM));
- assertThat(actual.getTo(), is(TO));
- assertThat(actual.isDebug(), is(DEBUG_DEFAULT_VALUE));
+ EmailConfiguration actual = EmailConfiguration.newBuilder("smtp.xxx.com", 25, "username", "password", "from@xx.xx", "to@xx.xx").build();
+ assertThat(actual.getHost(), is("smtp.xxx.com"));
+ assertThat(actual.getPort(), is(25));
+ assertThat(actual.getUsername(), is("username"));
+ assertThat(actual.getPassword(), is("password"));
+ assertTrue(actual.isUseSsl());
+ assertThat(actual.getSubject(), is("ElasticJob error message"));
+ assertThat(actual.getFrom(), is("from@xx.xx"));
+ assertThat(actual.getTo(), is("to@xx.xx"));
+ assertFalse(actual.isDebug());
}
@Test(expected = IllegalArgumentException.class)
public void assertBuildWithEmptyHost() {
- EmailConfiguration.newBuilder(EMPTY_STRING, PORT, USERNAME, PASSWORD, FROM, TO)
- .build();
+ EmailConfiguration.newBuilder("", 25, "username", "password", "from@xx.xx", "to@xx.xx").build();
}
@Test(expected = IllegalArgumentException.class)
public void assertBuildWithInvalidPort() {
- EmailConfiguration.newBuilder(HOST, -1, USERNAME, PASSWORD, FROM, TO)
- .build();
+ EmailConfiguration.newBuilder("smtp.xxx.com", -1, "username", "password", "from@xx.xx", "to@xx.xx").build();
}
@Test(expected = IllegalArgumentException.class)
public void assertBuildWithEmptyUsername() {
- EmailConfiguration.newBuilder(HOST, PORT, EMPTY_STRING, PASSWORD, FROM, TO)
- .build();
+ EmailConfiguration.newBuilder("smtp.xxx.com", 25, "", "password", "from@xx.xx", "to@xx.xx").build();
}
@Test(expected = IllegalArgumentException.class)
public void assertBuildWithEmptyPassword() {
- EmailConfiguration.newBuilder(HOST, PORT, USERNAME, EMPTY_STRING, FROM, TO)
- .build();
+ EmailConfiguration.newBuilder("smtp.xxx.com", 25, "username", "", "from@xx.xx", "to@xx.xx").build();
}
@Test(expected = IllegalArgumentException.class)
public void assertBuildWithEmptyFrom() {
- EmailConfiguration.newBuilder(HOST, PORT, USERNAME, PASSWORD, EMPTY_STRING, TO)
- .build();
+ EmailConfiguration.newBuilder("smtp.xxx.com", 25, "username", "password", "", "to@xx.xx").build();
}
@Test(expected = IllegalArgumentException.class)
public void assertBuildWithEmptyTo() {
- EmailConfiguration.newBuilder(HOST, PORT, USERNAME, PASSWORD, FROM, EMPTY_STRING)
- .build();
+ EmailConfiguration.newBuilder("smtp.xxx.com", 25, "username", "password", "from@xx.xx", "").build();
}
}
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 ad90299..ad2b841 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
@@ -61,6 +61,6 @@ public final class EmailJobErrorHandlerTest {
}
private EmailConfiguration createEmailConfiguration() {
- return new EmailConfiguration("xxx", 465, "xxx", "xxx", true, "Unit test notification", "from@xxx.com", "to1@xxx.com,to2@xxx.com", "cc@xxx.com", "bcc@xxx.com", false);
+ return EmailConfiguration.newBuilder("xxx", 465, "xxx", "xxx", "from@xxx.xx", "to1@xxx.xx,to2@xxx.xx").subject("Unit test notification").cc("cc@xxx.xx").bcc("bcc@xxx.xx").build();
}
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatConfiguration.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatConfiguration.java
index 38c347a..b35d785 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatConfiguration.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/main/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatConfiguration.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.elasticjob.error.handler.ErrorHandlerConfigurat
/**
* Job error handler configuration for send error message via wechat.
*/
-@RequiredArgsConstructor
+@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
@Getter
public final class WechatConfiguration implements ErrorHandlerConfiguration {
@@ -43,29 +43,29 @@ public final class WechatConfiguration implements ErrorHandlerConfiguration {
}
/**
- * Create WeChat configuration builder.
+ * Create wechat configuration builder.
*
* @param webhook webhook
- * @return WeChat configuration builder
+ * @return wechat configuration builder
*/
public static Builder newBuilder(final String webhook) {
return new Builder(webhook);
}
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
- public static class Builder {
+ public static final class Builder {
private final String webhook;
private int connectTimeoutMillisecond = 3000;
- private int readTimeoutMillisecond = 3000;
+ private int readTimeoutMillisecond = 5000;
/**
- * Set connect timeout.
+ * Set connect timeout millisecond.
*
- * @param connectTimeoutMillisecond connect timeout
- * @return WeChat configuration builder
+ * @param connectTimeoutMillisecond connect timeout millisecond
+ * @return wechat configuration builder
*/
public Builder connectTimeoutMillisecond(final int connectTimeoutMillisecond) {
this.connectTimeoutMillisecond = connectTimeoutMillisecond;
@@ -73,10 +73,10 @@ public final class WechatConfiguration implements ErrorHandlerConfiguration {
}
/**
- * Set read timeout.
+ * Set read timeout millisecond.
*
- * @param readTimeoutMillisecond read timeout
- * @return WeChat configuration builder
+ * @param readTimeoutMillisecond read timeout millisecond
+ * @return weChat configuration builder
*/
public Builder readTimeoutMillisecond(final int readTimeoutMillisecond) {
this.readTimeoutMillisecond = readTimeoutMillisecond;
@@ -84,11 +84,11 @@ public final class WechatConfiguration implements ErrorHandlerConfiguration {
}
/**
- * Build WeChat configuration.
+ * Build wechat configuration.
*
- * @return WeChat configuration
+ * @return wechat configuration
*/
- public final WechatConfiguration build() {
+ public WechatConfiguration build() {
Preconditions.checkArgument(!Strings.isNullOrEmpty(webhook), "webhook can not be empty.");
return new WechatConfiguration(webhook, connectTimeoutMillisecond, readTimeoutMillisecond);
}
diff --git a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatConfigurationTest.java b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatConfigurationTest.java
index 81f80fb..8bbe2e2 100644
--- a/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatConfigurationTest.java
+++ b/elasticjob-error-handler/elasticjob-error-handler-type/elasticjob-error-handler-wechat/src/test/java/org/apache/shardingsphere/elasticjob/error/handler/wechat/WechatConfigurationTest.java
@@ -25,41 +25,26 @@ import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@RunWith(MockitoJUnitRunner.class)
-public class WechatConfigurationTest {
-
- private static final String WEBHOOK = "webhook";
-
- private static final int CONNECT_TIMEOUT = 5000;
-
- private static final int CONNECT_TIMEOUT_DEFAULT_VALUE = 3000;
-
- private static final int READ_TIMEOUT = 5000;
-
- private static final int READ_TIMEOUT_DEFAULT_VALUE = 3000;
-
- private static final String EMPTY_STRING = "";
+public final class WechatConfigurationTest {
@Test
public void assertBuildAllProperties() {
- WechatConfiguration actual = WechatConfiguration.newBuilder(WEBHOOK)
- .connectTimeoutMillisecond(CONNECT_TIMEOUT)
- .readTimeoutMillisecond(READ_TIMEOUT)
- .build();
- assertThat(actual.getWebhook(), is(WEBHOOK));
- assertThat(actual.getConnectTimeoutMillisecond(), is(CONNECT_TIMEOUT));
- assertThat(actual.getReadTimeoutMillisecond(), is(READ_TIMEOUT));
+ WechatConfiguration actual = WechatConfiguration.newBuilder("webhook").connectTimeoutMillisecond(4000).readTimeoutMillisecond(2000).build();
+ assertThat(actual.getWebhook(), is("webhook"));
+ assertThat(actual.getConnectTimeoutMillisecond(), is(4000));
+ assertThat(actual.getReadTimeoutMillisecond(), is(2000));
}
@Test
public void assertBuildRequiredProperties() {
- WechatConfiguration actual = WechatConfiguration.newBuilder(WEBHOOK).build();
- assertThat(actual.getWebhook(), is(WEBHOOK));
- assertThat(actual.getConnectTimeoutMillisecond(), is(CONNECT_TIMEOUT_DEFAULT_VALUE));
- assertThat(actual.getReadTimeoutMillisecond(), is(READ_TIMEOUT_DEFAULT_VALUE));
+ WechatConfiguration actual = WechatConfiguration.newBuilder("webhook").build();
+ assertThat(actual.getWebhook(), is("webhook"));
+ assertThat(actual.getConnectTimeoutMillisecond(), is(3000));
+ assertThat(actual.getReadTimeoutMillisecond(), is(5000));
}
@Test(expected = IllegalArgumentException.class)
public void assertBuildWithEmptyWebhook() {
- WechatConfiguration.newBuilder(EMPTY_STRING).build();
+ WechatConfiguration.newBuilder("").build();
}
}
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 b58c00d..363b77f 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
@@ -70,7 +70,7 @@ public final class WechatJobErrorHandlerTest {
WechatJobErrorHandler actual = getWechatJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException("test_job", new WechatConfiguration("http://localhost:9872/send?key=mocked_key", 1000, 2000), cause);
+ actual.handleException("test_job", WechatConfiguration.newBuilder("http://localhost:9872/send?key=mocked_key").connectTimeoutMillisecond(1000).readTimeoutMillisecond(2000).build(), cause);
verify(log).info("An exception has occurred in Job '{}', Notification to wechat was successful.", "test_job", cause);
}
@@ -79,7 +79,7 @@ public final class WechatJobErrorHandlerTest {
WechatJobErrorHandler actual = getWechatJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException("test_job", new WechatConfiguration("http://localhost:9872/send?key=wrong_key", 1000, 2000), cause);
+ actual.handleException("test_job", WechatConfiguration.newBuilder("http://localhost:9872/send?key=wrong_key").connectTimeoutMillisecond(1000).readTimeoutMillisecond(2000).build(), 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);
}
@@ -88,7 +88,7 @@ public final class WechatJobErrorHandlerTest {
WechatJobErrorHandler actual = getWechatJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException("test_job", new WechatConfiguration("http://wrongUrl", 1000, 2000), cause);
+ actual.handleException("test_job", WechatConfiguration.newBuilder("http://wrongUrl").connectTimeoutMillisecond(1000).readTimeoutMillisecond(2000).build(), cause);
verify(log).error("An exception has occurred in Job '{}', But failed to send alert by wechat because of", "test_job", cause);
}
@@ -97,7 +97,7 @@ public final class WechatJobErrorHandlerTest {
WechatJobErrorHandler actual = getWechatJobErrorHandler();
setStaticFieldValue(actual);
Throwable cause = new RuntimeException("test");
- actual.handleException("test_job", new WechatConfiguration("http://localhost:9872/404", 1000, 2000), cause);
+ actual.handleException("test_job", WechatConfiguration.newBuilder("http://localhost:9872/404").connectTimeoutMillisecond(1000).readTimeoutMillisecond(2000).build(), 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);
}
diff --git a/examples/elasticjob-example-lite-java/src/main/java/org/apache/shardingsphere/elasticjob/lite/example/JavaMain.java b/examples/elasticjob-example-lite-java/src/main/java/org/apache/shardingsphere/elasticjob/lite/example/JavaMain.java
index f5d0fe6..e67d656 100644
--- a/examples/elasticjob-example-lite-java/src/main/java/org/apache/shardingsphere/elasticjob/lite/example/JavaMain.java
+++ b/examples/elasticjob-example-lite-java/src/main/java/org/apache/shardingsphere/elasticjob/lite/example/JavaMain.java
@@ -145,17 +145,15 @@ public final class JavaMain {
}
private static void setDingtalkConfiguration(final JobConfiguration jobConfig) {
- jobConfig.getExtraConfigurations().add(new DingtalkConfiguration("https://oapi.dingtalk.com/robot/send?access_token=token",
- "keyword", "secret", 7000, 8000));
+ jobConfig.getExtraConfigurations().add(DingtalkConfiguration.newBuilder("https://oapi.dingtalk.com/robot/send?access_token=token").keyword("keyword").secret("secret").build());
}
private static void setWechatConfiguration(final JobConfiguration jobConfig) {
- jobConfig.getExtraConfigurations().add(new WechatConfiguration("https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=key", 9000, 5000));
+ jobConfig.getExtraConfigurations().add(WechatConfiguration.newBuilder("https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=key").build());
}
private static void setEmailConfiguration(final JobConfiguration jobConfig) {
- jobConfig.getExtraConfigurations().add(new EmailConfiguration(
- "host", 465, "username", "password", true, "Test elasticJob error message", "from@xxx.com", "to1@xxx.com,to2xxx.com", "cc@xxx.com", "bcc@xxx.com", false));
+ jobConfig.getExtraConfigurations().add(EmailConfiguration.newBuilder("host", 465, "username", "password", "from@xxx.xx", "to1@xxx.xx,to2xxx.xx").build());
}
private static String buildScriptCommandLine() throws IOException {