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/07/11 06:00:55 UTC
[shardingsphere-elasticjob-lite] branch master updated: Simplify
ShardingContext's constructor (#1026)
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-lite.git
The following commit(s) were added to refs/heads/master by this push:
new 7e278ca Simplify ShardingContext's constructor (#1026)
7e278ca is described below
commit 7e278ca91fb7b421a8b66d6cc7b7d5d8948d464c
Author: Liang Zhang <te...@163.com>
AuthorDate: Sat Jul 11 14:00:50 2020 +0800
Simplify ShardingContext's constructor (#1026)
* Remove useless Encryption
* Simplify ShardingContext's constructor
---
.../elasticjob/cloud/api/ShardingContext.java | 39 +++--------------
.../cloud/executor/AbstractElasticJobExecutor.java | 2 +-
.../cloud/executor/ShardingContexts.java | 12 +++++
.../elasticjob/cloud/util/digest/Encryption.java | 51 ----------------------
.../elasticjob/cloud/api/ShardingContextTest.java | 46 -------------------
.../cloud/util/digest/EncryptionTest.java | 31 -------------
.../config/job/CloudJobConfiguration.java | 8 ++--
.../elasticjob/lite/api/job/ShardingContext.java | 12 +----
.../lite/executor/ElasticJobExecutor.java | 5 +--
.../elasticjob/lite/executor/ShardingContexts.java | 11 +++++
.../ShardingContextsTest.java} | 18 +++-----
11 files changed, 43 insertions(+), 192 deletions(-)
diff --git a/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/api/ShardingContext.java b/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/api/ShardingContext.java
index 4f8ae8b..dd4a335 100755
--- a/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/api/ShardingContext.java
+++ b/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/api/ShardingContext.java
@@ -17,56 +17,27 @@
package org.apache.shardingsphere.elasticjob.cloud.api;
-import org.apache.shardingsphere.elasticjob.cloud.executor.ShardingContexts;
import lombok.Getter;
+import lombok.RequiredArgsConstructor;
import lombok.ToString;
/**
* Sharding context.
*/
+@RequiredArgsConstructor
@Getter
@ToString
public final class ShardingContext {
- /**
- * job name.
- */
private final String jobName;
- /**
- * task ID.
- */
private final String taskId;
- /**
- * sharding total count.
- */
private final int shardingTotalCount;
-
- /**
- * job parameter.
- *
- * <p>Can configure for same job class, but use different parameter for different job schedule instance.</p>
- *
- */
+
private final String jobParameter;
-
- /**
- * Sharding item assigned for this sharding.
- */
+
private final int shardingItem;
-
- /**
- * Sharding parameter assigned for this sharding.
- */
- private final String shardingParameter;
- public ShardingContext(final ShardingContexts shardingContexts, final int shardingItem) {
- jobName = shardingContexts.getJobName();
- taskId = shardingContexts.getTaskId();
- shardingTotalCount = shardingContexts.getShardingTotalCount();
- jobParameter = shardingContexts.getJobParameter();
- this.shardingItem = shardingItem;
- shardingParameter = shardingContexts.getShardingItemParameters().get(shardingItem);
- }
+ private final String shardingParameter;
}
diff --git a/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/executor/AbstractElasticJobExecutor.java b/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/executor/AbstractElasticJobExecutor.java
index 8d6b5f2..0e5cd5b 100755
--- a/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/executor/AbstractElasticJobExecutor.java
+++ b/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/executor/AbstractElasticJobExecutor.java
@@ -199,7 +199,7 @@ public abstract class AbstractElasticJobExecutor {
log.trace("Job '{}' executing, item is: '{}'.", jobName, item);
JobExecutionEvent completeEvent;
try {
- process(new ShardingContext(shardingContexts, item));
+ process(shardingContexts.createShardingContext(item));
completeEvent = startEvent.executionSuccess();
log.trace("Job '{}' executed, item is: '{}'.", jobName, item);
if (shardingContexts.isAllowSendJobEvent()) {
diff --git a/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/executor/ShardingContexts.java b/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/executor/ShardingContexts.java
index 48be43f..3dedebe 100755
--- a/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/executor/ShardingContexts.java
+++ b/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/executor/ShardingContexts.java
@@ -21,6 +21,7 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.ToString;
+import org.apache.shardingsphere.elasticjob.cloud.api.ShardingContext;
import java.io.Serializable;
import java.util.Map;
@@ -87,4 +88,15 @@ public final class ShardingContexts implements Serializable {
this.shardingItemParameters = shardingItemParameters;
this.jobEventSamplingCount = jobEventSamplingCount;
}
+
+
+ /**
+ * Create sharding context.
+ *
+ * @param shardingItem sharding item
+ * @return sharding context
+ */
+ public ShardingContext createShardingContext(final int shardingItem) {
+ return new ShardingContext(jobName, taskId, shardingTotalCount, jobParameter, shardingItem, shardingItemParameters.get(shardingItem));
+ }
}
diff --git a/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/util/digest/Encryption.java b/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/util/digest/Encryption.java
deleted file mode 100755
index 17fb18b..0000000
--- a/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/util/digest/Encryption.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.elasticjob.cloud.util.digest;
-
-import org.apache.shardingsphere.elasticjob.cloud.exception.JobSystemException;
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-
-import java.math.BigInteger;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-/**
- * Encryption.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class Encryption {
-
- private static final String MD5 = "MD5";
-
- /**
- * Use md5 to encrypt string.
- *
- * @param str string to be encrypted
- * @return encrypted string
- */
- public static String md5(final String str) {
- try {
- MessageDigest messageDigest = MessageDigest.getInstance(MD5);
- messageDigest.update(str.getBytes());
- return new BigInteger(1, messageDigest.digest()).toString(16);
- } catch (final NoSuchAlgorithmException ex) {
- throw new JobSystemException(ex);
- }
- }
-}
diff --git a/elasticjob-cloud/elasticjob-cloud-common/src/test/java/org/apache/shardingsphere/elasticjob/cloud/api/ShardingContextTest.java b/elasticjob-cloud/elasticjob-cloud-common/src/test/java/org/apache/shardingsphere/elasticjob/cloud/api/ShardingContextTest.java
deleted file mode 100755
index 8300738..0000000
--- a/elasticjob-cloud/elasticjob-cloud-common/src/test/java/org/apache/shardingsphere/elasticjob/cloud/api/ShardingContextTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.elasticjob.cloud.api;
-
-import org.apache.shardingsphere.elasticjob.cloud.executor.ShardingContexts;
-import org.apache.shardingsphere.elasticjob.cloud.fixture.ShardingContextsBuilder;
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public final class ShardingContextTest {
-
- @Test
- public void assertNew() {
- ShardingContexts shardingContexts = ShardingContextsBuilder.getMultipleShardingContexts();
- ShardingContext actual = new ShardingContext(shardingContexts, 1);
- assertThat(actual.getJobName(), is(shardingContexts.getJobName()));
- assertThat(actual.getTaskId(), is(shardingContexts.getTaskId()));
- assertThat(actual.getShardingTotalCount(), is(shardingContexts.getShardingTotalCount()));
- assertThat(actual.getJobParameter(), is(shardingContexts.getJobParameter()));
- assertThat(actual.getShardingItem(), is(1));
- assertThat(actual.getShardingParameter(), is(shardingContexts.getShardingItemParameters().get(1)));
- }
-
- @Test
- public void assertToString() {
- assertThat(new ShardingContext(ShardingContextsBuilder.getMultipleShardingContexts(), 1).toString(),
- is("ShardingContext(jobName=test_job, taskId=fake_task_id, shardingTotalCount=2, jobParameter=, shardingItem=1, shardingParameter=B)"));
- }
-}
diff --git a/elasticjob-cloud/elasticjob-cloud-common/src/test/java/org/apache/shardingsphere/elasticjob/cloud/util/digest/EncryptionTest.java b/elasticjob-cloud/elasticjob-cloud-common/src/test/java/org/apache/shardingsphere/elasticjob/cloud/util/digest/EncryptionTest.java
deleted file mode 100755
index d673398..0000000
--- a/elasticjob-cloud/elasticjob-cloud-common/src/test/java/org/apache/shardingsphere/elasticjob/cloud/util/digest/EncryptionTest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.elasticjob.cloud.util.digest;
-
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public final class EncryptionTest {
-
- @Test
- public void assertMd5() {
- assertThat(Encryption.md5("test"), is("98f6bcd4621d373cade4e832627b4f6"));
- }
-}
diff --git a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfiguration.java b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfiguration.java
index 91ab5f8..180dfc9 100755
--- a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfiguration.java
+++ b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfiguration.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job;
-import org.apache.shardingsphere.elasticjob.cloud.config.JobTypeConfiguration;
-import org.apache.shardingsphere.elasticjob.cloud.config.JobRootConfiguration;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.elasticjob.cloud.config.JobRootConfiguration;
+import org.apache.shardingsphere.elasticjob.cloud.config.JobTypeConfiguration;
/**
* Cloud job configuration.
*/
-@RequiredArgsConstructor
@AllArgsConstructor
+@RequiredArgsConstructor
@Getter
public final class CloudJobConfiguration implements JobRootConfiguration {
@@ -43,7 +43,7 @@ public final class CloudJobConfiguration implements JobRootConfiguration {
private String beanName;
- private String applicationContext;
+ private String applicationContext;
/**
* Get job name.
diff --git a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/api/job/ShardingContext.java b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/api/job/ShardingContext.java
index d2370a4..43e19df 100644
--- a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/api/job/ShardingContext.java
+++ b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/api/job/ShardingContext.java
@@ -18,12 +18,13 @@
package org.apache.shardingsphere.elasticjob.lite.api.job;
import lombok.Getter;
+import lombok.RequiredArgsConstructor;
import lombok.ToString;
-import org.apache.shardingsphere.elasticjob.lite.executor.ShardingContexts;
/**
* Sharding context.
*/
+@RequiredArgsConstructor
@Getter
@ToString
public final class ShardingContext {
@@ -39,13 +40,4 @@ public final class ShardingContext {
private final int shardingItem;
private final String shardingParameter;
-
- public ShardingContext(final ShardingContexts shardingContexts, final int shardingItem) {
- jobName = shardingContexts.getJobName();
- taskId = shardingContexts.getTaskId();
- shardingTotalCount = shardingContexts.getShardingTotalCount();
- jobParameter = shardingContexts.getJobParameter();
- this.shardingItem = shardingItem;
- shardingParameter = shardingContexts.getShardingItemParameters().get(shardingItem);
- }
}
diff --git a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/executor/ElasticJobExecutor.java b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/executor/ElasticJobExecutor.java
index 1f98d52..8129e25 100644
--- a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/executor/ElasticJobExecutor.java
+++ b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/executor/ElasticJobExecutor.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.elasticjob.lite.executor;
import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.elasticjob.lite.api.job.ElasticJob;
-import org.apache.shardingsphere.elasticjob.lite.api.job.ShardingContext;
import org.apache.shardingsphere.elasticjob.lite.api.job.JobConfiguration;
import org.apache.shardingsphere.elasticjob.lite.api.listener.ElasticJobListener;
import org.apache.shardingsphere.elasticjob.lite.exception.ExceptionUtils;
@@ -30,12 +29,12 @@ import org.apache.shardingsphere.elasticjob.lite.handler.error.JobErrorHandler;
import org.apache.shardingsphere.elasticjob.lite.handler.error.JobErrorHandlerFactory;
import org.apache.shardingsphere.elasticjob.lite.handler.threadpool.JobExecutorServiceHandlerFactory;
import org.apache.shardingsphere.elasticjob.lite.internal.schedule.LiteJobFacade;
+import org.apache.shardingsphere.elasticjob.lite.util.env.IpUtils;
import org.apache.shardingsphere.elasticjob.reg.base.CoordinatorRegistryCenter;
import org.apache.shardingsphere.elasticjob.tracing.api.TracingConfiguration;
import org.apache.shardingsphere.elasticjob.tracing.event.JobExecutionEvent;
import org.apache.shardingsphere.elasticjob.tracing.event.JobExecutionEvent.ExecutionSource;
import org.apache.shardingsphere.elasticjob.tracing.event.JobStatusTraceEvent.State;
-import org.apache.shardingsphere.elasticjob.lite.util.env.IpUtils;
import java.util.Collection;
import java.util.List;
@@ -180,7 +179,7 @@ public final class ElasticJobExecutor {
log.trace("Job '{}' executing, item is: '{}'.", jobConfig.getJobName(), item);
JobExecutionEvent completeEvent;
try {
- jobItemExecutor.process(elasticJob, jobConfig, jobFacade, new ShardingContext(shardingContexts, item));
+ jobItemExecutor.process(elasticJob, jobConfig, jobFacade, shardingContexts.createShardingContext(item));
completeEvent = startEvent.executionSuccess();
log.trace("Job '{}' executed, item is: '{}'.", jobConfig.getJobName(), item);
jobFacade.postJobExecutionEvent(completeEvent);
diff --git a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/executor/ShardingContexts.java b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/executor/ShardingContexts.java
index 3bab810..d1d0ba3 100644
--- a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/executor/ShardingContexts.java
+++ b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/executor/ShardingContexts.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.elasticjob.lite.executor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
+import org.apache.shardingsphere.elasticjob.lite.api.job.ShardingContext;
import java.io.Serializable;
import java.util.Map;
@@ -59,4 +60,14 @@ public final class ShardingContexts implements Serializable {
* Sharding items and parameters map.
*/
private final Map<Integer, String> shardingItemParameters;
+
+ /**
+ * Create sharding context.
+ *
+ * @param shardingItem sharding item
+ * @return sharding context
+ */
+ public ShardingContext createShardingContext(final int shardingItem) {
+ return new ShardingContext(jobName, taskId, shardingTotalCount, jobParameter, shardingItem, shardingItemParameters.get(shardingItem));
+ }
}
diff --git a/elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/api/job/ShardingContextTest.java b/elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/ShardingContextsTest.java
similarity index 73%
rename from elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/api/job/ShardingContextTest.java
rename to elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/ShardingContextsTest.java
index 8fe986b..93dc917 100644
--- a/elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/api/job/ShardingContextTest.java
+++ b/elasticjob-lite/elasticjob-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/ShardingContextsTest.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.elasticjob.lite.api.job;
+package org.apache.shardingsphere.elasticjob.lite.executor;
-import org.apache.shardingsphere.elasticjob.lite.executor.ShardingContexts;
+import org.apache.shardingsphere.elasticjob.lite.api.job.ShardingContext;
import org.junit.Test;
import java.util.HashMap;
@@ -26,12 +26,12 @@ import java.util.Map;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
-public final class ShardingContextTest {
+public final class ShardingContextsTest {
@Test
- public void assertNew() {
+ public void assertCreateShardingContext() {
ShardingContexts shardingContexts = createShardingContexts();
- ShardingContext actual = new ShardingContext(shardingContexts, 1);
+ ShardingContext actual = shardingContexts.createShardingContext(1);
assertThat(actual.getJobName(), is(shardingContexts.getJobName()));
assertThat(actual.getTaskId(), is(shardingContexts.getTaskId()));
assertThat(actual.getShardingTotalCount(), is(shardingContexts.getShardingTotalCount()));
@@ -40,13 +40,7 @@ public final class ShardingContextTest {
assertThat(actual.getShardingParameter(), is(shardingContexts.getShardingItemParameters().get(1)));
}
- @Test
- public void assertToString() {
- assertThat(new ShardingContext(createShardingContexts(), 1).toString(),
- is("ShardingContext(jobName=test_job, taskId=fake_task_id, shardingTotalCount=2, jobParameter=, shardingItem=1, shardingParameter=B)"));
- }
-
- private static ShardingContexts createShardingContexts() {
+ private ShardingContexts createShardingContexts() {
Map<Integer, String> map = new HashMap<>(2, 1);
map.put(0, "A");
map.put(1, "B");