diff --git a/.tool-versions b/.tool-versions index 315183ca4ad1f..3836c1c1548e2 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,3 +1,3 @@ java adoptopenjdk-17.0.5+8 -maven 3.8.8 +maven 3.9.9 trivy 0.54.1 diff --git a/Jenkinsfile b/Jenkinsfile index 307da5329d964..941dd4c3ac177 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -131,15 +131,15 @@ pipeline { description: 'Force documentation stage for development branches. No effect on master and maintenance.') string(name: 'JAVA_VERSION', - defaultValue: 'adoptopenjdk-17.0.5+8', + defaultValue: 'from .tool-versions', description: """Provided java version will be installed with asdf Examples: adoptopenjdk-11.0.22+7, adoptopenjdk-17.0.11+9 """) string(name: 'MAVEN_VERSION', - defaultValue: '3.8.8', + defaultValue: 'from .tool-versions', description: """Provided maven version will be installed with asdf - Examples: 3.8.8, 4.0.0-beta-4 + Examples: 3.8.8, 3.9.9, 4.0.0-beta-4 """) /////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -250,14 +250,19 @@ pipeline { } /////////////////////////////////////////// - // edit java version + // edit mvn and java version /////////////////////////////////////////// script { echo "edit asdf tool version with version from jenkins param" - asdfTools.edit_version_in_file("$env.WORKSPACE/.tool-versions", 'java', params.JAVA_VERSION) + if (params.JAVA_VERSION != 'from .tool-versions') { + asdfTools.edit_version_in_file("$env.WORKSPACE/.tool-versions", 'java', params.JAVA_VERSION) + } jenkinsJobTools.job_description_append("Use java version: $params.JAVA_VERSION ") - asdfTools.edit_version_in_file("$env.WORKSPACE/.tool-versions", 'maven', params.MAVEN_VERSION) + + if (params.MAVEN_VERSION != 'from .tool-versions') { + asdfTools.edit_version_in_file("$env.WORKSPACE/.tool-versions", 'maven', params.MAVEN_VERSION) + } jenkinsJobTools.job_description_append("Use maven version: $params.MAVEN_VERSION ") } diff --git a/component-api/pom.xml b/component-api/pom.xml index 77e611898a148..ed258ae4ec1b5 100644 --- a/component-api/pom.xml +++ b/component-api/pom.xml @@ -59,7 +59,7 @@ org.apache.maven.plugins maven-javadoc-plugin - ${javadoc-plugin.version} + ${maven-javadoc-plugin.version} true true diff --git a/component-api/src/main/java/org/talend/sdk/component/api/exception/DiscoverSchemaException.java b/component-api/src/main/java/org/talend/sdk/component/api/exception/DiscoverSchemaException.java index d06677241a597..feebf67d5485b 100644 --- a/component-api/src/main/java/org/talend/sdk/component/api/exception/DiscoverSchemaException.java +++ b/component-api/src/main/java/org/talend/sdk/component/api/exception/DiscoverSchemaException.java @@ -19,6 +19,7 @@ import javax.json.bind.annotation.JsonbPropertyOrder; import lombok.Data; +import lombok.EqualsAndHashCode; /** * This class is dedicated to Studio's guess schema feature. @@ -29,6 +30,7 @@ * See me TCOMP-2342 for more details. */ @Data +@EqualsAndHashCode(callSuper = true) @JsonbPropertyOrder({ "localizedMessage", "message", "stackTrace", "suppressed", "possibleHandleErrorWith" }) public class DiscoverSchemaException extends RuntimeException { diff --git a/component-runtime-beam/src/it/serialization-over-cluster/pom.xml b/component-runtime-beam/src/it/serialization-over-cluster/pom.xml index b6b3149b9d3f4..e923533b989df 100644 --- a/component-runtime-beam/src/it/serialization-over-cluster/pom.xml +++ b/component-runtime-beam/src/it/serialization-over-cluster/pom.xml @@ -90,7 +90,7 @@ org.apache.maven.plugins maven-install-plugin - 2.5.2 + @maven-install-plugin.version@ true @@ -98,7 +98,7 @@ org.apache.maven.plugins maven-deploy-plugin - @deploy-plugin.version@ + @maven-deploy-plugin.version@ true @@ -121,7 +121,7 @@ org.apache.maven.plugins maven-shade-plugin - @shade-plugin.version@ + @maven-shade-plugin.version@ package diff --git a/component-runtime-beam/src/test/java/org/talend/test/wrapped/ASource.java b/component-runtime-beam/src/test/java/org/talend/test/wrapped/ASource.java index e0269ee91909f..647e0dd63ae3b 100644 --- a/component-runtime-beam/src/test/java/org/talend/test/wrapped/ASource.java +++ b/component-runtime-beam/src/test/java/org/talend/test/wrapped/ASource.java @@ -37,6 +37,7 @@ import org.talend.sdk.component.runtime.beam.coder.JsonpJsonObjectCoder; import lombok.Data; +import lombok.EqualsAndHashCode; public class ASource extends BoundedSource { @@ -78,6 +79,7 @@ private static void assertClassLoader() { } @Data + @EqualsAndHashCode(callSuper = true) private static class AReader extends BoundedReader { private final ASource source; diff --git a/component-runtime-impl/src/test/java/org/talend/sdk/component/runtime/record/MappingUtilsTest.java b/component-runtime-impl/src/test/java/org/talend/sdk/component/runtime/record/MappingUtilsTest.java index 2ebc6c9a51c05..345e1a6e822b0 100644 --- a/component-runtime-impl/src/test/java/org/talend/sdk/component/runtime/record/MappingUtilsTest.java +++ b/component-runtime-impl/src/test/java/org/talend/sdk/component/runtime/record/MappingUtilsTest.java @@ -47,7 +47,7 @@ void coerce() { assertEquals(new Date(1000l), MappingUtils.coerce(Date.class, 1000l, name)); // === non-matching types === // number classes mapping - assertEquals(shorty, MappingUtils.coerce(short.class, new Short(shorty), name)); + assertEquals(shorty, MappingUtils.coerce(short.class, shorty, name)); assertEquals(shorty, MappingUtils.coerce(Short.class, shorty.shortValue(), name)); assertEquals(Byte.valueOf("123"), MappingUtils.coerce(Byte.class, 123l, name)); assertEquals(Byte.valueOf("123"), MappingUtils.coerce(byte.class, 123l, name)); @@ -55,21 +55,21 @@ void coerce() { assertEquals(shorty.intValue(), MappingUtils.coerce(Integer.class, shorty, name)); // ==== mapping primitive <-> Class ==== assertEquals(Boolean.TRUE, MappingUtils.coerce(Boolean.class, true, name)); - assertEquals('c', MappingUtils.coerce(char.class, new Character('c'), name)); - assertEquals(new Character('c'), MappingUtils.coerce(Character.class, 'c', name)); - assertEquals(123, MappingUtils.coerce(int.class, new Integer(123), name)); - assertEquals(new Integer(123), MappingUtils.coerce(Integer.class, 123, name)); - assertEquals(123l, MappingUtils.coerce(long.class, new Long(123), name)); - assertEquals(new Long(123), MappingUtils.coerce(Long.class, 123, name)); - assertEquals(123.456f, MappingUtils.coerce(float.class, new Float(123.456), name)); - assertEquals(new Float(123.456), MappingUtils.coerce(Float.class, 123.456f, name)); - assertEquals(123.456, MappingUtils.coerce(double.class, new Double(123.456), name)); - assertEquals(new Double(123.456), MappingUtils.coerce(Double.class, 123.456, name)); + assertEquals('c', MappingUtils.coerce(char.class, 'c', name)); + assertEquals('c', MappingUtils.coerce(Character.class, 'c', name)); + assertEquals(123, MappingUtils.coerce(int.class, 123, name)); + assertEquals(123, MappingUtils.coerce(Integer.class, 123, name)); + assertEquals(123l, MappingUtils.coerce(long.class, 123l, name)); + assertEquals(123l, MappingUtils.coerce(Long.class, 123l, name)); + assertEquals(123.456f, MappingUtils.coerce(float.class, 123.456, name)); + assertEquals(123.456f, MappingUtils.coerce(Float.class, 123.456f, name)); + assertEquals(123.456, MappingUtils.coerce(double.class, 123.456, name)); + assertEquals(123.456, MappingUtils.coerce(Double.class, 123.456, name)); assertEquals("1000", MappingUtils.coerce(String.class, 1000l, name)); // string mapping assertEquals('c', MappingUtils.coerce(char.class, "c", name)); - assertEquals(new Character('c'), MappingUtils.coerce(Character.class, "c", name)); + assertEquals('c', MappingUtils.coerce(Character.class, "c", name)); assertEquals(Character.MIN_VALUE, MappingUtils.coerce(Character.class, "", name)); assertEquals(true, MappingUtils.coerce(Boolean.class, "true", name)); assertEquals(true, MappingUtils.coerce(boolean.class, "true", name)); diff --git a/component-runtime-manager/src/main/java/org/talend/sdk/component/runtime/manager/asm/Unsafes.java b/component-runtime-manager/src/main/java/org/talend/sdk/component/runtime/manager/asm/Unsafes.java index 5193e7937b0dc..f6a00b7dce998 100644 --- a/component-runtime-manager/src/main/java/org/talend/sdk/component/runtime/manager/asm/Unsafes.java +++ b/component-runtime-manager/src/main/java/org/talend/sdk/component/runtime/manager/asm/Unsafes.java @@ -33,6 +33,8 @@ import lombok.NoArgsConstructor; @NoArgsConstructor(access = PRIVATE) +// as deprecation was introduced since = "17", can ignore it for now... +@SuppressWarnings({ "deprecation", "removal" }) public final class Unsafes { private static final Object UNSAFE; diff --git a/component-runtime-testing/component-runtime-beam-junit/pom.xml b/component-runtime-testing/component-runtime-beam-junit/pom.xml index 485327a3b4648..a91804abee146 100644 --- a/component-runtime-testing/component-runtime-beam-junit/pom.xml +++ b/component-runtime-testing/component-runtime-beam-junit/pom.xml @@ -36,6 +36,24 @@ org.talend.sdk.component component-runtime-beam ${project.version} + + + org.sonatype.sisu + sisu-inject-plexus + + + org.codehaus.plexus + plexus-component-annotations + + + org.eclipse.sisu + org.eclipse.sisu.plexus + + + org.eclipse.sisu + org.eclipse.sisu.inject + + org.talend.sdk.component @@ -59,11 +77,43 @@ org.jboss.shrinkwrap.resolver shrinkwrap-resolver-impl-maven test + + + org.apache.maven.resolver + maven-resolver-impl + + + org.apache.maven.resolver + maven-resolver-util + + + org.apache.maven + maven-model-builder + + + org.apache.maven.resolver + maven-resolver-api + + + org.apache.maven.resolver + maven-resolver-named-locks + + + org.apache.maven.resolver + maven-resolver-spi + + org.apache.beam beam-sdks-java-core provided + + + com.google.errorprone + error_prone_annotations + + junit @@ -114,7 +164,7 @@ org.apache.maven.plugins maven-javadoc-plugin - ${javadoc-plugin.version} + ${maven-javadoc-plugin.version} attach-javadocs diff --git a/component-runtime-testing/component-runtime-http-junit/pom.xml b/component-runtime-testing/component-runtime-http-junit/pom.xml index 33b81a5ef1ef5..92d81d95e6a2e 100644 --- a/component-runtime-testing/component-runtime-http-junit/pom.xml +++ b/component-runtime-testing/component-runtime-http-junit/pom.xml @@ -149,7 +149,7 @@ org.apache.maven.plugins maven-javadoc-plugin - ${javadoc-plugin.version} + ${maven-javadoc-plugin.version} attach-javadocs diff --git a/component-runtime-testing/component-runtime-http-junit/src/test/java/org/talend/sdk/component/junit/http/junit4/CaptureJUnit4GzipHttpApiTest.java b/component-runtime-testing/component-runtime-http-junit/src/test/java/org/talend/sdk/component/junit/http/junit4/CaptureJUnit4GzipHttpApiTest.java index 3f7014b42ae75..dd9991e42353f 100644 --- a/component-runtime-testing/component-runtime-http-junit/src/test/java/org/talend/sdk/component/junit/http/junit4/CaptureJUnit4GzipHttpApiTest.java +++ b/component-runtime-testing/component-runtime-http-junit/src/test/java/org/talend/sdk/component/junit/http/junit4/CaptureJUnit4GzipHttpApiTest.java @@ -115,6 +115,7 @@ public void evaluate() throws Throwable { new InetSocketAddress("localhost", API.getPort())))); connection.setConnectTimeout(30000); connection.setReadTimeout(20000); + connection.setRequestProperty("Accept", "*/*"); connection.setRequestProperty("Accept-Encoding", "gzip"); connection.setRequestProperty("Authorization", "should be filtered"); connection.setRequestProperty("ok", "yes"); @@ -127,7 +128,7 @@ public void evaluate() throws Throwable { final String lines = String.join("\n", Files.readAllLines(output)); assertJSONEquals("[\n" + " {\n" + " \"request\":{\n" + " \"headers\":{\n" + " \"content-length\":\"0\",\n" - + " \"Accept\":\"text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\",\n" + + " \"Accept\":\"*/*\",\n" + " \"Accept-Encoding\":\"gzip\",\n" + " \"ok\":\"yes\",\n" + " \"Proxy-Connection\":\"keep-alive\"\n" + " },\n" + " \"method\":\"GET\",\n" + " \"uri\":\"http://localhost:" + server.getAddress().getPort() + "/supertest\"\n" diff --git a/component-runtime-testing/component-runtime-http-junit/src/test/java/org/talend/sdk/component/junit/http/junit4/CaptureJUnit4HttpApiTest.java b/component-runtime-testing/component-runtime-http-junit/src/test/java/org/talend/sdk/component/junit/http/junit4/CaptureJUnit4HttpApiTest.java index 4c0bd7f7450b7..0945b84b2fb56 100644 --- a/component-runtime-testing/component-runtime-http-junit/src/test/java/org/talend/sdk/component/junit/http/junit4/CaptureJUnit4HttpApiTest.java +++ b/component-runtime-testing/component-runtime-http-junit/src/test/java/org/talend/sdk/component/junit/http/junit4/CaptureJUnit4HttpApiTest.java @@ -106,6 +106,7 @@ public void evaluate() throws Throwable { new InetSocketAddress("localhost", API.getPort())))); connection.setConnectTimeout(30000); connection.setReadTimeout(20000); + connection.setRequestProperty("Accept", "*/*"); connection.setRequestProperty("Authorization", "should be filtered"); connection.setRequestProperty("ok", "yes"); assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode()); @@ -117,7 +118,7 @@ public void evaluate() throws Throwable { final String lines = String.join("\n", Files.readAllLines(output)); assertJSONEquals("[\n" + " {\n" + " \"request\":{\n" + " \"headers\":{\n" + " \"content-length\":\"0\",\n" - + " \"Accept\":\"text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\",\n" + + " \"Accept\":\"*/*\",\n" + " \"ok\":\"yes\",\n" + " \"Proxy-Connection\":\"keep-alive\"\n" + " },\n" + " \"method\":\"GET\",\n" + " \"uri\":\"http://localhost:" + server.getAddress().getPort() + "/supertest\"\n" + " },\n" + " \"response\":{\n" diff --git a/component-runtime-testing/component-runtime-http-junit/src/test/java/org/talend/sdk/component/junit/http/junit4/CaptureJUnit4HttpsApiTest.java b/component-runtime-testing/component-runtime-http-junit/src/test/java/org/talend/sdk/component/junit/http/junit4/CaptureJUnit4HttpsApiTest.java index 5203a8c611349..5a7600e0fced2 100644 --- a/component-runtime-testing/component-runtime-http-junit/src/test/java/org/talend/sdk/component/junit/http/junit4/CaptureJUnit4HttpsApiTest.java +++ b/component-runtime-testing/component-runtime-http-junit/src/test/java/org/talend/sdk/component/junit/http/junit4/CaptureJUnit4HttpsApiTest.java @@ -124,6 +124,7 @@ public void evaluate() throws Throwable { new InetSocketAddress("localhost", API.getPort())))); connection.setConnectTimeout(30000); connection.setReadTimeout(20000); + connection.setRequestProperty("Accept", "*/*"); connection.setHostnameVerifier((h, s) -> true); connection.setSSLSocketFactory(server.getHttpsConfigurator().getSSLContext().getSocketFactory()); assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode()); @@ -135,7 +136,7 @@ public void evaluate() throws Throwable { final String lines = String.join("\n", Files.readAllLines(output)); assertJSONEquals("[\n" + " {\n" + " \"request\":{\n" + " \"headers\":{\n" + " \"content-length\":\"0\",\n" - + " \"Accept\":\"text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\",\n" + + " \"Accept\":\"*/*\",\n" + " \"Connection\":\"keep-alive\"\n" + " },\n" + " \"method\":\"GET\",\n" + " \"uri\":\"https://localhost:" + server.getAddress().getPort() + "/supertest\"\n" + " },\n" + " \"response\":{\n" + " \"headers\":{\n" diff --git a/component-runtime-testing/component-runtime-junit/pom.xml b/component-runtime-testing/component-runtime-junit/pom.xml index d03db50d3fc41..54de76296b810 100644 --- a/component-runtime-testing/component-runtime-junit/pom.xml +++ b/component-runtime-testing/component-runtime-junit/pom.xml @@ -126,7 +126,7 @@ org.apache.maven.plugins maven-javadoc-plugin - ${javadoc-plugin.version} + ${maven-javadoc-plugin.version} attach-javadocs diff --git a/component-runtime-testing/pom.xml b/component-runtime-testing/pom.xml index e2f9f08ec1715..c10936794b429 100644 --- a/component-runtime-testing/pom.xml +++ b/component-runtime-testing/pom.xml @@ -38,6 +38,7 @@ 3.4.0 + 3.3.1 @@ -45,7 +46,7 @@ org.jboss.shrinkwrap.resolver shrinkwrap-resolver-impl-maven - 3.1.4 + ${shrinkwrap.version} org.jsoup diff --git a/component-starter-server/pom.xml b/component-starter-server/pom.xml index a84035ca75028..b35132e8e7f2a 100644 --- a/component-starter-server/pom.xml +++ b/component-starter-server/pom.xml @@ -405,7 +405,6 @@ ${project.build.directory}/gradle-${gradle.version} - ${mvn.version} diff --git a/component-starter-server/src/build/GrabMavenWrapper.groovy b/component-starter-server/src/build/GrabMavenWrapper.groovy index 493e7a066b854..770abf23bf61a 100644 --- a/component-starter-server/src/build/GrabMavenWrapper.groovy +++ b/component-starter-server/src/build/GrabMavenWrapper.groovy @@ -27,14 +27,15 @@ def validateWrapperFile(File baseDir, String file){ case "mvnw": if(!from.text.contains('exec "$JAVACMD" \\\n' + ' $MAVEN_OPTS \\\n' + + ' $MAVEN_DEBUG_OPTS \\\n' + ' -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \\\n' + - ' "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \\\n' + + ' "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \\\n' + ' ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"')){ throw new IllegalStateException("Invalid file: " + file); } break case "mvnw.cmd": - if(!from.text.contains('%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*')){ + if(!from.text.contains('%MAVEN_JAVA_EXE% ^')){ throw new IllegalStateException("Invalid file: " + file); } break @@ -53,7 +54,7 @@ final int exit = new ProcessBuilder().inheritIO() .directory(fakeProject) .command( new File(System.getProperty('maven.home'), "bin/" + mvnCommand).getAbsolutePath(), - "-N", "io.takari:maven:wrapper", "-Dmaven=" + mvnVersion) + "-N", "-Dtype=bin", "wrapper:wrapper") .start().waitFor() if (exit != 0) { throw new IllegalStateException("bad exit status generating maven wrapper: " + exit) diff --git a/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/openapi/Header.java b/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/openapi/Header.java index c5195920bc383..eb3578f5a5a34 100644 --- a/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/openapi/Header.java +++ b/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/openapi/Header.java @@ -16,8 +16,10 @@ package org.talend.sdk.component.starter.server.service.openapi.model.openapi; import lombok.Data; +import lombok.EqualsAndHashCode; @Data +@EqualsAndHashCode(callSuper = true) public class Header extends Parameter { } diff --git a/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/openapi/Operation.java b/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/openapi/Operation.java index 11565e2828ace..0410339f42659 100644 --- a/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/openapi/Operation.java +++ b/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/openapi/Operation.java @@ -23,11 +23,13 @@ import org.talend.sdk.component.starter.server.service.openapi.model.common.OperationBase; import lombok.Data; +import lombok.EqualsAndHashCode; /** * Describes a single API operation on a path. */ @Data +@EqualsAndHashCode(callSuper = true) public class Operation extends OperationBase { /** diff --git a/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/openapi/Parameter.java b/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/openapi/Parameter.java index 3c0313789b4a3..bafa2ea5e8c17 100644 --- a/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/openapi/Parameter.java +++ b/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/openapi/Parameter.java @@ -18,8 +18,10 @@ import org.talend.sdk.component.starter.server.service.openapi.model.common.ParameterBase; import lombok.Data; +import lombok.EqualsAndHashCode; @Data +@EqualsAndHashCode(callSuper = true) public class Parameter extends ParameterBase { /** diff --git a/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/swagger/Operation.java b/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/swagger/Operation.java index f571f4b90ade7..31dfadbc7764c 100644 --- a/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/swagger/Operation.java +++ b/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/swagger/Operation.java @@ -25,8 +25,10 @@ import org.talend.sdk.component.starter.server.service.openapi.model.openapi.Response; import lombok.Data; +import lombok.EqualsAndHashCode; @Data +@EqualsAndHashCode(callSuper = true) public class Operation extends OperationBase { /** diff --git a/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/swagger/Parameter.java b/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/swagger/Parameter.java index ce1a7240bfb0b..ec359e8662abd 100644 --- a/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/swagger/Parameter.java +++ b/component-starter-server/src/main/java/org/talend/sdk/component/starter/server/service/openapi/model/swagger/Parameter.java @@ -21,8 +21,10 @@ import org.talend.sdk.component.starter.server.service.openapi.model.common.ParameterBase; import lombok.Data; +import lombok.EqualsAndHashCode; @Data +@EqualsAndHashCode(callSuper = true) public class Parameter extends ParameterBase { /** diff --git a/component-tools/pom.xml b/component-tools/pom.xml index 4a1cf265135d6..9e804b4e7dd3f 100644 --- a/component-tools/pom.xml +++ b/component-tools/pom.xml @@ -146,11 +146,6 @@ ${junit5.version} test - - org.mockito - mockito-junit-jupiter - test - diff --git a/component-tools/src/test/java/org/talend/sdk/component/tools/validator/OptionParameterValidatorTest.java b/component-tools/src/test/java/org/talend/sdk/component/tools/validator/OptionParameterValidatorTest.java index 5a3c6d9269f52..46ac1c27be315 100644 --- a/component-tools/src/test/java/org/talend/sdk/component/tools/validator/OptionParameterValidatorTest.java +++ b/component-tools/src/test/java/org/talend/sdk/component/tools/validator/OptionParameterValidatorTest.java @@ -18,21 +18,25 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -import java.util.stream.Stream; import javax.annotation.PostConstruct; import org.apache.xbean.finder.AnnotationFinder; +import org.apache.xbean.finder.archive.ClassesArchive; import org.junit.jupiter.api.Test; -import org.mockito.Mockito; import org.talend.sdk.component.api.configuration.Option; import org.talend.sdk.component.api.input.Emitter; class OptionParameterValidatorTest { + private List validate(final Class testClass) { + final OptionParameterValidator validator = new OptionParameterValidator(); + final AnnotationFinder finder = new AnnotationFinder(new ClassesArchive(testClass)); + return validator.validate(finder, Arrays.asList(testClass)).collect(Collectors.toUnmodifiableList()); + } + @Test void okMaxRecordsAndDuration() { @Emitter @@ -44,15 +48,7 @@ void start(@Option(Option.MAX_RECORDS_PARAMETER) long maxRecords, } } - final AnnotationFinder mockFinder = Mockito.mock(AnnotationFinder.class); - Mockito.when(mockFinder.findAnnotatedMethods(PostConstruct.class)) - .thenReturn(Arrays.asList(MaxRecordAndMaxDurationEmitter.class.getDeclaredMethods())); - Mockito.when(mockFinder.findAnnotatedMethods(Emitter.class)) - .thenReturn(Collections.emptyList()); - - final OptionParameterValidator validator = new OptionParameterValidator(); - final Stream result = validator.validate(mockFinder, Mockito.anyList()); - assertEquals(0L, result.count()); + assertEquals(0L, validate(MaxRecordAndMaxDurationEmitter.class).size()); } @Test @@ -65,15 +61,7 @@ void start(@Option(Option.MAX_RECORDS_PARAMETER) long maxRecords) { } } - final AnnotationFinder mockFinder = Mockito.mock(AnnotationFinder.class); - Mockito.when(mockFinder.findAnnotatedMethods(PostConstruct.class)) - .thenReturn(Arrays.asList(MaxRecordAndMaxDurationEmitter.class.getDeclaredMethods())); - Mockito.when(mockFinder.findAnnotatedMethods(Emitter.class)) - .thenReturn(Collections.emptyList()); - - final OptionParameterValidator validator = new OptionParameterValidator(); - final Stream result = validator.validate(mockFinder, Mockito.anyList()); - assertEquals(0L, result.count()); + assertEquals(0L, validate(MaxRecordAndMaxDurationEmitter.class).size()); } @Test @@ -86,15 +74,7 @@ void start(@Option(Option.MAX_DURATION_PARAMETER) long maxDuration) { } } - final AnnotationFinder mockFinder = Mockito.mock(AnnotationFinder.class); - Mockito.when(mockFinder.findAnnotatedMethods(PostConstruct.class)) - .thenReturn(Arrays.asList(MaxRecordAndMaxDurationEmitter.class.getDeclaredMethods())); - Mockito.when(mockFinder.findAnnotatedMethods(Emitter.class)) - .thenReturn(Collections.emptyList()); - - final OptionParameterValidator validator = new OptionParameterValidator(); - final Stream result = validator.validate(mockFinder, Mockito.anyList()); - assertEquals(0L, result.count()); + assertEquals(0L, validate(MaxRecordAndMaxDurationEmitter.class).size()); } @Test @@ -107,15 +87,7 @@ void start() { } } - final AnnotationFinder mockFinder = Mockito.mock(AnnotationFinder.class); - Mockito.when(mockFinder.findAnnotatedMethods(PostConstruct.class)) - .thenReturn(Arrays.asList(MaxRecordAndMaxDurationEmitter.class.getDeclaredMethods())); - Mockito.when(mockFinder.findAnnotatedMethods(Emitter.class)) - .thenReturn(Collections.emptyList()); - - final OptionParameterValidator validator = new OptionParameterValidator(); - final Stream result = validator.validate(mockFinder, Mockito.anyList()); - assertEquals(0L, result.count()); + assertEquals(0L, validate(MaxRecordAndMaxDurationEmitter.class).size()); } @Test @@ -128,16 +100,7 @@ void start(@Option("FOOO") long maxDuration) { } } - final AnnotationFinder mockFinder = Mockito.mock(AnnotationFinder.class); - Mockito.when(mockFinder.findAnnotatedMethods(PostConstruct.class)) - .thenReturn(Arrays.asList(MaxRecordAndMaxDurationEmitter.class.getDeclaredMethods())); - Mockito.when(mockFinder.findAnnotatedMethods(Emitter.class)) - .thenReturn(Collections.emptyList()); - - final OptionParameterValidator validator = new OptionParameterValidator(); - final Stream result = validator.validate(mockFinder, Mockito.anyList()); - final List strings = result.collect(Collectors.toList()); - + final List strings = validate(MaxRecordAndMaxDurationEmitter.class); assertEquals(1, strings.size()); assertEquals( "Option value on the parameter 'maxDuration' is not acceptable. Acceptable values: [maxDurationMs,maxRecords]", @@ -154,16 +117,7 @@ void start(long maxDuration) { } } - final AnnotationFinder mockFinder = Mockito.mock(AnnotationFinder.class); - Mockito.when(mockFinder.findAnnotatedMethods(PostConstruct.class)) - .thenReturn(Arrays.asList(MaxRecordAndMaxDurationEmitter.class.getDeclaredMethods())); - Mockito.when(mockFinder.findAnnotatedMethods(Emitter.class)) - .thenReturn(Collections.emptyList()); - - final OptionParameterValidator validator = new OptionParameterValidator(); - final Stream result = validator.validate(mockFinder, Mockito.anyList()); - final List strings = result.collect(Collectors.toList()); - + final List strings = validate(MaxRecordAndMaxDurationEmitter.class); assertEquals(1, strings.size()); assertEquals("Parameter 'maxDuration' should be either annotated with @Option or removed", strings.get(0)); } @@ -179,16 +133,7 @@ void start(@Option(Option.MAX_DURATION_PARAMETER) String maxDuration, } } - final AnnotationFinder mockFinder = Mockito.mock(AnnotationFinder.class); - Mockito.when(mockFinder.findAnnotatedMethods(PostConstruct.class)) - .thenReturn(Arrays.asList(MaxRecordAndMaxDurationEmitter.class.getDeclaredMethods())); - Mockito.when(mockFinder.findAnnotatedMethods(Emitter.class)) - .thenReturn(Collections.emptyList()); - - final OptionParameterValidator validator = new OptionParameterValidator(); - final Stream result = validator.validate(mockFinder, Mockito.anyList()); - final List strings = result.collect(Collectors.toList()); - + final List strings = validate(MaxRecordAndMaxDurationEmitter.class); assertEquals(2, strings.size()); assertEquals("The 'maxDuration' parameter's type is not acceptable. Acceptable types: [Integer,Long,int,long]", strings.get(0)); diff --git a/container/nested-maven-repository/pom.xml b/container/nested-maven-repository/pom.xml index 71d73e07913b6..f92accc76f119 100644 --- a/container/nested-maven-repository/pom.xml +++ b/container/nested-maven-repository/pom.xml @@ -29,14 +29,15 @@ ${talend.build.name.base}.container.maven + 3.1.0 + 0.13.1 org.apache.maven.plugins maven-shade-plugin - ${shade-plugin.version} - provided + ${maven-shade-plugin.version} com.google.guava @@ -69,17 +70,17 @@ com.google.guava guava - - org.apache.maven.shared - maven-shared-utils - org.apache.maven.shared - maven-shared-utils - ${maven-shared-utils.version} - provided + maven-dependency-tree + ${maven-dependency-tree.version} + + + org.apache.maven.shared + maven-artifact-transfer + ${maven-artifact-transfer.version} diff --git a/documentation/src/main/antora/modules/ROOT/pages/_partials/generated_remote-engine-customizer-help.adoc b/documentation/src/main/antora/modules/ROOT/pages/_partials/generated_remote-engine-customizer-help.adoc index f876f3c441c66..d3b898de7c30a 100644 --- a/documentation/src/main/antora/modules/ROOT/pages/_partials/generated_remote-engine-customizer-help.adoc +++ b/documentation/src/main/antora/modules/ROOT/pages/_partials/generated_remote-engine-customizer-help.adoc @@ -1,66 +1,28 @@ -NAME - register-component-archive -SYNOPSIS - register-component-archive [options] - -OPTIONS - --base-image= - Base connector image to enrich with components. - - default: auto - - --cache-dir= - Where to cache the image layers - useful when the command is launched multiple - times. - - default: ${remote.engine.dir}/.remote_engine_customizer/cache - - --component-archive= - Component Archive (.car) to register/add in the Remote Engine. - - --docker-configuration-environment= - Docker daemon environment variables (as properties) if custom. - - default: - - --docker-configuration-path= - Docker daemon executable path if custom. - - --from-image-type= - Type of source image, can be useful if you don't use the default version - generation. - - default: AUTO. enum: AUTO, DOCKER, REGISTRY - - --registry-configuration-baseUrl= - Registry base URL when image type is REGISTRY. - - --registry-configuration-password= - Registry password when image type is REGISTRY. - - --registry-configuration-username= - Registry username when image type is REGISTRY. - - --remote-engine-dir= - Where the remote engine folder is, it should host a docker-compose.yml file. - - --target-image= - Name of the target image, if not set it will be generated. - - default: auto - - --to-image-type= - Type of target image, it is generally just a local DOCKER image. - - default: DOCKER. enum: AUTO, DOCKER, REGISTRY - - --no-update-original-docker-compose - Should the Remote Engine docker-compose.yml be updated once the new image is - built. - - --work-dir= - Where to create temporary files needed for the build of the new image. - - default: ${java.io.tmpdir}/remote-engine-customizer +Usage: register-component-archive [options] + +Options: + --base-image= Base connector image to enrich with components. + (default: auto) + --cache-dir= Where to cache the image layers - useful when the command is launched multiple times. + (default: ${remote.engine.dir}/.remote_engine_customizer/cache) + --component-archive= Component Archive (.car) to register/add in the Remote Engine. + --docker-configuration-environment= Docker daemon environment variables (as properties) if custom. + (default: ) + --docker-configuration-path= Docker daemon executable path if custom. + --from-image-type= Type of source image, can be useful if you don't use the default version generation. + (default: AUTO) + (enum: AUTO, DOCKER, REGISTRY) + --registry-configuration-baseUrl= Registry base URL when image type is REGISTRY. + --registry-configuration-password= Registry password when image type is REGISTRY. + --registry-configuration-username= Registry username when image type is REGISTRY. + --remote-engine-dir= Where the remote engine folder is, it should host a docker-compose.yml file. + --target-image= Name of the target image, if not set it will be generated. + (default: auto) + --to-image-type= Type of target image, it is generally just a local DOCKER image. + (default: DOCKER) + (enum: AUTO, DOCKER, REGISTRY) + --no-update-original-docker-compose Should the Remote Engine docker-compose.yml be updated once the new image is built. + --work-dir= Where to create temporary files needed for the build of the new image. + (default: ${java.io.tmpdir}/remote-engine-customizer) diff --git a/pom.xml b/pom.xml index 35f00fc67316e..8671457815c72 100644 --- a/pom.xml +++ b/pom.xml @@ -150,6 +150,9 @@ talend/component-runtime + 17 + 17 + UTF-8 @@ -206,7 +209,6 @@ 1.0.3 1.2.2 5.10.0 - 4.8.1 1.3 2.16.0 2.16.0 @@ -220,9 +222,8 @@ 5.23.0 - 3.8.8 - 3.6.0 - 3.3.4 + 3.9.9 + 3.8.0 2.46.0 1.1.10.5 @@ -235,21 +236,30 @@ 6.9.1 3.0.18 1.13.1 - 3.3.0 - 3.3.0 - 3.3.2 - 3.0.0-M2 - 3.1.0 - 1.4.2 - 3.3.0 + 3.8.0 3.0.0 - 3.2.0 - 3.10.1 + 3.4.0 + 1.4.2 + 3.1.0 + 3.7.1 + 3.13.0 + 3.1.3 + 3.1.3 + 3.8.0 + 3.4.2 + 3.10.1 + 3.15.0 + 3.1.1 + 3.3.1 + 3.6.0 + 3.4.2 + 3.20.0 + 3.3.1 4.9.10 1.0.7 6.7.0.202309050840-r 2.8 - 3.0.0 + 3.5.1 0.8.10 3.0.1 1.6.12 @@ -881,12 +891,6 @@ tomitribe-crest ${tomitribe-crest.version} - - - org.mockito - mockito-junit-jupiter - ${mockito4.version} - @@ -1028,7 +1032,7 @@ org.apache.maven.plugins maven-javadoc-plugin - ${javadoc-plugin.version} + ${maven-javadoc-plugin.version} 8 ${project.build.directory}/javadoc/binary @@ -1206,7 +1210,7 @@ org.apache.maven.plugins maven-antrun-plugin - 3.0.0 + ${maven-antrun-plugin.version} org.apache.ant @@ -1220,8 +1224,6 @@ maven-compiler-plugin ${maven-compiler-plugin.version} - 1.8 - 1.8 true javac true @@ -1243,32 +1245,32 @@ org.apache.maven.plugins maven-source-plugin - 3.2.1 + ${maven-source-plugin.version} org.apache.maven.plugins maven-jar-plugin - 3.2.2 + ${maven-jar-plugin.version} org.apache.maven.plugins maven-install-plugin - 3.0.0-M1 + ${maven-install-plugin.version} org.apache.maven.plugins maven-deploy-plugin - 3.0.0-M2 + ${maven-deploy-plugin.version} org.apache.maven.plugins maven-site-plugin - 3.11.0 + ${maven-site-plugin.version} org.apache.maven.plugins maven-release-plugin - 3.0.0-M5 + ${maven-release-plugin.version} org.apache.maven.plugins @@ -1283,22 +1285,17 @@ org.apache.maven.plugins maven-assembly-plugin - ${assembly-plugin.version} + ${maven-assembly-plugin.version} org.apache.maven.plugins maven-invoker-plugin - 3.2.2 + ${maven-invoker-plugin.version} org.apache.maven.plugins maven-shade-plugin - ${shade-plugin.version} - - - org.apache.maven - maven-compat - ${mvn.version} + ${maven-shade-plugin.version} com.google.cloud.tools @@ -1882,7 +1879,7 @@ org.apache.maven.plugins maven-javadoc-plugin - ${javadoc-plugin.version} + ${maven-javadoc-plugin.version} attach-javadocs diff --git a/remote-engine-customizer/pom.xml b/remote-engine-customizer/pom.xml index 8991629d3707d..b9db90dda3de4 100644 --- a/remote-engine-customizer/pom.xml +++ b/remote-engine-customizer/pom.xml @@ -58,7 +58,6 @@ org.tomitribe tomitribe-crest - 0.16 org.apache.xbean diff --git a/sample-parent/documentation-sample/pom.xml b/sample-parent/documentation-sample/pom.xml index 92e2a1a28a7d9..f950cee3bbb36 100644 --- a/sample-parent/documentation-sample/pom.xml +++ b/sample-parent/documentation-sample/pom.xml @@ -55,7 +55,7 @@ org.apache.maven.plugins maven-deploy-plugin - ${deploy-plugin.version} + ${maven-deploy-plugin.version} ${maven.deploy.skip} diff --git a/sample-parent/pom.xml b/sample-parent/pom.xml index 4bf70297a060e..744100e9f433d 100644 --- a/sample-parent/pom.xml +++ b/sample-parent/pom.xml @@ -53,7 +53,7 @@ org.apache.maven.plugins maven-deploy-plugin - ${deploy-plugin.version} + ${maven-deploy-plugin.version} true diff --git a/sample-parent/sample-beam/pom.xml b/sample-parent/sample-beam/pom.xml index dcd935d0f49dc..1beb3cc2ae136 100644 --- a/sample-parent/sample-beam/pom.xml +++ b/sample-parent/sample-beam/pom.xml @@ -43,7 +43,7 @@ org.apache.maven.plugins maven-deploy-plugin - ${deploy-plugin.version} + ${maven-deploy-plugin.version} true diff --git a/sample-parent/sample/pom.xml b/sample-parent/sample/pom.xml index a79c049666635..6a1f6bb6fb079 100644 --- a/sample-parent/sample/pom.xml +++ b/sample-parent/sample/pom.xml @@ -52,7 +52,7 @@ org.apache.maven.plugins maven-deploy-plugin - ${deploy-plugin.version} + ${maven-deploy-plugin.version} true diff --git a/singer-parent/component-kitap/pom.xml b/singer-parent/component-kitap/pom.xml index a5b7f775662fe..b94e9786715ef 100644 --- a/singer-parent/component-kitap/pom.xml +++ b/singer-parent/component-kitap/pom.xml @@ -146,7 +146,7 @@ org.apache.maven.plugins maven-shade-plugin - ${shade-plugin.version} + ${maven-shade-plugin.version} diff --git a/talend-component-maven-plugin/pom.xml b/talend-component-maven-plugin/pom.xml index 64f68a9a0dd5b..627e7a367ee3d 100644 --- a/talend-component-maven-plugin/pom.xml +++ b/talend-component-maven-plugin/pom.xml @@ -33,6 +33,7 @@ ${talend.build.name.base}.maven + 2.1.1 1.31.1 jdbc @@ -59,7 +60,7 @@ org.apache.maven.plugin-tools maven-plugin-annotations - ${mvn-minimal.version} + ${maven-plugin-annotations.version} org.apache.maven @@ -176,7 +177,7 @@ org.codehaus.plexus plexus-component-metadata - 1.7.1 + ${plexus-component-metadata.version} diff --git a/vault-client/src/main/java/org/talend/sdk/components/vault/client/VaultClient.java b/vault-client/src/main/java/org/talend/sdk/components/vault/client/VaultClient.java index 1d596402a93cc..74a6d16a8ad38 100644 --- a/vault-client/src/main/java/org/talend/sdk/components/vault/client/VaultClient.java +++ b/vault-client/src/main/java/org/talend/sdk/components/vault/client/VaultClient.java @@ -178,6 +178,8 @@ private void destroy() { } } + // as deprecation was introduced since = "17", can ignore it for now... + @SuppressWarnings({ "deprecation", "removal" }) public void init(@Observes @Initialized(ApplicationScoped.class) final ServletContext init) { scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() { diff --git a/vault-client/src/main/java/org/talend/sdk/components/vault/client/VaultClientSetup.java b/vault-client/src/main/java/org/talend/sdk/components/vault/client/VaultClientSetup.java index 0e82b444cb9ec..e7d81316552f0 100644 --- a/vault-client/src/main/java/org/talend/sdk/components/vault/client/VaultClientSetup.java +++ b/vault-client/src/main/java/org/talend/sdk/components/vault/client/VaultClientSetup.java @@ -158,6 +158,8 @@ public void releaseVaultClient(@Disposes @VaultHttp final Client client) { client.close(); } + // as deprecation was introduced since = "17", can ignore it for now... + @SuppressWarnings({ "deprecation", "removal" }) private ThreadPoolExecutor createExecutor(final int core, final int max, final long keepAlive, final String nameMarker) { return new ThreadPoolExecutor(core, max, keepAlive, MILLISECONDS, new LinkedBlockingQueue<>(),