You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by do...@apache.org on 2022/06/06 02:40:28 UTC

[incubator-inlong] branch master updated: [INLONG-4510][Manager] Remove GsonUtils, InlongParser, and Gson dependency (#4511)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 72f7726df [INLONG-4510][Manager] Remove GsonUtils, InlongParser, and Gson dependency (#4511)
72f7726df is described below

commit 72f7726df535abe20211dfd2cdf87be4d4348b40
Author: leosanqing <st...@qq.com>
AuthorDate: Mon Jun 6 10:40:22 2022 +0800

    [INLONG-4510][Manager] Remove GsonUtils, InlongParser, and Gson dependency (#4511)
    
    Co-authored-by: healzhou <he...@gmail.com>
---
 inlong-manager/manager-client/pom.xml              |   4 -
 .../manager/client/api/impl/InlongGroupImpl.java   |  20 ++--
 .../client/api/inner/InnerGroupContext.java        |   9 +-
 .../client/api/inner/InnerInlongManagerClient.java |  10 +-
 .../inlong/manager/client/api/util/GsonUtils.java  | 115 ---------------------
 .../manager/client/api/util/InlongParser.java      |  76 --------------
 .../client/api/impl/InlongGroupImplTest.java       |  96 +++++++++++++++++
 .../InnerInlongManagerClientTest.java              |   4 +-
 .../pojo/workflow/form/NewGroupProcessForm.java    |   5 +-
 .../common/pojo/workflow/form/ProcessForm.java     |   4 +
 10 files changed, 122 insertions(+), 221 deletions(-)

diff --git a/inlong-manager/manager-client/pom.xml b/inlong-manager/manager-client/pom.xml
index 221796b6b..fa8994996 100644
--- a/inlong-manager/manager-client/pom.xml
+++ b/inlong-manager/manager-client/pom.xml
@@ -62,10 +62,6 @@
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
-        <dependency>
-            <groupId>com.google.code.gson</groupId>
-            <artifactId>gson</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongGroupImpl.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongGroupImpl.java
index fc9554ace..388745684 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongGroupImpl.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongGroupImpl.java
@@ -30,21 +30,19 @@ import org.apache.inlong.manager.client.api.enums.SimpleGroupStatus;
 import org.apache.inlong.manager.client.api.inner.InnerGroupContext;
 import org.apache.inlong.manager.client.api.inner.InnerInlongManagerClient;
 import org.apache.inlong.manager.client.api.util.InlongGroupTransfer;
-import org.apache.inlong.manager.client.api.util.InlongParser;
 import org.apache.inlong.manager.common.enums.GroupStatus;
 import org.apache.inlong.manager.common.enums.ProcessStatus;
-import org.apache.inlong.manager.common.pojo.group.InlongGroupApproveRequest;
 import org.apache.inlong.manager.common.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.common.pojo.group.InlongGroupRequest;
 import org.apache.inlong.manager.common.pojo.sort.BaseSortConf;
 import org.apache.inlong.manager.common.pojo.stream.FullStreamResponse;
-import org.apache.inlong.manager.common.pojo.stream.InlongStreamApproveRequest;
 import org.apache.inlong.manager.common.pojo.stream.InlongStreamConfigLogListResponse;
 import org.apache.inlong.manager.common.pojo.stream.InlongStreamInfo;
 import org.apache.inlong.manager.common.pojo.workflow.EventLogView;
 import org.apache.inlong.manager.common.pojo.workflow.ProcessResponse;
 import org.apache.inlong.manager.common.pojo.workflow.TaskResponse;
 import org.apache.inlong.manager.common.pojo.workflow.WorkflowResult;
+import org.apache.inlong.manager.common.pojo.workflow.form.NewGroupProcessForm;
 import org.apache.inlong.manager.common.util.AssertUtils;
 import org.apache.inlong.manager.common.util.JsonUtils;
 
@@ -100,15 +98,17 @@ public class InlongGroupImpl implements InlongGroup {
         AssertUtils.isTrue(ProcessStatus.PROCESSING == processView.getStatus(),
                 String.format("Process status : %s is not corrected, should be PROCESSING",
                         processView.getStatus()));
-        String formData = JsonUtils.toJsonString(processView.getFormData());
-        Pair<InlongGroupApproveRequest, List<InlongStreamApproveRequest>> initMsg = InlongParser
-                .parseGroupForm(formData);
-        groupContext.setInitMsg(initMsg);
-        WorkflowResult startWorkflowResult = managerClient.startInlongGroup(taskId, initMsg);
+
+        // init must be NewGroupProcessForm
+        NewGroupProcessForm newGroupProcessForm = JsonUtils.parseObject(
+                JsonUtils.toJsonString(processView.getFormData()), NewGroupProcessForm.class);
+        AssertUtils.notNull(newGroupProcessForm, "NewGroupProcessForm cannot be null");
+
+        groupContext.setInitMsg(newGroupProcessForm);
+        WorkflowResult startWorkflowResult = managerClient.startInlongGroup(taskId, newGroupProcessForm);
         processView = startWorkflowResult.getProcessInfo();
         AssertUtils.isTrue(ProcessStatus.COMPLETED == processView.getStatus(),
-                String.format("Business info state : %s is not corrected , should be COMPLETED",
-                        processView.getStatus()));
+                String.format("inlong group status %s is incorrected, should be COMPLETED", processView.getStatus()));
         return generateSnapshot();
     }
 
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/InnerGroupContext.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/InnerGroupContext.java
index dacd660a1..90e688c6f 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/InnerGroupContext.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/InnerGroupContext.java
@@ -22,14 +22,11 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.tuple.Pair;
 import org.apache.inlong.manager.client.api.InlongStream;
-import org.apache.inlong.manager.common.util.AssertUtils;
-import org.apache.inlong.manager.common.pojo.group.InlongGroupApproveRequest;
 import org.apache.inlong.manager.common.pojo.group.InlongGroupInfo;
-import org.apache.inlong.manager.common.pojo.stream.InlongStreamApproveRequest;
+import org.apache.inlong.manager.common.pojo.workflow.form.NewGroupProcessForm;
+import org.apache.inlong.manager.common.util.AssertUtils;
 
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -45,7 +42,7 @@ public class InnerGroupContext {
 
     private Map<String, InlongStream> streamMap = Maps.newHashMap();
 
-    private Pair<InlongGroupApproveRequest, List<InlongStreamApproveRequest>> initMsg;
+    private NewGroupProcessForm initMsg;
 
     public String getGroupId() {
         AssertUtils.notNull(groupInfo, "InlongGroupRequest is not init");
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClient.java
index 6194a19a8..6e84472e6 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClient.java
@@ -37,7 +37,6 @@ import org.apache.inlong.manager.client.api.enums.SimpleGroupStatus;
 import org.apache.inlong.manager.common.auth.Authentication;
 import org.apache.inlong.manager.common.auth.DefaultAuthentication;
 import org.apache.inlong.manager.common.beans.Response;
-import org.apache.inlong.manager.common.pojo.group.InlongGroupApproveRequest;
 import org.apache.inlong.manager.common.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.common.pojo.group.InlongGroupListResponse;
 import org.apache.inlong.manager.common.pojo.group.InlongGroupPageRequest;
@@ -47,7 +46,6 @@ import org.apache.inlong.manager.common.pojo.sink.SinkRequest;
 import org.apache.inlong.manager.common.pojo.source.SourceListResponse;
 import org.apache.inlong.manager.common.pojo.source.SourceRequest;
 import org.apache.inlong.manager.common.pojo.stream.FullStreamResponse;
-import org.apache.inlong.manager.common.pojo.stream.InlongStreamApproveRequest;
 import org.apache.inlong.manager.common.pojo.stream.InlongStreamConfigLogListResponse;
 import org.apache.inlong.manager.common.pojo.stream.InlongStreamInfo;
 import org.apache.inlong.manager.common.pojo.stream.InlongStreamPageRequest;
@@ -55,6 +53,7 @@ import org.apache.inlong.manager.common.pojo.transform.TransformRequest;
 import org.apache.inlong.manager.common.pojo.transform.TransformResponse;
 import org.apache.inlong.manager.common.pojo.workflow.EventLogView;
 import org.apache.inlong.manager.common.pojo.workflow.WorkflowResult;
+import org.apache.inlong.manager.common.pojo.workflow.form.NewGroupProcessForm;
 import org.apache.inlong.manager.common.util.AssertUtils;
 import org.apache.inlong.manager.common.util.JsonUtils;
 
@@ -468,15 +467,14 @@ public class InnerInlongManagerClient {
         );
     }
 
-    public WorkflowResult startInlongGroup(int taskId,
-            Pair<InlongGroupApproveRequest, List<InlongStreamApproveRequest>> initMsg) {
+    public WorkflowResult startInlongGroup(int taskId, NewGroupProcessForm newGroupProcessForm) {
         ObjectNode workflowTaskOperation = objectMapper.createObjectNode();
         workflowTaskOperation.putPOJO("transferTo", Lists.newArrayList());
         workflowTaskOperation.put("remark", "approved by system");
 
         ObjectNode inlongGroupApproveForm = objectMapper.createObjectNode();
-        inlongGroupApproveForm.putPOJO("groupApproveInfo", initMsg.getKey());
-        inlongGroupApproveForm.putPOJO("streamApproveInfoList", initMsg.getValue());
+        inlongGroupApproveForm.putPOJO("groupApproveInfo", newGroupProcessForm.getGroupInfo());
+        inlongGroupApproveForm.putPOJO("streamApproveInfoList", newGroupProcessForm.getStreamInfoList());
         inlongGroupApproveForm.put("formName", "InlongGroupApproveForm");
         workflowTaskOperation.set("form", inlongGroupApproveForm);
 
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/GsonUtils.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/GsonUtils.java
deleted file mode 100644
index 751e82376..000000000
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/GsonUtils.java
+++ /dev/null
@@ -1,115 +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.inlong.manager.client.api.util;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonDeserializationContext;
-import com.google.gson.JsonDeserializer;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParseException;
-import com.google.gson.JsonSyntaxException;
-import lombok.SneakyThrows;
-
-import java.lang.reflect.Type;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-@Deprecated
-public class GsonUtils {
-
-    private static final Gson GSON;
-    private static final Gson GSON_WITH_NULL;
-
-    private static final JsonDeserializer<Date> DATE_JSON_DESERIALIZER = new JsonDeserializer<Date>() {
-
-        private final Pattern pattern = Pattern.compile("[0-9]+.?[0-9E]+");
-
-        @SneakyThrows
-        @Override
-        public Date deserialize(JsonElement json, Type typeOfT,
-                JsonDeserializationContext context) throws JsonParseException {
-            String dateStr = json.getAsString();
-            Matcher isNum = pattern.matcher(dateStr);
-            if (isNum.matches()) {
-                long timestamp = Double.valueOf(dateStr).longValue();
-                return new Date(timestamp);
-            } else {
-                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                return formatter.parse(dateStr);
-            }
-        }
-    };
-
-    static {
-        final GsonBuilder builder = new GsonBuilder();
-        builder.registerTypeAdapter(Date.class, DATE_JSON_DESERIALIZER);
-        GSON = builder.create();
-        final GsonBuilder builderWithNull = new GsonBuilder().serializeNulls();
-        builder.registerTypeAdapter(Date.class, DATE_JSON_DESERIALIZER);
-        GSON_WITH_NULL = builderWithNull.create();
-    }
-
-    private GsonUtils() {
-    }
-
-    /**
-     * Transfer the Json object to map
-     */
-    public static void jsonObjectToMap(JsonObject jsonObject, Map<String, String> parameterMap) {
-        String key;
-        String value;
-        for (String s : jsonObject.keySet()) {
-            key = s;
-            JsonElement jsonElement = jsonObject.get(key);
-
-            if (jsonElement instanceof JsonObject || jsonElement instanceof JsonArray) {
-                value = GSON.toJson(jsonElement);
-            } else {
-                value = jsonElement.getAsString();
-            }
-            parameterMap.put(key, (null == value) ? "" : value);
-        }
-    }
-
-    /**
-     * Get JsonObject from the given object.
-     */
-    public static JsonObject getJsonObjectFromObject(Object object) {
-        JsonElement element = GSON.fromJson(GSON.toJson(object), JsonElement.class);
-        return element.getAsJsonObject();
-    }
-
-    public static String toJson(Object src) {
-        return GSON.toJson(src);
-    }
-
-    public static <T> T fromJson(String json, Type typeOfT) throws JsonSyntaxException {
-        return GSON.fromJson(json, typeOfT);
-    }
-
-    public static String toJsonHasNull(Object src) {
-        return GSON_WITH_NULL.toJson(src);
-    }
-
-}
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/InlongParser.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/InlongParser.java
deleted file mode 100644
index 194bf6b51..000000000
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/InlongParser.java
+++ /dev/null
@@ -1,76 +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.inlong.manager.client.api.util;
-
-import com.google.common.reflect.TypeToken;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-import lombok.experimental.UtilityClass;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.tuple.Pair;
-import org.apache.inlong.manager.common.enums.MQType;
-import org.apache.inlong.manager.common.pojo.group.InlongGroupApproveRequest;
-import org.apache.inlong.manager.common.pojo.group.pulsar.InlongPulsarDTO;
-import org.apache.inlong.manager.common.pojo.stream.InlongStreamApproveRequest;
-
-import java.util.List;
-
-/**
- * Parser for Inlong entity
- */
-@Slf4j
-@UtilityClass
-@Deprecated
-public class InlongParser {
-
-    public static final String GROUP_INFO = "groupInfo";
-    public static final String MQ_EXT_INFO = "mqExtInfo";
-    public static final String MQ_TYPE = "mqType";
-
-    /**
-     * Parse forms of group.
-     */
-    public static Pair<InlongGroupApproveRequest, List<InlongStreamApproveRequest>> parseGroupForm(String formJson) {
-        JsonObject formData = GsonUtils.fromJson(formJson, JsonObject.class);
-        JsonObject groupJson = formData.getAsJsonObject(GROUP_INFO);
-        InlongGroupApproveRequest groupApproveInfo = GsonUtils.fromJson(groupJson.toString(),
-                InlongGroupApproveRequest.class);
-        JsonObject mqExtInfo = groupJson.getAsJsonObject(MQ_EXT_INFO);
-        if (mqExtInfo != null && mqExtInfo.get(MQ_TYPE) != null) {
-            MQType mqType = MQType.forType(mqExtInfo.get(MQ_TYPE).getAsString());
-            if (mqType == MQType.PULSAR || mqType == MQType.TDMQ_PULSAR) {
-                InlongPulsarDTO pulsarInfo = GsonUtils.fromJson(mqExtInfo.toString(), InlongPulsarDTO.class);
-                groupApproveInfo.setAckQuorum(pulsarInfo.getAckQuorum());
-                groupApproveInfo.setEnsemble(pulsarInfo.getEnsemble());
-                groupApproveInfo.setWriteQuorum(pulsarInfo.getWriteQuorum());
-                groupApproveInfo.setRetentionTime(pulsarInfo.getRetentionTime());
-                groupApproveInfo.setRetentionTimeUnit(pulsarInfo.getRetentionTimeUnit());
-                groupApproveInfo.setTtl(pulsarInfo.getTtl());
-                groupApproveInfo.setTtlUnit(pulsarInfo.getTtlUnit());
-                groupApproveInfo.setRetentionSize(pulsarInfo.getRetentionSize());
-                groupApproveInfo.setRetentionSizeUnit(pulsarInfo.getRetentionSizeUnit());
-            }
-        }
-        JsonArray streamJson = formData.getAsJsonArray("streamInfoList");
-        List<InlongStreamApproveRequest> streamApproveList = GsonUtils.fromJson(streamJson.toString(),
-                new TypeToken<List<InlongStreamApproveRequest>>() {
-                }.getType());
-        return Pair.of(groupApproveInfo, streamApproveList);
-    }
-
-}
diff --git a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/impl/InlongGroupImplTest.java b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/impl/InlongGroupImplTest.java
new file mode 100644
index 000000000..5d3d082b8
--- /dev/null
+++ b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/impl/InlongGroupImplTest.java
@@ -0,0 +1,96 @@
+/*
+ * 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.client.api.impl;
+
+import org.apache.inlong.manager.common.pojo.workflow.form.NewGroupProcessForm;
+import org.apache.inlong.manager.common.util.JsonUtils;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+class InlongGroupImplTest {
+
+    @Test
+    void testParseForm() {
+        String json = "{\n"
+                + "  \"formName\" : \"NewGroupProcessForm\",\n"
+                + "  \"groupInfo\" : {\n"
+                + "    \"mqType\" : \"PULSAR\",\n"
+                + "    \"id\" : 5,\n"
+                + "    \"inlongGroupId\" : \"test_group008\",\n"
+                + "    \"name\" : null,\n"
+                + "    \"description\" : null,\n"
+                + "    \"mqResource\" : \"test_namespace\",\n"
+                + "    \"enableZookeeper\" : 0,\n"
+                + "    \"enableCreateResource\" : 1,\n"
+                + "    \"lightweight\" : 1,\n"
+                + "    \"inlongClusterTag\" : \"default_cluster\",\n"
+                + "    \"dailyRecords\" : 10000000,\n"
+                + "    \"dailyStorage\" : 10000,\n"
+                + "    \"peakRecords\" : 100000,\n"
+                + "    \"maxLength\" : 10000,\n"
+                + "    \"inCharges\" : \"test_inCharges,admin\",\n"
+                + "    \"followers\" : null,\n"
+                + "    \"status\" : 101,\n"
+                + "    \"creator\" : \"admin\",\n"
+                + "    \"modifier\" : \"admin\",\n"
+                + "    \"createTime\" : \"2022-06-05 20:44:22\",\n"
+                + "    \"modifyTime\" : \"2022-06-05 12:44:28\",\n"
+                + "    \"extList\" : [ ],\n"
+                + "    \"tenant\" : null,\n"
+                + "    \"adminUrl\" : null,\n"
+                + "    \"serviceUrl\" : null,\n"
+                + "    \"queueModule\" : \"parallel\",\n"
+                + "    \"partitionNum\" : 3,\n"
+                + "    \"ensemble\" : 3,\n"
+                + "    \"writeQuorum\" : 3,\n"
+                + "    \"ackQuorum\" : 2,\n"
+                + "    \"ttl\" : 24,\n"
+                + "    \"ttlUnit\" : \"hours\",\n"
+                + "    \"retentionTime\" : 72,\n"
+                + "    \"retentionTimeUnit\" : \"hours\",\n"
+                + "    \"retentionSize\" : -1,\n"
+                + "    \"retentionSizeUnit\" : \"MB\"\n"
+                + "  },\n"
+                + "  \"streamInfoList\" : [ {\n"
+                + "    \"id\" : 5,\n"
+                + "    \"inlongGroupId\" : \"test_group008\",\n"
+                + "    \"inlongStreamId\" : \"test_stream008\",\n"
+                + "    \"name\" : \"test_stream008\",\n"
+                + "    \"sinkList\" : [ {\n"
+                + "      \"id\" : 5,\n"
+                + "      \"inlongGroupId\" : \"test_group008\",\n"
+                + "      \"inlongStreamId\" : \"test_stream008\",\n"
+                + "      \"sinkType\" : \"HIVE\",\n"
+                + "      \"sinkName\" : \"{hive.sink.name}\",\n"
+                + "      \"clusterId\" : null,\n"
+                + "      \"clusterUrl\" : null\n"
+                + "    } ],\n"
+                + "    \"modifyTime\" : \"2022-06-05 12:44:25\"\n"
+                + "  } ]\n"
+                + "}";
+
+        NewGroupProcessForm newGroupProcessForm =
+                JsonUtils.parseObject(json, NewGroupProcessForm.class);
+
+        assertNotNull(newGroupProcessForm);
+        assertNotNull(newGroupProcessForm.getGroupInfo());
+        assertNotNull(newGroupProcessForm.getStreamInfoList());
+    }
+
+}
diff --git a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/impl/InnerInlongManagerClientTest.java b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClientTest.java
similarity index 99%
rename from inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/impl/InnerInlongManagerClientTest.java
rename to inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClientTest.java
index aac139b3b..a8bbcfcae 100644
--- a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/impl/InnerInlongManagerClientTest.java
+++ b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClientTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.manager.client.api.impl;
+package org.apache.inlong.manager.client.api.inner;
 
 import com.github.pagehelper.PageInfo;
 import com.github.tomakehurst.wiremock.WireMockServer;
@@ -25,7 +25,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
-import org.apache.inlong.manager.client.api.inner.InnerInlongManagerClient;
+import org.apache.inlong.manager.client.api.impl.InlongClientImpl;
 import org.apache.inlong.manager.common.auth.DefaultAuthentication;
 import org.apache.inlong.manager.common.beans.Response;
 import org.apache.inlong.manager.common.pojo.group.InlongGroupExtInfo;
diff --git a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/workflow/form/NewGroupProcessForm.java b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/workflow/form/NewGroupProcessForm.java
index adf4f2190..b6973940d 100644
--- a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/workflow/form/NewGroupProcessForm.java
+++ b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/workflow/form/NewGroupProcessForm.java
@@ -19,8 +19,6 @@ package org.apache.inlong.manager.common.pojo.workflow.form;
 
 import com.google.common.collect.Maps;
 import io.swagger.annotations.ApiModelProperty;
-import java.util.List;
-import java.util.Map;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.apache.inlong.manager.common.exceptions.FormValidateException;
@@ -28,6 +26,9 @@ import org.apache.inlong.manager.common.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.common.pojo.stream.StreamBriefResponse;
 import org.apache.inlong.manager.common.util.Preconditions;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * New inlong group process form
  */
diff --git a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/workflow/form/ProcessForm.java b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/workflow/form/ProcessForm.java
index e70349278..a5a659ceb 100644
--- a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/workflow/form/ProcessForm.java
+++ b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/workflow/form/ProcessForm.java
@@ -17,6 +17,8 @@
 
 package org.apache.inlong.manager.common.pojo.workflow.form;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
 import java.util.Map;
 
 /**
@@ -29,11 +31,13 @@ public interface ProcessForm extends Form {
      *
      * @return inlong group id.
      */
+    @JsonIgnore
     String getInlongGroupId();
 
     /**
      * Get form title.
      */
+    @JsonIgnore
     default String getTitle() {
         return null;
     }