2020
2121package com .dtstack .flink .sql ;
2222
23- import com .dtstack .flink .sql .classloader .DtClassLoader ;
23+ import com .dtstack .flink .sql .classloader .ClassLoaderManager ;
2424import com .dtstack .flink .sql .enums .ECacheType ;
2525import com .dtstack .flink .sql .exec .FlinkSQLExec ;
2626import com .dtstack .flink .sql .parser .CreateFuncParser ;
7777import java .lang .reflect .InvocationTargetException ;
7878import java .lang .reflect .Method ;
7979import java .net .URL ;
80- import java .net .URLClassLoader ;
8180import java .net .URLDecoder ;
82- import java .util .ArrayList ;
83- import java .util .Arrays ;
8481import java .util .List ;
8582import java .util .Map ;
8683import java .util .Properties ;
@@ -144,10 +141,6 @@ public static void main(String[] args) throws Exception {
144141 addJarFileList = objMapper .readValue (addJarListStr , List .class );
145142 }
146143
147- ClassLoader threadClassLoader = Thread .currentThread ().getContextClassLoader ();
148- DtClassLoader parentClassloader = new DtClassLoader (new URL []{}, threadClassLoader );
149- Thread .currentThread ().setContextClassLoader (parentClassloader );
150-
151144 confProp = URLDecoder .decode (confProp , Charsets .UTF_8 .toString ());
152145 Properties confProperties = PluginUtil .jsonStrToObject (confProp , Properties .class );
153146 StreamExecutionEnvironment env = getStreamExeEnv (confProperties , deployMode );
@@ -166,7 +159,7 @@ public static void main(String[] args) throws Exception {
166159 Map <String , Table > registerTableCache = Maps .newHashMap ();
167160
168161 //register udf
169- registerUDF (sqlTree , jarURList , parentClassloader , tableEnv );
162+ registerUDF (sqlTree , jarURList , tableEnv );
170163 //register table schema
171164 registerTable (sqlTree , env , tableEnv , localSqlPluginPath , remoteSqlPluginPath , sideTableMap , registerTableCache );
172165
@@ -219,9 +212,7 @@ public static void main(String[] args) throws Exception {
219212 }
220213
221214 if (env instanceof MyLocalStreamEnvironment ) {
222- List <URL > urlList = new ArrayList <>();
223- urlList .addAll (Arrays .asList (parentClassloader .getURLs ()));
224- ((MyLocalStreamEnvironment ) env ).setClasspaths (urlList );
215+ ((MyLocalStreamEnvironment ) env ).setClasspaths (ClassLoaderManager .getClassPath ());
225216 }
226217
227218 env .execute (name );
@@ -245,19 +236,12 @@ private static void addEnvClassPath(StreamExecutionEnvironment env, Set<URL> cla
245236 }
246237 }
247238
248- private static void registerUDF (SqlTree sqlTree , List <URL > jarURList , URLClassLoader parentClassloader ,
249- StreamTableEnvironment tableEnv )
239+ private static void registerUDF (SqlTree sqlTree , List <URL > jarURList , StreamTableEnvironment tableEnv )
250240 throws ClassNotFoundException , NoSuchMethodException , IllegalAccessException , InvocationTargetException {
251241 //register urf
252- URLClassLoader classLoader = null ;
253242 List <CreateFuncParser .SqlParserResult > funcList = sqlTree .getFunctionList ();
254243 for (CreateFuncParser .SqlParserResult funcInfo : funcList ) {
255- //classloader
256- if (classLoader == null ) {
257- classLoader = FlinkUtil .loadExtraJar (jarURList , parentClassloader );
258- }
259- FlinkUtil .registerUDF (funcInfo .getType (), funcInfo .getClassName (), funcInfo .getName (),
260- tableEnv , classLoader );
244+ FlinkUtil .registerUDF (funcInfo .getType (), funcInfo .getClassName (), funcInfo .getName (), tableEnv , jarURList );
261245 }
262246 }
263247
0 commit comments