diff --git a/.github/workflows/api-test.yml b/.github/workflows/api-test.yml index 6462dfd9d2..1b761fdb6a 100644 --- a/.github/workflows/api-test.yml +++ b/.github/workflows/api-test.yml @@ -112,6 +112,7 @@ jobs: run: | ./mvnw -B -f dolphinscheduler-api-test/pom.xml -am \ -DfailIfNoTests=false \ + -Dcheckstyle.skip=false \ -Dtest=${{ matrix.case.class }} test - uses: actions/upload-artifact@v2 if: always() diff --git a/dolphinscheduler-api-test/README.md b/dolphinscheduler-api-test/README.md index 6036566c3b..5c05594729 100644 --- a/dolphinscheduler-api-test/README.md +++ b/dolphinscheduler-api-test/README.md @@ -9,8 +9,8 @@ Every page of DolphinScheduler's api is abstracted into a class for better maint ### Example The login page's api is abstracted -as [`LoginPage`](dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/pages/LoginPage.java), with the -following fields, +as [`LoginPage`](dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/pages/LoginPage.java) +, with the following fields, ```java public HttpResponse login(String username, String password) { diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/cases/TenantAPITest.java b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/cases/TenantAPITest.java index 177c800336..5cf9435012 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/cases/TenantAPITest.java +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/cases/TenantAPITest.java @@ -19,7 +19,6 @@ package org.apache.dolphinscheduler.api.test.cases; -import lombok.extern.slf4j.Slf4j; import org.apache.dolphinscheduler.api.test.core.DolphinScheduler; import org.apache.dolphinscheduler.api.test.entity.HttpResponse; import org.apache.dolphinscheduler.api.test.entity.LoginResponseData; @@ -28,12 +27,14 @@ import org.apache.dolphinscheduler.api.test.entity.TenantListPagingResponseTotal import org.apache.dolphinscheduler.api.test.pages.LoginPage; import org.apache.dolphinscheduler.api.test.pages.security.TenantPage; import org.apache.dolphinscheduler.api.test.utils.JSONUtils; + import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; +import lombok.extern.slf4j.Slf4j; @DolphinScheduler(composeFiles = "docker/basic/docker-compose.yaml") @Slf4j diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/entity/TenantListPagingResponseData.java b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/entity/TenantListPagingResponseData.java index be9131cce2..415d711ebc 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/entity/TenantListPagingResponseData.java +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/entity/TenantListPagingResponseData.java @@ -19,12 +19,12 @@ package org.apache.dolphinscheduler.api.test.entity; +import java.util.List; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.List; - @AllArgsConstructor @NoArgsConstructor @Data diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/entity/TenantListPagingResponseTotalList.java b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/entity/TenantListPagingResponseTotalList.java index 4667ce6921..e75196af8e 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/entity/TenantListPagingResponseTotalList.java +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/entity/TenantListPagingResponseTotalList.java @@ -19,12 +19,12 @@ package org.apache.dolphinscheduler.api.test.entity; +import java.util.Date; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.Date; - @AllArgsConstructor @NoArgsConstructor @Data diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/pages/LoginPage.java b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/pages/LoginPage.java index 25790b39ef..a942313298 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/pages/LoginPage.java +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/pages/LoginPage.java @@ -19,7 +19,6 @@ package org.apache.dolphinscheduler.api.test.pages; - import org.apache.dolphinscheduler.api.test.entity.HttpResponse; import org.apache.dolphinscheduler.api.test.utils.RequestClient; diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/pages/security/TenantPage.java b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/pages/security/TenantPage.java index dc16d61424..1d1d74de49 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/pages/security/TenantPage.java +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/pages/security/TenantPage.java @@ -19,7 +19,6 @@ package org.apache.dolphinscheduler.api.test.pages.security; - import org.apache.dolphinscheduler.api.test.core.Constants; import org.apache.dolphinscheduler.api.test.entity.HttpResponse; import org.apache.dolphinscheduler.api.test.utils.RequestClient; diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/utils/JSONUtils.java b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/utils/JSONUtils.java index e49341c632..04c2e2bc61 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/utils/JSONUtils.java +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/utils/JSONUtils.java @@ -16,6 +16,7 @@ */ package org.apache.dolphinscheduler.api.test.utils; + import static java.nio.charset.StandardCharsets.UTF_8; import static com.fasterxml.jackson.databind.DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT; @@ -23,6 +24,8 @@ import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKN import static com.fasterxml.jackson.databind.DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL; import static com.fasterxml.jackson.databind.MapperFeature.REQUIRE_SETTERS_FOR_GETTERS; +import org.apache.dolphinscheduler.api.test.core.Constants; + import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -32,9 +35,9 @@ import java.util.Map; import java.util.Objects; import java.util.TimeZone; -import org.apache.dolphinscheduler.api.test.core.Constants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.testcontainers.shaded.org.apache.commons.lang.StringUtils; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; @@ -52,7 +55,6 @@ import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.TextNode; import com.fasterxml.jackson.databind.type.CollectionType; -import org.testcontainers.shaded.org.apache.commons.lang.StringUtils; /** * json utils @@ -62,19 +64,15 @@ public class JSONUtils { private static final Logger logger = LoggerFactory.getLogger(JSONUtils.class); static { - logger.info("init timezone: {}",TimeZone.getDefault()); + logger.info("init timezone: {}", TimeZone.getDefault()); } /** * can use static singleton, inject: just make sure to reuse! */ - private static final ObjectMapper objectMapper = new ObjectMapper() - .configure(FAIL_ON_UNKNOWN_PROPERTIES, false) - .configure(ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true) - .configure(READ_UNKNOWN_ENUM_VALUES_AS_NULL, true) - .configure(REQUIRE_SETTERS_FOR_GETTERS, true) - .setTimeZone(TimeZone.getDefault()) - .setDateFormat(new SimpleDateFormat(Constants.YYYY_MM_DD_HH_MM_SS)); + private static final ObjectMapper objectMapper = + new ObjectMapper().configure(FAIL_ON_UNKNOWN_PROPERTIES, false).configure(ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true).configure(READ_UNKNOWN_ENUM_VALUES_AS_NULL, true) + .configure(REQUIRE_SETTERS_FOR_GETTERS, true).setTimeZone(TimeZone.getDefault()).setDateFormat(new SimpleDateFormat(Constants.YYYY_MM_DD_HH_MM_SS)); private JSONUtils() { throw new UnsupportedOperationException("Construct JSONUtils"); @@ -95,7 +93,7 @@ public class JSONUtils { /** * json representation of object * - * @param object object + * @param object object * @param feature feature * @return object to json string */ @@ -118,9 +116,9 @@ public class JSONUtils { * the fields of the specified object are generics, just the object itself should not be a * generic type. * - * @param json the string from which the object is to be deserialized + * @param json the string from which the object is to be deserialized * @param clazz the class of T - * @param T + * @param T * @return an object of type T from the string * classOfT */ @@ -138,11 +136,11 @@ public class JSONUtils { } /** - * deserialize + * deserialize * - * @param src byte array + * @param src byte array * @param clazz class - * @param deserialize type + * @param deserialize type * @return deserialize type */ public static T parseObject(byte[] src, Class clazz) { @@ -156,9 +154,9 @@ public class JSONUtils { /** * json to list * - * @param json json string + * @param json json string * @param clazz class - * @param T + * @param T * @return list */ public static List toList(String json, Class clazz) { @@ -203,7 +201,7 @@ public class JSONUtils { * node or its child nodes, and returning value it has. * If no matching field is found in this node or its descendants, returns null. * - * @param jsonNode json node + * @param jsonNode json node * @param fieldName Name of field to look for * @return Value of first matching node found, if any; null if none */ @@ -225,17 +223,18 @@ public class JSONUtils { * @return json to map */ public static Map toMap(String json) { - return parseObject(json, new TypeReference>() {}); + return parseObject(json, new TypeReference>() { + }); } /** * json to map * - * @param json json + * @param json json * @param classK classK * @param classV classV - * @param K - * @param V + * @param K + * @param V * @return to map */ public static Map toMap(String json, Class classK, Class classV) { @@ -255,7 +254,8 @@ public class JSONUtils { /** * from the key-value generated json to get the str value no matter the real type of value - * @param json the json str + * + * @param json the json str * @param nodeName key * @return the str value of key */ @@ -315,7 +315,7 @@ public class JSONUtils { * @param object type * @return byte array */ - public static byte[] toJsonByteArray(T obj) { + public static byte[] toJsonByteArray(T obj) { if (obj == null) { return null; } diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/utils/RequestClient.java b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/utils/RequestClient.java index e1c1cda8e5..12c23c7b0a 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/utils/RequestClient.java +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/utils/RequestClient.java @@ -19,11 +19,14 @@ package org.apache.dolphinscheduler.api.test.utils; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; import org.apache.dolphinscheduler.api.test.core.Constants; import org.apache.dolphinscheduler.api.test.entity.HttpResponse; import org.apache.dolphinscheduler.api.test.entity.HttpResponseBody; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + import org.testcontainers.shaded.okhttp3.FormBody; import org.testcontainers.shaded.okhttp3.Headers; import org.testcontainers.shaded.okhttp3.MediaType; @@ -32,9 +35,8 @@ import org.testcontainers.shaded.okhttp3.Request; import org.testcontainers.shaded.okhttp3.RequestBody; import org.testcontainers.shaded.okhttp3.Response; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; @Slf4j public class RequestClient { @@ -56,10 +58,10 @@ public class RequestClient { LOGGER.info("GET request to {}, Headers: {}", requestUrl, headersBuilder); Request request = new Request.Builder() - .url(requestUrl) - .headers(headersBuilder) - .get() - .build(); + .url(requestUrl) + .headers(headersBuilder) + .get() + .build(); Response response = this.httpClient.newCall(request).execute(); @@ -111,14 +113,13 @@ public class RequestClient { LOGGER.info("POST request to {}, Headers: {}, Params: {}", requestUrl, headersBuilder, params); Request request = new Request.Builder() - .headers(headersBuilder) - .url(requestUrl) - .post(requestBody) - .build(); + .headers(headersBuilder) + .url(requestUrl) + .post(requestBody) + .build(); Response response = this.httpClient.newCall(request).execute(); - int responseCode = response.code(); HttpResponseBody responseData = null; if (response.body() != null) { @@ -147,14 +148,13 @@ public class RequestClient { LOGGER.info("DELETE request to {}, Headers: {}, Params: {}", requestUrl, headersBuilder, params); Request request = new Request.Builder() - .headers(headersBuilder) - .url(requestUrl) - .delete() - .build(); + .headers(headersBuilder) + .url(requestUrl) + .delete() + .build(); Response response = this.httpClient.newCall(request).execute(); - int responseCode = response.code(); HttpResponseBody responseData = null; if (response.body() != null) { diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/basic/docker-compose.yaml b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/basic/docker-compose.yaml index aeb18a9417..26e7ebda25 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/basic/docker-compose.yaml +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/basic/docker-compose.yaml @@ -18,20 +18,20 @@ version: "3.8" services: - dolphinscheduler: - image: apache/dolphinscheduler-standalone-server:ci - environment: - MASTER_MAX_CPU_LOAD_AVG: 100 - WORKER_TENANT_AUTO_CREATE: 'true' - ports: - - "12345:12345" - networks: - - api-test - healthcheck: - test: [ "CMD", "curl", "http://localhost:12345/actuator/health" ] - interval: 5s - timeout: 60s - retries: 120 + dolphinscheduler: + image: apache/dolphinscheduler-standalone-server:ci + environment: + MASTER_MAX_CPU_LOAD_AVG: 100 + WORKER_TENANT_AUTO_CREATE: 'true' + ports: + - "12345:12345" + networks: + - api-test + healthcheck: + test: [ "CMD", "curl", "http://localhost:12345/actuator/health" ] + interval: 5s + timeout: 60s + retries: 120 networks: api-test: diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/datasource-clickhouse/docker-compose.yaml b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/datasource-clickhouse/docker-compose.yaml index fea9fb869c..fd14568ad9 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/datasource-clickhouse/docker-compose.yaml +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/datasource-clickhouse/docker-compose.yaml @@ -52,7 +52,7 @@ services: networks: - e2e healthcheck: - test: ["CMD", "wget", "--spider", "-q", "localhost:8123/ping"] + test: [ "CMD", "wget", "--spider", "-q", "localhost:8123/ping" ] interval: 5s timeout: 60s retries: 120 diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/datasource-hive/docker-compose.yaml b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/datasource-hive/docker-compose.yaml index 1d15805a86..7cfe64badd 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/datasource-hive/docker-compose.yaml +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/datasource-hive/docker-compose.yaml @@ -107,7 +107,7 @@ services: expose: - "5432" healthcheck: - test: ["CMD-SHELL", "pg_isready -U postgres"] + test: [ "CMD-SHELL", "pg_isready -U postgres" ] interval: 5s timeout: 60s retries: 120 diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/datasource-postgresql/docker-compose.yaml b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/datasource-postgresql/docker-compose.yaml index a1696ea724..00f88b4c9a 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/datasource-postgresql/docker-compose.yaml +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/datasource-postgresql/docker-compose.yaml @@ -45,7 +45,7 @@ services: expose: - 5432 healthcheck: - test: ["CMD-SHELL", "pg_isready -U postgres"] + test: [ "CMD-SHELL", "pg_isready -U postgres" ] interval: 5s timeout: 60s retries: 120 diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/file-manage/common.properties b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/file-manage/common.properties index dcf839ff76..abac3ad391 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/file-manage/common.properties +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/file-manage/common.properties @@ -14,65 +14,45 @@ # See the License for the specific language governing permissions and # limitations under the License. # - # user data local directory path, please make sure the directory exists and have read write permissions data.basedir.path=/tmp/dolphinscheduler - # resource storage type: HDFS, S3, NONE resource.storage.type=S3 - -# resource store on HDFS/S3 path, resource file will store to this hadoop hdfs path, self configuration, please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended +# resource store on HDFS/S3 path, resource file will store to this hadoop hdfs path, self configuration +# please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended resource.upload.path=/dolphinscheduler - # whether to startup kerberos hadoop.security.authentication.startup.state=false - # java.security.krb5.conf path java.security.krb5.conf.path=/opt/krb5.conf - # login user from keytab username login.user.keytab.username=hdfs-mycluster@ESZ.COM - # login user from keytab path login.user.keytab.path=/opt/hdfs.headless.keytab - # kerberos expire time, the unit is hour kerberos.expire.time=2 - # resource view suffixs #resource.view.suffixs=txt,log,sh,bat,conf,cfg,py,java,sql,xml,hql,properties,json,yml,yaml,ini,js - # if resource.storage.type=HDFS, the user must have the permission to create directories under the HDFS root path hdfs.root.user=hdfs - # if resource.storage.type=S3, the value like: s3a://dolphinscheduler; if resource.storage.type=HDFS and namenode HA is enabled, you need to copy core-site.xml and hdfs-site.xml to conf dir fs.defaultFS=s3a://dolphinscheduler - - # resourcemanager port, the default value is 8088 if not specified resource.manager.httpaddress.port=8088 - # if resourcemanager HA is enabled, please set the HA IPs; if resourcemanager is single, keep this value empty yarn.resourcemanager.ha.rm.ids=192.168.xx.xx,192.168.xx.xx - # if resourcemanager HA is enabled or not use resourcemanager, please keep the default value; If resourcemanager is single, you only need to replace ds1 to actual resourcemanager hostname yarn.application.status.address=http://ds1:%s/ws/v1/cluster/apps/%s - # job history status url when application number threshold is reached(default 10000, maybe it was set to 1000) yarn.job.history.status.address=http://ds1:19888/ws/v1/history/mapreduce/jobs/%s - # datasource encryption enable datasource.encryption.enable=false - # datasource encryption salt datasource.encryption.salt=!@#$%^&* - # use sudo or not, if set true, executing user is tenant user and deploy user needs sudo permissions; if set false, executing user is the deploy user and doesn't need sudo permissions sudo.enable=true - # network interface preferred like eth0, default: empty #dolphin.scheduler.network.interface.preferred= - # network IP gets priority, default: inner outer #dolphin.scheduler.network.priority.strategy=default # system env path @@ -85,6 +65,5 @@ aws.access.key.id=accessKey123 aws.secret.access.key=secretKey123 aws.region=us-east-1 aws.endpoint=http://s3:9000 - # Task resource limit state task.resource.limit.state=false \ No newline at end of file diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/file-manage/docker-compose.yaml b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/file-manage/docker-compose.yaml index c672c0cb0e..0ac4886ad8 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/file-manage/docker-compose.yaml +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/resources/docker/file-manage/docker-compose.yaml @@ -53,7 +53,7 @@ services: MINIO_ROOT_USER: accessKey123 MINIO_ROOT_PASSWORD: secretKey123 healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] + test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ] interval: 5s timeout: 120s retries: 120 diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-core/src/main/java/org/apache/dolphinscheduler/api/test/core/Constants.java b/dolphinscheduler-api-test/dolphinscheduler-api-test-core/src/main/java/org/apache/dolphinscheduler/api/test/core/Constants.java index 4db7f1d0e0..78a163bd89 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-core/src/main/java/org/apache/dolphinscheduler/api/test/core/Constants.java +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-core/src/main/java/org/apache/dolphinscheduler/api/test/core/Constants.java @@ -19,9 +19,6 @@ package org.apache.dolphinscheduler.api.test.core; import lombok.experimental.UtilityClass; -import java.nio.file.Path; -import java.nio.file.Paths; - @UtilityClass public final class Constants { diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-core/src/main/java/org/apache/dolphinscheduler/api/test/core/DolphinSchedulerExtension.java b/dolphinscheduler-api-test/dolphinscheduler-api-test-core/src/main/java/org/apache/dolphinscheduler/api/test/core/DolphinSchedulerExtension.java index c0164a63ca..cc202e9baf 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-core/src/main/java/org/apache/dolphinscheduler/api/test/core/DolphinSchedulerExtension.java +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-core/src/main/java/org/apache/dolphinscheduler/api/test/core/DolphinSchedulerExtension.java @@ -27,7 +27,6 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import lombok.SneakyThrows; import org.junit.jupiter.api.extension.AfterAllCallback; import org.junit.jupiter.api.extension.BeforeAllCallback; import org.junit.jupiter.api.extension.ExtensionContext; @@ -38,15 +37,15 @@ import lombok.extern.slf4j.Slf4j; @Slf4j final class DolphinSchedulerExtension implements BeforeAllCallback, AfterAllCallback { - private final boolean LOCAL_MODE = Objects.equals(System.getProperty("local"), "true"); + private final boolean localMode = Objects.equals(System.getProperty("local"), "true"); - private final String SERVICE_NAME = "dolphinscheduler_1"; + private final String serviceName = "dolphinscheduler_1"; private DockerComposeContainer compose; @Override public void beforeAll(ExtensionContext context) { - if (!LOCAL_MODE) { + if (!localMode) { compose = createDockerCompose(context); compose.start(); } @@ -63,17 +62,17 @@ final class DolphinSchedulerExtension implements BeforeAllCallback, AfterAllCall final Class clazz = context.getRequiredTestClass(); final DolphinScheduler annotation = clazz.getAnnotation(DolphinScheduler.class); final List files = Stream.of(annotation.composeFiles()) - .map(it -> DolphinScheduler.class.getClassLoader().getResource(it)) - .filter(Objects::nonNull) - .map(URL::getPath) - .map(File::new) - .collect(Collectors.toList()); + .map(it -> DolphinScheduler.class.getClassLoader().getResource(it)) + .filter(Objects::nonNull) + .map(URL::getPath) + .map(File::new) + .collect(Collectors.toList()); compose = new DockerComposeContainer<>(files) - .withPull(true) - .withTailChildContainers(true) - .withLogConsumer(SERVICE_NAME, outputFrame -> LOGGER.info(outputFrame.getUtf8String())) - .waitingFor(SERVICE_NAME, Wait.forHealthcheck().withStartupTimeout(Duration.ofSeconds(Constants.DOCKER_COMPOSE_DEFAULT_TIMEOUT))); + .withPull(true) + .withTailChildContainers(true) + .withLogConsumer(serviceName, outputFrame -> LOGGER.info(outputFrame.getUtf8String())) + .waitingFor(serviceName, Wait.forHealthcheck().withStartupTimeout(Duration.ofSeconds(Constants.DOCKER_COMPOSE_DEFAULT_TIMEOUT))); return compose; } diff --git a/dolphinscheduler-api-test/pom.xml b/dolphinscheduler-api-test/pom.xml index 31d29c2b77..4c9b4cef31 100644 --- a/dolphinscheduler-api-test/pom.xml +++ b/dolphinscheduler-api-test/pom.xml @@ -45,6 +45,7 @@ 2.17.2 31.0.1-jre 2.13.2 + 3.1.2 @@ -137,6 +138,38 @@ maven-surefire-plugin 2.22.2 + + org.apache.maven.plugins + maven-checkstyle-plugin + ${checkstyle.version} + + + com.puppycrawl.tools + checkstyle + 8.45 + + + + true + UTF-8 + ../style/checkstyle.xml + true + warning + true + + ${project.build.sourceDirectory} + + **\/generated-sources\/ + + + + compile + + check + + + +