Skip to content

Commit c527f43

Browse files
committed
test: get rid of fastjson
1 parent 3ab74c2 commit c527f43

File tree

5 files changed

+103
-107
lines changed

5 files changed

+103
-107
lines changed

Diff for: flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/pom.xml

-7
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,6 @@ limitations under the License.
9898
<scope>test</scope>
9999
</dependency>
100100

101-
<dependency>
102-
<groupId>com.alibaba</groupId>
103-
<artifactId>fastjson</artifactId>
104-
<version>1.2.83</version>
105-
<scope>test</scope>
106-
</dependency>
107-
108101
<!-- test dependencies on Flink -->
109102

110103
<dependency>

Diff for: flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/test/java/org/apache/flink/cdc/connectors/mysql/LegacyMySqlSourceITCase.java

+31-28
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,11 @@
2828
import org.apache.flink.types.Row;
2929
import org.apache.flink.util.CloseableIterator;
3030

31-
import com.alibaba.fastjson.JSONObject;
31+
import com.fasterxml.jackson.core.JsonProcessingException;
32+
import com.fasterxml.jackson.databind.JsonNode;
33+
import com.fasterxml.jackson.databind.ObjectMapper;
3234
import org.apache.kafka.connect.json.JsonConverterConfig;
35+
import org.assertj.core.api.Assertions;
3336
import org.junit.Test;
3437

3538
import java.io.IOException;
@@ -43,8 +46,7 @@
4346
import java.util.Map;
4447
import java.util.Objects;
4548

46-
import static org.apache.flink.cdc.common.testutils.TestCaseUtils.fetch;
47-
import static org.junit.Assert.assertTrue;
49+
import static org.apache.flink.cdc.common.testutils.TestCaseUtils.fetchAndConvert;
4850
import static org.apache.flink.cdc.common.testutils.TestCaseUtils.waitForSnapshotStarted;
4951

