7777import org .slf4j .Logger ;
7878import org .slf4j .LoggerFactory ;
7979import java .io .File ;
80+ import java .io .IOException ;
8081import java .lang .reflect .Field ;
8182import java .lang .reflect .InvocationTargetException ;
8283import java .lang .reflect .Method ;
8586import java .net .URLDecoder ;
8687import java .util .List ;
8788import java .util .Map ;
89+ import java .util .Optional ;
8890import java .util .Properties ;
8991import java .util .Set ;
9092import java .util .concurrent .TimeUnit ;
@@ -131,7 +133,8 @@ public static void main(String[] args) throws Exception {
131133 Properties confProperties = PluginUtil .jsonStrToObject (confProp , Properties .class );
132134
133135 dirtyProp = URLDecoder .decode (dirtyProp , Charsets .UTF_8 .toString ());
134- Map dirtyCofig = PluginUtil .jsonStrToObject (dirtyProp , Map .class );
136+ // set DirtyDataManager dirtyconfig
137+ DirtyConfig dirtyConfig = getDirtyDataManagerDirtyConfig (dirtyProp );
135138
136139 StreamExecutionEnvironment env = getStreamExeEnv (confProperties , deployMode );
137140 StreamTableEnvironment tableEnv = StreamTableEnvironment .getTableEnvironment (env );
@@ -149,12 +152,11 @@ public static void main(String[] args) throws Exception {
149152
150153 Map <String , SideTableInfo > sideTableMap = Maps .newHashMap ();
151154 Map <String , Table > registerTableCache = Maps .newHashMap ();
152- // set DirtyDataManager hadoopconfig
153- setDirtyDataManagerHadoopConfig (dirtyCofig );
155+
154156 //register udf
155157 registerUDF (sqlTree , jarURList , tableEnv );
156158 //register table schema
157- registerTable (sqlTree , env , tableEnv , localSqlPluginPath , remoteSqlPluginPath , pluginLoadMode , sideTableMap , registerTableCache );
159+ registerTable (sqlTree , env , tableEnv , localSqlPluginPath , remoteSqlPluginPath , pluginLoadMode , sideTableMap , registerTableCache , dirtyConfig );
158160
159161 sqlTranslation (localSqlPluginPath , tableEnv ,sqlTree ,sideTableMap ,registerTableCache , queryConfig );
160162
@@ -165,16 +167,9 @@ public static void main(String[] args) throws Exception {
165167 env .execute (name );
166168 }
167169
168- private static void setDirtyDataManagerHadoopConfig (Map dirtyCofig ) {
169- DirtyConfig dirtyConfig = new DirtyConfig (dirtyCofig );
170- String path = dirtyConfig .getPath ();
171- if (!StringUtils .isEmpty (path )) {
172- DirtyDataManager .savePath = path ;
173- }
174- Map <String , Object > hadoopConfig = dirtyConfig .getHadoopConfig ();
175- if (!MapUtils .isEmpty (hadoopConfig )) {
176- DirtyDataManager .hadoopConfig = hadoopConfig ;
177- }
170+ private static DirtyConfig getDirtyDataManagerDirtyConfig (String dirtyProp ) throws IOException {
171+ Map dirtyCofig = PluginUtil .jsonStrToObject (dirtyProp , Map .class );
172+ return dirtyCofig .size () == 0 ? null : new DirtyConfig (dirtyCofig );
178173 }
179174
180175 private static void sqlTranslation (String localSqlPluginPath , StreamTableEnvironment tableEnv ,SqlTree sqlTree ,Map <String , SideTableInfo > sideTableMap ,Map <String , Table > registerTableCache , StreamQueryConfig queryConfig ) throws Exception {
@@ -256,14 +251,16 @@ private static void registerUDF(SqlTree sqlTree, List<URL> jarURList, StreamTabl
256251
257252
258253 private static void registerTable (SqlTree sqlTree , StreamExecutionEnvironment env , StreamTableEnvironment tableEnv , String localSqlPluginPath ,
259- String remoteSqlPluginPath , String pluginLoadMode , Map <String , SideTableInfo > sideTableMap , Map <String , Table > registerTableCache ) throws Exception {
254+ String remoteSqlPluginPath , String pluginLoadMode , Map <String , SideTableInfo > sideTableMap ,
255+ Map <String , Table > registerTableCache , DirtyConfig dirtyConfig ) throws Exception {
260256 Set <URL > classPathSet = Sets .newHashSet ();
261257 WaterMarkerAssigner waterMarkerAssigner = new WaterMarkerAssigner ();
262258 for (TableInfo tableInfo : sqlTree .getTableInfoMap ().values ()) {
263259
264260 if (tableInfo instanceof SourceTableInfo ) {
265261
266262 SourceTableInfo sourceTableInfo = (SourceTableInfo ) tableInfo ;
263+ sourceTableInfo .setDirtyConfig (dirtyConfig );
267264 Table table = StreamSourceFactory .getStreamSource (sourceTableInfo , env , tableEnv , localSqlPluginPath );
268265 tableEnv .registerTable (sourceTableInfo .getAdaptName (), table );
269266 //Note --- parameter conversion function can not be used inside a function of the type of polymerization
@@ -293,7 +290,7 @@ private static void registerTable(SqlTree sqlTree, StreamExecutionEnvironment en
293290 registerTableCache .put (tableInfo .getName (), regTable );
294291 classPathSet .add (buildSourceAndSinkPathByLoadMode (tableInfo .getType (), SourceTableInfo .SOURCE_SUFFIX , localSqlPluginPath , remoteSqlPluginPath , pluginLoadMode ));
295292 } else if (tableInfo instanceof TargetTableInfo ) {
296-
293+ tableInfo . setDirtyConfig ( dirtyConfig );
297294 TableSink tableSink = StreamSinkFactory .getTableSink ((TargetTableInfo ) tableInfo , localSqlPluginPath );
298295 TypeInformation [] flinkTypes = FlinkUtil .transformTypes (tableInfo .getFieldClasses ());
299296 tableEnv .registerTableSink (tableInfo .getName (), tableInfo .getFields (), flinkTypes , tableSink );
0 commit comments