From db93a0eb0d7b096613af97ea7daad37116419b04 Mon Sep 17 00:00:00 2001
From: FuYouJ <1247908487@qq.com>
Date: Mon, 14 Aug 2023 20:20:32 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8A=A5=E9=94=99=E4=B8=BA?=
=?UTF-8?q?=E8=8B=B1=E6=96=87=E6=8F=8F=E8=BF=B0=EF=BC=8C=E6=9B=B4=E6=96=B0?=
=?UTF-8?q?=E5=BC=80=E5=8F=91=E8=80=85=E6=96=87=E6=A1=A3=E5=BB=BA=E8=AE=AE?=
=?UTF-8?q?=E7=BC=96=E5=86=99=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
更新报错为英文描述,更新开发者文档建议编写测试用例
---
.../example/util/ExampleConfigParser.java | 9 +++++----
.../alibaba/datax/example/util/PathUtil.java | 3 ++-
.../datax/example/DataXExampleTest.java | 16 ----------------
.../StreamReader2StreamWriterTest.java | 19 +++++++++++++++++++
.../job/{ => stream}/stream2stream.json | 0
dataxPluginDev.md | 4 ++++
6 files changed, 30 insertions(+), 21 deletions(-)
delete mode 100644 datax-example/src/test/java/com/alibaba/datax/example/DataXExampleTest.java
create mode 100644 datax-example/src/test/java/com/alibaba/datax/example/streamreader/StreamReader2StreamWriterTest.java
rename datax-example/src/test/resources/job/{ => stream}/stream2stream.json (100%)
diff --git a/datax-example/src/main/java/com/alibaba/datax/example/util/ExampleConfigParser.java b/datax-example/src/main/java/com/alibaba/datax/example/util/ExampleConfigParser.java
index aaf4155c..7a24aaf4 100644
--- a/datax-example/src/main/java/com/alibaba/datax/example/util/ExampleConfigParser.java
+++ b/datax-example/src/main/java/com/alibaba/datax/example/util/ExampleConfigParser.java
@@ -55,16 +55,17 @@ public class ExampleConfigParser {
}
if (!pluginTypeMap.isEmpty()) {
String failedPlugin = pluginTypeMap.keySet().toString();
- String message = "\n插件%s加载失败:尝试从以下方面分析原因。\n" +
- "1: 检查插件的名字是否书写正确\n" +
- "2:相关插件的pom文件的下是否已经添加了 \n" +
+ String message = "\nplugin %s load failed :ry to analyze the reasons from the following aspects.。\n" +
+ "1: Check if the name of the plugin is spelled correctly, and verify whether DataX supports this plugin\n" +
+ "2:Verify if the tag has been added under section in the pom file of the relevant plugin.\n" +
" src/main/resources\n" +
" \n" +
" **/*.*\n" +
" \n" +
" true\n" +
" \n [可参阅streamreader pom文件] \n" +
- "3:如果你是以datax-example为启动模块,example模块是否导入了插件的依赖。参开example的pom文件";
+ "3:If you are using 'datax-example' as the startup module, " +
+ "check whether the 'example' module has imported the dependencies of the plugin. Refer to the 'pom' file of the 'example' module";
message = String.format(message, failedPlugin);
throw DataXException.asDataXException(FrameworkErrorCode.PLUGIN_INIT_ERROR, message);
}
diff --git a/datax-example/src/main/java/com/alibaba/datax/example/util/PathUtil.java b/datax-example/src/main/java/com/alibaba/datax/example/util/PathUtil.java
index 7efacd88..e197fa73 100644
--- a/datax-example/src/main/java/com/alibaba/datax/example/util/PathUtil.java
+++ b/datax-example/src/main/java/com/alibaba/datax/example/util/PathUtil.java
@@ -15,10 +15,11 @@ public class PathUtil {
public static String getAbsolutePathFromClassPath(String path) {
URL resource = PathUtil.class.getResource(path);
try {
+ assert resource != null;
URI uri = resource.toURI();
return Paths.get(uri).toString();
} catch (NullPointerException | URISyntaxException e) {
- throw DataXException.asDataXException("path 路径错误");
+ throw DataXException.asDataXException("path error,please check whether the path is correct");
}
}
diff --git a/datax-example/src/test/java/com/alibaba/datax/example/DataXExampleTest.java b/datax-example/src/test/java/com/alibaba/datax/example/DataXExampleTest.java
deleted file mode 100644
index c2f600cd..00000000
--- a/datax-example/src/test/java/com/alibaba/datax/example/DataXExampleTest.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.alibaba.datax.example;
-
-
-import com.alibaba.datax.example.util.PathUtil;
-import org.junit.Test;
-
-
-public class DataXExampleTest {
-
- @Test
- public void testStreamReader2StreamWriter() {
- String path = "/job/stream2stream.json";
- String jobPath = PathUtil.getAbsolutePathFromClassPath(path);
- ExampleContainer.start(jobPath);
- }
-}
diff --git a/datax-example/src/test/java/com/alibaba/datax/example/streamreader/StreamReader2StreamWriterTest.java b/datax-example/src/test/java/com/alibaba/datax/example/streamreader/StreamReader2StreamWriterTest.java
new file mode 100644
index 00000000..8081677e
--- /dev/null
+++ b/datax-example/src/test/java/com/alibaba/datax/example/streamreader/StreamReader2StreamWriterTest.java
@@ -0,0 +1,19 @@
+package com.alibaba.datax.example.streamreader;
+
+import com.alibaba.datax.example.ExampleContainer;
+import com.alibaba.datax.example.util.PathUtil;
+import org.junit.Test;
+
+/**
+ * {@code Author} FuYouJ
+ * {@code Date} 2023/8/14 20:16
+ */
+
+public class StreamReader2StreamWriterTest {
+ @Test
+ public void testStreamReader2StreamWriter() {
+ String path = "/job/stream/stream2stream.json";
+ String jobPath = PathUtil.getAbsolutePathFromClassPath(path);
+ ExampleContainer.start(jobPath);
+ }
+}
diff --git a/datax-example/src/test/resources/job/stream2stream.json b/datax-example/src/test/resources/job/stream/stream2stream.json
similarity index 100%
rename from datax-example/src/test/resources/job/stream2stream.json
rename to datax-example/src/test/resources/job/stream/stream2stream.json
diff --git a/dataxPluginDev.md b/dataxPluginDev.md
index 4483f270..98aa41a3 100644
--- a/dataxPluginDev.md
+++ b/dataxPluginDev.md
@@ -447,6 +447,10 @@ DataX的内部类型在实现上会选用不同的java类型:
3. 用户在插件中在`reader`/`writer`配置的`name`字段指定插件名字。框架根据插件的类型(`reader`/`writer`)和插件名称去插件的路径下扫描所有的jar,加入`classpath`。
4. 根据插件配置中定义的入口类,框架通过反射实例化对应的`Job`和`Task`对象。
+### 编写测试用例
+1. 你可以在你的插件模块引入datax-example模块,调用`ExampleContainer.start(jobPath)`方法来检测你的代码逻辑是否正确。[datax-example使用](https://github.com/alibaba/DataX/datax-example/doc/README.md)
+2. 你可以在datax-example模块引入你的插件模块,编写测试方法调用`ExampleContainer.start(jobPath)`方法来检测你的代码逻辑是否正确。[datax-example使用](https://github.com/alibaba/DataX/datax-example/doc/README.md)
+
## 三、Last but not Least