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.git


The following commit(s) were added to refs/heads/master by this push:
     new cc9a0c0  Optimize Constructor (#8414)
cc9a0c0 is described below

commit cc9a0c09d1b8ef1fa289e771c35f574ebd704f2e
Author: 邱鹿 Lucas <[email protected]>
AuthorDate: Mon Nov 30 12:12:04 2020 +0800

    Optimize Constructor (#8414)
    
    * Optimize Constructor
    
    * Optimize Constructor
    
    Co-authored-by: qiulu3 <Lucas209910>
---
 .../scaling/core/config/RuleConfiguration.java     | 10 +++----
 .../scaling/core/job/ShardingScalingJob.java       | 32 +++++++++++-----------
 .../service/impl/DistributedScalingJobService.java |  2 +-
 3 files changed, 21 insertions(+), 23 deletions(-)

diff --git 
a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/config/RuleConfiguration.java
 
b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/config/RuleConfiguration.java
index 0db801f..2c1a60a 100644
--- 
a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/config/RuleConfiguration.java
+++ 
b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/config/RuleConfiguration.java
@@ -21,9 +21,8 @@ import com.google.common.base.Preconditions;
 import com.google.common.collect.Maps;
 import com.google.gson.Gson;
 import com.google.gson.JsonElement;
-import lombok.AllArgsConstructor;
 import lombok.Getter;
-import lombok.NoArgsConstructor;
+import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.scaling.core.config.datasource.DataSourceConfiguration;
 import 
org.apache.shardingsphere.scaling.core.config.datasource.ShardingSphereJDBCDataSourceConfiguration;
 import 
org.apache.shardingsphere.scaling.core.config.datasource.StandardJDBCDataSourceConfiguration;
@@ -45,13 +44,12 @@ public final class RuleConfiguration {
         this.target = new 
DataSourceConfigurationWrapper(target.getConfigType(), new 
Gson().toJsonTree(target));
     }
     
-    @NoArgsConstructor
-    @AllArgsConstructor
+    @RequiredArgsConstructor
     public static class DataSourceConfigurationWrapper {
         
-        private String type;
+        private final String type;
         
-        private JsonElement parameter;
+        private final JsonElement parameter;
         
         /**
          * Unwrap to {@code DataSourceConfiguration}.
diff --git 
a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/ShardingScalingJob.java
 
b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/ShardingScalingJob.java
index 40788b4..4e022ac 100644
--- 
a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/ShardingScalingJob.java
+++ 
b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/ShardingScalingJob.java
@@ -29,6 +29,7 @@ import 
org.apache.shardingsphere.sharding.algorithm.keygen.SnowflakeKeyGenerateA
 
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * Sharding scaling out job.
@@ -37,7 +38,7 @@ import java.util.List;
 @Setter
 public final class ShardingScalingJob {
     
-    private static SnowflakeKeyGenerateAlgorithm idAutoIncreaseGenerator;
+    private static final SnowflakeKeyGenerateAlgorithm 
ID_AUTO_INCREASE_GENERATOR = initIdAutoIncreaseGenerator();
     
     private long jobId;
     
@@ -56,28 +57,27 @@ public final class ShardingScalingJob {
     private String status = SyncTaskControlStatus.RUNNING.name();
     
     public ShardingScalingJob() {
-        initIdAutoIncreaseGenerator();
-        jobId = (Long) idAutoIncreaseGenerator.generateKey();
+        this(generateKey());
+    }
+    
+    public ShardingScalingJob(final long jobId) {
+        this.jobId = jobId;
     }
     
     public ShardingScalingJob(final ScalingConfiguration scalingConfig) {
-        this();
+        
this(Optional.ofNullable(scalingConfig.getJobConfiguration().getJobId()).orElse(generateKey()));
         this.scalingConfig = scalingConfig;
-        jobId = null != scalingConfig.getJobConfiguration().getJobId() ? 
scalingConfig.getJobConfiguration().getJobId() : jobId;
         shardingItem = scalingConfig.getJobConfiguration().getShardingItem();
         syncConfigs.addAll(SyncConfigurationUtil.toSyncConfigs(scalingConfig));
     }
     
-    private static void initIdAutoIncreaseGenerator() {
-        if (null != idAutoIncreaseGenerator) {
-            return;
-        }
-        synchronized (ShardingScalingJob.class) {
-            if (null != idAutoIncreaseGenerator) {
-                return;
-            }
-            idAutoIncreaseGenerator = new SnowflakeKeyGenerateAlgorithm();
-            idAutoIncreaseGenerator.init();
-        }
+    private static SnowflakeKeyGenerateAlgorithm initIdAutoIncreaseGenerator() 
{
+        SnowflakeKeyGenerateAlgorithm result = new 
SnowflakeKeyGenerateAlgorithm();
+        result.init();
+        return result;
+    }
+    
+    private static Long generateKey() {
+        return (Long) ID_AUTO_INCREASE_GENERATOR.generateKey();
     }
 }
diff --git 
a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/service/impl/DistributedScalingJobService.java
 
b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/service/impl/DistributedScalingJobService.java
index c3bc7db..928d983 100644
--- 
a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/service/impl/DistributedScalingJobService.java
+++ 
b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/service/impl/DistributedScalingJobService.java
@@ -76,7 +76,7 @@ public final class DistributedScalingJobService extends 
AbstractScalingJobServic
     
     @Override
     public ShardingScalingJob getJob(final long jobId) {
-        ShardingScalingJob result = new ShardingScalingJob();
+        ShardingScalingJob result = new ShardingScalingJob(jobId);
         
result.setScalingConfig(GSON.fromJson(REGISTRY_REPOSITORY.get(ScalingTaskUtil.getScalingListenerPath(jobId,
 ScalingConstant.CONFIG)), ScalingConfiguration.class));
         return result;
     }

Reply via email to