5052
/** Integration tests for the legacy {@link MySqlSource}. */
@@ -98,9 +100,9 @@ private void testConsumingAllEventsWithJsonFormat(
98100
StreamTableEnvironment.create(
99101
env, EnvironmentSettings.newInstance().inStreamingMode().build());
100102

101-
final JSONObject expected =
102-
JSONObject.parseObject(readLines(expectedFile), JSONObject.class);
103-
JSONObject expectSnapshot = expected.getJSONObject("expected_snapshot");
103+
final JsonNode expected =
104+
new ObjectMapper().readValue(readLines(expectedFile), JsonNode.class);
105+
JsonNode expectSnapshot = expected.get("expected_snapshot");
104106

105107
DataStreamSource<String> source = env.addSource(sourceFunction);
106108
tEnv.createTemporaryView("full_types", source);
@@ -109,9 +111,10 @@ private void testConsumingAllEventsWithJsonFormat(
109111
// check the snapshot result
110112
CloseableIterator<Row> snapshot = result.collect();
111113
waitForSnapshotStarted(snapshot);
112-
assertTrue(
113-
dataInJsonIsEquals(
114-
fetch(snapshot, 1).get(0).toString(), expectSnapshot.toString()));
114+
115+
assertJsonEquals(
116+
fetchAndConvert(snapshot, 1, LegacyMySqlSourceITCase::extractJsonBody).get(0),
117+
expectSnapshot);
115118
try (Connection connection = fullTypesDatabase.getJdbcConnection();
116119
Statement statement = connection.createStatement()) {
117120
statement.execute(
@@ -120,8 +123,10 @@ private void testConsumingAllEventsWithJsonFormat(
120123

121124
// check the binlog result
122125
CloseableIterator<Row> binlog = result.collect();
123-
JSONObject expectBinlog = expected.getJSONObject("expected_binlog");
124-
assertTrue(dataInJsonIsEquals(fetch(binlog, 1).get(0).toString(), expectBinlog.toString()));
126+
JsonNode expectBinlog = expected.get("expected_binlog");
127+
assertJsonEquals(
128+
fetchAndConvert(binlog, 1, LegacyMySqlSourceITCase::extractJsonBody).get(0),
129+
expectBinlog);
125130
result.getJobClient().get().cancel().get();
126131
}
127132

@@ -144,25 +149,23 @@ private static byte[] readLines(String resource) throws IOException, URISyntaxEx
144149
return Files.readAllBytes(path);
145150
}
146151

147-
private static boolean dataInJsonIsEquals(String actual, String expect) {
148-
JSONObject actualJsonObject = JSONObject.parseObject(actual);
149-
JSONObject expectJsonObject = JSONObject.parseObject(expect);
150-
151-
if (expectJsonObject.getJSONObject("payload") != null
152-
&& actualJsonObject.getJSONObject("payload") != null) {
153-
expectJsonObject = expectJsonObject.getJSONObject("payload");
154-
actualJsonObject = actualJsonObject.getJSONObject("payload");
152+
private static void assertJsonEquals(JsonNode actual, JsonNode expect) throws Exception {
153+
if (actual.get("payload") != null && expect.get("payload") != null) {
154+
actual = actual.get("payload");
155+
expect = expect.get("payload");
155156
}
156-
return jsonObjectEquals(
157-
expectJsonObject.getJSONObject("after"),
158-
actualJsonObject.getJSONObject("after"))
159-
&& jsonObjectEquals(
160-
expectJsonObject.getJSONObject("before"),
161-
actualJsonObject.getJSONObject("before"))
162-
&& Objects.equals(expectJsonObject.get("op"), actualJsonObject.get("op"));
157+
Assertions.assertThat(actual.get("after")).isEqualTo(expect.get("after"));
158+
Assertions.assertThat(actual.get("before")).isEqualTo(expect.get("before"));
159+
Assertions.assertThat(actual.get("op")).isEqualTo(expect.get("op"));
163160
}
164161

165-
private static boolean jsonObjectEquals(JSONObject a, JSONObject b) {
166-
return (a == b) || (a != null && a.toString().equals(b.toString()));
162+
private static JsonNode extractJsonBody(Row row) {
163+
try {
164+
String body = row.toString();
165+
return new ObjectMapper()
166+
.readValue(body.substring(3, body.length() - 1), JsonNode.class);
167+
} catch (JsonProcessingException e) {
168+
throw new RuntimeException("Invalid JSON format.", e);
169+
}
167170
}
168171
}

Diff for: flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/test/resources/file/debezium-data-schema-exclude-with-numeric-decimal.json

+24-24
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,14 @@
5252
"enum_c": "red",
5353
"set_c": "a,b",
5454
"json_c": "{\"key1\": \"value1\"}",
55-
"point_c": {"x":1.0,"y":1.0,"wkb":"AQEAAAAAAAAAAADwPwAAAAAAAPA/"},
56-
"geometry_c":{"wkb":"AQMAAAABAAAABQAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/"},
57-
"linestring_c": {"wkb":"AQIAAAADAAAAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAABRA"},
58-
"polygon_c": {"wkb":"AQMAAAABAAAABQAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/"},
59-
"multipoint_c": {"wkb":"AQQAAAACAAAAAQEAAAAAAAAAAADwPwAAAAAAAPA/AQEAAAAAAAAAAAAAQAAAAAAAAABA"},
60-
"multiline_c": {"wkb":"AQUAAAACAAAAAQIAAAADAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAABAAAAAAAAAAEAAAAAAAAAIQAAAAAAAAAhAAQIAAAACAAAAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAFEA="},
61-
"multipolygon_c": {"wkb":"AQYAAAACAAAAAQMAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAQMAAAABAAAABQAAAAAAAAAAABRAAAAAAAAAFEAAAAAAAAAcQAAAAAAAABRAAAAAAAAAHEAAAAAAAAAcQAAAAAAAABRAAAAAAAAAHEAAAAAAAAAUQAAAAAAAABRA"},
62-
"geometrycollection_c": {"wkb":"AQcAAAADAAAAAQEAAAAAAAAAAAAkQAAAAAAAACRAAQEAAAAAAAAAAAA+QAAAAAAAAD5AAQIAAAACAAAAAAAAAAAALkAAAAAAAAAuQAAAAAAAADRAAAAAAAAANEA="}
55+
"point_c": {"x":1.0,"y":1.0,"wkb":"AQEAAAAAAAAAAADwPwAAAAAAAPA/","srid":null},
56+
"geometry_c":{"wkb":"AQMAAAABAAAABQAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/","srid":null},
57+
"linestring_c": {"wkb":"AQIAAAADAAAAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAABRA","srid":null},
58+
"polygon_c": {"wkb":"AQMAAAABAAAABQAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/","srid":null},
59+
"multipoint_c": {"wkb":"AQQAAAACAAAAAQEAAAAAAAAAAADwPwAAAAAAAPA/AQEAAAAAAAAAAAAAQAAAAAAAAABA","srid":null},
60+
"multiline_c": {"wkb":"AQUAAAACAAAAAQIAAAADAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAABAAAAAAAAAAEAAAAAAAAAIQAAAAAAAAAhAAQIAAAACAAAAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAFEA=","srid":null},
61+
"multipolygon_c": {"wkb":"AQYAAAACAAAAAQMAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAQMAAAABAAAABQAAAAAAAAAAABRAAAAAAAAAFEAAAAAAAAAcQAAAAAAAABRAAAAAAAAAHEAAAAAAAAAcQAAAAAAAABRAAAAAAAAAHEAAAAAAAAAUQAAAAAAAABRA","srid":null},
62+
"geometrycollection_c": {"wkb":"AQcAAAADAAAAAQEAAAAAAAAAAAAkQAAAAAAAACRAAQEAAAAAAAAAAAA+QAAAAAAAAD5AAQIAAAACAAAAAAAAAAAALkAAAAAAAAAuQAAAAAAAADRAAAAAAAAANEA=","srid":null}
6363
},
6464
"op": "r",
6565
"transaction": null
@@ -116,14 +116,14 @@
116116
"enum_c": "red",
117117
"set_c": "a,b",
118118
"json_c": "{\"key1\":\"value1\"}",
119-
"point_c": {"x":1.0,"y":1.0,"wkb":"AQEAAAAAAAAAAADwPwAAAAAAAPA/"},
120-
"geometry_c":{"wkb":"AQMAAAABAAAABQAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/"},
121-
"linestring_c": {"wkb":"AQIAAAADAAAAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAABRA"},
122-
"polygon_c": {"wkb":"AQMAAAABAAAABQAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/"},
123-
"multipoint_c": {"wkb":"AQQAAAACAAAAAQEAAAAAAAAAAADwPwAAAAAAAPA/AQEAAAAAAAAAAAAAQAAAAAAAAABA"},
124-
"multiline_c": {"wkb":"AQUAAAACAAAAAQIAAAADAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAABAAAAAAAAAAEAAAAAAAAAIQAAAAAAAAAhAAQIAAAACAAAAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAFEA="},
125-
"multipolygon_c": {"wkb":"AQYAAAACAAAAAQMAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAQMAAAABAAAABQAAAAAAAAAAABRAAAAAAAAAFEAAAAAAAAAcQAAAAAAAABRAAAAAAAAAHEAAAAAAAAAcQAAAAAAAABRAAAAAAAAAHEAAAAAAAAAUQAAAAAAAABRA"},
126-
"geometrycollection_c": {"wkb":"AQcAAAADAAAAAQEAAAAAAAAAAAAkQAAAAAAAACRAAQEAAAAAAAAAAAA+QAAAAAAAAD5AAQIAAAACAAAAAAAAAAAALkAAAAAAAAAuQAAAAAAAADRAAAAAAAAANEA="}
119+
"point_c": {"x":1.0,"y":1.0,"wkb":"AQEAAAAAAAAAAADwPwAAAAAAAPA/","srid":null},
120+
"geometry_c":{"wkb":"AQMAAAABAAAABQAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/","srid":null},
121+
"linestring_c": {"wkb":"AQIAAAADAAAAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAABRA","srid":null},
122+
"polygon_c": {"wkb":"AQMAAAABAAAABQAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/","srid":null},
123+
"multipoint_c": {"wkb":"AQQAAAACAAAAAQEAAAAAAAAAAADwPwAAAAAAAPA/AQEAAAAAAAAAAAAAQAAAAAAAAABA","srid":null},
124+
"multiline_c": {"wkb":"AQUAAAACAAAAAQIAAAADAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAABAAAAAAAAAAEAAAAAAAAAIQAAAAAAAAAhAAQIAAAACAAAAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAFEA=","srid":null},
125+
"multipolygon_c": {"wkb":"AQYAAAACAAAAAQMAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAQMAAAABAAAABQAAAAAAAAAAABRAAAAAAAAAFEAAAAAAAAAcQAAAAAAAABRAAAAAAAAAHEAAAAAAAAAcQAAAAAAAABRAAAAAAAAAHEAAAAAAAAAUQAAAAAAAABRA","srid":null},
126+
"geometrycollection_c": {"wkb":"AQcAAAADAAAAAQEAAAAAAAAAAAAkQAAAAAAAACRAAQEAAAAAAAAAAAA+QAAAAAAAAD5AAQIAAAACAAAAAAAAAAAALkAAAAAAAAAuQAAAAAAAADRAAAAAAAAANEA=","srid":null}
127127
},
128128
"after": {
129129
"id": 1,
@@ -176,14 +176,14 @@
176176
"enum_c": "red",
177177
"set_c": "a,b",
178178
"json_c": "{\"key1\":\"value1\"}",
179-
"point_c": {"x":1.0,"y":1.0,"wkb":"AQEAAAAAAAAAAADwPwAAAAAAAPA/"},
180-
"geometry_c":{"wkb":"AQMAAAABAAAABQAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/"},
181-
"linestring_c": {"wkb":"AQIAAAADAAAAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAABRA"},
182-
"polygon_c": {"wkb":"AQMAAAABAAAABQAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/"},
183-
"multipoint_c": {"wkb":"AQQAAAACAAAAAQEAAAAAAAAAAADwPwAAAAAAAPA/AQEAAAAAAAAAAAAAQAAAAAAAAABA"},
184-
"multiline_c": {"wkb":"AQUAAAACAAAAAQIAAAADAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAABAAAAAAAAAAEAAAAAAAAAIQAAAAAAAAAhAAQIAAAACAAAAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAFEA="},
185-
"multipolygon_c": {"wkb":"AQYAAAACAAAAAQMAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAQMAAAABAAAABQAAAAAAAAAAABRAAAAAAAAAFEAAAAAAAAAcQAAAAAAAABRAAAAAAAAAHEAAAAAAAAAcQAAAAAAAABRAAAAAAAAAHEAAAAAAAAAUQAAAAAAAABRA"},
186-
"geometrycollection_c": {"wkb":"AQcAAAADAAAAAQEAAAAAAAAAAAAkQAAAAAAAACRAAQEAAAAAAAAAAAA+QAAAAAAAAD5AAQIAAAACAAAAAAAAAAAALkAAAAAAAAAuQAAAAAAAADRAAAAAAAAANEA="}
179+
"point_c": {"x":1.0,"y":1.0,"wkb":"AQEAAAAAAAAAAADwPwAAAAAAAPA/","srid":null},
180+
"geometry_c":{"wkb":"AQMAAAABAAAABQAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/","srid":null},
181+
"linestring_c": {"wkb":"AQIAAAADAAAAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAABRA","srid":null},
182+
"polygon_c": {"wkb":"AQMAAAABAAAABQAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/","srid":null},
183+
"multipoint_c": {"wkb":"AQQAAAACAAAAAQEAAAAAAAAAAADwPwAAAAAAAPA/AQEAAAAAAAAAAAAAQAAAAAAAAABA","srid":null},
184+
"multiline_c": {"wkb":"AQUAAAACAAAAAQIAAAADAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAABAAAAAAAAAAEAAAAAAAAAIQAAAAAAAAAhAAQIAAAACAAAAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAFEA=","srid":null},
185+
"multipolygon_c": {"wkb":"AQYAAAACAAAAAQMAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAQMAAAABAAAABQAAAAAAAAAAABRAAAAAAAAAFEAAAAAAAAAcQAAAAAAAABRAAAAAAAAAHEAAAAAAAAAcQAAAAAAAABRAAAAAAAAAHEAAAAAAAAAUQAAAAAAAABRA","srid":null},
186+
"geometrycollection_c": {"wkb":"AQcAAAADAAAAAQEAAAAAAAAAAAAkQAAAAAAAACRAAQEAAAAAAAAAAAA+QAAAAAAAAD5AAQIAAAACAAAAAAAAAAAALkAAAAAAAAAuQAAAAAAAADRAAAAAAAAANEA=","srid":null}
187187
},
188188
"op": "u",
189189
"transaction": null

0 commit comments

Comments
 (0)