@@ -163,7 +163,7 @@ public TaskReport run(TaskSource taskSource,
163
163
final TaskMapper taskMapper = CONFIG_MAPPER_FACTORY .createTaskMapper ();
164
164
final PluginTask task = taskMapper .map (taskSource , PluginTask .class );
165
165
BufferAllocator allocator = Exec .getBufferAllocator ();
166
- PageBuilder pageBuilder = Exec . getPageBuilder (allocator , schema , output );
166
+ PageBuilder pageBuilder = getPageBuilder (allocator , schema , output );
167
167
final Column column = pageBuilder .getSchema ().getColumns ().get (0 );
168
168
169
169
ValueCodec valueCodec = new ValueCodec (task .getStopOnInvalidRecord (), task );
@@ -480,4 +480,23 @@ private void validateJsonField(String name, String jsonString)
480
480
throw new ConfigException (String .format ("Invalid JSON string was given for '%s' parameter. [%s]" , name , jsonString ));
481
481
}
482
482
}
483
+
484
+ @ SuppressWarnings ("deprecation" )
485
+ private static PageBuilder getPageBuilder (final BufferAllocator bufferAllocator , final Schema schema , final PageOutput output )
486
+ {
487
+ return HAS_EXEC_GET_PAGE_BUILDER ? Exec .getPageBuilder (bufferAllocator , schema , output ) : new PageBuilder (bufferAllocator , schema , output );
488
+ }
489
+
490
+ private static boolean hasExecGetPageBuilder ()
491
+ {
492
+ try {
493
+ Exec .class .getMethod ("getPageBuilder" , BufferAllocator .class , Schema .class , PageOutput .class );
494
+ }
495
+ catch (final NoSuchMethodException ex ) {
496
+ return false ;
497
+ }
498
+ return true ;
499
+ }
500
+
501
+ private static final boolean HAS_EXEC_GET_PAGE_BUILDER = hasExecGetPageBuilder ();
483
502
}
0 commit comments