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

healchow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new 4172bb438 [INLONG-5409][Manager] Fix JSON serialization error for 
class BaseSortConf (#5410)
4172bb438 is described below

commit 4172bb438fcfe7806dc4953b27158795bd348dc3
Author: Xin Gong <[email protected]>
AuthorDate: Tue Aug 9 13:16:11 2022 +0800

    [INLONG-5409][Manager] Fix JSON serialization error for class BaseSortConf 
(#5410)
---
 .../client/api/inner/ClientFactoryTest.java        |  4 +-
 .../inlong/manager/pojo/sort/BaseSortConf.java     |  2 -
 .../inlong/manager/pojo/sort/FlinkSortConf.java    |  9 ++---
 .../manager/pojo/sort/UserDefinedSortConf.java     |  9 ++---
 .../inlong/manager/pojo/sort/BaseSortConfTest.java | 43 ++++++++++++++++++++++
 5 files changed, 54 insertions(+), 13 deletions(-)

diff --git 
a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/ClientFactoryTest.java
 
b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/ClientFactoryTest.java
index 1143a2212..582aabc7c 100644
--- 
a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/ClientFactoryTest.java
+++ 
b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/ClientFactoryTest.java
@@ -70,6 +70,7 @@ import 
org.apache.inlong.manager.pojo.sink.iceberg.IcebergSink;
 import org.apache.inlong.manager.pojo.sink.kafka.KafkaSink;
 import org.apache.inlong.manager.pojo.sink.mysql.MySQLSink;
 import org.apache.inlong.manager.pojo.sink.postgresql.PostgreSQLSink;
+import org.apache.inlong.manager.pojo.sort.FlinkSortConf;
 import org.apache.inlong.manager.pojo.source.StreamSource;
 import org.apache.inlong.manager.pojo.source.autopush.AutoPushSource;
 import org.apache.inlong.manager.pojo.source.file.FileSource;
@@ -151,6 +152,7 @@ class ClientFactoryTest {
 
     @Test
     void testGetGroupInfo() {
+        FlinkSortConf flinkSortConf = new FlinkSortConf();
         InlongPulsarInfo inlongGroupResponse = InlongPulsarInfo.builder()
                 .id(1)
                 .inlongGroupId("1")
@@ -164,7 +166,7 @@ class ClientFactoryTest {
                                 .keyValue("keyValue")
                                 .build()
                         )
-                ).build();
+                ).sortConf(flinkSortConf).build();
 
         stubFor(
                 get(urlMatching("/inlong/manager/api/group/get/1.*"))
diff --git 
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sort/BaseSortConf.java
 
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sort/BaseSortConf.java
index fe01e4b28..a28b7cc27 100644
--- 
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sort/BaseSortConf.java
+++ 
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sort/BaseSortConf.java
@@ -29,8 +29,6 @@ import lombok.Data;
 @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, visible = true, property = 
"sortType")
 public abstract class BaseSortConf {
 
-    public String sortType;
-
     public abstract SortType getType();
 
     public static final String SORT_FLINK = "flink";
diff --git 
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sort/FlinkSortConf.java
 
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sort/FlinkSortConf.java
index e6aa9ed6a..1dbbd7c81 100644
--- 
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sort/FlinkSortConf.java
+++ 
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sort/FlinkSortConf.java
@@ -17,7 +17,6 @@
 
 package org.apache.inlong.manager.pojo.sort;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.google.common.collect.Maps;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -37,10 +36,6 @@ import java.util.Map;
 @JsonTypeDefine(value = BaseSortConf.SORT_FLINK)
 public class FlinkSortConf extends BaseSortConf {
 
-    @JsonIgnore
-    @ApiModelProperty(value = "Sort type")
-    private SortType type = SortType.FLINK;
-
     @ApiModelProperty("Authentication")
     private Authentication authentication;
 
@@ -52,4 +47,8 @@ public class FlinkSortConf extends BaseSortConf {
 
     @ApiModelProperty("Other properties if needed")
     private Map<String, String> properties = Maps.newHashMap();
+
+    public SortType getType() {
+        return SortType.FLINK;
+    }
 }
diff --git 
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sort/UserDefinedSortConf.java
 
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sort/UserDefinedSortConf.java
index 5a4ff1975..6a71cb9ad 100644
--- 
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sort/UserDefinedSortConf.java
+++ 
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sort/UserDefinedSortConf.java
@@ -17,7 +17,6 @@
 
 package org.apache.inlong.manager.pojo.sort;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.google.common.collect.Maps;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -36,13 +35,13 @@ import java.util.Map;
 @JsonTypeDefine(value = BaseSortConf.SORT_USER_DEFINED)
 public class UserDefinedSortConf extends BaseSortConf {
 
-    @JsonIgnore
-    @ApiModelProperty(value = "Sort type")
-    private SortType type = SortType.USER_DEFINED;
-
     @ApiModelProperty("Name for user defined sort functions")
     private String sortName;
 
     @ApiModelProperty("Properties for user defined sort functions if needed")
     private Map<String, String> properties = Maps.newHashMap();
+
+    public SortType getType() {
+        return SortType.USER_DEFINED;
+    }
 }
diff --git 
a/inlong-manager/manager-pojo/src/test/java/org/apache/inlong/manager/pojo/sort/BaseSortConfTest.java
 
b/inlong-manager/manager-pojo/src/test/java/org/apache/inlong/manager/pojo/sort/BaseSortConfTest.java
new file mode 100644
index 000000000..d7cccc3e6
--- /dev/null
+++ 
b/inlong-manager/manager-pojo/src/test/java/org/apache/inlong/manager/pojo/sort/BaseSortConfTest.java
@@ -0,0 +1,43 @@
+/*
+ *   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.inlong.manager.pojo.sort;
+
+import org.apache.inlong.manager.common.util.JsonUtils;
+import org.apache.inlong.manager.pojo.sort.BaseSortConf.SortType;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+/**
+ * Test for {@link BaseSortConf}
+ */
+public class BaseSortConfTest {
+
+    @Test
+    public void testSerde() {
+        FlinkSortConf flinkSortConf = new FlinkSortConf();
+        BaseSortConf baseSortConf = 
JsonUtils.parseObject(JsonUtils.toJsonString(flinkSortConf), 
BaseSortConf.class);
+        Assertions.assertEquals(baseSortConf.getType(), SortType.FLINK);
+
+        UserDefinedSortConf userDefinedSortConf = new UserDefinedSortConf();
+        BaseSortConf baseSortConf1 = 
JsonUtils.parseObject(JsonUtils.toJsonString(userDefinedSortConf),
+                BaseSortConf.class);
+        Assertions.assertEquals(baseSortConf1.getType(), 
SortType.USER_DEFINED);
+    }
+
+}

Reply via email to