You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by su...@apache.org on 2023/04/27 15:17:42 UTC

[shardingsphere] branch master updated: Add YamlExecuteProcessContextSwapper and YamlExecuteProcessUnitSwapper (#25376)

This is an automated email from the ASF dual-hosted git repository.

sunnianjun 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 ed0c3dfe280 Add YamlExecuteProcessContextSwapper and YamlExecuteProcessUnitSwapper (#25376)
ed0c3dfe280 is described below

commit ed0c3dfe280ce03571c4b199a5e3215c2d39a4da
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu Apr 27 23:17:32 2023 +0800

    Add YamlExecuteProcessContextSwapper and YamlExecuteProcessUnitSwapper (#25376)
---
 .../model/yaml/BatchYamlExecuteProcessContext.java |  6 ++-
 .../model/yaml/YamlExecuteProcessContext.java      | 24 +---------
 .../process/model/yaml/YamlExecuteProcessUnit.java | 15 ++-----
 .../swapper/YamlExecuteProcessContextSwapper.java  | 51 ++++++++++++++++++++++
 .../YamlExecuteProcessUnitSwapper.java}            | 33 +++++++-------
 5 files changed, 75 insertions(+), 54 deletions(-)

diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/BatchYamlExecuteProcessContext.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/BatchYamlExecuteProcessContext.java
index 150447e9d5b..f4dff7df8a8 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/BatchYamlExecuteProcessContext.java
+++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/BatchYamlExecuteProcessContext.java
@@ -21,6 +21,7 @@ import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessContext;
+import org.apache.shardingsphere.infra.executor.sql.process.model.yaml.swapper.YamlExecuteProcessContextSwapper;
 
 import java.util.Collection;
 import java.util.LinkedList;
@@ -36,13 +37,14 @@ public final class BatchYamlExecuteProcessContext {
     private Collection<YamlExecuteProcessContext> contexts;
     
     public BatchYamlExecuteProcessContext(final Collection<ExecuteProcessContext> processContexts) {
-        this.contexts = getYamlProcessContexts(processContexts);
+        contexts = getYamlProcessContexts(processContexts);
     }
     
     private Collection<YamlExecuteProcessContext> getYamlProcessContexts(final Collection<ExecuteProcessContext> processContexts) {
+        YamlExecuteProcessContextSwapper yamlExecuteProcessContextSwapper = new YamlExecuteProcessContextSwapper();
         Collection<YamlExecuteProcessContext> result = new LinkedList<>();
         for (ExecuteProcessContext each : processContexts) {
-            result.add(new YamlExecuteProcessContext(each));
+            result.add(yamlExecuteProcessContextSwapper.swapToYamlConfiguration(each));
         }
         return result;
     }
diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/YamlExecuteProcessContext.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/YamlExecuteProcessContext.java
index 312818be5b5..5054216dbec 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/YamlExecuteProcessContext.java
+++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/YamlExecuteProcessContext.java
@@ -17,25 +17,19 @@
 
 package org.apache.shardingsphere.infra.executor.sql.process.model.yaml;
 
-import lombok.AllArgsConstructor;
 import lombok.Getter;
-import lombok.NoArgsConstructor;
 import lombok.Setter;
 import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessStatusEnum;
-import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessContext;
-import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessUnit;
+import org.apache.shardingsphere.infra.util.yaml.YamlConfiguration;
 
-import java.util.ArrayList;
 import java.util.Collection;
 
 /**
  * Execute process context for YAML.
  */
-@NoArgsConstructor
-@AllArgsConstructor
 @Getter
 @Setter
-public final class YamlExecuteProcessContext {
+public final class YamlExecuteProcessContext implements YamlConfiguration {
     
     private String executionID;
     
@@ -52,18 +46,4 @@ public final class YamlExecuteProcessContext {
     private Long startTimeMillis;
     
     private ExecuteProcessStatusEnum processStatus;
-    
-    public YamlExecuteProcessContext(final ExecuteProcessContext executeProcessContext) {
-        executionID = executeProcessContext.getExecutionID();
-        databaseName = executeProcessContext.getDatabaseName();
-        username = executeProcessContext.getUsername();
-        hostname = executeProcessContext.getHostname();
-        sql = executeProcessContext.getSql();
-        unitStatuses = new ArrayList<>(executeProcessContext.getProcessUnits().size());
-        for (ExecuteProcessUnit each : executeProcessContext.getProcessUnits().values()) {
-            unitStatuses.add(new YamlExecuteProcessUnit(each));
-        }
-        startTimeMillis = executeProcessContext.getStartTimeMillis();
-        processStatus = executeProcessContext.getProcessStatus();
-    }
 }
diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/YamlExecuteProcessUnit.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/YamlExecuteProcessUnit.java
index c8bd7749c57..7429d448296 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/YamlExecuteProcessUnit.java
+++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/YamlExecuteProcessUnit.java
@@ -17,28 +17,19 @@
 
 package org.apache.shardingsphere.infra.executor.sql.process.model.yaml;
 
-import lombok.AllArgsConstructor;
 import lombok.Getter;
-import lombok.NoArgsConstructor;
 import lombok.Setter;
 import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessStatusEnum;
-import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessUnit;
+import org.apache.shardingsphere.infra.util.yaml.YamlConfiguration;
 
 /**
  * Execute process unit for YAML.
  */
-@NoArgsConstructor
-@AllArgsConstructor
 @Getter
 @Setter
-public final class YamlExecuteProcessUnit {
+public final class YamlExecuteProcessUnit implements YamlConfiguration {
     
     private String unitID;
     
-    private volatile ExecuteProcessStatusEnum processStatus;
-    
-    public YamlExecuteProcessUnit(final ExecuteProcessUnit executeProcessUnit) {
-        unitID = executeProcessUnit.getUnitID();
-        processStatus = executeProcessUnit.getProcessStatus();
-    }
+    private ExecuteProcessStatusEnum processStatus;
 }
diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/swapper/YamlExecuteProcessContextSwapper.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/swapper/YamlExecuteProcessContextSwapper.java
new file mode 100644
index 00000000000..f736c6533b1
--- /dev/null
+++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/swapper/YamlExecuteProcessContextSwapper.java
@@ -0,0 +1,51 @@
+/*
+ * 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.infra.executor.sql.process.model.yaml.swapper;
+
+import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessContext;
+import org.apache.shardingsphere.infra.executor.sql.process.model.yaml.YamlExecuteProcessContext;
+import org.apache.shardingsphere.infra.util.yaml.swapper.YamlConfigurationSwapper;
+
+import java.util.stream.Collectors;
+
+/**
+ * YAML execute process context swapper.
+ */
+public final class YamlExecuteProcessContextSwapper implements YamlConfigurationSwapper<YamlExecuteProcessContext, ExecuteProcessContext> {
+    
+    private final YamlExecuteProcessUnitSwapper yamlExecuteProcessUnitSwapper = new YamlExecuteProcessUnitSwapper();
+    
+    @Override
+    public YamlExecuteProcessContext swapToYamlConfiguration(final ExecuteProcessContext data) {
+        YamlExecuteProcessContext result = new YamlExecuteProcessContext();
+        result.setExecutionID(data.getExecutionID());
+        result.setDatabaseName(data.getDatabaseName());
+        result.setUsername(data.getUsername());
+        result.setHostname(data.getHostname());
+        result.setSql(data.getSql());
+        result.setUnitStatuses(data.getProcessUnits().values().stream().map(yamlExecuteProcessUnitSwapper::swapToYamlConfiguration).collect(Collectors.toList()));
+        result.setStartTimeMillis(data.getStartTimeMillis());
+        result.setProcessStatus(data.getProcessStatus());
+        return result;
+    }
+    
+    @Override
+    public ExecuteProcessContext swapToObject(final YamlExecuteProcessContext yamlConfig) {
+        throw new UnsupportedOperationException("YamlExecuteProcessContextSwapper.swapToObject");
+    }
+}
diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/YamlExecuteProcessUnit.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/swapper/YamlExecuteProcessUnitSwapper.java
similarity index 56%
copy from infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/YamlExecuteProcessUnit.java
copy to infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/swapper/YamlExecuteProcessUnitSwapper.java
index c8bd7749c57..d7c881e60cd 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/YamlExecuteProcessUnit.java
+++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/yaml/swapper/YamlExecuteProcessUnitSwapper.java
@@ -15,30 +15,27 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.process.model.yaml;
+package org.apache.shardingsphere.infra.executor.sql.process.model.yaml.swapper;
 
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessStatusEnum;
 import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessUnit;
+import org.apache.shardingsphere.infra.executor.sql.process.model.yaml.YamlExecuteProcessUnit;
+import org.apache.shardingsphere.infra.util.yaml.swapper.YamlConfigurationSwapper;
 
 /**
- * Execute process unit for YAML.
+ * YAML execute process unit swapper.
  */
-@NoArgsConstructor
-@AllArgsConstructor
-@Getter
-@Setter
-public final class YamlExecuteProcessUnit {
+public final class YamlExecuteProcessUnitSwapper implements YamlConfigurationSwapper<YamlExecuteProcessUnit, ExecuteProcessUnit> {
     
-    private String unitID;
-    
-    private volatile ExecuteProcessStatusEnum processStatus;
+    @Override
+    public YamlExecuteProcessUnit swapToYamlConfiguration(final ExecuteProcessUnit data) {
+        YamlExecuteProcessUnit result = new YamlExecuteProcessUnit();
+        result.setUnitID(data.getUnitID());
+        result.setProcessStatus(data.getProcessStatus());
+        return result;
+    }
     
-    public YamlExecuteProcessUnit(final ExecuteProcessUnit executeProcessUnit) {
-        unitID = executeProcessUnit.getUnitID();
-        processStatus = executeProcessUnit.getProcessStatus();
+    @Override
+    public ExecuteProcessUnit swapToObject(final YamlExecuteProcessUnit yamlConfig) {
+        throw new UnsupportedOperationException("YamlExecuteProcessUnitSwapper.swapToObject");
     }
 }