You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by fa...@apache.org on 2023/03/30 02:51:23 UTC

[incubator-seatunnel] branch dev updated: [Improve] [Zeta] Change ClassLoader To Improve the SDK compatibility of the client (#4447)

This is an automated email from the ASF dual-hosted git repository.

fanjia pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new 3523d5b42 [Improve] [Zeta] Change ClassLoader To Improve the SDK compatibility of the client (#4447)
3523d5b42 is described below

commit 3523d5b42307ceec885b0f6dae9d64425fe11e9d
Author: Hisoka <fa...@qq.com>
AuthorDate: Thu Mar 30 10:51:17 2023 +0800

    [Improve] [Zeta] Change ClassLoader To Improve the SDK compatibility of the client (#4447)
---
 .../engine/common/loader/SeaTunnelChildFirstClassLoader.java      | 8 ++++++++
 .../seatunnel/engine/core/parse/MultipleTableJobConfigParser.java | 4 +++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/loader/SeaTunnelChildFirstClassLoader.java b/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/loader/SeaTunnelChildFirstClassLoader.java
index 6addac274..b4b3d06d8 100644
--- a/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/loader/SeaTunnelChildFirstClassLoader.java
+++ b/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/loader/SeaTunnelChildFirstClassLoader.java
@@ -56,6 +56,14 @@ public class SeaTunnelChildFirstClassLoader extends SeaTunnelBaseClassLoader {
                 NOOP_EXCEPTION_HANDLER);
     }
 
+    public SeaTunnelChildFirstClassLoader(List<URL> urls, ClassLoader parent) {
+        this(
+                urls.toArray(new URL[0]),
+                parent,
+                DEFAULT_PARENT_FIRST_PATTERNS,
+                NOOP_EXCEPTION_HANDLER);
+    }
+
     public SeaTunnelChildFirstClassLoader(
             URL[] urls,
             ClassLoader parent,
diff --git a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/parse/MultipleTableJobConfigParser.java b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/parse/MultipleTableJobConfigParser.java
index fdb5d6ec7..b5d5eb209 100644
--- a/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/parse/MultipleTableJobConfigParser.java
+++ b/seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/parse/MultipleTableJobConfigParser.java
@@ -135,7 +135,9 @@ public class MultipleTableJobConfigParser {
         if (!commonPluginJars.isEmpty()) {
             connectorJars.addAll(commonPluginJars);
         }
-        ClassLoader classLoader = new SeaTunnelChildFirstClassLoader(connectorJars);
+        ClassLoader classLoader =
+                new SeaTunnelChildFirstClassLoader(
+                        connectorJars, Thread.currentThread().getContextClassLoader());
         Thread.currentThread().setContextClassLoader(classLoader);
         List<? extends Config> sourceConfigs =
                 TypesafeConfigUtils.getConfigList(