From 96f6d579e5be6be9f240a32066076e5fe7352d31 Mon Sep 17 00:00:00 2001 From: Emmanuel GALLOIS Date: Mon, 3 Nov 2025 15:56:57 +0100 Subject: [PATCH 1/6] feat(QTDI-2145): disable fallback to user's m2 - initial shot, needs refine for non-regression --- .../MavenRepositoryDefaultResolver.java | 58 ++++++++++++------- .../runtime/manager/ComponentManagerTest.java | 12 ++++ .../service/MavenRepositoryResolverTest.java | 1 + .../component/container/ContainerManager.java | 14 +---- 4 files changed, 52 insertions(+), 33 deletions(-) diff --git a/component-runtime-manager/src/main/java/org/talend/sdk/component/runtime/manager/service/MavenRepositoryDefaultResolver.java b/component-runtime-manager/src/main/java/org/talend/sdk/component/runtime/manager/service/MavenRepositoryDefaultResolver.java index 5bb98bfcc1e2a..50db5bf827ae3 100644 --- a/component-runtime-manager/src/main/java/org/talend/sdk/component/runtime/manager/service/MavenRepositoryDefaultResolver.java +++ b/component-runtime-manager/src/main/java/org/talend/sdk/component/runtime/manager/service/MavenRepositoryDefaultResolver.java @@ -52,6 +52,8 @@ public class MavenRepositoryDefaultResolver implements MavenRepositoryResolver { private PathHandler handler = new PathHandlerImpl(); + private boolean hasFallback = Boolean.getBoolean("talend.component.manager.m2.fallback"); + @Override public Path discover() { return Stream @@ -63,8 +65,12 @@ public Path discover() { @Override public Path fallback() { - log.debug("[fallback] default to user's default repository."); - return Paths.get(USER_HOME).resolve(M2_REPOSITORY); + log.debug("[fallback::{}] default to user's default repository.", hasFallback); + if (hasFallback) { + return Paths.get(USER_HOME).resolve(M2_REPOSITORY); + } else { + return Paths.get(USER_HOME); + } } public Path fromSystemProperties() { @@ -119,30 +125,38 @@ private static String parseSettings(final Path settings) { } public Path fromMavenSettings() { - return Stream.of( - Optional.ofNullable(System.getProperty(TALEND_COMPONENT_MANAGER_M2_SETTINGS)) - .map(Paths::get) - .orElse(null), // - Optional.ofNullable(System.getProperty("user.home")).map(it -> Paths.get(it, M2_SETTINGS)).orElse(null), - Optional.ofNullable(System.getenv(MAVEN_HOME)).map(it -> Paths.get(it, CONF_SETTINGS)).orElse(null), - Optional.ofNullable(System.getenv(M2_HOME)).map(it -> Paths.get(it, CONF_SETTINGS)).orElse(null)) - .filter(Objects::nonNull) - .filter(Files::exists) - .map(MavenRepositoryDefaultResolver::parseSettings) - .filter(Objects::nonNull) - .map(handler::get) - .filter(Objects::nonNull) - .findFirst() - .orElse(null); + if (hasFallback) { + return Stream.of( + Optional.ofNullable(System.getProperty(TALEND_COMPONENT_MANAGER_M2_SETTINGS)) + .map(Paths::get) + .orElse(null), // + Optional.ofNullable(System.getProperty("user.home")) + .map(it -> Paths.get(it, M2_SETTINGS)) + .orElse(null), + Optional.ofNullable(System.getenv(MAVEN_HOME)).map(it -> Paths.get(it, CONF_SETTINGS)).orElse(null), + Optional.ofNullable(System.getenv(M2_HOME)).map(it -> Paths.get(it, CONF_SETTINGS)).orElse(null)) + .filter(Objects::nonNull) + .filter(Files::exists) + .map(MavenRepositoryDefaultResolver::parseSettings) + .filter(Objects::nonNull) + .map(handler::get) + .filter(Objects::nonNull) + .findFirst() + .orElse(null); + } else { + return null; + } } public Path fromEnvironmentVariables() { - final String vm2 = System.getenv(M2_HOME); - log.debug("[fromEnvironmentVariables] M2_HOME={}", vm2); - if (vm2 != null) { - return handler.get(Paths.get(vm2, "repository").toString()); + if (hasFallback) { + final String vm2 = System.getenv(M2_HOME); + log.debug("[fromEnvironmentVariables] M2_HOME={}", vm2); + if (vm2 != null) { + return handler.get(Paths.get(vm2, "repository").toString()); + } + log.debug("[fromEnvironmentVariables] Could not get m2 from environment."); } - log.debug("[fromEnvironmentVariables] Could not get m2 from environment."); return null; } diff --git a/component-runtime-manager/src/test/java/org/talend/sdk/component/runtime/manager/ComponentManagerTest.java b/component-runtime-manager/src/test/java/org/talend/sdk/component/runtime/manager/ComponentManagerTest.java index f28b82dd7c735..636907401e087 100644 --- a/component-runtime-manager/src/test/java/org/talend/sdk/component/runtime/manager/ComponentManagerTest.java +++ b/component-runtime-manager/src/test/java/org/talend/sdk/component/runtime/manager/ComponentManagerTest.java @@ -60,7 +60,9 @@ import javax.management.ReflectionException; import org.apache.xbean.finder.util.Files; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; import org.junit.jupiter.params.ParameterizedTest; @@ -98,6 +100,16 @@ private ComponentManager newManager() { return newManager(new File("target/test-dependencies")); } + @BeforeAll + static void setup() { + System.setProperty("talend.component.manager.m2.fallback", "true"); + } + + @AfterAll + static void teardown() { + System.clearProperty("talend.component.manager.m2.fallback"); + } + @Test void doubleClose() { final ComponentManager instance = ComponentManager.instance(); diff --git a/component-runtime-manager/src/test/java/org/talend/sdk/component/runtime/manager/service/MavenRepositoryResolverTest.java b/component-runtime-manager/src/test/java/org/talend/sdk/component/runtime/manager/service/MavenRepositoryResolverTest.java index a179b40b4c275..b14d19ba45e28 100644 --- a/component-runtime-manager/src/test/java/org/talend/sdk/component/runtime/manager/service/MavenRepositoryResolverTest.java +++ b/component-runtime-manager/src/test/java/org/talend/sdk/component/runtime/manager/service/MavenRepositoryResolverTest.java @@ -70,6 +70,7 @@ public Path get(final String path) { @BeforeAll static void setup() throws IOException { + System.setProperty("talend.component.manager.m2.fallback", "true"); final Path repository = Paths.get(new File("target/test-classes").getAbsolutePath()); Files.createDirectories(repository.resolve(M2_REPOSITORY)); } diff --git a/container/container-core/src/main/java/org/talend/sdk/component/container/ContainerManager.java b/container/container-core/src/main/java/org/talend/sdk/component/container/ContainerManager.java index eeedb240241d8..f7247ca1908c9 100644 --- a/container/container-core/src/main/java/org/talend/sdk/component/container/ContainerManager.java +++ b/container/container-core/src/main/java/org/talend/sdk/component/container/ContainerManager.java @@ -29,7 +29,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.net.URL; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -111,18 +110,11 @@ public ContainerManager(final DependenciesResolutionConfiguration dependenciesRe this.logInfoLevelMapping = logInfoLevelMapping; this.containerInitializer = containerInitializer; this.resolver = dependenciesResolutionConfiguration.getResolver(); + this.rootRepositoryLocation = dependenciesResolutionConfiguration.getRootRepositoryLocation(); - Path rootRepo = ofNullable(dependenciesResolutionConfiguration.getRootRepositoryLocation()) - .filter(Files::exists) - .orElseGet(() -> PathFactory.get(System.getProperty("user.home")).resolve(".m2/repository")); - // if we've defaulted to user home m2 (fallback), we want to check if we're in running in a fatjar - if (PathFactory.get(System.getProperty("user.home")).resolve(".m2/repository").equals(rootRepo)) { - final URL nested = classLoaderConfiguration.getParent().getResource("MAVEN-INF/repository"); - if (nested != null) { - rootRepo = PathFactory.get(nested.getFile().replace("file:", "")); - } + if (log.isDebugEnabled()) { + log.debug("Using root repository: " + this.rootRepositoryLocation.toAbsolutePath()); } - this.rootRepositoryLocation = rootRepo; info("Using root repository: " + this.rootRepositoryLocation.toAbsolutePath()); final String pluginsLocation = System.getProperty("talend.component.manager.plugins.location", "TALEND-INF/plugins.properties"); From 65c4eecefb21db159e2373b96a5c905911acfb7d Mon Sep 17 00:00:00 2001 From: Emmanuel GALLOIS Date: Tue, 4 Nov 2025 15:31:13 +0100 Subject: [PATCH 2/6] feat(QTDI-2145): disable fallback to user's m2 - initial shot, needs refine for non-regression --- .../org/talend/sdk/component/container/ContainerManager.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/container/container-core/src/main/java/org/talend/sdk/component/container/ContainerManager.java b/container/container-core/src/main/java/org/talend/sdk/component/container/ContainerManager.java index f7247ca1908c9..19664081ddc73 100644 --- a/container/container-core/src/main/java/org/talend/sdk/component/container/ContainerManager.java +++ b/container/container-core/src/main/java/org/talend/sdk/component/container/ContainerManager.java @@ -112,9 +112,6 @@ public ContainerManager(final DependenciesResolutionConfiguration dependenciesRe this.resolver = dependenciesResolutionConfiguration.getResolver(); this.rootRepositoryLocation = dependenciesResolutionConfiguration.getRootRepositoryLocation(); - if (log.isDebugEnabled()) { - log.debug("Using root repository: " + this.rootRepositoryLocation.toAbsolutePath()); - } info("Using root repository: " + this.rootRepositoryLocation.toAbsolutePath()); final String pluginsLocation = System.getProperty("talend.component.manager.plugins.location", "TALEND-INF/plugins.properties"); From 4c4468697252392c0ba646e6f461f960fb16b4aa Mon Sep 17 00:00:00 2001 From: Emmanuel GALLOIS Date: Tue, 4 Nov 2025 18:47:03 +0100 Subject: [PATCH 3/6] feat(QTDI-2145): no fallback returns a tmp folder --- .../manager/service/MavenRepositoryDefaultResolver.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/component-runtime-manager/src/main/java/org/talend/sdk/component/runtime/manager/service/MavenRepositoryDefaultResolver.java b/component-runtime-manager/src/main/java/org/talend/sdk/component/runtime/manager/service/MavenRepositoryDefaultResolver.java index 50db5bf827ae3..f820556e16c2a 100644 --- a/component-runtime-manager/src/main/java/org/talend/sdk/component/runtime/manager/service/MavenRepositoryDefaultResolver.java +++ b/component-runtime-manager/src/main/java/org/talend/sdk/component/runtime/manager/service/MavenRepositoryDefaultResolver.java @@ -15,6 +15,7 @@ */ package org.talend.sdk.component.runtime.manager.service; +import java.io.IOException; import java.net.URI; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -69,7 +70,13 @@ public Path fallback() { if (hasFallback) { return Paths.get(USER_HOME).resolve(M2_REPOSITORY); } else { - return Paths.get(USER_HOME); + try { + // we create an empty temporary folder as our default m2. + return Files.createTempDirectory("empty_m2_"); + } catch (IOException e) { + // if any permission issue or other, we go to user's dir. + return Paths.get(USER_HOME); + } } } From 2b52a54ab93a4845ff6500a89f4c2c6390ca4fb5 Mon Sep 17 00:00:00 2001 From: Yves Piel Date: Sun, 9 Nov 2025 23:48:57 +0100 Subject: [PATCH 4/6] fix(QTDI-2145): Some log has their behavior changed, some adaptions to support. --- .../sdk/component/singer/kitap/Kitap.java | 2 + .../sdk/component/singer/kitap/KitapTest.java | 64 +++++++++++-------- .../singer/kitap/component/KitapSource.java | 4 +- .../talend/sdk/component/singer/java/IO.java | 11 +++- .../sdk/component/singer/java/Singer.java | 15 +++-- 5 files changed, 61 insertions(+), 35 deletions(-) diff --git a/singer-parent/component-kitap/src/main/java/org/talend/sdk/component/singer/kitap/Kitap.java b/singer-parent/component-kitap/src/main/java/org/talend/sdk/component/singer/kitap/Kitap.java index 5c56dde2da24c..37a0296393afe 100644 --- a/singer-parent/component-kitap/src/main/java/org/talend/sdk/component/singer/kitap/Kitap.java +++ b/singer-parent/component-kitap/src/main/java/org/talend/sdk/component/singer/kitap/Kitap.java @@ -75,6 +75,8 @@ public Kitap(final SingerArgs args, final Singer singer) { @Override public void run() { + singer.getRunIo().set(); + final JsonObject componentConfig = ofNullable(args.getConfig().getJsonObject("component")) .orElseGet(() -> ofNullable(args.getConfig().getJsonString("component_config")).map(jsonString -> { try (final JsonReader reader = Json.createReader(new StringReader(jsonString.getString()))) { diff --git a/singer-parent/component-kitap/src/test/java/org/talend/sdk/component/singer/kitap/KitapTest.java b/singer-parent/component-kitap/src/test/java/org/talend/sdk/component/singer/kitap/KitapTest.java index 950a0c67b7016..df0cb19c591c6 100644 --- a/singer-parent/component-kitap/src/test/java/org/talend/sdk/component/singer/kitap/KitapTest.java +++ b/singer-parent/component-kitap/src/test/java/org/talend/sdk/component/singer/kitap/KitapTest.java @@ -33,10 +33,13 @@ import java.nio.file.StandardOpenOption; import java.time.ZoneId; import java.time.ZonedDateTime; +import java.util.Arrays; import java.util.List; +import java.util.Optional; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; @@ -52,7 +55,7 @@ class KitapTest { private static Path config; - private static IO testIO; + private static IO byteArrayOutputStreamIO; private static ByteArrayOutputStream stdout; @@ -60,9 +63,15 @@ class KitapTest { private static Runnable flushIO; + private static PrintStream stdoutBackup; + + private static PrintStream stderrBackup; + @BeforeAll static void init(@TempDir final Path tempDir) throws IOException { EnvironmentSetup.init(); + stdoutBackup = System.out; + stderrBackup = System.err; config = tempDir.resolve("config.json"); Files @@ -71,56 +80,59 @@ static void init(@TempDir final Path tempDir) throws IOException { .getBytes(StandardCharsets.UTF_8), StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.CREATE, StandardOpenOption.WRITE); - testIO = new IO(); stdout = new ByteArrayOutputStream(); - final PrintStream stdoutPs = new PrintStream(stdout); stderr = new ByteArrayOutputStream(); - final PrintStream stderrPs = new PrintStream(stderr); - final IO overridenIO = new IO(new InputStream() { + byteArrayOutputStreamIO = new IO(new InputStream() { @Override public int read() { return -1; } - }, stdoutPs, stderrPs); - overridenIO.set(); + }, new PrintStream(stdout), new PrintStream(stderr)); flushIO = () -> { - stdoutPs.flush(); - stderrPs.flush(); + try { + stdout.flush(); + stderr.flush(); + } catch (IOException e) { + throw new RuntimeException(e); + } }; } @AfterEach - void reset() { + void resetOutputs() { stdout.reset(); stderr.reset(); } @AfterAll - static void resetIO() { - testIO.set(); + static void resetSystemStd() { + System.setOut(stdoutBackup); + System.setErr(stderrBackup); } @Test void discover() throws IOException { final Kitap kitap = new Kitap(new SingerArgs("--config", config.toAbsolutePath().toString(), "--discover"), - new Singer(new IO(), () -> CONSTANT_DATE)); + new Singer(byteArrayOutputStreamIO, () -> CONSTANT_DATE)); kitap.run(); flushIO.run(); assertEquals("{\"streams\":[" + "{\"tap_stream_id\":\"default\",\"stream\":\"default\"," + "\"schema\":{\"type\":[\"null\",\"object\"],\"additionalProperties\":false,\"properties\":{\"record_number\":{\"type\":[\"integer\"]}}}," - + "\"metadata\":[{\"metadata\":{\"inclusion\":\"automatic\",\"selected-by-default\":true},\"breadcrumb\":[\"properties\",\"record_number\"]}]}]}\n", - stdout.toString("UTF-8")); + + "\"metadata\":[{\"metadata\":{\"inclusion\":\"automatic\",\"selected-by-default\":true},\"breadcrumb\":[\"properties\",\"record_number\"]}]}]}" + + System.lineSeparator(), + stdout.toString(StandardCharsets.UTF_8)); } @Test void readAll() throws IOException { final Kitap kitap = new Kitap(new SingerArgs("--config", config.toAbsolutePath().toString()), - new Singer(new IO(), () -> CONSTANT_DATE)); + new Singer(byteArrayOutputStreamIO, () -> CONSTANT_DATE)); kitap.run(); flushIO.run(); - try (final BufferedReader reader = new BufferedReader(new StringReader(stdout.toString("UTF-8")))) { + try (final BufferedReader reader = + new BufferedReader(new StringReader(stdout.toString(StandardCharsets.UTF_8)))) { final List actuals = reader.lines().collect(toList()); assertLinesMatch(asList( "{\"type\":\"SCHEMA\",\"stream\":\"default\",\"schema\":{\"type\":[\"null\",\"object\"],\"additionalProperties\":false,\"properties\":{\"record_number\":{\"type\":[\"integer\"]}}},\"key_properties\":[],\"bookmark_properties\":[]}", @@ -136,16 +148,14 @@ void readAll() throws IOException { "{\"type\":\"RECORD\",\"stream\":\"default\",\"time_extracted\":\"2019-08-23T15:11:00.000000Z\",\"record\":{\"record_number\":10}}"), actuals, actuals::toString); } - try (final BufferedReader reader = new BufferedReader(new StringReader(stderr.toString("UTF-8")))) { - final String dateRegex = - "\\p{Digit}{4}-\\p{Digit}{2}-\\p{Digit}{2}.\\p{Digit}{2}:\\p{Digit}{2}:\\p{Digit}{2}.\\p{Digit}{1,3}"; + try (final BufferedReader reader = + new BufferedReader(new StringReader(stderr.toString(StandardCharsets.UTF_8)))) { + List expected = Arrays.asList("log4j error", "logback error", "jul error"); final List actuals = reader.lines().collect(toList()); - assertLinesMatch( - asList("\\[" + dateRegex + "\\]\\[main\\]\\[ERROR\\]\\[log4j2\\] log4j2 error", - "\\[" + dateRegex + "\\]\\[main\\]\\[ERROR\\]\\[log4j\\] log4j error", - "\\[" + dateRegex + "\\]\\[main\\]\\[ERROR\\]\\[logback\\] logback error", - "\\[" + dateRegex + "Z\\]\\[main\\]\\[SEVERE\\]\\[jul\\] jul error"), - actuals, actuals::toString); + for (String end : expected) { + Optional any = actuals.stream().filter(l -> l.endsWith(end)).findAny(); + Assertions.assertTrue(any.isPresent(), String.format("Can't find '%s' in error logs.", end)); + } } } -} +} \ No newline at end of file diff --git a/singer-parent/component-kitap/src/test/java/org/talend/sdk/component/singer/kitap/component/KitapSource.java b/singer-parent/component-kitap/src/test/java/org/talend/sdk/component/singer/kitap/component/KitapSource.java index 0c87b5e8fde24..1e3b4be964dad 100644 --- a/singer-parent/component-kitap/src/test/java/org/talend/sdk/component/singer/kitap/component/KitapSource.java +++ b/singer-parent/component-kitap/src/test/java/org/talend/sdk/component/singer/kitap/component/KitapSource.java @@ -52,7 +52,7 @@ public Record next() { if (remaining > 0) { remaining--; switch (remaining) { - case 9: + case -1: // not managed anymore final org.apache.logging.log4j.Logger log4j2 = LogManager.getLogger("log4j2"); log4j2.info("log4j2 info"); log4j2.error("log4j2 error"); @@ -84,4 +84,4 @@ public static class Configuration { @Option private int recordCount = 1; } -} +} \ No newline at end of file diff --git a/singer-parent/singer-java/src/main/java/org/talend/sdk/component/singer/java/IO.java b/singer-parent/singer-java/src/main/java/org/talend/sdk/component/singer/java/IO.java index df19212f9f9e2..6d6a58698178b 100644 --- a/singer-parent/singer-java/src/main/java/org/talend/sdk/component/singer/java/IO.java +++ b/singer-parent/singer-java/src/main/java/org/talend/sdk/component/singer/java/IO.java @@ -35,9 +35,16 @@ public IO() { this(System.in, System.out, System.err); } + public void println(final String message) { + stdout.println(message); + } + + /** + * Force all System.out.printXxx to write to standard error output + */ public void set() { System.setIn(stdin); - System.setOut(stdout); + System.setOut(stderr); System.setErr(stderr); } -} +} \ No newline at end of file diff --git a/singer-parent/singer-java/src/main/java/org/talend/sdk/component/singer/java/Singer.java b/singer-parent/singer-java/src/main/java/org/talend/sdk/component/singer/java/Singer.java index 56fa2b07eec22..b24b4fab3cd38 100644 --- a/singer-parent/singer-java/src/main/java/org/talend/sdk/component/singer/java/Singer.java +++ b/singer-parent/singer-java/src/main/java/org/talend/sdk/component/singer/java/Singer.java @@ -28,11 +28,11 @@ import javax.json.JsonBuilderFactory; import javax.json.JsonObject; -import lombok.RequiredArgsConstructor; +import lombok.Getter; -@RequiredArgsConstructor public class Singer { + @Getter private final IO runIo; private final Supplier dateTimeSupplier; @@ -44,6 +44,13 @@ public class Singer { public Singer() { this(new IO(), ZonedDateTime::now); + + } + + public Singer(final IO runIo, final Supplier dateTimeSupplier) { + this.runIo = runIo; + this.dateTimeSupplier = dateTimeSupplier; + this.runIo.set(); } public String formatDate(final ZonedDateTime dateTime) { @@ -80,10 +87,10 @@ public synchronized void writeRecord(final String stream, final JsonObject recor } public synchronized void stdout(final String message) { - runIo.getStdout().println(message); + runIo.println(message); } public synchronized void stderr(final String message) { runIo.getStderr().println(message); } -} +} \ No newline at end of file From 837694671186f3ff91bef6c7cf25f2b3769a3854 Mon Sep 17 00:00:00 2001 From: Yves Piel Date: Mon, 10 Nov 2025 00:27:42 +0100 Subject: [PATCH 5/6] fix(QTDI-2145): Some log has their behavior changed, some adaptions to support. --- .../java/org/talend/sdk/component/singer/java/IOTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/singer-parent/singer-java/src/test/java/org/talend/sdk/component/singer/java/IOTest.java b/singer-parent/singer-java/src/test/java/org/talend/sdk/component/singer/java/IOTest.java index 33d16729d6a88..933474ae3d24e 100644 --- a/singer-parent/singer-java/src/test/java/org/talend/sdk/component/singer/java/IOTest.java +++ b/singer-parent/singer-java/src/test/java/org/talend/sdk/component/singer/java/IOTest.java @@ -42,16 +42,16 @@ public int read() { }, stdoutPs, stderrPs); overridenIO.set(); try { - System.out.println("test out stash"); + overridenIO.println("test out stash"); stdoutPs.flush(); System.err.println("test err stash"); stderrPs.flush(); - assertEquals("test out stash\n", stdout.toString("UTF-8")); - assertEquals("test err stash\n", stderr.toString("UTF-8")); + assertEquals("test out stash" + System.lineSeparator(), stdout.toString("UTF-8")); + assertEquals("test err stash" + System.lineSeparator(), stderr.toString("UTF-8")); } finally { testIO.set(); } } -} +} \ No newline at end of file From 6fc1bd0868c648551755573c732e349f880c3721 Mon Sep 17 00:00:00 2001 From: Yves Piel Date: Mon, 10 Nov 2025 16:18:08 +0100 Subject: [PATCH 6/6] fix(QTDI-2145): Add jackson in kitap since must be provided for TCK connectors. --- singer-parent/component-kitap/pom.xml | 359 ++++++++++++++------------ 1 file changed, 188 insertions(+), 171 deletions(-) diff --git a/singer-parent/component-kitap/pom.xml b/singer-parent/component-kitap/pom.xml index 413dbefcb2d2b..997ee9a0a28f2 100644 --- a/singer-parent/component-kitap/pom.xml +++ b/singer-parent/component-kitap/pom.xml @@ -13,181 +13,198 @@ See the License for the specific language governing permissions and limitations under the License. --> - - 4.0.0 + + 4.0.0 - - org.talend.sdk.component - singer-parent - 1.86.0-SNAPSHOT - + + org.talend.sdk.component + singer-parent + 1.86.0-SNAPSHOT + - component-kitap + component-kitap - Component Runtime :: Singer :: Component Kitap - Component Kit tap. + Component Runtime :: Singer :: Component Kitap + Component Kit tap. - - ${talend.build.name.base}.singer.component - true - + + ${talend.build.name.base}.singer.component + true + - - - ${project.groupId} - singer-java - ${project.version} - - - ${project.groupId} - component-runtime-manager - ${project.version} - + + + ${project.groupId} + singer-java + ${project.version} + + + ${project.groupId} + component-runtime-manager + ${project.version} + - - ${project.groupId} - slf4j-standard - ${project.version} - - - - ch.qos.reload4j - reload4j - ${reload4j.version} - test - - - org.apache.logging.log4j - log4j-core - ${log4j2.version} - test - - - ch.qos.logback - logback-classic - ${logback.version} - test - - - org.apache.spark - spark-core_${spark-scala.version} - ${spark.version} - test - - - log4j - log4j - - - org.apache.commons - commons-lang3 - - - org.apache.avro - avro - - - - - org.apache.avro - avro - test - - + + ${project.groupId} + slf4j-standard + ${project.version} + + + + ch.qos.reload4j + reload4j + ${reload4j.version} + test + + + org.apache.logging.log4j + log4j-core + ${log4j2.version} + test + + + ch.qos.logback + logback-classic + ${logback.version} + test + + + org.apache.spark + spark-core_${spark-scala.version} + ${spark.version} + test + + + log4j + log4j + + + org.apache.commons + commons-lang3 + + + org.apache.avro + avro + + + + + org.apache.avro + avro + test + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.core + jackson-databind + + - - - - true - src/test/resources - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - default-test - - test - - test - - - **/KitapTest.java - - - ch.qos.logback:logback-classic - ch.qos.logback:logback-core - - - - - - kitap-test - - test - - test - - - **/KitapTest.java - - - ${project.groupId}:slf4j-standard - - 1 - false - - - - - - org.apache.maven.plugins - maven-shade-plugin - - - - shade - - package - - true - fatjar - ${project.build.directory}/reduced-pom.xml - - - - - org.talend.sdk.component.singer.kitap.Carpates - ${maven.build.timestamp} - ${git.commit.id} - ${git.branch} - ${talend.build.name} - - - - - - ch.qos.logback:* - - - - - *:* - - META-INF/maven/** - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - - - - - - - + + + + true + src/test/resources + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + default-test + + test + + test + + + **/KitapTest.java + + + ch.qos.logback:logback-classic + ch.qos.logback:logback-core + + + + + + kitap-test + + test + + test + + + **/KitapTest.java + + + ${project.groupId}:slf4j-standard + + + 1 + false + + + + + + org.apache.maven.plugins + maven-shade-plugin + + + + shade + + package + + true + fatjar + ${project.build.directory}/reduced-pom.xml + + + + + + org.talend.sdk.component.singer.kitap.Carpates + ${maven.build.timestamp} + ${git.commit.id} + ${git.branch} + ${talend.build.name} + + + + + + ch.qos.logback:* + + + + + *:* + + META-INF/maven/** + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + + \ No newline at end of file