From a6504412cf9db6f2281c4d8a4424ea1e6c9b0fc3 Mon Sep 17 00:00:00 2001 From: xiangzihao <460888207@qq.com> Date: Tue, 6 Aug 2024 23:39:30 +0800 Subject: [PATCH] [DSIP-60][Http task plugin] Refactor http task plugin (#16413) --- docs/docs/en/guide/task/http.md | 22 +- docs/docs/zh/guide/task/http.md | 25 +- docs/img/tasks/demo/http_post.png | Bin 0 -> 153435 bytes docs/img/tasks/demo/http_task01.png | Bin 208489 -> 0 bytes docs/img/tasks/icons/http.png | Bin 707 -> 0 bytes docs/img/tasks/icons/http_get.png | Bin 0 -> 169513 bytes .../api/test/utils/RequestClient.java | 13 +- .../api/controller/LoginController.java | 28 +- .../api/controller/LoginControllerTest.java | 40 -- dolphinscheduler-bom/pom.xml | 2 +- .../common/constants/Constants.java | 7 +- .../common/enums/HttpCheckCondition.java | 31 -- .../common/enums/HttpMethod.java | 32 -- .../common/enums/HttpParametersType.java | 30 -- .../model/OkHttpRequestHeaderContentType.java | 42 ++ .../common/model/OkHttpRequestHeaders.java | 32 ++ .../common/model/OkHttpResponse.java | 34 ++ .../common/utils/OkHttpUtils.java | 150 +++++-- dolphinscheduler-dist/release-docs/LICENSE | 6 +- .../release-docs/licenses/LICENSE-okhttp.txt | 202 --------- .../template/TemplateMethodTransformer.java | 31 -- .../BaseHttpTemplateLoopTaskExecutor.java | 57 --- .../template/http/HttpLoopTaskDefinition.java | 65 --- .../http/HttpLoopTaskInstanceInfo.java | 31 -- .../http/HttpLoopTaskInstanceStatus.java | 35 -- .../http/HttpLoopTaskMethodDefinition.java | 44 -- ...ttpLoopTaskCancelTaskMethodDefinition.java | 81 ---- ...tpLoopTaskQueryStatusMethodDefinition.java | 88 ---- ...ttpLoopTaskSubmitTaskMethodDefinition.java | 76 ---- .../CancelTemplateMethodTransformer.java | 47 --- .../http/parser/HttpTaskDefinitionParser.java | 89 ---- .../QueryStateTemplateMethodTransformer.java | 49 --- .../SubmitTemplateMethodTransformer.java | 49 --- .../parser/HttpTaskDefinitionParserTest.java | 66 --- .../{HttpMethod.java => HttpConstants.java} | 20 +- .../plugin/task/http/HttpParameters.java | 113 +---- .../plugin/task/http/HttpParametersType.java | 7 +- .../plugin/task/http/HttpProperty.java | 84 +--- ...kConstants.java => HttpRequestMethod.java} | 8 +- .../plugin/task/http/HttpTask.java | 392 +++++++----------- .../plugin/task/http/HttpParametersTest.java | 15 +- .../plugin/task/http/HttpTaskTest.java | 114 ++--- .../src/locales/en_US/project.ts | 4 +- .../src/locales/zh_CN/project.ts | 3 +- .../task/components/node/fields/use-http.ts | 95 +++-- tools/dependencies/known-dependencies.txt | 5 +- 46 files changed, 585 insertions(+), 1779 deletions(-) create mode 100644 docs/img/tasks/demo/http_post.png delete mode 100644 docs/img/tasks/demo/http_task01.png delete mode 100644 docs/img/tasks/icons/http.png create mode 100644 docs/img/tasks/icons/http_get.png delete mode 100644 dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/HttpCheckCondition.java delete mode 100644 dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/HttpMethod.java delete mode 100644 dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/HttpParametersType.java create mode 100644 dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/OkHttpRequestHeaderContentType.java create mode 100644 dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/OkHttpRequestHeaders.java create mode 100644 dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/OkHttpResponse.java delete mode 100644 dolphinscheduler-dist/release-docs/licenses/LICENSE-okhttp.txt delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/TemplateMethodTransformer.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/BaseHttpTemplateLoopTaskExecutor.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskDefinition.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskInstanceInfo.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskInstanceStatus.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskMethodDefinition.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/method/HttpLoopTaskCancelTaskMethodDefinition.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/method/HttpLoopTaskQueryStatusMethodDefinition.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/method/HttpLoopTaskSubmitTaskMethodDefinition.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/CancelTemplateMethodTransformer.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/HttpTaskDefinitionParser.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/QueryStateTemplateMethodTransformer.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/SubmitTemplateMethodTransformer.java delete mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/test/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/HttpTaskDefinitionParserTest.java rename dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/{HttpMethod.java => HttpConstants.java} (80%) rename dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/{HttpTaskConstants.java => HttpRequestMethod.java} (89%) diff --git a/docs/docs/en/guide/task/http.md b/docs/docs/en/guide/task/http.md index d0af16eaf6..38f3cae277 100644 --- a/docs/docs/en/guide/task/http.md +++ b/docs/docs/en/guide/task/http.md @@ -2,12 +2,12 @@ ## Overview -This node is used to perform http type tasks such as the common POST and GET request types, and also supports http request validation and other functions. +This node is used to perform http type tasks and also supports http request validation and other functions. ## Create Task - Click `Project Management -> Project Name -> Workflow Definition`, and click the `Create Workflow` button to enter the DAG editing page. -- Drag the from the toolbar to the drawing board. +- Drag the from the toolbar to the drawing board. ## Task Parameters @@ -19,7 +19,7 @@ This node is used to perform http type tasks such as the common POST and GET req | **Parameter** | **Description** | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| | Request address | HTTP request URL. | -| Request type | Supports GET, POST, HEAD, PUT, DELETE. | +| Request type | Supports GET, POST, PUT, DELETE | | Request parameters | Supports Parameter, Body, Headers. | | Verification conditions | Supports default response code, custom response code, content included, content not included. | | Verification content | When the verification condition selects a custom response code, the content contains, and the content does not contain, the verification content is required. | @@ -37,14 +37,16 @@ For example, if the current task1 is a http task, the downstream task can use `$ ## Example -HTTP defines the different methods of interacting with the server, the most basic methods are GET, POST, PUT and DELETE. Here we use the http task node to demonstrate the use of POST to send a request to the system's login page to submit data. +HTTP defines the different methods of interacting with the server, the most basic methods are GET, POST, PUT, DELETE. Here we use the http task node to demonstrate the use of POST to send a request to the system's login page to submit data. -The main configuration parameters are as follows: +The main configuration parameters are as follows(All parameters can be replaced by built-in parameters): - URL: Address to access the target resource. Here is the system's login page. -- HTTP Parameters: - - userName: Username - - userPassword: User login password - -![http_task](../../../../img/tasks/demo/http_task01.png) +- Request type: GET, POST, PUT, DELETE +- Headers: Request header information, currently only supports application/json, application/x-www-form-urlencoded format. If other formats are entered, the application/json format will be used by default. +- HTTP Parameters: GET, DELETE request parameters. +- HTTP Body: POST, PUT request parameters. +- Verification conditions: Default response code 200, custom response code, content included, content not included. +- Verification content: When the verification condition is custom response code, content included, content not included, the verification content is required, and the verification content is a fuzzy match. +![http_task](../../../../img/tasks/demo/http_post.png) diff --git a/docs/docs/zh/guide/task/http.md b/docs/docs/zh/guide/task/http.md index 78b1231df0..d95673717d 100644 --- a/docs/docs/zh/guide/task/http.md +++ b/docs/docs/zh/guide/task/http.md @@ -2,13 +2,13 @@ ## 综述 -该节点用于执行 http 类型的任务,例如常见的 POST、GET 等请求类型,此外还支持 http 请求校验等功能。 +该节点用于执行 http 类型的任务,此外还支持 http 请求校验等功能。 ## 创建任务 - 点击项目管理 -> 项目名称 -> 工作流定义,点击”创建工作流”按钮,进入 DAG 编辑页面: -- 拖动工具栏的 任务节点到画板中。 +- 拖动工具栏的 任务节点到画板中。 ## 任务参数 @@ -20,7 +20,7 @@ | **任务参数** | **描述** | |----------|-------------------------------------| | 请求地址 | http 请求 URL | -| 请求类型 | 支持 GET、POST、HEAD、PUT、DELETE | +| 请求类型 | 支持 GET、POST、PUT、DELETE | | 请求参数 | 支持 Parameter、Body、Headers | | 校验条件 | 支持默认响应码、自定义响应码、内容包含、内容不包含 | | 校验内容 | 当校验条件选择自定义响应码、内容包含、内容不包含时,需填写校验内容 | @@ -38,17 +38,16 @@ ## 任务样例 -HTTP 定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。这里我们使用 http 任务节点,演示使用 POST 向系统的登录页面发送请求,提交数据。 +HTTP 定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST, PUT, DELETE。这里我们使用 http 任务节点,演示使用 POST 向系统的登录页面发送请求,提交数据。 -主要配置参数如下: +主要配置参数如下(以下参数均可通过内置参数替换): - URL:访问目标资源的地址,这里为系统的登录页面。 -- HTTP Parameters - - userName:用户名; - - userPassword:用户登录密码。 +- 请求类型:GET、POST、PUT、DELETE +- Headers: 请求头信息,当前仅支持 application/json、application/x-www-form-urlencoded 格式,如输入其他格式默认会使用 application/json 格式。 +- HTTP Parameters(GET、DELETE请求参数) +- HTTP Body(POST、PUT请求参数) +- 校验条件:默认响应码200、自定义响应码、内容包含、内容不包含 +- 校验内容:校验条件为自定义响应码、内容包含、内容不包含时,需填写校验内容,校验内容为模糊匹配 -![http_task](../../../../img/tasks/demo/http_task01.png) - -## 注意事项 - -无。 +![http_task](../../../../img/tasks/demo/http_post.png) diff --git a/docs/img/tasks/demo/http_post.png b/docs/img/tasks/demo/http_post.png new file mode 100644 index 0000000000000000000000000000000000000000..684992b26c9c1b8dc51ae918fafc326214f04245 GIT binary patch literal 153435 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

wY#y9vbDmFZy_|ABYjyw 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

v3`C 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 diff --git a/docs/img/tasks/icons/http.png b/docs/img/tasks/icons/http.png deleted file mode 100644 index 1d80cd08d0d8100064d838ff13b4f9470f41f84b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmeAS@N?(olHy`uVBq!ia0vp^DnP8p!3-p4i=A8uq!^2X+?^QKos)S9WU~hNgt!6) z|NsBLfB*jZ^XIQxwQBC%xl5KTnK^UjoH=tAE?fv?%$_|P!kss7-mF=(fZ`Alph_SE zC;|i!21Fbp0wjUD;8JidL=a9w7;r7f3`{AY2pqr-gfM{Oa1k^$m{Mq3fC@4W{uTiS zL|93XUoZnB3kN4JAHR^Wh`6MRmbQ+bk%@(0SY&i^N@_-KaY<=iV^dpuXHQ@M#7UE< z&sem4-L~z!_8vNN^z69{*Kgjseecne7cXDEe)I1AhmW5=fBE|D=da&?{uZtBFariT zm#2$kh{frvmre#9au8{K__*cRf{x7#+(ZO(=eW;V+$78?uJZh^{Lx;;g_EZ3*x>cw zb^X3q?_TXYFh6Je#Vb#y)EfKMuIs;aUx9Ps=bzD=CW%{li|R%lV9R{evs~ixqSuFn zD`P(W2(-Dh$few?MQnM}?N^SQKd#?1i)E(q<-dU|n3uDGjhJuqK0Z(5%;0|Ui(mnm^#=bX;e14ZI zIH;UF;U`;ldg0@FyoWpFw(p(f`rrDijiXYC7L&&M-`v;A+V)M0|2b{PGd})FXM&Ae wj`Xe-<+)qnZ2$QC-B{zDdzRf{`By&Qep>(4UolhafZ@*I>FVdQ&MBb@0KTAa82|tP diff --git a/docs/img/tasks/icons/http_get.png b/docs/img/tasks/icons/http_get.png new file mode 100644 index 0000000000000000000000000000000000000000..25e58899d6333d13e3d911004d80dfe119fe6a78 GIT binary patch literal 169513 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 params) { StringBuilder sb = new StringBuilder(Constants.QUESTION_MARK); - if (params.size() > 0) { + if (!params.isEmpty()) { for (Map.Entry item : params.entrySet()) { Object value = item.getValue(); if (Objects.nonNull(value)) { @@ -116,7 +116,7 @@ public class RequestClient { String requestUrl = String.format("%s%s", Constants.DOLPHINSCHEDULER_API_URL, url); headers.put("Content-Type", Constants.REQUEST_CONTENT_TYPE); Headers headersBuilder = Headers.of(headers); - RequestBody requestBody = FormBody.create(MediaType.parse(Constants.REQUEST_CONTENT_TYPE), getParams(params)); + RequestBody requestBody = FormBody.create(getParams(params), MediaType.parse(Constants.REQUEST_CONTENT_TYPE)); log.info("POST request to {}, Headers: {}, Params: {}", requestUrl, headersBuilder, params); Request request = new Request.Builder() .headers(headersBuilder) @@ -147,7 +147,7 @@ public class RequestClient { String requestUrl = String.format("%s%s", Constants.DOLPHINSCHEDULER_API_URL, url); headers.put("Content-Type", Constants.REQUEST_CONTENT_TYPE); Headers headersBuilder = Headers.of(headers); - RequestBody requestBody = FormBody.create(MediaType.parse(Constants.REQUEST_CONTENT_TYPE), getParams(params)); + RequestBody requestBody = FormBody.create(getParams(params), MediaType.parse(Constants.REQUEST_CONTENT_TYPE)); log.info("PUT request to {}, Headers: {}, Params: {}", requestUrl, headersBuilder, params); Request request = new Request.Builder() .headers(headersBuilder) @@ -177,7 +177,7 @@ public class RequestClient { builder.addTextBody("json", getParams(params), ContentType.MULTIPART_FORM_DATA); builder.addBinaryBody( "file", - new FileInputStream(file), + Files.newInputStream(file.toPath()), ContentType.APPLICATION_OCTET_STREAM, file.getName()); HttpEntity multipart = builder.build(); @@ -189,8 +189,7 @@ public class RequestClient { } httpPost.setEntity(multipart); CloseableHttpClient client = HttpClients.createDefault(); - CloseableHttpResponse response = client.execute(httpPost); - return response; + return client.execute(httpPost); } catch (Exception e) { log.error("error", e); } diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/LoginController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/LoginController.java index 541296990f..5e69c35722 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/LoginController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/LoginController.java @@ -32,6 +32,8 @@ import org.apache.dolphinscheduler.api.service.UsersService; import org.apache.dolphinscheduler.api.utils.Result; import org.apache.dolphinscheduler.common.constants.Constants; import org.apache.dolphinscheduler.common.enums.UserType; +import org.apache.dolphinscheduler.common.model.OkHttpRequestHeaderContentType; +import org.apache.dolphinscheduler.common.model.OkHttpRequestHeaders; import org.apache.dolphinscheduler.common.utils.JSONUtils; import org.apache.dolphinscheduler.common.utils.OkHttpUtils; import org.apache.dolphinscheduler.dao.entity.Session; @@ -95,10 +97,10 @@ public class LoginController extends BaseController { /** * login * - * @param userName user name + * @param userName user name * @param userPassword user password - * @param request request - * @param response response + * @param request request + * @param response response * @return login result */ @Operation(summary = "login", description = "LOGIN_NOTES") @@ -223,16 +225,28 @@ public class LoginController extends BaseController { requestParamsMap.put("grant_type", "authorization_code"); requestParamsMap.put("redirect_uri", String.format("%s?provider=%s", oAuth2ClientProperties.getRedirectUri(), provider)); - String tokenJsonStr = OkHttpUtils.post(oAuth2ClientProperties.getTokenUri(), tokenRequestHeader, - requestParamsMap, requestBody); + OkHttpRequestHeaders okHttpRequestHeadersPost = new OkHttpRequestHeaders(); + okHttpRequestHeadersPost.setHeaders(tokenRequestHeader); + okHttpRequestHeadersPost.setOkHttpRequestHeaderContentType(OkHttpRequestHeaderContentType.APPLICATION_JSON); + + String tokenJsonStr = OkHttpUtils.post(oAuth2ClientProperties.getTokenUri(), okHttpRequestHeadersPost, + requestParamsMap, requestBody, Constants.HTTP_CONNECT_TIMEOUT, Constants.HTTP_CONNECT_TIMEOUT, + Constants.HTTP_CONNECT_TIMEOUT).getBody(); String accessToken = JSONUtils.getNodeString(tokenJsonStr, "access_token"); Map userInfoRequestHeaders = new HashMap<>(); userInfoRequestHeaders.put("Accept", "application/json"); Map userInfoQueryMap = new HashMap<>(); userInfoQueryMap.put("access_token", accessToken); userInfoRequestHeaders.put("Authorization", "Bearer " + accessToken); - String userInfoJsonStr = - OkHttpUtils.get(oAuth2ClientProperties.getUserInfoUri(), userInfoRequestHeaders, userInfoQueryMap); + OkHttpRequestHeaders okHttpRequestHeadersGet = new OkHttpRequestHeaders(); + okHttpRequestHeadersGet.setHeaders(userInfoRequestHeaders); + + String userInfoJsonStr = OkHttpUtils.get(oAuth2ClientProperties.getUserInfoUri(), + okHttpRequestHeadersGet, + userInfoQueryMap, + Constants.HTTP_CONNECT_TIMEOUT, + Constants.HTTP_CONNECT_TIMEOUT, + Constants.HTTP_CONNECT_TIMEOUT).getBody(); String username = JSONUtils.getNodeString(userInfoJsonStr, "login"); User user = usersService.getUserByUserName(username); if (user == null) { diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/LoginControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/LoginControllerTest.java index 25a4518186..bad2825145 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/LoginControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/LoginControllerTest.java @@ -27,9 +27,6 @@ import org.apache.dolphinscheduler.api.enums.Status; import org.apache.dolphinscheduler.api.utils.Result; import org.apache.dolphinscheduler.common.constants.Constants; import org.apache.dolphinscheduler.common.utils.JSONUtils; -import org.apache.dolphinscheduler.common.utils.OkHttpUtils; - -import org.apache.http.HttpStatus; import java.util.Map; @@ -37,8 +34,6 @@ import javax.servlet.http.Cookie; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import org.mockito.MockedStatic; -import org.mockito.Mockito; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.MediaType; @@ -113,39 +108,4 @@ public class LoginControllerTest extends AbstractControllerTest { Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); Assertions.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue()); } - - @Test - void testOauth2Redirect() throws Exception { - String tokenResult = "{\"access_token\":\"test-token\"}"; - String userInfoResult = "{\"login\":\"username\"}"; - MockedStatic okHttpUtilsMockedStatic = Mockito.mockStatic(OkHttpUtils.class); - okHttpUtilsMockedStatic - .when(() -> OkHttpUtils.post(Mockito.notNull(), Mockito.any(), Mockito.any(), Mockito.any())) - .thenReturn(tokenResult); - okHttpUtilsMockedStatic.when(() -> OkHttpUtils.get(Mockito.notNull(), Mockito.any(), Mockito.any())) - .thenReturn(userInfoResult); - MvcResult mvcResult = mockMvc.perform(get("/redirect/login/oauth2?code=test&provider=github")) - .andExpect(status().is3xxRedirection()) - .andReturn(); - MockHttpServletResponse response = mvcResult.getResponse(); - Assertions.assertEquals(HttpStatus.SC_MOVED_TEMPORARILY, response.getStatus()); - String redirectedUrl = response.getRedirectedUrl(); - Assertions.assertTrue(redirectedUrl != null && redirectedUrl.contains("sessionId")); - okHttpUtilsMockedStatic.close(); - } - - @Test - void testOauth2RedirectError() throws Exception { - MockedStatic okHttpUtilsMockedStatic = Mockito.mockStatic(OkHttpUtils.class); - okHttpUtilsMockedStatic.when(() -> OkHttpUtils.post(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any())) - .thenThrow(new RuntimeException("oauth error")); - MvcResult mvcResult = mockMvc.perform(get("/redirect/login/oauth2?code=test&provider=github")) - .andExpect(status().is3xxRedirection()) - .andReturn(); - MockHttpServletResponse response = mvcResult.getResponse(); - Assertions.assertEquals(HttpStatus.SC_MOVED_TEMPORARILY, response.getStatus()); - String redirectedUrl = response.getRedirectedUrl(); - Assertions.assertTrue(redirectedUrl != null && redirectedUrl.contains("error")); - okHttpUtilsMockedStatic.close(); - } } diff --git a/dolphinscheduler-bom/pom.xml b/dolphinscheduler-bom/pom.xml index 4e02c347a3..b7efb4815c 100644 --- a/dolphinscheduler-bom/pom.xml +++ b/dolphinscheduler-bom/pom.xml @@ -89,7 +89,7 @@ 1.12.300 3.15.1 2.10.13 - 4.9.3 + 4.12.0 2.7.0 2021.0.3 2.9.1 diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/constants/Constants.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/constants/Constants.java index 03a00e67d2..79892d270e 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/constants/Constants.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/constants/Constants.java @@ -22,11 +22,10 @@ import org.apache.commons.lang3.SystemUtils; import java.time.Duration; import java.util.regex.Pattern; -public final class Constants { +import lombok.experimental.UtilityClass; - private Constants() { - throw new UnsupportedOperationException("Construct Constants"); - } +@UtilityClass +public final class Constants { public static final String AUTO_CLOSE_ALERT = "alert.auto-close"; diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/HttpCheckCondition.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/HttpCheckCondition.java deleted file mode 100644 index 91a9c14285..0000000000 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/HttpCheckCondition.java +++ /dev/null @@ -1,31 +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.dolphinscheduler.common.enums; - -/** - * http check condition - */ -public enum HttpCheckCondition { - /** - * 0 status_code_default:200 - * 1 status_code_custom - * 2 body_contains - * 3 body_not_contains - */ - STATUS_CODE_DEFAULT, STATUS_CODE_CUSTOM, BODY_CONTAINS, BODY_NOT_CONTAINS -} diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/HttpMethod.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/HttpMethod.java deleted file mode 100644 index 4c225ff2cd..0000000000 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/HttpMethod.java +++ /dev/null @@ -1,32 +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.dolphinscheduler.common.enums; - -/** - * http method - */ -public enum HttpMethod { - /** - * 0 get - * 1 post - * 2 head - * 3 put - * 4 delete - */ - GET, POST, HEAD, PUT, DELETE -} diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/HttpParametersType.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/HttpParametersType.java deleted file mode 100644 index 487ae651e9..0000000000 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/HttpParametersType.java +++ /dev/null @@ -1,30 +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.dolphinscheduler.common.enums; - -/** - * http parameters type - */ -public enum HttpParametersType { - /** - * 0 parameter; - * 1 body; - * 2 headers; - */ - PARAMETER, BODY, HEADERS -} diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/OkHttpRequestHeaderContentType.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/OkHttpRequestHeaderContentType.java new file mode 100644 index 0000000000..f3a84695b0 --- /dev/null +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/OkHttpRequestHeaderContentType.java @@ -0,0 +1,42 @@ +/* + * Licensed to 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. Apache Software Foundation (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.dolphinscheduler.common.model; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@Getter +@RequiredArgsConstructor +public enum OkHttpRequestHeaderContentType { + + APPLICATION_JSON("application/json"), + APPLICATION_FORM_URLENCODED("application/x-www-form-urlencoded"); + + private final String value; + + public static OkHttpRequestHeaderContentType fromValue(String value) { + for (OkHttpRequestHeaderContentType contentType : OkHttpRequestHeaderContentType.values()) { + if (contentType.getValue().equalsIgnoreCase(value)) { + return contentType; + } + } + return null; + } +} diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/OkHttpRequestHeaders.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/OkHttpRequestHeaders.java new file mode 100644 index 0000000000..66a9ae7ac6 --- /dev/null +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/OkHttpRequestHeaders.java @@ -0,0 +1,32 @@ +/* + * Licensed to 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. Apache Software Foundation (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.dolphinscheduler.common.model; + +import java.util.Map; + +import lombok.Data; + +@Data +public class OkHttpRequestHeaders { + + private Map headers; + + private OkHttpRequestHeaderContentType okHttpRequestHeaderContentType; +} diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/OkHttpResponse.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/OkHttpResponse.java new file mode 100644 index 0000000000..b102d2a13c --- /dev/null +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/OkHttpResponse.java @@ -0,0 +1,34 @@ +/* + * Licensed to 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. Apache Software Foundation (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.dolphinscheduler.common.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class OkHttpResponse { + + private int statusCode; + + private String body; +} diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OkHttpUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OkHttpUtils.java index ecae881b48..d942901974 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OkHttpUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OkHttpUtils.java @@ -17,6 +17,11 @@ package org.apache.dolphinscheduler.common.utils; +import org.apache.dolphinscheduler.common.constants.Constants; +import org.apache.dolphinscheduler.common.model.OkHttpRequestHeaderContentType; +import org.apache.dolphinscheduler.common.model.OkHttpRequestHeaders; +import org.apache.dolphinscheduler.common.model.OkHttpResponse; + import org.apache.http.HttpStatus; import java.io.IOException; @@ -35,37 +40,115 @@ import okhttp3.Response; public class OkHttpUtils { - private static final OkHttpClient CLIENT = new OkHttpClient.Builder() - .connectTimeout(5, TimeUnit.MINUTES) // connect timeout - .writeTimeout(5, TimeUnit.MINUTES) // write timeout - .readTimeout(5, TimeUnit.MINUTES) - .build(); + private static OkHttpClient CLIENT = new OkHttpClient(); - public static @NonNull String get(@NonNull String url, - @Nullable Map httpHeaders, - @Nullable Map requestParams) throws IOException { + /** + * http get request + * @param connectTimeout connect timeout in milliseconds + * @param writeTimeout write timeout in milliseconds + * @param readTimeout read timeout in milliseconds + * @return OkHttpResponse + * @throws RuntimeException + */ + public static @NonNull OkHttpResponse get(@NonNull String url, + @Nullable OkHttpRequestHeaders okHttpRequestHeaders, + @Nullable Map requestParams, + int connectTimeout, + int writeTimeout, + int readTimeout) throws IOException { + OkHttpClient client = getHttpClient(connectTimeout, writeTimeout, readTimeout); String finalUrl = addUrlParams(requestParams, url); Request.Builder requestBuilder = new Request.Builder().url(finalUrl); - addHeader(httpHeaders, requestBuilder); + addHeader(okHttpRequestHeaders.getHeaders(), requestBuilder); Request request = requestBuilder.build(); - try (Response response = CLIENT.newCall(request).execute()) { - return getResponseBody(response); + try (Response response = client.newCall(request).execute()) { + return new OkHttpResponse(response.code(), getResponseBody(response)); + } catch (Exception e) { + throw new RuntimeException(String.format("Get request execute failed, url: %s", url), e); } } - public static @NonNull String post(@NonNull String url, - @Nullable Map httpHeaders, - @Nullable Map requestParamsMap, - @Nullable Map requestBodyMap) throws IOException { + /** + * http post request + * @param connectTimeout connect timeout in milliseconds + * @param writeTimeout write timeout in milliseconds + * @param readTimeout read timeout in milliseconds + * @return OkHttpResponse + * @throws RuntimeException + */ + public static @NonNull OkHttpResponse post(@NonNull String url, + @Nullable OkHttpRequestHeaders okHttpRequestHeaders, + @Nullable Map requestParamsMap, + @Nullable Map requestBodyMap, + int connectTimeout, + int writeTimeout, + int readTimeout) throws IOException { + OkHttpClient client = getHttpClient(connectTimeout, writeTimeout, readTimeout); String finalUrl = addUrlParams(requestParamsMap, url); Request.Builder requestBuilder = new Request.Builder().url(finalUrl); - addHeader(httpHeaders, requestBuilder); + addHeader(okHttpRequestHeaders.getHeaders(), requestBuilder); if (requestBodyMap != null) { - requestBuilder = requestBuilder.post(RequestBody.create(MediaType.parse("application/json"), - JSONUtils.toJsonString(requestBodyMap))); + requestBuilder = requestBuilder.post(RequestBody.create( + JSONUtils.toJsonString(requestBodyMap), + MediaType.parse(okHttpRequestHeaders.getOkHttpRequestHeaderContentType().getValue()))); } - try (Response response = CLIENT.newCall(requestBuilder.build()).execute()) { - return getResponseBody(response); + try (Response response = client.newCall(requestBuilder.build()).execute()) { + return new OkHttpResponse(response.code(), getResponseBody(response)); + } catch (Exception e) { + throw new RuntimeException(String.format("Post request execute failed, url: %s", url), e); + } + } + + /** + * http put request + * @param connectTimeout connect timeout in milliseconds + * @param writeTimeout write timeout in milliseconds + * @param readTimeout read timeout in milliseconds + * @return OkHttpResponse + * @throws RuntimeException + */ + public static @NonNull OkHttpResponse put(@NonNull String url, + @Nullable OkHttpRequestHeaders okHttpRequestHeaders, + @Nullable Map requestBodyMap, + int connectTimeout, + int writeTimeout, + int readTimeout) throws IOException { + OkHttpClient client = getHttpClient(connectTimeout, writeTimeout, readTimeout); + Request.Builder requestBuilder = new Request.Builder().url(url); + addHeader(okHttpRequestHeaders.getHeaders(), requestBuilder); + if (requestBodyMap != null) { + requestBuilder = requestBuilder.put(RequestBody.create( + JSONUtils.toJsonString(requestBodyMap), + MediaType.parse(okHttpRequestHeaders.getOkHttpRequestHeaderContentType().getValue()))); + } + try (Response response = client.newCall(requestBuilder.build()).execute()) { + return new OkHttpResponse(response.code(), getResponseBody(response)); + } catch (Exception e) { + throw new RuntimeException(String.format("Put request execute failed, url: %s", url), e); + } + } + + /** + * http delete request + * @param connectTimeout connect timeout in milliseconds + * @param writeTimeout write timeout in milliseconds + * @param readTimeout read timeout in milliseconds + * @return OkHttpResponse + * @throws RuntimeException + */ + public static @NonNull OkHttpResponse delete(@NonNull String url, + @Nullable OkHttpRequestHeaders okHttpRequestHeaders, + int connectTimeout, + int writeTimeout, + int readTimeout) throws IOException { + OkHttpClient client = getHttpClient(connectTimeout, writeTimeout, readTimeout); + Request.Builder requestBuilder = new Request.Builder().url(url); + addHeader(okHttpRequestHeaders.getHeaders(), requestBuilder); + requestBuilder = requestBuilder.delete(); + try (Response response = client.newCall(requestBuilder.build()).execute()) { + return new OkHttpResponse(response.code(), getResponseBody(response)); + } catch (Exception e) { + throw new RuntimeException(String.format("Delete request execute failed, url: %s", url), e); } } @@ -73,15 +156,16 @@ public class OkHttpUtils { @Nullable String token, @Nullable Map requestBodyMap) throws IOException { - StringBuffer stringBuffer = new StringBuffer(); + StringBuilder stringBuffer = new StringBuilder(); if (requestBodyMap != null) { for (String key : requestBodyMap.keySet()) { - stringBuffer.append(key + "=" + requestBodyMap.get(key) + "&"); + stringBuffer.append(key).append("=").append(requestBodyMap.get(key)).append("&"); } } RequestBody body = - RequestBody.create(MediaType.parse("application/x-www-form-urlencoded"), stringBuffer.toString()); + RequestBody.create(stringBuffer.toString(), + MediaType.parse(OkHttpRequestHeaderContentType.APPLICATION_FORM_URLENCODED.getValue())); Request request = new Request.Builder() .url(url) @@ -89,12 +173,14 @@ public class OkHttpUtils { .addHeader("accpect", "application/json") .post(body) .build(); - - try (Response response = CLIENT.newCall(request).execute()) { + OkHttpClient client = getHttpClient(Constants.HTTP_CONNECT_TIMEOUT, Constants.HTTP_CONNECT_TIMEOUT, + Constants.HTTP_CONNECT_TIMEOUT); + try (Response response = client.newCall(request).execute()) { return response.body().string(); } } + private static String addUrlParams(@Nullable Map requestParams, @NonNull String url) { if (requestParams == null) { return url; @@ -120,10 +206,20 @@ public class OkHttpUtils { private static String getResponseBody(@NonNull Response response) throws IOException { if (response.code() != HttpStatus.SC_OK || response.body() == null) { - throw new RuntimeException(String.format("Request execute failed, httpCode: %s, httpBody: %s", + return String.format("Request execute failed, httpCode: %s, httpBody: %s", response.code(), - response.body())); + response.body()); } return response.body().string(); } + + private static OkHttpClient getHttpClient(int connectTimeout, + int writeTimeout, + int readTimeout) { + return CLIENT.newBuilder() + .connectTimeout(connectTimeout, TimeUnit.MILLISECONDS) + .writeTimeout(writeTimeout, TimeUnit.MILLISECONDS) + .readTimeout(readTimeout, TimeUnit.MILLISECONDS) + .build(); + } } diff --git a/dolphinscheduler-dist/release-docs/LICENSE b/dolphinscheduler-dist/release-docs/LICENSE index 10e22e9b3f..a4cdfeadab 100644 --- a/dolphinscheduler-dist/release-docs/LICENSE +++ b/dolphinscheduler-dist/release-docs/LICENSE @@ -352,7 +352,7 @@ The text of each license is also included at licenses/LICENSE-[project].txt. netty 3.10.6.Final: https://github.com/netty/netty, Apache 2.0 netty 4.1.53.Final: https://github.com/netty/netty/blob/netty-4.1.53.Final/LICENSE.txt, Apache 2.0 nimbus-jose-jwt 9.8.1: https://mvnrepository.com/artifact/com.nimbusds/nimbus-jose-jwt/9.8.1, Apache 2.0 - okhttp 3.14.9: https://mvnrepository.com/artifact/com.squareup.okhttp/okhttp/3.14.9, Apache 2.0 + okhttp 4.12.0: https://mvnrepository.com/artifact/com.squareup.okhttp/okhttp/4.12.0, Apache 2.0 opencsv 2.3: https://mvnrepository.com/artifact/net.sf.opencsv/opencsv/2.3, Apache 2.0 parquet-hadoop-bundle 1.8.1: https://mvnrepository.com/artifact/org.apache.parquet/parquet-hadoop-bundle/1.8.1, Apache 2.0 poi 4.1.2: https://mvnrepository.com/artifact/org.apache.poi/poi/4.1.2, Apache 2.0 @@ -436,8 +436,8 @@ The text of each license is also included at licenses/LICENSE-[project].txt. zjsonpatch 0.3.0 https://mvnrepository.com/artifact/io.fabric8/zjsonpatch/0.3.0, Apache 2.0 jackson-dataformat-yaml 2.13.0 https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/2.13.0, Apache 2.0 logging-interceptor 4.9.3 https://mvnrepository.com/artifact/com.squareup.okhttp3/logging-interceptor/4.9.3, Apache 2.0 - okhttp 3.14.3 https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp/3.14.3, Apache 2.0 - okio 1.17.2 https://mvnrepository.com/artifact/com.squareup.okio/okio/1.17.2, Apache 2.0 + okio 3.6.0 https://mvnrepository.com/artifact/com.squareup.okio/okio/3.6.0, Apache 2.0 + okio-jvm 3.6.0 https://repo1.maven.org/maven2/com/squareup/okio/okio-jvm/3.6.0, Apache 2.0 hibernate-validator 6.2.2.Final https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator/6.2.2.Final, Apache 2.0 jakarta.validation-api 2.0.2 https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api/2.0.2, Apache 2.0 jboss-logging:jar 3.4.3.Final https://mvnrepository.com/artifact/org.jboss.logging/jboss-logging/3.4.3.Final, Apache 2.0 diff --git a/dolphinscheduler-dist/release-docs/licenses/LICENSE-okhttp.txt b/dolphinscheduler-dist/release-docs/licenses/LICENSE-okhttp.txt deleted file mode 100644 index d645695673..0000000000 --- a/dolphinscheduler-dist/release-docs/licenses/LICENSE-okhttp.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/TemplateMethodTransformer.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/TemplateMethodTransformer.java deleted file mode 100644 index 524362cc3c..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/TemplateMethodTransformer.java +++ /dev/null @@ -1,31 +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.dolphinscheduler.plugin.task.api.loop.template; - -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.HttpLoopTaskMethodDefinition; - -import lombok.NonNull; - -public interface TemplateMethodTransformer { - - /** - * Transform the {@link LoopTaskYamlDefinition.LoopTaskMethodYamlDefinition} to {@link HttpLoopTaskMethodDefinition}. - */ - @NonNull - MethodT transform(@NonNull YamlMethodT loopTaskAPIYamlDefinition); -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/BaseHttpTemplateLoopTaskExecutor.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/BaseHttpTemplateLoopTaskExecutor.java deleted file mode 100644 index de1d3ebe59..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/BaseHttpTemplateLoopTaskExecutor.java +++ /dev/null @@ -1,57 +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.dolphinscheduler.plugin.task.api.loop.template.http; - -import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext; -import org.apache.dolphinscheduler.plugin.task.api.loop.BaseLoopTaskExecutor; -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskInstanceInfo; -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskInstanceStatus; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.parser.HttpTaskDefinitionParser; - -import javax.annotation.Nullable; - -import lombok.NonNull; - -public abstract class BaseHttpTemplateLoopTaskExecutor extends BaseLoopTaskExecutor { - - private final HttpLoopTaskDefinition httpLoopTaskDefinition; - - public BaseHttpTemplateLoopTaskExecutor(@NonNull TaskExecutionContext taskExecutionContext, - @NonNull String taskDefinitionYamlFile) { - super(taskExecutionContext); - this.httpLoopTaskDefinition = new HttpTaskDefinitionParser().parse(taskDefinitionYamlFile); - } - - @Override - public @NonNull LoopTaskInstanceInfo submitLoopTask() { - return httpLoopTaskDefinition.getSubmitTaskMethod().submitLoopTask(); - } - - @Override - public @NonNull LoopTaskInstanceStatus queryTaskInstanceStatus(@NonNull LoopTaskInstanceInfo taskInstanceInfo) { - return httpLoopTaskDefinition.getQueryTaskStateMethod().queryTaskInstanceStatus(taskInstanceInfo); - } - - @Override - public void cancelLoopTaskInstance(@Nullable LoopTaskInstanceInfo taskInstanceInfo) { - if (taskInstanceInfo == null) { - return; - } - httpLoopTaskDefinition.getCancelTaskMethod().cancelTaskInstance(taskInstanceInfo); - } -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskDefinition.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskDefinition.java deleted file mode 100644 index 0f9b45f245..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskDefinition.java +++ /dev/null @@ -1,65 +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.dolphinscheduler.plugin.task.api.loop.template.http; - -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.method.HttpLoopTaskCancelTaskMethodDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.method.HttpLoopTaskQueryStatusMethodDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.method.HttpLoopTaskSubmitTaskMethodDefinition; - -import lombok.NonNull; - -public class HttpLoopTaskDefinition - implements - LoopTaskDefinition { - - private final String taskName; - private final HttpLoopTaskSubmitTaskMethodDefinition submitTaskMethod; - private final HttpLoopTaskQueryStatusMethodDefinition queryTaskStateMethod; - private final HttpLoopTaskCancelTaskMethodDefinition cancelTaskMethod; - - public HttpLoopTaskDefinition(@NonNull String taskName, - @NonNull HttpLoopTaskSubmitTaskMethodDefinition submitTaskMethod, - @NonNull HttpLoopTaskQueryStatusMethodDefinition queryTaskStateMethod, - @NonNull HttpLoopTaskCancelTaskMethodDefinition cancelTaskMethod) { - this.taskName = taskName; - this.submitTaskMethod = submitTaskMethod; - this.queryTaskStateMethod = queryTaskStateMethod; - this.cancelTaskMethod = cancelTaskMethod; - } - - @Override - public @NonNull String getTaskName() { - return taskName; - } - - @Override - public @NonNull HttpLoopTaskSubmitTaskMethodDefinition getSubmitTaskMethod() { - return submitTaskMethod; - } - - @Override - public @NonNull HttpLoopTaskQueryStatusMethodDefinition getQueryTaskStateMethod() { - return queryTaskStateMethod; - } - - @Override - public @NonNull HttpLoopTaskCancelTaskMethodDefinition getCancelTaskMethod() { - return cancelTaskMethod; - } -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskInstanceInfo.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskInstanceInfo.java deleted file mode 100644 index 66507a7131..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskInstanceInfo.java +++ /dev/null @@ -1,31 +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.dolphinscheduler.plugin.task.api.loop.template.http; - -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskInstanceInfo; - -import lombok.AllArgsConstructor; -import lombok.Data; - -@Data -@AllArgsConstructor -public class HttpLoopTaskInstanceInfo implements LoopTaskInstanceInfo { - - private final String taskInstanceId; - -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskInstanceStatus.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskInstanceStatus.java deleted file mode 100644 index 33381aa2d0..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskInstanceStatus.java +++ /dev/null @@ -1,35 +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.dolphinscheduler.plugin.task.api.loop.template.http; - -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskInstanceStatus; - -import lombok.AllArgsConstructor; -import lombok.Data; - -@Data -@AllArgsConstructor -public class HttpLoopTaskInstanceStatus implements LoopTaskInstanceStatus { - - private final boolean finished; - - @Override - public boolean isSuccess() { - return true; - } -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskMethodDefinition.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskMethodDefinition.java deleted file mode 100644 index 88c7de8f74..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/HttpLoopTaskMethodDefinition.java +++ /dev/null @@ -1,44 +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.dolphinscheduler.plugin.task.api.loop.template.http; - -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskMethodDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskMethodType; - -import java.util.Map; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NonNull; - -@Data -@AllArgsConstructor -public abstract class HttpLoopTaskMethodDefinition implements LoopTaskMethodDefinition { - - protected final String url; - protected final String httpMethodType; - protected final String dataType; - protected final Map httpHeaders; - protected final Map requestParams; - protected final Map requestBody; - - @Override - public @NonNull LoopTaskMethodType getLoopTaskMethodType() { - return LoopTaskMethodType.HTTP; - } -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/method/HttpLoopTaskCancelTaskMethodDefinition.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/method/HttpLoopTaskCancelTaskMethodDefinition.java deleted file mode 100644 index 31216b68eb..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/method/HttpLoopTaskCancelTaskMethodDefinition.java +++ /dev/null @@ -1,81 +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.dolphinscheduler.plugin.task.api.loop.template.http.method; - -import org.apache.dolphinscheduler.common.utils.OkHttpUtils; -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskCancelMethodDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskInstanceInfo; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.HttpLoopTaskMethodDefinition; - -import org.apache.commons.lang3.StringUtils; - -import java.util.Map; - -import javax.annotation.Nullable; - -public class HttpLoopTaskCancelTaskMethodDefinition extends HttpLoopTaskMethodDefinition - implements - LoopTaskCancelMethodDefinition { - - private final String taskInstanceIdHolder = "${taskInstanceId}"; - - public HttpLoopTaskCancelTaskMethodDefinition(String url, - String httpMethodType, - String dataType, - Map httpHeaders, - Map requestParams, - Map requestBody) { - super(url, httpMethodType, dataType, httpHeaders, requestParams, requestBody); - } - - @Override - public void cancelTaskInstance(@Nullable LoopTaskInstanceInfo loopTaskInstanceInfo) { - if (loopTaskInstanceInfo == null) { - return; - } - if (requestParams != null) { - for (Map.Entry entry : requestParams.entrySet()) { - if (StringUtils.equals(entry.getValue().toString(), taskInstanceIdHolder)) { - entry.setValue(loopTaskInstanceInfo.getTaskInstanceId()); - } - } - } - if (requestBody != null) { - for (Map.Entry entry : requestBody.entrySet()) { - if (StringUtils.equalsIgnoreCase(entry.getValue().toString(), taskInstanceIdHolder)) { - entry.setValue(loopTaskInstanceInfo.getTaskInstanceId()); - } - } - } - - try { - if (StringUtils.equalsIgnoreCase("get", httpMethodType)) { - OkHttpUtils.get(url, httpHeaders, requestParams); - } else if (StringUtils.equalsIgnoreCase("post", httpMethodType)) { - OkHttpUtils.post(url, httpHeaders, requestParams, requestBody); - } else { - throw new IllegalArgumentException(String.format("http method type: %s is not supported", - httpMethodType)); - } - } catch (IllegalArgumentException ex) { - throw ex; - } catch (Exception ex) { - throw new RuntimeException("Query loop task instance status failed", ex); - } - } -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/method/HttpLoopTaskQueryStatusMethodDefinition.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/method/HttpLoopTaskQueryStatusMethodDefinition.java deleted file mode 100644 index ce08f75633..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/method/HttpLoopTaskQueryStatusMethodDefinition.java +++ /dev/null @@ -1,88 +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.dolphinscheduler.plugin.task.api.loop.template.http.method; - -import org.apache.dolphinscheduler.common.utils.OkHttpUtils; -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskInstanceInfo; -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskInstanceStatus; -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskQueryStatusMethodDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.HttpLoopTaskInstanceStatus; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.HttpLoopTaskMethodDefinition; -import org.apache.dolphinscheduler.plugin.task.api.utils.JsonPathUtils; - -import org.apache.commons.lang3.StringUtils; - -import java.util.Map; - -import lombok.NonNull; - -public class HttpLoopTaskQueryStatusMethodDefinition extends HttpLoopTaskMethodDefinition - implements - LoopTaskQueryStatusMethodDefinition { - - private final String taskInstanceFinishedJPath; - // inject the taskInstanceId into template - private final String taskInstanceIdHolder = "${taskInstanceId}"; - - public HttpLoopTaskQueryStatusMethodDefinition(String url, - String httpMethodType, - String dataType, - Map httpHeaders, - Map requestParams, - Map requestBody, - String taskInstanceFinishedJPath) { - super(url, httpMethodType, dataType, httpHeaders, requestParams, requestBody); - this.taskInstanceFinishedJPath = taskInstanceFinishedJPath; - } - - @Override - public @NonNull LoopTaskInstanceStatus queryTaskInstanceStatus(@NonNull LoopTaskInstanceInfo loopTaskInstanceInfo) { - // set the loopTaskInstanceId to request params; - if (requestParams != null) { - for (Map.Entry entry : requestParams.entrySet()) { - if (StringUtils.equals(entry.getValue().toString(), taskInstanceIdHolder)) { - entry.setValue(loopTaskInstanceInfo.getTaskInstanceId()); - } - } - } - if (requestBody != null) { - for (Map.Entry entry : requestBody.entrySet()) { - if (StringUtils.equalsIgnoreCase(entry.getValue().toString(), taskInstanceIdHolder)) { - entry.setValue(loopTaskInstanceInfo.getTaskInstanceId()); - } - } - } - - String responseBody; - try { - if (StringUtils.equalsIgnoreCase("get", httpMethodType)) { - responseBody = OkHttpUtils.get(url, httpHeaders, requestParams); - } else if (StringUtils.equalsIgnoreCase("post", httpMethodType)) { - responseBody = OkHttpUtils.post(url, httpHeaders, requestParams, requestBody); - } else { - throw new IllegalArgumentException(String.format("http method type: %s is not supported", - httpMethodType)); - } - } catch (IllegalArgumentException ex) { - throw ex; - } catch (Exception ex) { - throw new RuntimeException("Query loop task instance status failed", ex); - } - return new HttpLoopTaskInstanceStatus(JsonPathUtils.exist(responseBody, taskInstanceFinishedJPath)); - } -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/method/HttpLoopTaskSubmitTaskMethodDefinition.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/method/HttpLoopTaskSubmitTaskMethodDefinition.java deleted file mode 100644 index 75893d41f2..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/method/HttpLoopTaskSubmitTaskMethodDefinition.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.dolphinscheduler.plugin.task.api.loop.template.http.method; - -import org.apache.dolphinscheduler.common.utils.OkHttpUtils; -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskInstanceInfo; -import org.apache.dolphinscheduler.plugin.task.api.loop.LoopTaskSubmitTaskMethodDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.HttpLoopTaskInstanceInfo; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.HttpLoopTaskMethodDefinition; -import org.apache.dolphinscheduler.plugin.task.api.utils.JsonPathUtils; - -import org.apache.commons.lang3.StringUtils; - -import java.util.Map; -import java.util.Optional; - -import lombok.NonNull; - -public class HttpLoopTaskSubmitTaskMethodDefinition extends HttpLoopTaskMethodDefinition - implements - LoopTaskSubmitTaskMethodDefinition { - - private final String taskInstanceIdJPath; - - public HttpLoopTaskSubmitTaskMethodDefinition(String url, - String httpMethodType, - String dataType, - Map httpHeaders, - Map requestParams, - Map requestBody, - @NonNull String taskInstanceIdJPath) { - super(url, httpMethodType, dataType, httpHeaders, requestParams, requestBody); - this.taskInstanceIdJPath = taskInstanceIdJPath; - } - - @Override - public @NonNull LoopTaskInstanceInfo submitLoopTask() { - // todo: call http api to submit task - String responseBody; - try { - if (StringUtils.equalsIgnoreCase(httpMethodType, "GET")) { - responseBody = OkHttpUtils.get(url, httpHeaders, requestParams); - } else if (StringUtils.equalsIgnoreCase(httpMethodType, "POST")) { - responseBody = OkHttpUtils.post(url, httpHeaders, requestParams, requestBody); - } else { - throw new IllegalArgumentException(String.format("The request method type: %s is not supported.", - httpMethodType)); - } - } catch (IllegalArgumentException ex) { - throw ex; - } catch (Exception ex) { - throw new RuntimeException("Submit loop task error", ex); - } - Optional taskInstanceIdOptional = JsonPathUtils.read(responseBody, taskInstanceIdJPath); - String taskInstanceId = taskInstanceIdOptional.orElseThrow(() -> new RuntimeException(String.format( - "Resolve the taskInstanceId error, responseBody: %s, taskInstanceIdJPath: %s", - responseBody, - taskInstanceIdJPath))); - return new HttpLoopTaskInstanceInfo(taskInstanceId); - } -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/CancelTemplateMethodTransformer.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/CancelTemplateMethodTransformer.java deleted file mode 100644 index b367b4c441..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/CancelTemplateMethodTransformer.java +++ /dev/null @@ -1,47 +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.dolphinscheduler.plugin.task.api.loop.template.http.parser; - -import org.apache.dolphinscheduler.plugin.task.api.loop.template.LoopTaskYamlDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.TemplateMethodTransformer; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.method.HttpLoopTaskCancelTaskMethodDefinition; - -import java.util.Map; - -import lombok.NonNull; - -public class CancelTemplateMethodTransformer - implements - TemplateMethodTransformer { - - @Override - public @NonNull HttpLoopTaskCancelTaskMethodDefinition transform(@NonNull LoopTaskYamlDefinition.LoopTaskCancelYamlDefinition loopTaskAPIYamlDefinition) { - String url = loopTaskAPIYamlDefinition.getUrl(); - String method = loopTaskAPIYamlDefinition.getMethod(); - String dataType = loopTaskAPIYamlDefinition.getDataType(); - Map httpHeaders = loopTaskAPIYamlDefinition.getHttpHeaders(); - Map requestParams = loopTaskAPIYamlDefinition.getRequestParams(); - Map requestBody = loopTaskAPIYamlDefinition.getRequestBody(); - return new HttpLoopTaskCancelTaskMethodDefinition(url, - method, - dataType, - httpHeaders, - requestParams, - requestBody); - } -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/HttpTaskDefinitionParser.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/HttpTaskDefinitionParser.java deleted file mode 100644 index b28cd0c301..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/HttpTaskDefinitionParser.java +++ /dev/null @@ -1,89 +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.dolphinscheduler.plugin.task.api.loop.template.http.parser; - -import org.apache.dolphinscheduler.common.utils.ClassFilterConstructor; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.LoopTaskYamlDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.TaskDefinitionParser; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.HttpLoopTaskDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.method.HttpLoopTaskCancelTaskMethodDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.method.HttpLoopTaskQueryStatusMethodDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.method.HttpLoopTaskSubmitTaskMethodDefinition; - -import org.apache.commons.lang3.StringUtils; - -import java.io.FileReader; -import java.io.IOException; -import java.util.Map; - -import lombok.NonNull; - -import org.yaml.snakeyaml.Yaml; - -import com.google.common.base.Preconditions; - -public class HttpTaskDefinitionParser implements TaskDefinitionParser { - - @Override - public @NonNull HttpLoopTaskDefinition parse(@NonNull String yamlConfigFile) { - LoopTaskYamlDefinition loopTaskYamlDefinition; - try { - loopTaskYamlDefinition = parseYamlConfigFile(yamlConfigFile); - } catch (IOException ex) { - throw new IllegalArgumentException(String.format("Parse yaml file: %s error", yamlConfigFile), ex); - } - validateYamlDefinition(loopTaskYamlDefinition); - - LoopTaskYamlDefinition.LoopTaskServiceYamlDefinition service = loopTaskYamlDefinition.getService(); - LoopTaskYamlDefinition.LoopTaskAPIYamlDefinition api = service.getApi(); - HttpLoopTaskSubmitTaskMethodDefinition submitTaskMethod = - new SubmitTemplateMethodTransformer().transform(api.getSubmit()); - HttpLoopTaskQueryStatusMethodDefinition queryTaskStateMethod = - new QueryStateTemplateMethodTransformer().transform(api.getQueryState()); - HttpLoopTaskCancelTaskMethodDefinition cancelTaskMethod = - new CancelTemplateMethodTransformer().transform(api.getCancel()); - return new HttpLoopTaskDefinition(service.getName(), submitTaskMethod, queryTaskStateMethod, cancelTaskMethod); - } - - protected @NonNull LoopTaskYamlDefinition parseYamlConfigFile(@NonNull String yamlConfigFile) throws IOException { - try (FileReader fileReader = new FileReader(yamlConfigFile)) { - return new Yaml(new ClassFilterConstructor(new Class[]{ - LoopTaskYamlDefinition.class, - LoopTaskYamlDefinition.LoopTaskServiceYamlDefinition.class, - LoopTaskYamlDefinition.LoopTaskAPIYamlDefinition.class, - LoopTaskYamlDefinition.LoopTaskSubmitMethodYamlDefinition.class, - LoopTaskYamlDefinition.LoopTaskQueryStateYamlDefinition.class, - LoopTaskYamlDefinition.LoopTaskCancelYamlDefinition.class, - LoopTaskYamlDefinition.LoopTaskMethodYamlDefinition.class, - LoopTaskYamlDefinition.LoopTaskQueryStateYamlDefinition.class, - Map.class, - String.class - })) - .loadAs(fileReader, LoopTaskYamlDefinition.class); - } - } - - protected void validateYamlDefinition(@NonNull LoopTaskYamlDefinition loopTaskYamlDefinition) { - LoopTaskYamlDefinition.LoopTaskServiceYamlDefinition service = loopTaskYamlDefinition.getService(); - Preconditions.checkNotNull(service, "service is null"); - Preconditions.checkNotNull(service.getName(), "service name is null"); - if (!StringUtils.equalsIgnoreCase(service.getType(), "http")) { - throw new IllegalArgumentException(String.format("service type: %s is invalidated", service.getType())); - } - } -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/QueryStateTemplateMethodTransformer.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/QueryStateTemplateMethodTransformer.java deleted file mode 100644 index c06defb3df..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/QueryStateTemplateMethodTransformer.java +++ /dev/null @@ -1,49 +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.dolphinscheduler.plugin.task.api.loop.template.http.parser; - -import org.apache.dolphinscheduler.plugin.task.api.loop.template.LoopTaskYamlDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.TemplateMethodTransformer; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.method.HttpLoopTaskQueryStatusMethodDefinition; - -import java.util.Map; - -import lombok.NonNull; - -public class QueryStateTemplateMethodTransformer - implements - TemplateMethodTransformer { - - @Override - public @NonNull HttpLoopTaskQueryStatusMethodDefinition transform(@NonNull LoopTaskYamlDefinition.LoopTaskQueryStateYamlDefinition loopTaskAPIYamlDefinition) { - String url = loopTaskAPIYamlDefinition.getUrl(); - String method = loopTaskAPIYamlDefinition.getMethod(); - String dataType = loopTaskAPIYamlDefinition.getDataType(); - Map httpHeaders = loopTaskAPIYamlDefinition.getHttpHeaders(); - Map requestParams = loopTaskAPIYamlDefinition.getRequestParams(); - Map requestBody = loopTaskAPIYamlDefinition.getRequestBody(); - String taskInstanceFinishedJPath = loopTaskAPIYamlDefinition.getTaskInstanceFinishedJPath(); - return new HttpLoopTaskQueryStatusMethodDefinition(url, - method, - dataType, - httpHeaders, - requestParams, - requestBody, - taskInstanceFinishedJPath); - } -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/SubmitTemplateMethodTransformer.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/SubmitTemplateMethodTransformer.java deleted file mode 100644 index 2cc7956f85..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/SubmitTemplateMethodTransformer.java +++ /dev/null @@ -1,49 +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.dolphinscheduler.plugin.task.api.loop.template.http.parser; - -import org.apache.dolphinscheduler.plugin.task.api.loop.template.LoopTaskYamlDefinition; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.TemplateMethodTransformer; -import org.apache.dolphinscheduler.plugin.task.api.loop.template.http.method.HttpLoopTaskSubmitTaskMethodDefinition; - -import java.util.Map; - -import lombok.NonNull; - -public class SubmitTemplateMethodTransformer - implements - TemplateMethodTransformer { - - @Override - public @NonNull HttpLoopTaskSubmitTaskMethodDefinition transform(@NonNull LoopTaskYamlDefinition.LoopTaskSubmitMethodYamlDefinition loopTaskAPIYamlDefinition) { - String url = loopTaskAPIYamlDefinition.getUrl(); - String method = loopTaskAPIYamlDefinition.getMethod(); - String dataType = loopTaskAPIYamlDefinition.getDataType(); - Map httpHeaders = loopTaskAPIYamlDefinition.getHttpHeaders(); - Map requestParams = loopTaskAPIYamlDefinition.getRequestParams(); - Map requestBody = loopTaskAPIYamlDefinition.getRequestBody(); - String taskInstanceIdJPath = loopTaskAPIYamlDefinition.getTaskInstanceIdJPath(); - return new HttpLoopTaskSubmitTaskMethodDefinition(url, - method, - dataType, - httpHeaders, - requestParams, - requestBody, - taskInstanceIdJPath); - } -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/test/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/HttpTaskDefinitionParserTest.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/test/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/HttpTaskDefinitionParserTest.java deleted file mode 100644 index e25eaf72a1..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/test/java/org/apache/dolphinscheduler/plugin/task/api/loop/template/http/parser/HttpTaskDefinitionParserTest.java +++ /dev/null @@ -1,66 +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.dolphinscheduler.plugin.task.api.loop.template.http.parser; - -import org.apache.dolphinscheduler.plugin.task.api.loop.template.LoopTaskYamlDefinition; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -public class HttpTaskDefinitionParserTest { - - private static final String yamlFile = HttpTaskDefinitionParserTest.class.getResource("/mock_loop_task.yaml") - .getFile(); - - @Test - public void parseYamlConfigFile() throws IOException { - LoopTaskYamlDefinition loopTaskYamlDefinition = new HttpTaskDefinitionParser().parseYamlConfigFile(yamlFile); - // check not null - Assertions.assertNotNull(loopTaskYamlDefinition); - Assertions.assertNotNull(loopTaskYamlDefinition.getService()); - Assertions.assertNotNull(loopTaskYamlDefinition.getService().getName()); - Assertions.assertNotNull(loopTaskYamlDefinition.getService().getType()); - Assertions.assertNotNull(loopTaskYamlDefinition.getService().getApi()); - Assertions.assertNotNull(loopTaskYamlDefinition.getService().getApi().getSubmit()); - Assertions.assertNotNull(loopTaskYamlDefinition.getService().getApi().getQueryState()); - Assertions.assertNotNull(loopTaskYamlDefinition.getService().getApi().getCancel()); - // check data consistency - LoopTaskYamlDefinition.LoopTaskServiceYamlDefinition service = loopTaskYamlDefinition.getService(); - Assertions.assertEquals("MockService", service.getName()); - Assertions.assertEquals("Http", service.getType()); - Map expectedHeaders = new HashMap<>(); - expectedHeaders.put("Content-Type", "text/html"); - expectedHeaders.put("Content-Length", "1234"); - Assertions.assertEquals("/api/v1/submit", service.getApi().getSubmit().getUrl()); - Assertions.assertEquals(expectedHeaders, service.getApi().getSubmit().getHttpHeaders()); - } - - @Test - public void validateYamlDefinition() throws IOException { - HttpTaskDefinitionParser httpTaskDefinitionParser = new HttpTaskDefinitionParser(); - LoopTaskYamlDefinition loopTaskYamlDefinition = httpTaskDefinitionParser.parseYamlConfigFile(yamlFile); - httpTaskDefinitionParser.validateYamlDefinition(loopTaskYamlDefinition); - // if no exception assert true - Assertions.assertTrue(true); - - } -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpMethod.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpConstants.java similarity index 80% rename from dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpMethod.java rename to dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpConstants.java index 571938fc19..65f4842a50 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpMethod.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpConstants.java @@ -17,16 +17,12 @@ package org.apache.dolphinscheduler.plugin.task.http; -/** - * http method - */ -public enum HttpMethod { - /** - * 0 get - * 1 post - * 2 head - * 3 put - * 4 delete - */ - GET, POST, HEAD, PUT, DELETE +import lombok.experimental.UtilityClass; + +@UtilityClass +public class HttpConstants { + + public static final String CONTENT_TYPE = "Content-Type"; + + public static final int RESPONSE_CODE_SUCCESS = 200; } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpParameters.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpParameters.java index 83dcb78c18..463c7771da 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpParameters.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpParameters.java @@ -17,47 +17,37 @@ package org.apache.dolphinscheduler.plugin.task.http; -import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo; import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; import org.apache.commons.lang3.StringUtils; -import java.util.ArrayList; import java.util.List; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import com.fasterxml.jackson.annotation.JsonProperty; + /** * http parameter */ +@EqualsAndHashCode(callSuper = true) +@Data public class HttpParameters extends AbstractParameters { - /** - * url - */ private String url; - /** - * httpMethod - */ - private HttpMethod httpMethod; + @JsonProperty("httpMethod") + private HttpRequestMethod httpRequestMethod; - /** - * http params - */ - private List httpParams; + @JsonProperty("httpParams") + private List httpRequestParams; - /** - * httpBody - */ - private String httpBody; + @JsonProperty("httpBody") + private String httpRequestBody; - /** - * httpCheckCondition - */ private HttpCheckCondition httpCheckCondition = HttpCheckCondition.STATUS_CODE_DEFAULT; - /** - * condition - */ private String condition; /** @@ -66,83 +56,10 @@ public class HttpParameters extends AbstractParameters { */ private int connectTimeout; - /** - * Socket Timeout - * Unit: ms - */ - private int socketTimeout; - @Override public boolean checkParameters() { - return StringUtils.isNotEmpty(url); + return StringUtils.isNotEmpty(url) && httpRequestMethod != null + && connectTimeout > 0; } - @Override - public List getResourceFilesList() { - return new ArrayList<>(); - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public HttpMethod getHttpMethod() { - return httpMethod; - } - - public void setHttpMethod(HttpMethod httpMethod) { - this.httpMethod = httpMethod; - } - - public List getHttpParams() { - return httpParams; - } - - public void setHttpParams(List httpParams) { - this.httpParams = httpParams; - } - - public HttpCheckCondition getHttpCheckCondition() { - return httpCheckCondition; - } - - public void setHttpCheckCondition(HttpCheckCondition httpCheckCondition) { - this.httpCheckCondition = httpCheckCondition; - } - - public String getCondition() { - return condition; - } - - public void setCondition(String condition) { - this.condition = condition; - } - - public int getConnectTimeout() { - return connectTimeout; - } - - public void setConnectTimeout(int connectTimeout) { - this.connectTimeout = connectTimeout; - } - - public int getSocketTimeout() { - return socketTimeout; - } - - public void setSocketTimeout(int socketTimeout) { - this.socketTimeout = socketTimeout; - } - - public String getHttpBody() { - return httpBody; - } - - public void setHttpBody(String httpBody) { - this.httpBody = httpBody; - } } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpParametersType.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpParametersType.java index b027fd874c..37817aebef 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpParametersType.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpParametersType.java @@ -21,10 +21,5 @@ package org.apache.dolphinscheduler.plugin.task.http; * http parameters type */ public enum HttpParametersType { - /** - * 0 parameter; - * 1 body; - * 2 headers; - */ - PARAMETER, BODY, HEADERS + PARAMETER, HEADERS } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpProperty.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpProperty.java index 5041417b93..a828e9e89b 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpProperty.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpProperty.java @@ -19,80 +19,23 @@ package org.apache.dolphinscheduler.plugin.task.http; import java.util.Objects; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class HttpProperty { - /** - * key - */ private String prop; - /** - * httpParametersType - */ private HttpParametersType httpParametersType; - /** - * value - */ private String value; - public HttpProperty() { - } - - public HttpProperty(String prop, HttpParametersType httpParametersType, String value) { - this.prop = prop; - this.httpParametersType = httpParametersType; - this.value = value; - } - - /** - * getter method - * - * @return the prop - * @see HttpProperty#prop - */ - public String getProp() { - return prop; - } - - /** - * setter method - * - * @param prop the prop to set - * @see HttpProperty#prop - */ - public void setProp(String prop) { - this.prop = prop; - } - - /** - * getter method - * - * @return the value - * @see HttpProperty#value - */ - public String getValue() { - return value; - } - - /** - * setter method - * - * @param value the value to set - * @see HttpProperty#value - */ - public void setValue(String value) { - this.value = value; - } - - public HttpParametersType getHttpParametersType() { - return httpParametersType; - } - - public void setHttpParametersType(HttpParametersType httpParametersType) { - this.httpParametersType = httpParametersType; - } - @Override public boolean equals(Object o) { if (this == o) { @@ -111,13 +54,4 @@ public class HttpProperty { return Objects.hash(prop, value); } - @Override - public String toString() { - return "HttpProperty{" - + "prop='" + prop + '\'' - + ", httpParametersType=" + httpParametersType - + ", value='" + value + '\'' - + '}'; - } - } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpTaskConstants.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpRequestMethod.java similarity index 89% rename from dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpTaskConstants.java rename to dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpRequestMethod.java index 60189aceec..bc7ae492ba 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpTaskConstants.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpRequestMethod.java @@ -17,7 +17,9 @@ package org.apache.dolphinscheduler.plugin.task.http; -public class HttpTaskConstants { - - public static final String APPLICATION_JSON = "application/json"; +/** + * http method + */ +public enum HttpRequestMethod { + GET, POST, PUT, DELETE } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpTask.java index 4ece4b4ed5..d7e50bb2a3 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpTask.java @@ -17,8 +17,12 @@ package org.apache.dolphinscheduler.plugin.task.http; -import org.apache.dolphinscheduler.common.utils.DateUtils; +import org.apache.dolphinscheduler.common.constants.Constants; +import org.apache.dolphinscheduler.common.model.OkHttpRequestHeaderContentType; +import org.apache.dolphinscheduler.common.model.OkHttpRequestHeaders; +import org.apache.dolphinscheduler.common.model.OkHttpResponse; import org.apache.dolphinscheduler.common.utils.JSONUtils; +import org.apache.dolphinscheduler.common.utils.OkHttpUtils; import org.apache.dolphinscheduler.plugin.task.api.AbstractTask; import org.apache.dolphinscheduler.plugin.task.api.TaskCallBack; import org.apache.dolphinscheduler.plugin.task.api.TaskException; @@ -29,45 +33,19 @@ import org.apache.dolphinscheduler.plugin.task.api.model.Property; import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; import org.apache.dolphinscheduler.plugin.task.api.utils.ParameterUtils; -import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.HttpEntity; -import org.apache.http.ParseException; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpUriRequest; -import org.apache.http.client.methods.RequestBuilder; -import org.apache.http.entity.ContentType; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.util.EntityUtils; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.List; import java.util.Map; +import java.util.stream.Collectors; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import com.fasterxml.jackson.databind.node.ObjectNode; - @Slf4j public class HttpTask extends AbstractTask { - /** - * output - */ - protected String output; - /** - * http parameters - */ private HttpParameters httpParameters; - /** - * taskExecutionContext - */ + private TaskExecutionContext taskExecutionContext; /** @@ -83,7 +61,7 @@ public class HttpTask extends AbstractTask { @Override public void init() { this.httpParameters = JSONUtils.parseObject(taskExecutionContext.getTaskParams(), HttpParameters.class); - log.info("Initialize http task params {}", JSONUtils.toPrettyJsonString(httpParameters)); + log.info("Initialize http task params: {}", JSONUtils.toPrettyJsonString(httpParameters)); if (httpParameters == null || !httpParameters.checkParameters()) { throw new RuntimeException("http task params is not valid"); @@ -92,250 +70,192 @@ public class HttpTask extends AbstractTask { @Override public void handle(TaskCallBack taskCallBack) throws TaskException { - long startTime = System.currentTimeMillis(); - String formatTimeStamp = DateUtils.formatTimeStamp(startTime); - String statusCode = null; - String body = null; - try ( - CloseableHttpClient client = createHttpClient(); - CloseableHttpResponse response = sendRequest(client)) { - statusCode = String.valueOf(getStatusCode(response)); - body = getResponseBody(response); - exitStatusCode = validResponse(body, statusCode); - addDefaultOutput(body); - long costTime = System.currentTimeMillis() - startTime; - log.info( - "startTime: {}, httpUrl: {}, httpMethod: {}, costTime : {} milliseconds, statusCode : {}, body : {}, log : {}", - formatTimeStamp, httpParameters.getUrl(), - httpParameters.getHttpMethod(), costTime, statusCode, body, output); - } catch (Exception e) { - appendMessage(e.toString()); - exitStatusCode = -1; - log.error("httpUrl[" + httpParameters.getUrl() + "] connection failed:" + output, e); - throw new TaskException("Execute http task failed", e); - } + OkHttpResponse httpResponse = sendRequest(); + validateResponse(httpResponse.getBody(), httpResponse.getStatusCode()); } @Override public void cancel() throws TaskException { - } - /** - * send request - * - * @param client client - * @return CloseableHttpResponse - * @throws IOException io exception - */ - protected CloseableHttpResponse sendRequest(CloseableHttpClient client) throws IOException { - RequestBuilder builder = createRequestBuilder(); - - // replace placeholder,and combine local and global parameters - Map paramsMap = taskExecutionContext.getPrepareParamsMap(); - - List httpPropertyList = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(httpParameters.getHttpParams())) { - for (HttpProperty httpProperty : httpParameters.getHttpParams()) { - String jsonObject = JSONUtils.toJsonString(httpProperty); - String params = - ParameterUtils.convertParameterPlaceholders(jsonObject, ParameterUtils.convert(paramsMap)); - log.info("http request params:{}", params); - httpPropertyList.add(JSONUtils.parseObject(params, HttpProperty.class)); - } - } - String httpBody = ParameterUtils.convertParameterPlaceholders(httpParameters.getHttpBody(), - ParameterUtils.convert(paramsMap)); - addRequestParams(builder, httpPropertyList, httpBody); - String requestUrl = - ParameterUtils.convertParameterPlaceholders(httpParameters.getUrl(), ParameterUtils.convert(paramsMap)); - HttpUriRequest request = builder.setUri(requestUrl).build(); - setHeaders(request, httpPropertyList); - return client.execute(request); - } - - /** - * get response body - * - * @param httpResponse http response - * @return response body - * @throws ParseException parse exception - * @throws IOException io exception - */ - protected String getResponseBody(CloseableHttpResponse httpResponse) throws ParseException, IOException { - if (httpResponse == null) { - return null; - } - HttpEntity entity = httpResponse.getEntity(); - if (entity == null) { - return null; - } - return EntityUtils.toString(entity, StandardCharsets.UTF_8.name()); - } - - /** - * get status code - * - * @param httpResponse http response - * @return status code - */ - protected int getStatusCode(CloseableHttpResponse httpResponse) { - return httpResponse.getStatusLine().getStatusCode(); - } - - /** - * valid response - * - * @param body body - * @param statusCode status code - * @return exit status code - */ - protected int validResponse(String body, String statusCode) { - int exitStatusCode = 0; + private void validateResponse(String body, int statusCode) { switch (httpParameters.getHttpCheckCondition()) { case BODY_CONTAINS: if (StringUtils.isEmpty(body) || !body.contains(httpParameters.getCondition())) { - appendMessage(httpParameters.getUrl() + " doesn contain " - + httpParameters.getCondition()); - exitStatusCode = -1; + log.error("http request failed, url: {}, statusCode: {}, checkCondition: {}, body: {}", + httpParameters.getUrl(), statusCode, HttpCheckCondition.BODY_CONTAINS.name(), body); + exitStatusCode = Constants.EXIT_CODE_FAILURE; + return; } break; case BODY_NOT_CONTAINS: if (StringUtils.isEmpty(body) || body.contains(httpParameters.getCondition())) { - appendMessage(httpParameters.getUrl() + " contains " - + httpParameters.getCondition()); - exitStatusCode = -1; + log.error("http request failed, url: {}, statusCode: {}, checkCondition: {}, body: {}", + httpParameters.getUrl(), statusCode, HttpCheckCondition.BODY_NOT_CONTAINS.name(), body); + exitStatusCode = Constants.EXIT_CODE_FAILURE; + return; } break; case STATUS_CODE_CUSTOM: - if (!statusCode.equals(httpParameters.getCondition())) { - appendMessage(httpParameters.getUrl() + " statuscode: " + statusCode + ", Must be: " - + httpParameters.getCondition()); - exitStatusCode = -1; + if (statusCode != Integer.parseInt(httpParameters.getCondition())) { + log.error("http request failed, url: {}, statusCode: {}, checkCondition: {}, body: {}", + httpParameters.getUrl(), statusCode, HttpCheckCondition.STATUS_CODE_CUSTOM.name(), body); + exitStatusCode = Constants.EXIT_CODE_FAILURE; + return; + } + break; + case STATUS_CODE_DEFAULT: + if (HttpConstants.RESPONSE_CODE_SUCCESS != statusCode) { + log.error("http request failed, url: {}, statusCode: {}, checkCondition: {}, body: {}", + httpParameters.getUrl(), statusCode, HttpCheckCondition.STATUS_CODE_DEFAULT.name(), body); + exitStatusCode = Constants.EXIT_CODE_FAILURE; + return; } break; default: - if (!"200".equals(statusCode)) { - appendMessage(httpParameters.getUrl() + " statuscode: " + statusCode + ", Must be: 200"); - exitStatusCode = -1; - } - break; + throw new TaskException(String.format("http check condition %s not supported", + httpParameters.getHttpCheckCondition())); } - return exitStatusCode; + + // default success log + log.info("http request success, url: {}, statusCode: {}, body: {}", httpParameters.getUrl(), statusCode, body); + exitStatusCode = Constants.EXIT_CODE_SUCCESS; } - public String getOutput() { - return output; - } - - /** - * append message - * - * @param message message - */ - protected void appendMessage(String message) { - if (output == null) { - output = ""; - } - if (message != null && !message.trim().isEmpty()) { - output += message; + private OkHttpResponse sendRequest() { + switch (httpParameters.getHttpRequestMethod()) { + case GET: + return sendGetRequest(); + case POST: + return sendPostRequest(); + case PUT: + return sendPutRequest(); + case DELETE: + return sendDeleteRequest(); + default: + throw new TaskException(String.format("http request method %s not supported", + httpParameters.getHttpRequestMethod())); } } - /** - * add request params - * - * @param builder buidler - * @param httpPropertyList http property list - */ - protected void addRequestParams(RequestBuilder builder, List httpPropertyList, String httpBody) { - if (StringUtils.isNotEmpty(httpBody)) { - builder.setEntity(new StringEntity( - httpBody, - ContentType.create(ContentType.APPLICATION_JSON.getMimeType(), - StandardCharsets.UTF_8))); - } + @SneakyThrows + private OkHttpResponse sendGetRequest() { + OkHttpRequestHeaders okHttpRequestHeaders = new OkHttpRequestHeaders(); + okHttpRequestHeaders.setHeaders(getHeaders()); + okHttpRequestHeaders.setOkHttpRequestHeaderContentType(getContentType()); + Map requestParams = getRequestParams(); - if (CollectionUtils.isNotEmpty(httpPropertyList)) { - ObjectNode jsonParam = JSONUtils.createObjectNode(); - for (HttpProperty property : httpPropertyList) { - if (property.getHttpParametersType() != null) { - if (property.getHttpParametersType().equals(HttpParametersType.PARAMETER)) { - builder.addParameter(property.getProp(), property.getValue()); - } else if (property.getHttpParametersType().equals(HttpParametersType.BODY)) { - jsonParam.put(property.getProp(), property.getValue()); - } - } - } - if (builder.getEntity() == null) { - builder.setEntity(new StringEntity( - jsonParam.toString(), - ContentType.create(ContentType.APPLICATION_JSON.getMimeType(), - StandardCharsets.UTF_8))); - } - } + OkHttpResponse okHttpResponse = OkHttpUtils.get(httpParameters.getUrl(), okHttpRequestHeaders, + requestParams, httpParameters.getConnectTimeout(), + httpParameters.getConnectTimeout(), httpParameters.getConnectTimeout()); + addDefaultOutput(JSONUtils.toJsonString(okHttpResponse)); + return okHttpResponse; } - /** - * set headers - * - * @param request request - * @param httpPropertyList http property list - */ - protected void setHeaders(HttpUriRequest request, List httpPropertyList) { - if (CollectionUtils.isNotEmpty(httpPropertyList)) { - for (HttpProperty property : httpPropertyList) { - if (HttpParametersType.HEADERS.equals(property.getHttpParametersType())) { - request.addHeader(property.getProp(), property.getValue()); - } - } - } + @SneakyThrows + private OkHttpResponse sendPostRequest() { + OkHttpRequestHeaders okHttpRequestHeaders = new OkHttpRequestHeaders(); + okHttpRequestHeaders.setHeaders(getHeaders()); + okHttpRequestHeaders.setOkHttpRequestHeaderContentType(getContentType()); + Map requestBody = getRequestBody(); + + OkHttpResponse okHttpResponse = OkHttpUtils.post(httpParameters.getUrl(), okHttpRequestHeaders, null, + requestBody, httpParameters.getConnectTimeout(), + httpParameters.getConnectTimeout(), httpParameters.getConnectTimeout()); + addDefaultOutput(JSONUtils.toJsonString(okHttpResponse)); + return okHttpResponse; } - /** - * create http client - * - * @return CloseableHttpClient - */ - protected CloseableHttpClient createHttpClient() { - final RequestConfig requestConfig = requestConfig(); - HttpClientBuilder httpClientBuilder; - httpClientBuilder = HttpClients.custom().setDefaultRequestConfig(requestConfig); - return httpClientBuilder.build(); + @SneakyThrows + private OkHttpResponse sendPutRequest() { + OkHttpRequestHeaders okHttpRequestHeaders = new OkHttpRequestHeaders(); + okHttpRequestHeaders.setHeaders(getHeaders()); + okHttpRequestHeaders.setOkHttpRequestHeaderContentType(getContentType()); + Map requestBody = getRequestBody(); + + OkHttpResponse okHttpResponse = OkHttpUtils.put(httpParameters.getUrl(), okHttpRequestHeaders, + requestBody, httpParameters.getConnectTimeout(), + httpParameters.getConnectTimeout(), httpParameters.getConnectTimeout()); + addDefaultOutput(JSONUtils.toJsonString(okHttpResponse)); + return okHttpResponse; } - /** - * request config - * - * @return RequestConfig - */ - private RequestConfig requestConfig() { - return RequestConfig.custom().setSocketTimeout(httpParameters.getSocketTimeout()) - .setConnectTimeout(httpParameters.getConnectTimeout()).build(); + @SneakyThrows + private OkHttpResponse sendDeleteRequest() { + OkHttpRequestHeaders okHttpRequestHeaders = new OkHttpRequestHeaders(); + okHttpRequestHeaders.setHeaders(getHeaders()); + okHttpRequestHeaders.setOkHttpRequestHeaderContentType(getContentType()); + + OkHttpResponse okHttpResponse = OkHttpUtils.delete(httpParameters.getUrl(), okHttpRequestHeaders, + httpParameters.getConnectTimeout(), httpParameters.getConnectTimeout(), + httpParameters.getConnectTimeout()); + addDefaultOutput(JSONUtils.toJsonString(okHttpResponse)); + return okHttpResponse; } - /** - * create request builder - * - * @return RequestBuilder - */ - protected RequestBuilder createRequestBuilder() { - if (httpParameters.getHttpMethod().equals(HttpMethod.GET)) { - return RequestBuilder.get(); - } else if (httpParameters.getHttpMethod().equals(HttpMethod.POST)) { - return RequestBuilder.post(); - } else if (httpParameters.getHttpMethod().equals(HttpMethod.HEAD)) { - return RequestBuilder.head(); - } else if (httpParameters.getHttpMethod().equals(HttpMethod.PUT)) { - return RequestBuilder.put(); - } else if (httpParameters.getHttpMethod().equals(HttpMethod.DELETE)) { - return RequestBuilder.delete(); - } else { + private Map getHeaders() { + if (httpParameters.getHttpRequestParams() == null) { return null; } + return httpParameters.getHttpRequestParams().stream() + .filter(httpProperty -> httpProperty.getHttpParametersType() != null) + .filter(httpProperty -> httpProperty.getHttpParametersType().equals(HttpParametersType.HEADERS) + && !httpProperty.getProp().equalsIgnoreCase(HttpConstants.CONTENT_TYPE)) + .peek((httpProperty) -> { + httpProperty.setProp(ParameterUtils.convertParameterPlaceholders(httpProperty.getProp(), + ParameterUtils.convert(taskExecutionContext.getPrepareParamsMap()))); + httpProperty.setValue(ParameterUtils.convertParameterPlaceholders(httpProperty.getValue(), + ParameterUtils.convert(taskExecutionContext.getPrepareParamsMap()))); + }) + .collect(Collectors.toMap(HttpProperty::getProp, HttpProperty::getValue)); + } + + private OkHttpRequestHeaderContentType getContentType() { + if (httpParameters.getHttpRequestParams() == null) { + return OkHttpRequestHeaderContentType.APPLICATION_JSON; + } + + return OkHttpRequestHeaderContentType.fromValue( + httpParameters.getHttpRequestParams().stream() + .filter(httpProperty -> httpProperty.getHttpParametersType().equals(HttpParametersType.HEADERS) + && httpProperty.getProp().equalsIgnoreCase(HttpConstants.CONTENT_TYPE)) + .filter(httpProperty -> OkHttpRequestHeaderContentType + .fromValue(httpProperty.getValue()) != null) + .findFirst() + .orElse(HttpProperty.builder().value(OkHttpRequestHeaderContentType.APPLICATION_JSON.getValue()) + .build()) + .getValue()); + } + + private Map getRequestParams() { + if (httpParameters.getHttpRequestParams() == null) { + return null; + } + + return httpParameters.getHttpRequestParams().stream() + .filter(httpProperty -> httpProperty.getHttpParametersType().equals(HttpParametersType.PARAMETER)) + .peek((httpProperty) -> { + httpProperty.setProp(ParameterUtils.convertParameterPlaceholders(httpProperty.getProp(), + ParameterUtils.convert(taskExecutionContext.getPrepareParamsMap()))); + httpProperty.setValue(ParameterUtils.convertParameterPlaceholders(httpProperty.getValue(), + ParameterUtils.convert(taskExecutionContext.getPrepareParamsMap()))); + }) + .collect(Collectors.toMap(HttpProperty::getProp, HttpProperty::getValue)); + } + + private Map getRequestBody() { + String convertedParams = ParameterUtils.convertParameterPlaceholders(httpParameters.getHttpRequestBody(), + ParameterUtils.convert(taskExecutionContext.getPrepareParamsMap())); + Map requestBody = JSONUtils.toMap(convertedParams); + if (requestBody == null) { + return null; + } + + return requestBody.entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } @Override diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/test/java/org/apache/dolphinscheduler/plugin/task/http/HttpParametersTest.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/test/java/org/apache/dolphinscheduler/plugin/task/http/HttpParametersTest.java index edb4cac2e5..00fbde0502 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/test/java/org/apache/dolphinscheduler/plugin/task/http/HttpParametersTest.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/test/java/org/apache/dolphinscheduler/plugin/task/http/HttpParametersTest.java @@ -30,13 +30,12 @@ public class HttpParametersTest { @Test public void testGenerator() { String paramData = "{\"localParams\":[],\"httpParams\":[],\"url\":\"https://www.baidu.com/\"," - + "\"httpMethod\":\"GET\",\"httpCheckCondition\":\"STATUS_CODE_DEFAULT\",\"condition\":\"\",\"connectTimeout\":\"10000\",\"socketTimeout\":\"10000\"}"; + + "\"httpMethod\":\"GET\",\"httpCheckCondition\":\"STATUS_CODE_DEFAULT\",\"condition\":\"\",\"connectTimeout\":\"10000\"}"; HttpParameters httpParameters = JSONUtils.parseObject(paramData, HttpParameters.class); Assertions.assertEquals(10000, httpParameters.getConnectTimeout()); - Assertions.assertEquals(10000, httpParameters.getSocketTimeout()); Assertions.assertEquals("https://www.baidu.com/", httpParameters.getUrl()); - Assertions.assertEquals(HttpMethod.GET, httpParameters.getHttpMethod()); + Assertions.assertEquals(HttpRequestMethod.GET, httpParameters.getHttpRequestMethod()); Assertions.assertEquals(HttpCheckCondition.STATUS_CODE_DEFAULT, httpParameters.getHttpCheckCondition()); Assertions.assertEquals("", httpParameters.getCondition()); @@ -45,14 +44,13 @@ public class HttpParametersTest { @Test public void testCheckParameters() { String paramData = "{\"localParams\":[],\"httpParams\":[],\"url\":\"https://www.baidu.com/\"," - + "\"httpMethod\":\"GET\",\"httpCheckCondition\":\"STATUS_CODE_DEFAULT\",\"condition\":\"\",\"connectTimeout\":\"10000\",\"socketTimeout\":\"10000\"}"; + + "\"httpMethod\":\"GET\",\"httpCheckCondition\":\"STATUS_CODE_DEFAULT\",\"condition\":\"\",\"connectTimeout\":\"10000\"}"; HttpParameters httpParameters = JSONUtils.parseObject(paramData, HttpParameters.class); Assertions.assertTrue(httpParameters.checkParameters()); Assertions.assertEquals(10000, httpParameters.getConnectTimeout()); - Assertions.assertEquals(10000, httpParameters.getSocketTimeout()); Assertions.assertEquals("https://www.baidu.com/", httpParameters.getUrl()); - Assertions.assertEquals(HttpMethod.GET, httpParameters.getHttpMethod()); + Assertions.assertEquals(HttpRequestMethod.GET, httpParameters.getHttpRequestMethod()); Assertions.assertEquals(HttpCheckCondition.STATUS_CODE_DEFAULT, httpParameters.getHttpCheckCondition()); Assertions.assertEquals("", httpParameters.getCondition()); @@ -61,14 +59,13 @@ public class HttpParametersTest { @Test public void testCheckValues() { String paramData = "{\"localParams\":[],\"httpParams\":[],\"url\":\"https://www.baidu.com/\"," - + "\"httpMethod\":\"GET\",\"httpCheckCondition\":\"STATUS_CODE_DEFAULT\",\"condition\":\"\",\"connectTimeout\":\"10000\",\"socketTimeout\":\"10000\"}"; + + "\"httpMethod\":\"GET\",\"httpCheckCondition\":\"STATUS_CODE_DEFAULT\",\"condition\":\"\",\"connectTimeout\":\"10000\"}"; HttpParameters httpParameters = JSONUtils.parseObject(paramData, HttpParameters.class); Assertions.assertTrue(httpParameters.checkParameters()); Assertions.assertEquals(10000, httpParameters.getConnectTimeout()); - Assertions.assertEquals(10000, httpParameters.getSocketTimeout()); Assertions.assertEquals("https://www.baidu.com/", httpParameters.getUrl()); - Assertions.assertEquals(HttpMethod.GET, httpParameters.getHttpMethod()); + Assertions.assertEquals(HttpRequestMethod.GET, httpParameters.getHttpRequestMethod()); Assertions.assertEquals(HttpCheckCondition.STATUS_CODE_DEFAULT, httpParameters.getHttpCheckCondition()); Assertions.assertEquals("", httpParameters.getCondition()); Assertions.assertEquals(0, httpParameters.getLocalParametersMap().size()); diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/test/java/org/apache/dolphinscheduler/plugin/task/http/HttpTaskTest.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/test/java/org/apache/dolphinscheduler/plugin/task/http/HttpTaskTest.java index 4c8ace158c..ba211f6bd7 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/test/java/org/apache/dolphinscheduler/plugin/task/http/HttpTaskTest.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/test/java/org/apache/dolphinscheduler/plugin/task/http/HttpTaskTest.java @@ -34,9 +34,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; -import okhttp3.HttpUrl; import okhttp3.mockwebserver.Dispatcher; import okhttp3.mockwebserver.MockResponse; import okhttp3.mockwebserver.MockWebServer; @@ -62,9 +60,7 @@ public class HttpTaskTest { private static final String APPLICATION_JSON_VALUE = "application/json"; - private static final String MOCK_DISPATCH_PATH_REQ_BODY_TO_RES_BODY = "/requestBody/to/responseBody"; - - private static final String MOCK_DISPATCH_PATH_REQ_PARAMS_TO_RES_BODY = "/requestParams/to/responseBody"; + private static final String DEFAULT_MOCK_PATH = "/test"; private final List mockWebServers = new ArrayList<>(); @@ -76,26 +72,23 @@ public class HttpTaskTest { @Test public void testHandleCheckCodeDefaultSuccess() throws Exception { - HttpTask getHttpTask = generateHttpTask(HttpMethod.GET, HttpStatus.SC_OK); - HttpTask postHttpTask = generateHttpTask(HttpMethod.POST, HttpStatus.SC_OK); - HttpTask headHttpTask = generateHttpTask(HttpMethod.HEAD, HttpStatus.SC_OK); - HttpTask putHttpTask = generateHttpTask(HttpMethod.PUT, HttpStatus.SC_OK); - HttpTask deleteHttpTask = generateHttpTask(HttpMethod.DELETE, HttpStatus.SC_OK); + HttpTask getHttpTask = generateHttpTask(HttpRequestMethod.GET, HttpStatus.SC_OK); + HttpTask postHttpTask = generateHttpTask(HttpRequestMethod.POST, HttpStatus.SC_OK); + HttpTask putHttpTask = generateHttpTask(HttpRequestMethod.PUT, HttpStatus.SC_OK); + HttpTask deleteHttpTask = generateHttpTask(HttpRequestMethod.DELETE, HttpStatus.SC_OK); getHttpTask.handle(null); postHttpTask.handle(null); - headHttpTask.handle(null); putHttpTask.handle(null); deleteHttpTask.handle(null); Assertions.assertEquals(EXIT_CODE_SUCCESS, getHttpTask.getExitStatusCode()); Assertions.assertEquals(EXIT_CODE_SUCCESS, postHttpTask.getExitStatusCode()); - Assertions.assertEquals(EXIT_CODE_SUCCESS, headHttpTask.getExitStatusCode()); Assertions.assertEquals(EXIT_CODE_SUCCESS, putHttpTask.getExitStatusCode()); Assertions.assertEquals(EXIT_CODE_SUCCESS, deleteHttpTask.getExitStatusCode()); } @Test public void testHandleCheckCodeDefaultError() throws Exception { - HttpTask getHttpTask = generateHttpTask(HttpMethod.GET, HttpStatus.SC_BAD_REQUEST); + HttpTask getHttpTask = generateHttpTask(HttpRequestMethod.GET, HttpStatus.SC_BAD_REQUEST); getHttpTask.handle(null); Assertions.assertEquals(EXIT_CODE_FAILURE, getHttpTask.getExitStatusCode()); } @@ -103,9 +96,9 @@ public class HttpTaskTest { @Test public void testHandleCheckCodeCustom() throws Exception { String condition = HttpStatus.SC_CREATED + ""; - HttpTask httpTask = generateHttpTask(HttpMethod.GET, HttpCheckCondition.STATUS_CODE_CUSTOM, - condition, HttpStatus.SC_CREATED, ""); - HttpTask httpErrorTask = generateHttpTask(HttpMethod.GET, HttpCheckCondition.STATUS_CODE_CUSTOM, + HttpTask httpTask = generateHttpTask(HttpRequestMethod.GET, HttpCheckCondition.STATUS_CODE_CUSTOM, + condition, HttpStatus.SC_CREATED, "{\"status\": 201}"); + HttpTask httpErrorTask = generateHttpTask(HttpRequestMethod.GET, HttpCheckCondition.STATUS_CODE_CUSTOM, condition, HttpStatus.SC_OK, ""); httpTask.handle(null); httpErrorTask.handle(null); @@ -115,9 +108,9 @@ public class HttpTaskTest { @Test public void testHandleCheckBodyContains() throws Exception { - HttpTask httpTask = generateHttpTask(HttpMethod.GET, HttpCheckCondition.BODY_CONTAINS, + HttpTask httpTask = generateHttpTask(HttpRequestMethod.GET, HttpCheckCondition.BODY_CONTAINS, "success", HttpStatus.SC_OK, "{\"status\": \"success\"}"); - HttpTask httpErrorTask = generateHttpTask(HttpMethod.GET, HttpCheckCondition.BODY_CONTAINS, + HttpTask httpErrorTask = generateHttpTask(HttpRequestMethod.GET, HttpCheckCondition.BODY_CONTAINS, "success", HttpStatus.SC_OK, "{\"status\": \"failed\"}"); httpTask.handle(null); httpErrorTask.handle(null); @@ -127,9 +120,9 @@ public class HttpTaskTest { @Test public void testHandleCheckBodyNotContains() throws Exception { - HttpTask httpTask = generateHttpTask(HttpMethod.GET, HttpCheckCondition.BODY_NOT_CONTAINS, + HttpTask httpTask = generateHttpTask(HttpRequestMethod.GET, HttpCheckCondition.BODY_NOT_CONTAINS, "failed", HttpStatus.SC_OK, "{\"status\": \"success\"}"); - HttpTask httpErrorTask = generateHttpTask(HttpMethod.GET, HttpCheckCondition.BODY_NOT_CONTAINS, + HttpTask httpErrorTask = generateHttpTask(HttpRequestMethod.GET, HttpCheckCondition.BODY_NOT_CONTAINS, "failed", HttpStatus.SC_OK, "{\"status\": \"failed\"}"); httpTask.handle(null); httpErrorTask.handle(null); @@ -137,37 +130,17 @@ public class HttpTaskTest { Assertions.assertEquals(EXIT_CODE_FAILURE, httpErrorTask.getExitStatusCode()); } - @Test - public void testHandleWithHttpBodyParams() throws Exception { - List httpParams = new ArrayList<>(); - HttpProperty property = new HttpProperty(); - property.setProp("day"); - property.setValue("${day}"); - property.setHttpParametersType(HttpParametersType.BODY); - httpParams.add(property); - - Map prepareParamsMap = new HashMap<>(); - prepareParamsMap.put("day", "20220812"); - // The MockWebServer will return the request body as response body directly - // So we just need to check if the response body contains string "20220812" - HttpTask httpTask = generateHttpTask(MOCK_DISPATCH_PATH_REQ_BODY_TO_RES_BODY, HttpMethod.POST, null, - httpParams, prepareParamsMap, HttpCheckCondition.BODY_CONTAINS, "20220812", - HttpStatus.SC_OK, ""); - httpTask.handle(null); - Assertions.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode()); - } - @Test public void testHandleWithHttpBody() throws Exception { String httpBody = "{\"day\": ${day}}"; + String httpResponse = "{\"day\": \"20220812\"}"; Map prepareParamsMap = new HashMap<>(); prepareParamsMap.put("day", "20220812"); - // The MockWebServer will return the request body as response body directly - // So we just need to check if the response body contains string "20220812" - HttpTask httpTask = generateHttpTask(MOCK_DISPATCH_PATH_REQ_BODY_TO_RES_BODY, HttpMethod.POST, httpBody, + + HttpTask httpTask = generateHttpTask(DEFAULT_MOCK_PATH, HttpRequestMethod.POST, httpBody, null, prepareParamsMap, HttpCheckCondition.BODY_CONTAINS, "20220812", - HttpStatus.SC_OK, ""); + HttpStatus.SC_OK, httpResponse); httpTask.handle(null); Assertions.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode()); } @@ -183,18 +156,18 @@ public class HttpTaskTest { Map prepareParamsMap = new HashMap<>(); prepareParamsMap.put("day", "20220812"); - // The MockWebServer will return the request parameter as response body directly - // So we just need to check if the response body contains string "20220812" - HttpTask httpTask = generateHttpTask(MOCK_DISPATCH_PATH_REQ_PARAMS_TO_RES_BODY, HttpMethod.POST, null, + String httpResponse = "{\"day\": \"20220812\"}"; + + HttpTask httpTask = generateHttpTask(DEFAULT_MOCK_PATH, HttpRequestMethod.POST, null, httpParams, prepareParamsMap, HttpCheckCondition.BODY_CONTAINS, "20220812", - HttpStatus.SC_OK, ""); + HttpStatus.SC_OK, httpResponse); httpTask.handle(null); Assertions.assertEquals(EXIT_CODE_SUCCESS, httpTask.getExitStatusCode()); } @Test public void testAddDefaultOutput() throws Exception { - HttpTask httpTask = generateHttpTask(HttpMethod.GET, HttpStatus.SC_OK); + HttpTask httpTask = generateHttpTask(HttpRequestMethod.GET, HttpStatus.SC_OK); AbstractParameters httpParameters = httpTask.getParameters(); String response = "{\"status\": \"success\"}"; httpTask.addDefaultOutput(response); @@ -217,25 +190,26 @@ public class HttpTaskTest { return server.url(path).toString(); } - private HttpTask generateHttpTask(HttpMethod httpMethod, int actualResponseCode) throws IOException { - return generateHttpTask("/test", httpMethod, null, null, null, + private HttpTask generateHttpTask(HttpRequestMethod httpRequestMethod, int actualResponseCode) throws IOException { + return generateHttpTask(DEFAULT_MOCK_PATH, httpRequestMethod, "", new ArrayList<>(), null, HttpCheckCondition.STATUS_CODE_DEFAULT, "", actualResponseCode, ""); } - private HttpTask generateHttpTask(HttpMethod httpMethod, HttpCheckCondition httpCheckConditionType, + private HttpTask generateHttpTask(HttpRequestMethod httpRequestMethod, HttpCheckCondition httpCheckConditionType, String condition, int actualResponseCode, String actualResponseBody) throws IOException { - return generateHttpTask("/test", httpMethod, null, null, null, + return generateHttpTask(DEFAULT_MOCK_PATH, httpRequestMethod, "", new ArrayList<>(), null, httpCheckConditionType, condition, actualResponseCode, actualResponseBody); } - private HttpTask generateHttpTask(String mockPath, HttpMethod httpMethod, String httpBody, + + private HttpTask generateHttpTask(String mockPath, HttpRequestMethod httpRequestMethod, String httpBody, List httpParams, Map prepareParamsMap, HttpCheckCondition httpCheckConditionType, String condition, int actualResponseCode, String actualResponseBody) throws IOException { String url = withMockWebServer(mockPath, actualResponseCode, actualResponseBody); String paramData = - generateHttpParameters(url, httpMethod, httpBody, httpParams, httpCheckConditionType, condition); + generateHttpParameters(url, httpRequestMethod, httpBody, httpParams, httpCheckConditionType, condition); return generateHttpTaskFromParamData(paramData, prepareParamsMap); } @@ -257,20 +231,19 @@ public class HttpTaskTest { return httpTask; } - private String generateHttpParameters(String url, HttpMethod httpMethod, String httpBody, + private String generateHttpParameters(String url, HttpRequestMethod httpRequestMethod, String httpBody, List httpParams, HttpCheckCondition httpCheckConditionType, String condition) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); HttpParameters httpParameters = new HttpParameters(); httpParameters.setUrl(url); - httpParameters.setHttpMethod(httpMethod); - httpParameters.setHttpBody(httpBody); + httpParameters.setHttpRequestMethod(httpRequestMethod); + httpParameters.setHttpRequestBody(httpBody); httpParameters.setHttpCheckCondition(httpCheckConditionType); httpParameters.setCondition(condition); httpParameters.setConnectTimeout(10000); - httpParameters.setSocketTimeout(10000); - httpParameters.setHttpParams(httpParams); + httpParameters.setHttpRequestParams(httpParams); return mapper.writeValueAsString(httpParameters); } @@ -283,26 +256,7 @@ public class HttpTaskTest { .setResponseCode(actualResponseCode) .setHeader(CONTENT_TYPE, APPLICATION_JSON_VALUE); - if (request.getPath().startsWith(MOCK_DISPATCH_PATH_REQ_BODY_TO_RES_BODY)) { - // return request body as mock response body - mockResponse.setBody(request.getBody().readUtf8()); - } else if (request.getPath().startsWith(MOCK_DISPATCH_PATH_REQ_PARAMS_TO_RES_BODY)) { - // return request params as mock response body - ObjectMapper mapper = new ObjectMapper(); - HttpUrl httpUrl = request.getRequestUrl(); - Set parameterNames = httpUrl.queryParameterNames(); - Map resBodyMap = new HashMap<>(); - parameterNames.forEach(name -> resBodyMap.put(name, httpUrl.queryParameter(name))); - try { - mockResponse.setBody(mapper.writeValueAsString(resBodyMap)); - } catch (JsonProcessingException e) { - throw new IllegalArgumentException(e); - } - } else if (request.getPath().startsWith(path)) { - mockResponse.setBody(actualResponseBody); - } else { - mockResponse.setResponseCode(HttpStatus.SC_NOT_FOUND); - } + mockResponse.setBody(actualResponseBody); return mockResponse; } }; diff --git a/dolphinscheduler-ui/src/locales/en_US/project.ts b/dolphinscheduler-ui/src/locales/en_US/project.ts index dce409c797..a04c9084f2 100644 --- a/dolphinscheduler-ui/src/locales/en_US/project.ts +++ b/dolphinscheduler-ui/src/locales/en_US/project.ts @@ -517,15 +517,13 @@ export default { http_method: 'Http Method', http_parameters: 'Http Parameters', http_body: 'Http Body', - http_body_tips: - 'Please fill in the http body, if filled, http parameters in the body type will be ignored', + http_body_tips: 'http body(required)', http_check_condition: 'Http Check Condition', http_condition: 'Http Condition', http_condition_tips: 'Please Enter Http Condition', timeout_settings: 'Timeout Settings', connect_timeout: 'Connect Timeout', ms: 'ms', - socket_timeout: 'Socket Timeout', status_code_default: 'Default response code 200', status_code_custom: 'Custom response code', body_contains: 'Content includes', diff --git a/dolphinscheduler-ui/src/locales/zh_CN/project.ts b/dolphinscheduler-ui/src/locales/zh_CN/project.ts index f3b50c93b8..eee2045446 100644 --- a/dolphinscheduler-ui/src/locales/zh_CN/project.ts +++ b/dolphinscheduler-ui/src/locales/zh_CN/project.ts @@ -504,14 +504,13 @@ export default { http_method: '请求类型', http_parameters: '请求参数', http_body: '请求Body', - http_body_tips: '请填写http body,如若填写将忽略请求参数中的body类型参数', + http_body_tips: '请填写http body', http_check_condition: '校验条件', http_condition: '校验内容', http_condition_tips: '请填写校验内容', timeout_settings: '超时设置', connect_timeout: '连接超时', ms: '毫秒', - socket_timeout: 'Socket超时', status_code_default: '默认响应码200', status_code_custom: '自定义响应码', body_contains: '内容包含', diff --git a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-http.ts b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-http.ts index 525b05cdb7..888f7a2003 100644 --- a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-http.ts +++ b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-http.ts @@ -17,9 +17,12 @@ import { useI18n } from 'vue-i18n' import { useCustomParams } from '.' import type { IJsonItem } from '../types' +import { ref, watch } from 'vue' export function useHttp(model: { [field: string]: any }): IJsonItem[] { const { t } = useI18n() + const httpBodySpan = ref(0) + const httpParametersType = ref(GET_HTTP_PARAMETERS_TYPE) const HTTP_CHECK_CONDITIONS = [ { @@ -40,6 +43,40 @@ export function useHttp(model: { [field: string]: any }): IJsonItem[] { } ] + const resetHttpParametersType = () => { + switch (model.httpMethod) { + case 'GET': + case 'DELETE': + httpParametersType.value = GET_HTTP_PARAMETERS_TYPE + break + case 'POST': + case 'PUT': + httpParametersType.value = POST_HTTP_PARAMETERS_TYPE + break + } + } + + const resetSpan = () => { + switch (model.httpMethod) { + case 'GET': + case 'DELETE': + httpBodySpan.value = 0 + break + case 'POST': + case 'PUT': + httpBodySpan.value = 24 + break + } + } + + watch( + () => [model.httpMethod], + () => { + resetSpan() + resetHttpParametersType() + } + ) + return [ { type: 'input', @@ -104,8 +141,8 @@ export function useHttp(model: { [field: string]: any }): IJsonItem[] { type: 'select', field: 'httpParametersType', span: 6, - options: POSITIONS, - value: 'PARAMETER' + options: httpParametersType, + value: 'HEADERS' }, { type: 'input', @@ -128,12 +165,18 @@ export function useHttp(model: { [field: string]: any }): IJsonItem[] { ] }, { - type: 'input', + type: 'editor', field: 'httpBody', name: t('project.node.http_body'), - props: { - type: 'textarea', - placeholder: t('project.node.http_body_tips') + span: httpBodySpan, + validate: { + trigger: ['blur', 'input'], + required: true, + validator(validate, value) { + if (httpBodySpan.value && !value) { + return new Error(t('project.node.http_body_tips')) + } + } } }, { @@ -174,29 +217,6 @@ export function useHttp(model: { [field: string]: any }): IJsonItem[] { } } }, - { - type: 'input-number', - field: 'socketTimeout', - name: t('project.node.socket_timeout'), - span: 12, - props: { - max: Math.pow(7, 10) - 1 - }, - slots: { - suffix: () => t('project.node.ms') - }, - validate: { - trigger: ['input', 'blur'], - validator(validate: any, value: string) { - if (!Number.isInteger(parseInt(value))) { - return new Error( - t('project.node.socket_timeout') + - t('project.node.positive_integer_tips') - ) - } - } - } - }, ...useCustomParams({ model, field: 'localParams', @@ -214,10 +234,6 @@ const HTTP_METHODS = [ value: 'POST', label: 'POST' }, - { - value: 'HEAD', - label: 'HEAD' - }, { value: 'PUT', label: 'PUT' @@ -228,15 +244,18 @@ const HTTP_METHODS = [ } ] -const POSITIONS = [ +const GET_HTTP_PARAMETERS_TYPE = [ { value: 'PARAMETER', label: 'Parameter' }, - { - value: 'BODY', - label: 'Body' - }, + { + value: 'HEADERS', + label: 'Headers' + } +] + +const POST_HTTP_PARAMETERS_TYPE = [ { value: 'HEADERS', label: 'Headers' diff --git a/tools/dependencies/known-dependencies.txt b/tools/dependencies/known-dependencies.txt index 99e0fcf345..c6780804d4 100644 --- a/tools/dependencies/known-dependencies.txt +++ b/tools/dependencies/known-dependencies.txt @@ -251,8 +251,9 @@ netty-transport-native-unix-common-4.1.53.Final.jar nimbus-jose-jwt-9.8.1.jar nimbus-jose-jwt-9.10.jar okhttp-2.7.5.jar -okhttp-4.9.3.jar -okio-2.8.0.jar +okhttp-4.12.0.jar +okio-3.6.0.jar +okio-jvm-3.6.0.jar opencsv-2.3.jar oshi-core-6.1.1.jar paranamer-2.3.jar