You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by jo...@apache.org on 2021/04/18 14:40:17 UTC

[arrow-rs] 07/14: Removed Java.

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

jorgecarleitao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git

commit f864f413edf36a0ee0320986047008ded09fabed
Author: Jorge C. Leitao <jo...@gmail.com>
AuthorDate: Sun Apr 18 14:20:46 2021 +0000

    Removed Java.
---
 java/.gitattributes                                |    2 -
 java/.gitignore                                    |   23 -
 java/README.md                                     |  164 --
 java/adapter/avro/pom.xml                          |   59 -
 .../main/java/org/apache/arrow/AvroToArrow.java    |   67 -
 .../java/org/apache/arrow/AvroToArrowConfig.java   |   86 -
 .../org/apache/arrow/AvroToArrowConfigBuilder.java |   74 -
 .../java/org/apache/arrow/AvroToArrowUtils.java    |  805 ------
 .../apache/arrow/AvroToArrowVectorIterator.java    |  186 --
 .../apache/arrow/consumers/AvroArraysConsumer.java |   74 -
 .../arrow/consumers/AvroBooleanConsumer.java       |   43 -
 .../apache/arrow/consumers/AvroBytesConsumer.java  |   49 -
 .../apache/arrow/consumers/AvroDoubleConsumer.java |   42 -
 .../apache/arrow/consumers/AvroEnumConsumer.java   |   43 -
 .../apache/arrow/consumers/AvroFixedConsumer.java  |   46 -
 .../apache/arrow/consumers/AvroFloatConsumer.java  |   42 -
 .../apache/arrow/consumers/AvroIntConsumer.java    |   42 -
 .../apache/arrow/consumers/AvroLongConsumer.java   |   42 -
 .../apache/arrow/consumers/AvroMapConsumer.java    |   79 -
 .../apache/arrow/consumers/AvroNullConsumer.java   |   39 -
 .../apache/arrow/consumers/AvroStringConsumer.java |   48 -
 .../apache/arrow/consumers/AvroStructConsumer.java |   76 -
 .../apache/arrow/consumers/AvroUnionsConsumer.java |   86 -
 .../apache/arrow/consumers/BaseAvroConsumer.java   |   65 -
 .../arrow/consumers/CompositeAvroConsumer.java     |   73 -
 .../java/org/apache/arrow/consumers/Consumer.java  |   71 -
 .../org/apache/arrow/consumers/SkipConsumer.java   |   67 -
 .../org/apache/arrow/consumers/SkipFunction.java   |   30 -
 .../arrow/consumers/logical/AvroDateConsumer.java  |   43 -
 .../consumers/logical/AvroDecimalConsumer.java     |   88 -
 .../consumers/logical/AvroTimeMicroConsumer.java   |   43 -
 .../consumers/logical/AvroTimeMillisConsumer.java  |   43 -
 .../logical/AvroTimestampMicrosConsumer.java       |   43 -
 .../logical/AvroTimestampMillisConsumer.java       |   43 -
 .../org/apache/arrow/AvroLogicalTypesTest.java     |  201 --
 .../java/org/apache/arrow/AvroSkipFieldTest.java   |  626 ----
 .../test/java/org/apache/arrow/AvroTestBase.java   |  229 --
 .../org/apache/arrow/AvroToArrowIteratorTest.java  |  313 --
 .../java/org/apache/arrow/AvroToArrowTest.java     |  477 ---
 .../org/apache/arrow/TestWriteReadAvroRecord.java  |   93 -
 .../resources/schema/attrs/test_enum_attrs.avsc    |   24 -
 .../resources/schema/attrs/test_fixed_attr.avsc    |   24 -
 .../resources/schema/attrs/test_record_attrs.avsc  |   37 -
 .../test/resources/schema/logical/test_date.avsc   |   23 -
 .../schema/logical/test_decimal_invalid1.avsc      |   25 -
 .../schema/logical/test_decimal_invalid2.avsc      |   25 -
 .../schema/logical/test_decimal_invalid3.avsc      |   25 -
 .../schema/logical/test_decimal_invalid4.avsc      |   26 -
 .../logical/test_decimal_with_original_bytes.avsc  |   25 -
 .../logical/test_decimal_with_original_fixed.avsc  |   26 -
 .../resources/schema/logical/test_time_micros.avsc |   23 -
 .../resources/schema/logical/test_time_millis.avsc |   23 -
 .../schema/logical/test_timestamp_micros.avsc      |   23 -
 .../schema/logical/test_timestamp_millis.avsc      |   23 -
 .../schema/skip/test_skip_array_before.avsc        |   27 -
 .../schema/skip/test_skip_array_expected.avsc      |   26 -
 .../resources/schema/skip/test_skip_base1.avsc     |   28 -
 .../resources/schema/skip/test_skip_base2.avsc     |   29 -
 .../schema/skip/test_skip_boolean_expected.avsc    |   28 -
 .../schema/skip/test_skip_bytes_expected.avsc      |   27 -
 .../schema/skip/test_skip_double_expected.avsc     |   28 -
 .../schema/skip/test_skip_enum_expected.avsc       |   27 -
 .../schema/skip/test_skip_fixed_expected.avsc      |   27 -
 .../schema/skip/test_skip_float_expected.avsc      |   28 -
 .../schema/skip/test_skip_int_expected.avsc        |   28 -
 .../schema/skip/test_skip_long_expected.avsc       |   28 -
 .../schema/skip/test_skip_map_before.avsc          |   27 -
 .../schema/skip/test_skip_map_expected.avsc        |   26 -
 .../skip/test_skip_multi_fields_expected.avsc      |   25 -
 .../schema/skip/test_skip_record_before.avsc       |   38 -
 .../schema/skip/test_skip_record_expected.avsc     |   25 -
 .../skip/test_skip_second_level_expected.avsc      |   34 -
 .../skip/test_skip_single_field_expected.avsc      |   26 -
 .../schema/skip/test_skip_string_expected.avsc     |   27 -
 .../skip/test_skip_third_level_expected.avsc       |   45 -
 .../schema/skip/test_skip_union_before.avsc        |   28 -
 .../test_skip_union_multi_fields_expected.avsc     |   27 -
 .../test_skip_union_nullable_field_expected.avsc   |   27 -
 .../skip/test_skip_union_one_field_expected.avsc   |   27 -
 .../avro/src/test/resources/schema/test.avsc       |   27 -
 .../avro/src/test/resources/schema/test_array.avsc |   23 -
 .../avro/src/test/resources/schema/test_fixed.avsc |   23 -
 .../src/test/resources/schema/test_large_data.avsc |   75 -
 .../avro/src/test/resources/schema/test_map.avsc   |   23 -
 .../test/resources/schema/test_nested_record.avsc  |   35 -
 .../resources/schema/test_nullable_boolean.avsc    |   25 -
 .../test/resources/schema/test_nullable_bytes.avsc |   25 -
 .../resources/schema/test_nullable_double.avsc     |   25 -
 .../test/resources/schema/test_nullable_float.avsc |   25 -
 .../test/resources/schema/test_nullable_int.avsc   |   25 -
 .../test/resources/schema/test_nullable_long.avsc  |   25 -
 .../resources/schema/test_nullable_string.avsc     |   25 -
 .../test/resources/schema/test_nullable_union.avsc |   25 -
 .../resources/schema/test_primitive_boolean.avsc   |   22 -
 .../resources/schema/test_primitive_bytes.avsc     |   22 -
 .../resources/schema/test_primitive_double.avsc    |   22 -
 .../test/resources/schema/test_primitive_enum.avsc |   23 -
 .../resources/schema/test_primitive_float.avsc     |   22 -
 .../test/resources/schema/test_primitive_int.avsc  |   22 -
 .../test/resources/schema/test_primitive_long.avsc |   22 -
 .../resources/schema/test_primitive_string.avsc    |   22 -
 .../src/test/resources/schema/test_record.avsc     |   27 -
 .../avro/src/test/resources/schema/test_union.avsc |   25 -
 java/adapter/jdbc/pom.xml                          |  109 -
 .../arrow/adapter/jdbc/ArrowVectorIterator.java    |  186 --
 .../org/apache/arrow/adapter/jdbc/Constants.java   |   31 -
 .../apache/arrow/adapter/jdbc/JdbcFieldInfo.java   |  114 -
 .../org/apache/arrow/adapter/jdbc/JdbcToArrow.java |  273 --
 .../arrow/adapter/jdbc/JdbcToArrowConfig.java      |  280 --
 .../adapter/jdbc/JdbcToArrowConfigBuilder.java     |  192 --
 .../arrow/adapter/jdbc/JdbcToArrowUtils.java       |  336 ---
 .../arrow/adapter/jdbc/consumer/ArrayConsumer.java |  134 -
 .../arrow/adapter/jdbc/consumer/BaseConsumer.java  |   54 -
 .../adapter/jdbc/consumer/BigIntConsumer.java      |   87 -
 .../adapter/jdbc/consumer/BinaryConsumer.java      |  135 -
 .../arrow/adapter/jdbc/consumer/BitConsumer.java   |   87 -
 .../arrow/adapter/jdbc/consumer/BlobConsumer.java  |   72 -
 .../arrow/adapter/jdbc/consumer/ClobConsumer.java  |  161 --
 .../jdbc/consumer/CompositeJdbcConsumer.java       |   76 -
 .../arrow/adapter/jdbc/consumer/DateConsumer.java  |  116 -
 .../adapter/jdbc/consumer/DecimalConsumer.java     |   88 -
 .../adapter/jdbc/consumer/DoubleConsumer.java      |   87 -
 .../arrow/adapter/jdbc/consumer/FloatConsumer.java |   87 -
 .../arrow/adapter/jdbc/consumer/IntConsumer.java   |   87 -
 .../arrow/adapter/jdbc/consumer/JdbcConsumer.java  |   46 -
 .../arrow/adapter/jdbc/consumer/NullConsumer.java  |   38 -
 .../adapter/jdbc/consumer/SmallIntConsumer.java    |   87 -
 .../arrow/adapter/jdbc/consumer/TimeConsumer.java  |  112 -
 .../adapter/jdbc/consumer/TimestampConsumer.java   |   89 -
 .../adapter/jdbc/consumer/TimestampTZConsumer.java |   97 -
 .../adapter/jdbc/consumer/TinyIntConsumer.java     |   87 -
 .../adapter/jdbc/consumer/VarCharConsumer.java     |   86 -
 .../adapter/jdbc/AbstractJdbcToArrowTest.java      |  143 -
 .../arrow/adapter/jdbc/JdbcFieldInfoTest.java      |   45 -
 .../arrow/adapter/jdbc/JdbcToArrowConfigTest.java  |  159 -
 .../arrow/adapter/jdbc/JdbcToArrowTestHelper.java  |  381 ---
 .../java/org/apache/arrow/adapter/jdbc/Table.java  |  234 --
 .../jdbc/consumer/AbstractConsumerTest.java        |   39 -
 .../adapter/jdbc/consumer/BinaryConsumerTest.java  |  117 -
 .../adapter/jdbc/h2/JdbcToArrowArrayTest.java      |  373 ---
 .../adapter/jdbc/h2/JdbcToArrowCharSetTest.java    |  156 -
 .../adapter/jdbc/h2/JdbcToArrowDataTypesTest.java  |  249 --
 .../arrow/adapter/jdbc/h2/JdbcToArrowNullTest.java |  278 --
 .../arrow/adapter/jdbc/h2/JdbcToArrowTest.java     | 1339 ---------
 .../adapter/jdbc/h2/JdbcToArrowTimeZoneTest.java   |  169 --
 .../jdbc/h2/JdbcToArrowVectorIteratorTest.java     |  427 ---
 .../test/resources/h2/test1_all_datatypes_h2.yml   |  121 -
 .../resources/h2/test1_all_datatypes_null_h2.yml   |   51 -
 .../test1_all_datatypes_selected_null_rows_h2.yml  |   83 -
 .../jdbc/src/test/resources/h2/test1_bigint_h2.yml |   46 -
 .../jdbc/src/test/resources/h2/test1_binary_h2.yml |   46 -
 .../jdbc/src/test/resources/h2/test1_bit_h2.yml    |   46 -
 .../jdbc/src/test/resources/h2/test1_blob_h2.yml   |   46 -
 .../jdbc/src/test/resources/h2/test1_bool_h2.yml   |   46 -
 .../jdbc/src/test/resources/h2/test1_char_h2.yml   |   46 -
 .../src/test/resources/h2/test1_charset_ch_h2.yml  |   43 -
 .../src/test/resources/h2/test1_charset_h2.yml     |   53 -
 .../src/test/resources/h2/test1_charset_jp_h2.yml  |   43 -
 .../src/test/resources/h2/test1_charset_kr_h2.yml  |   43 -
 .../jdbc/src/test/resources/h2/test1_clob_h2.yml   |   46 -
 .../jdbc/src/test/resources/h2/test1_date_h2.yml   |   48 -
 .../src/test/resources/h2/test1_decimal_h2.yml     |   46 -
 .../jdbc/src/test/resources/h2/test1_double_h2.yml |   46 -
 .../src/test/resources/h2/test1_est_date_h2.yml    |   48 -
 .../src/test/resources/h2/test1_est_time_h2.yml    |   48 -
 .../test/resources/h2/test1_est_timestamp_h2.yml   |   49 -
 .../src/test/resources/h2/test1_gmt_date_h2.yml    |   48 -
 .../src/test/resources/h2/test1_gmt_time_h2.yml    |   48 -
 .../test/resources/h2/test1_gmt_timestamp_h2.yml   |   48 -
 .../jdbc/src/test/resources/h2/test1_int_h2.yml    |   46 -
 .../jdbc/src/test/resources/h2/test1_null_h2.yml   |   36 -
 .../src/test/resources/h2/test1_pst_date_h2.yml    |   48 -
 .../src/test/resources/h2/test1_pst_time_h2.yml    |   48 -
 .../test/resources/h2/test1_pst_timestamp_h2.yml   |   48 -
 .../jdbc/src/test/resources/h2/test1_real_h2.yml   |   46 -
 .../h2/test1_selected_datatypes_null_h2.yml        |   46 -
 .../src/test/resources/h2/test1_smallint_h2.yml    |   46 -
 .../jdbc/src/test/resources/h2/test1_time_h2.yml   |   46 -
 .../src/test/resources/h2/test1_timestamp_h2.yml   |   46 -
 .../src/test/resources/h2/test1_tinyint_h2.yml     |   46 -
 .../src/test/resources/h2/test1_varchar_h2.yml     |   46 -
 java/adapter/jdbc/src/test/resources/logback.xml   |   28 -
 java/adapter/orc/CMakeLists.txt                    |   43 -
 java/adapter/orc/pom.xml                           |  124 -
 .../org/apache/arrow/adapter/orc/OrcFieldNode.java |   45 -
 .../org/apache/arrow/adapter/orc/OrcJniUtils.java  |   62 -
 .../arrow/adapter/orc/OrcMemoryJniWrapper.java     |   77 -
 .../org/apache/arrow/adapter/orc/OrcReader.java    |   90 -
 .../arrow/adapter/orc/OrcReaderJniWrapper.java     |   79 -
 .../apache/arrow/adapter/orc/OrcRecordBatch.java   |   47 -
 .../arrow/adapter/orc/OrcReferenceManager.java     |  121 -
 .../apache/arrow/adapter/orc/OrcStripeReader.java  |  109 -
 .../adapter/orc/OrcStripeReaderJniWrapper.java     |   45 -
 .../apache/arrow/adapter/orc/OrcReaderTest.java    |  104 -
 java/algorithm/pom.xml                             |   55 -
 .../algorithm/deduplicate/DeduplicationUtils.java  |   96 -
 .../deduplicate/VectorRunDeduplicator.java         |  108 -
 .../algorithm/dictionary/DictionaryBuilder.java    |   72 -
 .../algorithm/dictionary/DictionaryEncoder.java    |   39 -
 .../HashTableBasedDictionaryBuilder.java           |  153 -
 .../dictionary/HashTableDictionaryEncoder.java     |  146 -
 .../dictionary/LinearDictionaryEncoder.java        |  112 -
 .../dictionary/SearchDictionaryEncoder.java        |  100 -
 .../SearchTreeBasedDictionaryBuilder.java          |  146 -
 .../arrow/algorithm/misc/PartialSumUtils.java      |  119 -
 .../apache/arrow/algorithm/rank/VectorRank.java    |   89 -
 .../arrow/algorithm/search/ParallelSearcher.java   |  190 --
 .../algorithm/search/VectorRangeSearcher.java      |  108 -
 .../arrow/algorithm/search/VectorSearcher.java     |   88 -
 .../algorithm/sort/CompositeVectorComparator.java  |   71 -
 .../algorithm/sort/DefaultVectorComparators.java   |  431 ---
 .../sort/FixedWidthInPlaceVectorSorter.java        |  169 --
 .../sort/FixedWidthOutOfPlaceVectorSorter.java     |   80 -
 .../arrow/algorithm/sort/InPlaceVectorSorter.java  |   37 -
 .../apache/arrow/algorithm/sort/IndexSorter.java   |  180 --
 .../arrow/algorithm/sort/InsertionSorter.java      |   74 -
 .../arrow/algorithm/sort/OffHeapIntStack.java      |   72 -
 .../algorithm/sort/OutOfPlaceVectorSorter.java     |   37 -
 .../algorithm/sort/StableVectorComparator.java     |   66 -
 .../sort/VariableWidthOutOfPlaceVectorSorter.java  |   93 -
 .../algorithm/sort/VectorValueComparator.java      |  123 -
 .../deduplicate/TestDeduplicationUtils.java        |  135 -
 .../deduplicate/TestVectorRunDeduplicator.java     |  131 -
 .../TestHashTableBasedDictionaryBuilder.java       |  202 --
 .../dictionary/TestHashTableDictionaryEncoder.java |  350 ---
 .../dictionary/TestLinearDictionaryEncoder.java    |  350 ---
 .../dictionary/TestSearchDictionaryEncoder.java    |  357 ---
 .../TestSearchTreeBasedDictionaryBuilder.java      |  221 --
 .../arrow/algorithm/misc/TestPartialSumUtils.java  |  138 -
 .../arrow/algorithm/rank/TestVectorRank.java       |  145 -
 .../algorithm/search/TestParallelSearcher.java     |  150 -
 .../algorithm/search/TestVectorRangeSearcher.java  |  195 --
 .../arrow/algorithm/search/TestVectorSearcher.java |  299 --
 .../sort/TestCompositeVectorComparator.java        |  112 -
 .../sort/TestDefaultVectorComparator.java          |  393 ---
 .../sort/TestFixedWidthInPlaceVectorSorter.java    |  240 --
 .../sort/TestFixedWidthOutOfPlaceVectorSorter.java |  365 ---
 .../algorithm/sort/TestFixedWidthSorting.java      |  172 --
 .../arrow/algorithm/sort/TestIndexSorter.java      |  205 --
 .../arrow/algorithm/sort/TestInsertionSorter.java  |  117 -
 .../arrow/algorithm/sort/TestOffHeapIntStack.java  |   67 -
 .../arrow/algorithm/sort/TestSortingUtil.java      |  166 --
 .../algorithm/sort/TestStableVectorComparator.java |  137 -
 .../TestVariableWidthOutOfPlaceVectorSorter.java   |   99 -
 .../algorithm/sort/TestVariableWidthSorting.java   |  165 --
 java/api-changes.md                                |   32 -
 java/compression/pom.xml                           |   52 -
 .../compression/CommonsCompressionFactory.java     |   43 -
 .../arrow/compression/Lz4CompressionCodec.java     |   89 -
 .../arrow/compression/ZstdCompressionCodec.java    |   74 -
 .../arrow/compression/TestCompressionCodec.java    |  213 --
 java/dataset/CMakeLists.txt                        |   43 -
 java/dataset/pom.xml                               |  134 -
 .../org/apache/arrow/dataset/file/FileFormat.java  |   36 -
 .../dataset/file/FileSystemDatasetFactory.java     |   38 -
 .../org/apache/arrow/dataset/file/JniWrapper.java  |   47 -
 .../dataset/jni/DirectReservationListener.java     |   97 -
 .../org/apache/arrow/dataset/jni/JniLoader.java    |   94 -
 .../org/apache/arrow/dataset/jni/JniWrapper.java   |  105 -
 .../apache/arrow/dataset/jni/NativeContext.java    |   53 -
 .../apache/arrow/dataset/jni/NativeDataset.java    |   56 -
 .../arrow/dataset/jni/NativeDatasetFactory.java    |  104 -
 .../jni/NativeInstanceReleasedException.java       |   31 -
 .../apache/arrow/dataset/jni/NativeMemoryPool.java |   76 -
 .../arrow/dataset/jni/NativeRecordBatchHandle.java |  106 -
 .../apache/arrow/dataset/jni/NativeScanTask.java   |   46 -
 .../apache/arrow/dataset/jni/NativeScanner.java    |  170 --
 .../arrow/dataset/jni/ReservationListener.java     |   36 -
 .../apache/arrow/dataset/scanner/ScanOptions.java  |   44 -
 .../org/apache/arrow/dataset/scanner/ScanTask.java |   42 -
 .../org/apache/arrow/dataset/scanner/Scanner.java  |   41 -
 .../org/apache/arrow/dataset/source/Dataset.java   |   35 -
 .../arrow/dataset/source/DatasetFactory.java       |   51 -
 .../arrow/memory/NativeUnderlyingMemory.java       |   81 -
 .../apache/arrow/dataset/ParquetWriteSupport.java  |  123 -
 .../java/org/apache/arrow/dataset/TestDataset.java |   97 -
 .../arrow/dataset/file/TestFileSystemDataset.java  |  292 --
 .../dataset/file/TestFileSystemDatasetFactory.java |   48 -
 .../arrow/dataset/jni/TestNativeDataset.java       |   33 -
 .../arrow/dataset/jni/TestReservationListener.java |   88 -
 .../arrow/memory/TestNativeUnderlyingMemory.java   |  110 -
 .../src/test/resources/avroschema/user.avsc        |   26 -
 java/dev/checkstyle/checkstyle.license             |   16 -
 java/dev/checkstyle/checkstyle.xml                 |  280 --
 java/dev/checkstyle/suppressions.xml               |   42 -
 java/flight/flight-core/README.md                  |   95 -
 java/flight/flight-core/pom.xml                    |  392 ---
 .../main/java/org/apache/arrow/flight/Action.java  |   61 -
 .../java/org/apache/arrow/flight/ActionType.java   |   70 -
 .../java/org/apache/arrow/flight/ArrowMessage.java |  560 ----
 .../org/apache/arrow/flight/AsyncPutListener.java  |   72 -
 .../apache/arrow/flight/BackpressureStrategy.java  |  172 --
 .../java/org/apache/arrow/flight/CallHeaders.java  |   65 -
 .../java/org/apache/arrow/flight/CallInfo.java     |   33 -
 .../java/org/apache/arrow/flight/CallOption.java   |   24 -
 .../java/org/apache/arrow/flight/CallOptions.java  |   62 -
 .../java/org/apache/arrow/flight/CallStatus.java   |  143 -
 .../java/org/apache/arrow/flight/Criteria.java     |   58 -
 .../org/apache/arrow/flight/DictionaryUtils.java   |  127 -
 .../apache/arrow/flight/ErrorFlightMetadata.java   |   81 -
 .../apache/arrow/flight/FlightBindingService.java  |  174 --
 .../org/apache/arrow/flight/FlightCallHeaders.java |  111 -
 .../java/org/apache/arrow/flight/FlightClient.java |  721 -----
 .../arrow/flight/FlightClientMiddleware.java       |   52 -
 .../org/apache/arrow/flight/FlightConstants.java   |   29 -
 .../org/apache/arrow/flight/FlightDescriptor.java  |  180 --
 .../org/apache/arrow/flight/FlightEndpoint.java    |  106 -
 .../java/org/apache/arrow/flight/FlightInfo.java   |  208 --
 .../java/org/apache/arrow/flight/FlightMethod.java |   64 -
 .../org/apache/arrow/flight/FlightProducer.java    |  164 --
 .../arrow/flight/FlightRuntimeException.java       |   46 -
 .../java/org/apache/arrow/flight/FlightServer.java |  399 ---
 .../arrow/flight/FlightServerMiddleware.java       |  100 -
 .../org/apache/arrow/flight/FlightService.java     |  427 ---
 .../org/apache/arrow/flight/FlightStatusCode.java  |   82 -
 .../java/org/apache/arrow/flight/FlightStream.java |  497 ----
 .../org/apache/arrow/flight/HeaderCallOption.java  |   52 -
 .../java/org/apache/arrow/flight/Location.java     |  158 -
 .../org/apache/arrow/flight/LocationSchemes.java   |   32 -
 .../apache/arrow/flight/NoOpFlightProducer.java    |   61 -
 .../apache/arrow/flight/NoOpStreamListener.java    |   49 -
 .../arrow/flight/OutboundStreamListener.java       |  123 -
 .../arrow/flight/OutboundStreamListenerImpl.java   |  132 -
 .../java/org/apache/arrow/flight/PutResult.java    |   96 -
 .../org/apache/arrow/flight/RequestContext.java    |   51 -
 .../main/java/org/apache/arrow/flight/Result.java  |   50 -
 .../java/org/apache/arrow/flight/SchemaResult.java |   96 -
 .../arrow/flight/ServerHeaderMiddleware.java       |   65 -
 .../java/org/apache/arrow/flight/StreamPipe.java   |  118 -
 .../org/apache/arrow/flight/SyncPutListener.java   |  122 -
 .../main/java/org/apache/arrow/flight/Ticket.java  |  102 -
 .../apache/arrow/flight/auth/AuthConstants.java    |   51 -
 .../arrow/flight/auth/BasicClientAuthHandler.java  |   58 -
 .../arrow/flight/auth/BasicServerAuthHandler.java  |   74 -
 .../arrow/flight/auth/ClientAuthHandler.java       |   55 -
 .../arrow/flight/auth/ClientAuthInterceptor.java   |   73 -
 .../arrow/flight/auth/ClientAuthWrapper.java       |  162 --
 .../arrow/flight/auth/ServerAuthHandler.java       |   72 -
 .../arrow/flight/auth/ServerAuthInterceptor.java   |   85 -
 .../arrow/flight/auth/ServerAuthWrapper.java       |  144 -
 .../apache/arrow/flight/auth2/Auth2Constants.java  |   31 -
 .../apache/arrow/flight/auth2/AuthUtilities.java   |   47 -
 .../flight/auth2/BasicAuthCredentialWriter.java    |   44 -
 .../flight/auth2/BasicCallHeaderAuthenticator.java |   88 -
 .../arrow/flight/auth2/BearerCredentialWriter.java |   39 -
 .../flight/auth2/BearerTokenAuthenticator.java     |   62 -
 .../flight/auth2/CallHeaderAuthenticator.java      |   86 -
 .../flight/auth2/ClientBearerHeaderHandler.java    |   36 -
 .../arrow/flight/auth2/ClientHandshakeWrapper.java |  100 -
 .../arrow/flight/auth2/ClientHeaderHandler.java    |   43 -
 .../auth2/ClientIncomingAuthHeaderMiddleware.java  |   78 -
 .../auth2/GeneratedBearerTokenAuthenticator.java   |  128 -
 .../auth2/ServerCallHeaderAuthMiddleware.java      |   74 -
 .../flight/client/ClientCookieMiddleware.java      |  130 -
 .../arrow/flight/example/ExampleFlightServer.java  |   93 -
 .../apache/arrow/flight/example/ExampleTicket.java |  141 -
 .../apache/arrow/flight/example/FlightHolder.java  |  131 -
 .../apache/arrow/flight/example/InMemoryStore.java |  176 --
 .../org/apache/arrow/flight/example/Stream.java    |  177 --
 .../integration/AuthBasicProtoScenario.java        |   97 -
 .../example/integration/IntegrationAssertions.java |   74 -
 .../example/integration/IntegrationTestClient.java |  197 --
 .../example/integration/IntegrationTestServer.java |   97 -
 .../example/integration/MiddlewareScenario.java    |  168 --
 .../arrow/flight/example/integration/Scenario.java |   45 -
 .../flight/example/integration/Scenarios.java      |   90 -
 .../arrow/flight/grpc/AddWritableBuffer.java       |  128 -
 .../arrow/flight/grpc/CallCredentialAdapter.java   |   53 -
 .../flight/grpc/ClientInterceptorAdapter.java      |  149 -
 .../grpc/ContextPropagatingExecutorService.java    |  117 -
 .../arrow/flight/grpc/CredentialCallOption.java    |   41 -
 .../arrow/flight/grpc/GetReadableBuffer.java       |   99 -
 .../apache/arrow/flight/grpc/MetadataAdapter.java  |   98 -
 .../arrow/flight/grpc/RequestContextAdapter.java   |   57 -
 .../flight/grpc/ServerInterceptorAdapter.java      |  145 -
 .../org/apache/arrow/flight/grpc/StatusUtils.java  |  230 --
 .../org/apache/arrow/flight/FlightTestUtil.java    |  150 -
 .../arrow/flight/TestApplicationMetadata.java      |  329 ---
 .../java/org/apache/arrow/flight/TestAuth.java     |   93 -
 .../org/apache/arrow/flight/TestBackPressure.java  |  262 --
 .../apache/arrow/flight/TestBasicOperation.java    |  567 ----
 .../org/apache/arrow/flight/TestCallOptions.java   |  191 --
 .../apache/arrow/flight/TestClientMiddleware.java  |  359 ---
 .../apache/arrow/flight/TestDictionaryUtils.java   |   91 -
 .../org/apache/arrow/flight/TestDoExchange.java    |  536 ----
 .../org/apache/arrow/flight/TestErrorMetadata.java |   92 -
 .../org/apache/arrow/flight/TestFlightClient.java  |  225 --
 .../org/apache/arrow/flight/TestFlightService.java |  125 -
 .../org/apache/arrow/flight/TestLargeMessage.java  |  165 --
 .../java/org/apache/arrow/flight/TestLeak.java     |  182 --
 .../apache/arrow/flight/TestMetadataVersion.java   |  319 ---
 .../apache/arrow/flight/TestServerMiddleware.java  |  360 ---
 .../org/apache/arrow/flight/TestServerOptions.java |  176 --
 .../test/java/org/apache/arrow/flight/TestTls.java |  145 -
 .../apache/arrow/flight/auth/TestBasicAuth.java    |  158 -
 .../apache/arrow/flight/auth2/TestBasicAuth2.java  |  232 --
 .../arrow/flight/client/TestCookieHandling.java    |  267 --
 .../arrow/flight/example/TestExampleServer.java    |  117 -
 .../arrow/flight/perf/PerformanceTestServer.java   |  216 --
 .../org/apache/arrow/flight/perf/TestPerf.java     |  199 --
 .../flight-core/src/test/protobuf/perf.proto       |   45 -
 .../flight-core/src/test/resources/logback.xml     |   28 -
 java/flight/flight-grpc/pom.xml                    |  132 -
 .../org/apache/arrow/flight/FlightGrpcUtils.java   |  161 --
 .../apache/arrow/flight/TestFlightGrpcUtils.java   |  193 --
 .../flight-grpc/src/test/protobuf/test.proto       |   26 -
 java/format/pom.xml                                |   46 -
 .../main/java/org/apache/arrow/flatbuf/Binary.java |   51 -
 .../main/java/org/apache/arrow/flatbuf/Block.java  |   61 -
 .../org/apache/arrow/flatbuf/BodyCompression.java  |   72 -
 .../arrow/flatbuf/BodyCompressionMethod.java       |   43 -
 .../main/java/org/apache/arrow/flatbuf/Bool.java   |   48 -
 .../main/java/org/apache/arrow/flatbuf/Buffer.java |   63 -
 .../org/apache/arrow/flatbuf/CompressionType.java  |   30 -
 .../main/java/org/apache/arrow/flatbuf/Date.java   |   65 -
 .../java/org/apache/arrow/flatbuf/DateUnit.java    |   30 -
 .../java/org/apache/arrow/flatbuf/Decimal.java     |   81 -
 .../org/apache/arrow/flatbuf/DictionaryBatch.java  |   79 -
 .../apache/arrow/flatbuf/DictionaryEncoding.java   |   88 -
 .../org/apache/arrow/flatbuf/DictionaryKind.java   |   36 -
 .../java/org/apache/arrow/flatbuf/Duration.java    |   57 -
 .../java/org/apache/arrow/flatbuf/Endianness.java  |   34 -
 .../java/org/apache/arrow/flatbuf/Feature.java     |   62 -
 .../main/java/org/apache/arrow/flatbuf/Field.java  |  120 -
 .../java/org/apache/arrow/flatbuf/FieldNode.java   |   68 -
 .../org/apache/arrow/flatbuf/FixedSizeBinary.java  |   60 -
 .../org/apache/arrow/flatbuf/FixedSizeList.java    |   60 -
 .../org/apache/arrow/flatbuf/FloatingPoint.java    |   57 -
 .../main/java/org/apache/arrow/flatbuf/Footer.java |  100 -
 .../main/java/org/apache/arrow/flatbuf/Int.java    |   61 -
 .../java/org/apache/arrow/flatbuf/Interval.java    |   57 -
 .../org/apache/arrow/flatbuf/IntervalUnit.java     |   30 -
 .../java/org/apache/arrow/flatbuf/KeyValue.java    |   70 -
 .../java/org/apache/arrow/flatbuf/LargeBinary.java |   52 -
 .../java/org/apache/arrow/flatbuf/LargeList.java   |   52 -
 .../java/org/apache/arrow/flatbuf/LargeUtf8.java   |   52 -
 .../main/java/org/apache/arrow/flatbuf/List.java   |   48 -
 .../main/java/org/apache/arrow/flatbuf/Map.java    |   87 -
 .../java/org/apache/arrow/flatbuf/Message.java     |   81 -
 .../org/apache/arrow/flatbuf/MessageHeader.java    |   44 -
 .../org/apache/arrow/flatbuf/MetadataVersion.java  |   54 -
 .../main/java/org/apache/arrow/flatbuf/Null.java   |   51 -
 .../java/org/apache/arrow/flatbuf/Precision.java   |   31 -
 .../java/org/apache/arrow/flatbuf/RecordBatch.java |  103 -
 .../main/java/org/apache/arrow/flatbuf/Schema.java |  102 -
 .../arrow/flatbuf/SparseMatrixCompressedAxis.java  |   30 -
 .../apache/arrow/flatbuf/SparseMatrixIndexCSX.java |  114 -
 .../org/apache/arrow/flatbuf/SparseTensor.java     |   92 -
 .../apache/arrow/flatbuf/SparseTensorIndex.java    |   32 -
 .../apache/arrow/flatbuf/SparseTensorIndexCOO.java |  118 -
 .../apache/arrow/flatbuf/SparseTensorIndexCSF.java |  173 --
 .../java/org/apache/arrow/flatbuf/Struct_.java     |   53 -
 .../main/java/org/apache/arrow/flatbuf/Tensor.java |   91 -
 .../java/org/apache/arrow/flatbuf/TensorDim.java   |   74 -
 .../main/java/org/apache/arrow/flatbuf/Time.java   |   66 -
 .../java/org/apache/arrow/flatbuf/TimeUnit.java    |   32 -
 .../java/org/apache/arrow/flatbuf/Timestamp.java   |   93 -
 .../main/java/org/apache/arrow/flatbuf/Type.java   |   55 -
 .../main/java/org/apache/arrow/flatbuf/Union.java  |   74 -
 .../java/org/apache/arrow/flatbuf/UnionMode.java   |   30 -
 .../main/java/org/apache/arrow/flatbuf/Utf8.java   |   51 -
 java/gandiva/CMakeLists.txt                        |   62 -
 java/gandiva/README.md                             |   32 -
 java/gandiva/pom.xml                               |  155 -
 .../gandiva/evaluator/ConfigurationBuilder.java    |   72 -
 .../arrow/gandiva/evaluator/DecimalTypeUtil.java   |   94 -
 .../gandiva/evaluator/ExpressionRegistry.java      |  220 --
 .../evaluator/ExpressionRegistryJniHelper.java     |   29 -
 .../org/apache/arrow/gandiva/evaluator/Filter.java |  199 --
 .../arrow/gandiva/evaluator/FunctionSignature.java |   93 -
 .../apache/arrow/gandiva/evaluator/JniLoader.java  |  170 --
 .../apache/arrow/gandiva/evaluator/JniWrapper.java |  120 -
 .../apache/arrow/gandiva/evaluator/Projector.java  |  364 ---
 .../arrow/gandiva/evaluator/SelectionVector.java   |   87 -
 .../gandiva/evaluator/SelectionVectorInt16.java    |   49 -
 .../gandiva/evaluator/SelectionVectorInt32.java    |   48 -
 .../arrow/gandiva/evaluator/VectorExpander.java    |   69 -
 .../exceptions/EvaluatorClosedException.java       |   25 -
 .../arrow/gandiva/exceptions/GandivaException.java |   35 -
 .../exceptions/UnsupportedTypeException.java       |   27 -
 .../apache/arrow/gandiva/expression/AndNode.java   |   47 -
 .../arrow/gandiva/expression/ArrowTypeHelper.java  |  350 ---
 .../arrow/gandiva/expression/BinaryNode.java       |   45 -
 .../arrow/gandiva/expression/BooleanNode.java      |   43 -
 .../apache/arrow/gandiva/expression/Condition.java |   42 -
 .../arrow/gandiva/expression/DecimalNode.java      |   49 -
 .../arrow/gandiva/expression/DoubleNode.java       |   43 -
 .../arrow/gandiva/expression/ExpressionTree.java   |   46 -
 .../apache/arrow/gandiva/expression/FieldNode.java |   43 -
 .../apache/arrow/gandiva/expression/FloatNode.java |   43 -
 .../arrow/gandiva/expression/FunctionNode.java     |   54 -
 .../apache/arrow/gandiva/expression/IfNode.java    |   52 -
 .../apache/arrow/gandiva/expression/InNode.java    |  121 -
 .../apache/arrow/gandiva/expression/IntNode.java   |   43 -
 .../apache/arrow/gandiva/expression/LongNode.java  |   43 -
 .../apache/arrow/gandiva/expression/NullNode.java  |   41 -
 .../apache/arrow/gandiva/expression/OrNode.java    |   47 -
 .../arrow/gandiva/expression/StringNode.java       |   48 -
 .../arrow/gandiva/expression/TreeBuilder.java      |  220 --
 .../apache/arrow/gandiva/expression/TreeNode.java  |   34 -
 .../arrow/gandiva/evaluator/BaseEvaluatorTest.java |  404 ---
 .../gandiva/evaluator/DecimalTypeUtilTest.java     |   89 -
 .../gandiva/evaluator/ExpressionRegistryTest.java  |   65 -
 .../arrow/gandiva/evaluator/FilterProjectTest.java |  102 -
 .../apache/arrow/gandiva/evaluator/FilterTest.java |  315 --
 .../gandiva/evaluator/MicroBenchmarkTest.java      |  151 -
 .../gandiva/evaluator/ProjectorDecimalTest.java    |  797 ------
 .../arrow/gandiva/evaluator/ProjectorTest.java     | 2237 ---------------
 .../arrow/gandiva/evaluator/TestJniLoader.java     |   53 -
 .../gandiva/expression/ArrowTypeHelperTest.java    |  105 -
 .../arrow/gandiva/expression/TreeBuilderTest.java  |  350 ---
 java/gandiva/src/test/resources/logback.xml        |   28 -
 java/memory/memory-core/pom.xml                    |   58 -
 .../java/org/apache/arrow/memory/Accountant.java   |  308 --
 .../apache/arrow/memory/AllocationListener.java    |   85 -
 .../org/apache/arrow/memory/AllocationManager.java |  221 --
 .../org/apache/arrow/memory/AllocationOutcome.java |   97 -
 .../arrow/memory/AllocationOutcomeDetails.java     |  132 -
 .../apache/arrow/memory/AllocationReservation.java |   88 -
 .../arrow/memory/AllocatorClosedException.java     |   35 -
 .../java/org/apache/arrow/memory/ArrowBuf.java     | 1245 --------
 .../org/apache/arrow/memory/BaseAllocator.java     |  946 ------
 .../org/apache/arrow/memory/BoundsChecking.java    |   63 -
 .../org/apache/arrow/memory/BufferAllocator.java   |  228 --
 .../java/org/apache/arrow/memory/BufferLedger.java |  525 ----
 .../org/apache/arrow/memory/BufferManager.java     |   53 -
 .../org/apache/arrow/memory/CheckAllocator.java    |   87 -
 .../org/apache/arrow/memory/ChildAllocator.java    |   44 -
 .../memory/DefaultAllocationManagerOption.java     |  133 -
 .../arrow/memory/LowCostIdentityHashMap.java       |  336 ---
 .../apache/arrow/memory/OutOfMemoryException.java  |   67 -
 .../apache/arrow/memory/OwnershipTransferNOOP.java |   39 -
 .../arrow/memory/OwnershipTransferResult.java      |   28 -
 .../main/java/org/apache/arrow/memory/README.md    |  121 -
 .../org/apache/arrow/memory/ReferenceManager.java  |  175 --
 .../org/apache/arrow/memory/RootAllocator.java     |   71 -
 .../apache/arrow/memory/ValueWithKeyIncluded.java  |   28 -
 .../java/org/apache/arrow/memory/package-info.java |   26 -
 .../memory/rounding/DefaultRoundingPolicy.java     |  114 -
 .../arrow/memory/rounding/RoundingPolicy.java      |   26 -
 .../memory/rounding/SegmentRoundingPolicy.java     |   60 -
 .../apache/arrow/memory/util/ArrowBufPointer.java  |  187 --
 .../apache/arrow/memory/util/AssertionUtil.java    |   40 -
 .../arrow/memory/util/AutoCloseableLock.java       |   43 -
 .../arrow/memory/util/ByteFunctionHelpers.java     |  347 ---
 .../org/apache/arrow/memory/util/CommonUtil.java   |   79 -
 .../apache/arrow/memory/util/HistoricalLog.java    |  178 --
 .../apache/arrow/memory/util/LargeMemoryUtil.java  |   44 -
 .../org/apache/arrow/memory/util/MemoryUtil.java   |  170 --
 .../org/apache/arrow/memory/util/StackTrace.java   |   70 -
 .../arrow/memory/util/hash/ArrowBufHasher.java     |   47 -
 .../arrow/memory/util/hash/MurmurHasher.java       |  175 --
 .../arrow/memory/util/hash/SimpleHasher.java       |  116 -
 .../java/org/apache/arrow/util/AutoCloseables.java |  227 --
 .../java/org/apache/arrow/util/Collections2.java   |   68 -
 .../java/org/apache/arrow/util/Preconditions.java  | 1323 ---------
 .../org/apache/arrow/util/VisibleForTesting.java   |   26 -
 .../memory/DefaultAllocationManagerFactory.java    |   63 -
 .../org/apache/arrow/memory/TestAccountant.java    |  172 --
 .../apache/arrow/memory/TestAllocationManager.java |   39 -
 .../java/org/apache/arrow/memory/TestArrowBuf.java |  149 -
 .../apache/arrow/memory/TestBoundaryChecking.java  |  150 -
 .../arrow/memory/TestLowCostIdentityHashMap.java   |  169 --
 .../arrow/memory/util/TestArrowBufPointer.java     |  216 --
 .../arrow/memory/util/TestByteFunctionHelpers.java |  167 --
 .../arrow/memory/util/TestLargeMemoryUtil.java     |  105 -
 .../arrow/memory/util/hash/TestArrowBufHasher.java |  123 -
 java/memory/memory-netty/pom.xml                   |  101 -
 .../java/io/netty/buffer/ExpandableByteBuf.java    |   56 -
 .../src/main/java/io/netty/buffer/LargeBuffer.java |   34 -
 .../io/netty/buffer/MutableWrappedByteBuf.java     |  448 ---
 .../main/java/io/netty/buffer/NettyArrowBuf.java   |  622 ----
 .../io/netty/buffer/PooledByteBufAllocatorL.java   |  280 --
 .../io/netty/buffer/UnsafeDirectLittleEndian.java  |  270 --
 .../apache/arrow/memory/ArrowByteBufAllocator.java |  161 --
 .../memory/DefaultAllocationManagerFactory.java    |   38 -
 .../arrow/memory/NettyAllocationManager.java       |  123 -
 .../java/io/netty/buffer/TestNettyArrowBuf.java    |  141 -
 .../netty/buffer/TestUnsafeDirectLittleEndian.java |   77 -
 .../apache/arrow/memory/ITTestLargeArrowBuf.java   |   72 -
 .../arrow/memory/TestAllocationManagerNetty.java   |   39 -
 .../org/apache/arrow/memory/TestBaseAllocator.java | 1183 --------
 .../org/apache/arrow/memory/TestEmptyArrowBuf.java |   88 -
 .../org/apache/arrow/memory/TestEndianness.java    |   51 -
 .../arrow/memory/TestNettyAllocationManager.java   |  108 -
 .../memory-netty/src/test/resources/logback.xml    |   28 -
 java/memory/memory-unsafe/pom.xml                  |   52 -
 .../memory/DefaultAllocationManagerFactory.java    |   37 -
 .../arrow/memory/UnsafeAllocationManager.java      |   70 -
 .../arrow/memory/TestAllocationManagerUnsafe.java  |   41 -
 .../arrow/memory/TestUnsafeAllocationManager.java  |   68 -
 java/memory/pom.xml                                |   29 -
 .../io/netty/buffer/TestExpandableByteBuf.java     |  117 -
 java/performance/pom.xml                           |  222 --
 .../arrow/adapter/AvroAdapterBenchmarks.java       |  141 -
 .../arrow/adapter/jdbc/JdbcAdapterBenchmarks.java  |  359 ---
 .../search/ParallelSearcherBenchmarks.java         |  115 -
 .../apache/arrow/memory/AllocatorBenchmarks.java   |   95 -
 .../apache/arrow/memory/ArrowBufBenchmarks.java    |   82 -
 .../memory/util/ArrowBufPointerBenchmarks.java     |  107 -
 .../memory/util/ByteFunctionHelpersBenchmarks.java |  138 -
 .../arrow/vector/BaseValueVectorBenchmarks.java    |   95 -
 .../arrow/vector/BitVectorHelperBenchmarks.java    |  229 --
 .../arrow/vector/DecimalVectorBenchmarks.java      |  121 -
 .../org/apache/arrow/vector/Float8Benchmarks.java  |  122 -
 .../arrow/vector/FloatingPointBenchmarks.java      |  134 -
 .../org/apache/arrow/vector/IntBenchmarks.java     |  110 -
 .../org/apache/arrow/vector/VarCharBenchmarks.java |  102 -
 .../vector/VariableWidthVectorBenchmarks.java      |  130 -
 .../apache/arrow/vector/VectorLoaderBenchmark.java |  117 -
 .../arrow/vector/VectorUnloaderBenchmark.java      |  109 -
 .../dictionary/DictionaryEncoderBenchmarks.java    |  147 -
 .../arrow/vector/ipc/WriteChannelBenchmark.java    |   87 -
 .../ipc/message/ArrowRecordBatchBenchmarks.java    |   98 -
 .../arrow/vector/util/TransferPairBenchmarks.java  |  123 -
 java/plasma/README.md                              |   39 -
 java/plasma/pom.xml                                |   34 -
 .../org/apache/arrow/plasma/ObjectStoreLink.java   |  131 -
 .../java/org/apache/arrow/plasma/PlasmaClient.java |  184 --
 .../org/apache/arrow/plasma/PlasmaClientJNI.java   |   57 -
 .../exceptions/DuplicateObjectException.java       |   32 -
 .../plasma/exceptions/PlasmaClientException.java   |   32 -
 .../exceptions/PlasmaOutOfMemoryException.java     |   40 -
 .../org/apache/arrow/plasma/PlasmaClientTest.java  |  313 --
 java/plasma/src/test/resources/logback.xml         |   28 -
 java/plasma/test.sh                                |   56 -
 java/pom.xml                                       |  764 -----
 java/tools/pom.xml                                 |  106 -
 .../java/org/apache/arrow/tools/EchoServer.java    |  146 -
 .../java/org/apache/arrow/tools/FileRoundtrip.java |  123 -
 .../java/org/apache/arrow/tools/FileToStream.java  |   78 -
 .../java/org/apache/arrow/tools/Integration.java   |  244 --
 .../java/org/apache/arrow/tools/StreamToFile.java  |   76 -
 .../apache/arrow/tools/ArrowFileTestFixtures.java  |  105 -
 .../org/apache/arrow/tools/EchoServerTest.java     |  301 --
 .../org/apache/arrow/tools/TestFileRoundtrip.java  |   65 -
 .../org/apache/arrow/tools/TestIntegration.java    |  288 --
 java/tools/src/test/resources/logback.xml          |   27 -
 java/vector/pom.xml                                |  291 --
 java/vector/src/main/codegen/config.fmpp           |   24 -
 java/vector/src/main/codegen/data/ArrowTypes.tdd   |  124 -
 .../src/main/codegen/data/ValueVectorTypes.tdd     |  196 --
 java/vector/src/main/codegen/includes/license.ftl  |   16 -
 .../src/main/codegen/includes/vv_imports.ftl       |   60 -
 .../codegen/templates/AbstractFieldReader.java     |  128 -
 .../codegen/templates/AbstractFieldWriter.java     |  177 --
 .../templates/AbstractPromotableFieldWriter.java   |  189 --
 .../src/main/codegen/templates/ArrowType.java      |  375 ---
 .../src/main/codegen/templates/BaseReader.java     |   75 -
 .../src/main/codegen/templates/BaseWriter.java     |  116 -
 .../templates/CaseSensitiveStructWriters.java      |   53 -
 .../src/main/codegen/templates/ComplexCopier.java  |  191 --
 .../src/main/codegen/templates/ComplexReaders.java |  147 -
 .../src/main/codegen/templates/ComplexWriters.java |  211 --
 .../main/codegen/templates/DenseUnionReader.java   |  217 --
 .../main/codegen/templates/DenseUnionVector.java   |  896 ------
 .../main/codegen/templates/DenseUnionWriter.java   |  262 --
 .../main/codegen/templates/HolderReaderImpl.java   |  170 --
 .../src/main/codegen/templates/NullReader.java     |  147 -
 .../src/main/codegen/templates/StructWriters.java  |  286 --
 .../templates/UnionFixedSizeListWriter.java        |  296 --
 .../main/codegen/templates/UnionListWriter.java    |  303 --
 .../src/main/codegen/templates/UnionMapWriter.java |  210 --
 .../src/main/codegen/templates/UnionReader.java    |  210 --
 .../src/main/codegen/templates/UnionVector.java    |  800 ------
 .../src/main/codegen/templates/UnionWriter.java    |  278 --
 .../src/main/codegen/templates/ValueHolders.java   |   79 -
 .../org/apache/arrow/vector/AddOrGetResult.java    |   46 -
 .../org/apache/arrow/vector/AllocationHelper.java  |   95 -
 .../apache/arrow/vector/BaseFixedWidthVector.java  |  923 ------
 .../org/apache/arrow/vector/BaseIntVector.java     |   43 -
 .../arrow/vector/BaseLargeVariableWidthVector.java | 1363 ---------
 .../org/apache/arrow/vector/BaseValueVector.java   |  232 --
 .../arrow/vector/BaseVariableWidthVector.java      | 1414 ---------
 .../java/org/apache/arrow/vector/BigIntVector.java |  358 ---
 .../java/org/apache/arrow/vector/BitVector.java    |  599 ----
 .../org/apache/arrow/vector/BitVectorHelper.java   |  459 ---
 .../java/org/apache/arrow/vector/BufferBacked.java |   31 -
 .../java/org/apache/arrow/vector/BufferLayout.java |  153 -
 .../org/apache/arrow/vector/DateDayVector.java     |  347 ---
 .../org/apache/arrow/vector/DateMilliVector.java   |  350 ---
 .../org/apache/arrow/vector/Decimal256Vector.java  |  584 ----
 .../org/apache/arrow/vector/DecimalVector.java     |  584 ----
 .../apache/arrow/vector/DensityAwareVector.java    |   57 -
 .../org/apache/arrow/vector/DurationVector.java    |  406 ---
 .../arrow/vector/ElementAddressableVector.java     |   42 -
 .../apache/arrow/vector/ExtensionTypeVector.java   |  266 --
 .../java/org/apache/arrow/vector/FieldVector.java  |   90 -
 .../apache/arrow/vector/FixedSizeBinaryVector.java |  386 ---
 .../org/apache/arrow/vector/FixedWidthVector.java  |   36 -
 .../java/org/apache/arrow/vector/Float4Vector.java |  361 ---
 .../java/org/apache/arrow/vector/Float8Vector.java |  362 ---
 .../apache/arrow/vector/FloatingPointVector.java   |   46 -
 .../apache/arrow/vector/GenerateSampleData.java    |  337 ---
 .../java/org/apache/arrow/vector/IntVector.java    |  362 ---
 .../org/apache/arrow/vector/IntervalDayVector.java |  433 ---
 .../apache/arrow/vector/IntervalYearVector.java    |  382 ---
 .../apache/arrow/vector/LargeVarBinaryVector.java  |  305 --
 .../apache/arrow/vector/LargeVarCharVector.java    |  331 ---
 .../apache/arrow/vector/NullCheckingForGet.java    |   84 -
 .../java/org/apache/arrow/vector/NullVector.java   |  292 --
 .../apache/arrow/vector/SchemaChangeCallBack.java  |   57 -
 .../org/apache/arrow/vector/SmallIntVector.java    |  389 ---
 .../org/apache/arrow/vector/TimeMicroVector.java   |  347 ---
 .../org/apache/arrow/vector/TimeMilliVector.java   |  351 ---
 .../org/apache/arrow/vector/TimeNanoVector.java    |  347 ---
 .../org/apache/arrow/vector/TimeSecVector.java     |  348 ---
 .../arrow/vector/TimeStampMicroTZVector.java       |  239 --
 .../apache/arrow/vector/TimeStampMicroVector.java  |  236 --
 .../arrow/vector/TimeStampMilliTZVector.java       |  238 --
 .../apache/arrow/vector/TimeStampMilliVector.java  |  236 --
 .../apache/arrow/vector/TimeStampNanoTZVector.java |  241 --
 .../apache/arrow/vector/TimeStampNanoVector.java   |  236 --
 .../apache/arrow/vector/TimeStampSecTZVector.java  |  238 --
 .../apache/arrow/vector/TimeStampSecVector.java    |  237 --
 .../org/apache/arrow/vector/TimeStampVector.java   |  197 --
 .../org/apache/arrow/vector/TinyIntVector.java     |  390 ---
 .../java/org/apache/arrow/vector/TypeLayout.java   |  446 ---
 .../java/org/apache/arrow/vector/UInt1Vector.java  |  364 ---
 .../java/org/apache/arrow/vector/UInt2Vector.java  |  339 ---
 .../java/org/apache/arrow/vector/UInt4Vector.java  |  334 ---
 .../java/org/apache/arrow/vector/UInt8Vector.java  |  330 ---
 .../java/org/apache/arrow/vector/ValueVector.java  |  285 --
 .../org/apache/arrow/vector/VarBinaryVector.java   |  306 --
 .../org/apache/arrow/vector/VarCharVector.java     |  331 ---
 .../apache/arrow/vector/VariableWidthVector.java   |   53 -
 .../arrow/vector/VectorDefinitionSetter.java       |   26 -
 .../java/org/apache/arrow/vector/VectorLoader.java |  137 -
 .../org/apache/arrow/vector/VectorSchemaRoot.java  |  429 ---
 .../org/apache/arrow/vector/VectorUnloader.java    |  107 -
 .../java/org/apache/arrow/vector/ZeroVector.java   |  107 -
 .../arrow/vector/compare/ApproxEqualsVisitor.java  |  147 -
 .../org/apache/arrow/vector/compare/Range.java     |   85 -
 .../arrow/vector/compare/RangeEqualsVisitor.java   |  550 ----
 .../arrow/vector/compare/TypeEqualsVisitor.java    |  148 -
 .../arrow/vector/compare/VectorEqualsVisitor.java  |   60 -
 .../arrow/vector/compare/VectorValueEqualizer.java |   44 -
 .../apache/arrow/vector/compare/VectorVisitor.java |   58 -
 .../compare/util/ValueEpsilonEqualizers.java       |  149 -
 .../vector/complex/AbstractContainerVector.java    |  140 -
 .../arrow/vector/complex/AbstractStructVector.java |  425 ---
 .../arrow/vector/complex/BaseListVector.java       |   36 -
 .../vector/complex/BaseRepeatedValueVector.java    |  361 ---
 .../arrow/vector/complex/EmptyValuePopulator.java  |   51 -
 .../arrow/vector/complex/FixedSizeListVector.java  |  683 -----
 .../arrow/vector/complex/LargeListVector.java      | 1022 -------
 .../apache/arrow/vector/complex/ListVector.java    |  893 ------
 .../org/apache/arrow/vector/complex/MapVector.java |  122 -
 .../vector/complex/NonNullableStructVector.java    |  440 ---
 .../apache/arrow/vector/complex/Positionable.java  |   29 -
 .../arrow/vector/complex/PromotableVector.java     |   32 -
 .../complex/RepeatedFixedWidthVectorLike.java      |   32 -
 .../arrow/vector/complex/RepeatedValueVector.java  |   46 -
 .../complex/RepeatedVariableWidthVectorLike.java   |   40 -
 .../org/apache/arrow/vector/complex/StateTool.java |   44 -
 .../apache/arrow/vector/complex/StructVector.java  |  600 ----
 .../arrow/vector/complex/VectorWithOrdinal.java    |   34 -
 .../vector/complex/impl/AbstractBaseReader.java    |  112 -
 .../vector/complex/impl/AbstractBaseWriter.java    |   55 -
 .../vector/complex/impl/ComplexWriterImpl.java     |  227 --
 .../complex/impl/NullableStructReaderImpl.java     |   59 -
 .../complex/impl/NullableStructWriterFactory.java  |   48 -
 .../vector/complex/impl/PromotableWriter.java      |  397 ---
 .../vector/complex/impl/SingleListReaderImpl.java  |   91 -
 .../complex/impl/SingleStructReaderImpl.java       |  113 -
 .../complex/impl/StructOrListWriterImpl.java       |  137 -
 .../complex/impl/UnionFixedSizeListReader.java     |  105 -
 .../vector/complex/impl/UnionLargeListReader.java  |  109 -
 .../arrow/vector/complex/impl/UnionListReader.java |  107 -
 .../arrow/vector/complex/impl/UnionMapReader.java  |   77 -
 .../arrow/vector/complex/reader/FieldReader.java   |   32 -
 .../arrow/vector/complex/writer/FieldWriter.java   |   32 -
 .../compression/AbstractCompressionCodec.java      |  116 -
 .../arrow/vector/compression/CompressionCodec.java |   62 -
 .../arrow/vector/compression/CompressionUtil.java  |  103 -
 .../vector/compression/NoCompressionCodec.java     |   67 -
 .../apache/arrow/vector/dictionary/Dictionary.java |   75 -
 .../arrow/vector/dictionary/DictionaryEncoder.java |  196 --
 .../vector/dictionary/DictionaryHashTable.java     |  295 --
 .../vector/dictionary/DictionaryProvider.java      |   62 -
 .../vector/dictionary/ListSubfieldEncoder.java     |  137 -
 .../vector/dictionary/StructSubfieldEncoder.java   |  196 --
 .../apache/arrow/vector/holders/ComplexHolder.java |   28 -
 .../arrow/vector/holders/DenseUnionHolder.java     |   38 -
 .../arrow/vector/holders/RepeatedListHolder.java   |   26 -
 .../arrow/vector/holders/RepeatedStructHolder.java |   26 -
 .../apache/arrow/vector/holders/UnionHolder.java   |   37 -
 .../apache/arrow/vector/holders/ValueHolder.java   |   31 -
 .../apache/arrow/vector/ipc/ArrowFileReader.java   |  230 --
 .../apache/arrow/vector/ipc/ArrowFileWriter.java   |  119 -
 .../org/apache/arrow/vector/ipc/ArrowMagic.java    |   44 -
 .../org/apache/arrow/vector/ipc/ArrowReader.java   |  255 --
 .../apache/arrow/vector/ipc/ArrowStreamReader.java |  229 --
 .../apache/arrow/vector/ipc/ArrowStreamWriter.java |   86 -
 .../org/apache/arrow/vector/ipc/ArrowWriter.java   |  210 --
 .../vector/ipc/InvalidArrowFileException.java      |   30 -
 .../apache/arrow/vector/ipc/JsonFileReader.java    |  783 -----
 .../apache/arrow/vector/ipc/JsonFileWriter.java    |  409 ---
 .../org/apache/arrow/vector/ipc/ReadChannel.java   |  102 -
 .../arrow/vector/ipc/SeekableReadChannel.java      |   43 -
 .../org/apache/arrow/vector/ipc/WriteChannel.java  |  162 --
 .../arrow/vector/ipc/message/ArrowBlock.java       |   95 -
 .../vector/ipc/message/ArrowBodyCompression.java   |   55 -
 .../arrow/vector/ipc/message/ArrowBuffer.java      |   90 -
 .../vector/ipc/message/ArrowDictionaryBatch.java   |   94 -
 .../arrow/vector/ipc/message/ArrowFieldNode.java   |   64 -
 .../arrow/vector/ipc/message/ArrowFooter.java      |  226 --
 .../arrow/vector/ipc/message/ArrowMessage.java     |   42 -
 .../arrow/vector/ipc/message/ArrowRecordBatch.java |  259 --
 .../arrow/vector/ipc/message/FBSerializable.java   |   30 -
 .../arrow/vector/ipc/message/FBSerializables.java  |   67 -
 .../apache/arrow/vector/ipc/message/IpcOption.java |   44 -
 .../vector/ipc/message/MessageChannelReader.java   |   91 -
 .../vector/ipc/message/MessageMetadataResult.java  |  115 -
 .../arrow/vector/ipc/message/MessageResult.java    |   61 -
 .../vector/ipc/message/MessageSerializer.java      |  731 -----
 .../org/apache/arrow/vector/types/DateUnit.java    |   50 -
 .../arrow/vector/types/FloatingPointPrecision.java |   55 -
 .../apache/arrow/vector/types/IntervalUnit.java    |   50 -
 .../apache/arrow/vector/types/MetadataVersion.java |   65 -
 .../org/apache/arrow/vector/types/TimeUnit.java    |   50 -
 .../java/org/apache/arrow/vector/types/Types.java  |  998 -------
 .../org/apache/arrow/vector/types/UnionMode.java   |   57 -
 .../vector/types/pojo/DictionaryEncoding.java      |   88 -
 .../vector/types/pojo/ExtensionTypeRegistry.java   |   42 -
 .../org/apache/arrow/vector/types/pojo/Field.java  |  325 ---
 .../apache/arrow/vector/types/pojo/FieldType.java  |  124 -
 .../org/apache/arrow/vector/types/pojo/Schema.java |  244 --
 .../util/ByteArrayReadableSeekableByteChannel.java |   86 -
 .../arrow/vector/util/ByteFunctionHelpers.java     |  112 -
 .../org/apache/arrow/vector/util/CallBack.java     |   25 -
 .../arrow/vector/util/DataSizeRoundingUtil.java    |   99 -
 .../org/apache/arrow/vector/util/DateUtility.java  |  134 -
 .../apache/arrow/vector/util/DecimalUtility.java   |  188 --
 .../arrow/vector/util/DictionaryUtility.java       |  145 -
 .../util/ElementAddressableVectorIterator.java     |   86 -
 .../arrow/vector/util/JsonStringArrayList.java     |   55 -
 .../arrow/vector/util/JsonStringHashMap.java       |   48 -
 .../apache/arrow/vector/util/MapWithOrdinal.java   |   67 -
 .../arrow/vector/util/MapWithOrdinalImpl.java      |  248 --
 .../arrow/vector/util/MultiMapWithOrdinal.java     |  230 --
 .../vector/util/OversizedAllocationException.java  |   52 -
 .../vector/util/PromotableMultiMapWithOrdinal.java |  133 -
 .../vector/util/SchemaChangeRuntimeException.java  |   48 -
 .../apache/arrow/vector/util/SchemaUtility.java    |   63 -
 .../java/org/apache/arrow/vector/util/Text.java    |  688 -----
 .../org/apache/arrow/vector/util/TransferPair.java |   33 -
 .../org/apache/arrow/vector/util/Validator.java    |  190 --
 .../arrow/vector/util/ValueVectorUtility.java      |  172 --
 .../apache/arrow/vector/util/VectorAppender.java   |  533 ----
 .../arrow/vector/util/VectorBatchAppender.java     |   39 -
 .../vector/util/VectorSchemaRootAppender.java      |   83 -
 .../vector/validate/MetadataV4UnionChecker.java    |   82 -
 .../apache/arrow/vector/validate/ValidateUtil.java |   61 -
 .../validate/ValidateVectorBufferVisitor.java      |  239 --
 .../vector/validate/ValidateVectorDataVisitor.java |  173 --
 .../vector/validate/ValidateVectorTypeVisitor.java |  356 ---
 .../vector/validate/ValidateVectorVisitor.java     |  266 --
 .../java/org/apache/arrow/util/TestSchemaUtil.java |   51 -
 .../apache/arrow/vector/DirtyRootAllocator.java    |   52 -
 .../org/apache/arrow/vector/ITTestLargeVector.java |  280 --
 .../org/apache/arrow/vector/TestBitVector.java     |  543 ----
 .../apache/arrow/vector/TestBitVectorHelper.java   |  235 --
 .../arrow/vector/TestBufferOwnershipTransfer.java  |  131 -
 .../java/org/apache/arrow/vector/TestCopyFrom.java | 1104 -------
 .../apache/arrow/vector/TestDecimal256Vector.java  |  357 ---
 .../org/apache/arrow/vector/TestDecimalVector.java |  365 ---
 .../apache/arrow/vector/TestDenseUnionVector.java  |  625 ----
 .../apache/arrow/vector/TestDictionaryVector.java  | 1031 -------
 .../apache/arrow/vector/TestDurationVector.java    |  137 -
 .../arrow/vector/TestFixedSizeBinaryVector.java    |  279 --
 .../arrow/vector/TestFixedSizeListVector.java      |  506 ----
 .../arrow/vector/TestIntervalYearVector.java       |   58 -
 .../apache/arrow/vector/TestLargeListVector.java   |  982 -------
 .../arrow/vector/TestLargeVarBinaryVector.java     |  104 -
 .../arrow/vector/TestLargeVarCharVector.java       |  816 ------
 .../org/apache/arrow/vector/TestListVector.java    |  981 -------
 .../org/apache/arrow/vector/TestMapVector.java     |  702 -----
 .../arrow/vector/TestNullCheckingForGet.java       |   92 -
 .../vector/TestOutOfMemoryForValueVector.java      |   73 -
 .../TestOversizedAllocationForValueVector.java     |  132 -
 .../apache/arrow/vector/TestSplitAndTransfer.java  |  410 ---
 .../org/apache/arrow/vector/TestStructVector.java  |  183 --
 .../org/apache/arrow/vector/TestTypeLayout.java    |   98 -
 .../org/apache/arrow/vector/TestUnionVector.java   |  433 ---
 .../java/org/apache/arrow/vector/TestUtils.java    |   45 -
 .../org/apache/arrow/vector/TestValueVector.java   | 3023 --------------------
 .../apache/arrow/vector/TestVarCharListVector.java |   77 -
 .../org/apache/arrow/vector/TestVectorAlloc.java   |  106 -
 .../org/apache/arrow/vector/TestVectorReAlloc.java |  474 ---
 .../org/apache/arrow/vector/TestVectorReset.java   |  168 --
 .../apache/arrow/vector/TestVectorSchemaRoot.java  |  318 --
 .../apache/arrow/vector/TestVectorUnloadLoad.java  |  332 ---
 .../vector/compare/TestRangeEqualsVisitor.java     |  739 -----
 .../vector/compare/TestTypeEqualsVisitor.java      |  185 --
 .../vector/complex/impl/TestComplexCopier.java     |  763 -----
 .../vector/complex/impl/TestPromotableWriter.java  |  167 --
 .../vector/complex/writer/TestComplexWriter.java   | 1258 --------
 .../org/apache/arrow/vector/ipc/BaseFileTest.java  |  850 ------
 .../vector/ipc/ITTestIPCWithLargeArrowBuffers.java |  187 --
 .../arrow/vector/ipc/MessageSerializerTest.java    |  227 --
 .../org/apache/arrow/vector/ipc/TestArrowFile.java |  134 -
 .../apache/arrow/vector/ipc/TestArrowFooter.java   |   68 -
 .../arrow/vector/ipc/TestArrowReaderWriter.java    |  882 ------
 .../apache/arrow/vector/ipc/TestArrowStream.java   |  147 -
 .../arrow/vector/ipc/TestArrowStreamPipe.java      |  161 --
 .../org/apache/arrow/vector/ipc/TestJSONFile.java  |  458 ---
 .../org/apache/arrow/vector/ipc/TestRoundTrip.java |  628 ----
 .../vector/ipc/TestUIntDictionaryRoundTrip.java    |  246 --
 .../ipc/message/TestMessageMetadataResult.java     |   36 -
 .../org/apache/arrow/vector/pojo/TestConvert.java  |  169 --
 .../arrow/vector/testing/RandomDataGenerator.java  |   44 -
 .../vector/testing/TestValueVectorPopulator.java   |  604 ----
 .../vector/testing/ValueVectorDataPopulator.java   |  708 -----
 .../arrow/vector/types/pojo/TestExtensionType.java |  240 --
 .../apache/arrow/vector/types/pojo/TestField.java  |   63 -
 .../apache/arrow/vector/types/pojo/TestSchema.java |  254 --
 .../arrow/vector/util/DecimalUtilityTest.java      |  127 -
 .../vector/util/TestDataSizeRoundingUtil.java      |   76 -
 .../util/TestElementAddressableVectorIterator.java |  134 -
 .../arrow/vector/util/TestMultiMapWithOrdinal.java |   60 -
 .../apache/arrow/vector/util/TestValidator.java    |   56 -
 .../arrow/vector/util/TestVectorAppender.java      |  794 -----
 .../arrow/vector/util/TestVectorBatchAppender.java |   72 -
 .../vector/util/TestVectorSchemaRootAppender.java  |  161 --
 .../arrow/vector/validate/TestValidateVector.java  |  260 --
 .../vector/validate/TestValidateVectorFull.java    |  234 --
 .../validate/TestValidateVectorSchemaRoot.java     |  101 -
 .../validate/TestValidateVectorTypeVisitor.java    |  301 --
 java/vector/src/test/resources/logback.xml         |   28 -
 930 files changed, 151922 deletions(-)

diff --git a/java/.gitattributes b/java/.gitattributes
deleted file mode 100644
index 5966153..0000000
--- a/java/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-.gitattributes export-ignore
-.gitignore export-ignore
diff --git a/java/.gitignore b/java/.gitignore
deleted file mode 100644
index 03f5bf7..0000000
--- a/java/.gitignore
+++ /dev/null
@@ -1,23 +0,0 @@
-.project
-.buildpath
-.classpath
-.checkstyle
-.settings/
-.idea/
-TAGS
-*.log
-*.lck
-*.iml
-target/
-*.DS_Store
-*.patch
-*~
-git.properties
-contrib/native/client/build/
-contrib/native/client/build/*
-CMakeCache.txt
-CMakeFiles
-Makefile
-cmake_install.cmake
-install_manifest.txt
-?/
diff --git a/java/README.md b/java/README.md
deleted file mode 100644
index 29d1fcf..0000000
--- a/java/README.md
+++ /dev/null
@@ -1,164 +0,0 @@
-<!---
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-
-# Arrow Java
-
-## Getting Started
-
-The following guides explain the fundamental data structures used in the Java implementation of Apache Arrow.
-
-- [ValueVector](https://arrow.apache.org/docs/java/vector.html) is an abstraction that is used to store a sequence of values having the same type in an individual column.
-- [VectorSchemaRoot](https://arrow.apache.org/docs/java/vector_schema_root.html) is a container that can hold multiple vectors based on a schema.
-- The [Reading/Writing IPC formats](https://arrow.apache.org/docs/java/ipc.html) guide explains how to stream record batches as well as serializing record batches to files.
-
-Generated javadoc documentation is available [here](https://arrow.apache.org/docs/java/).
-
-## Setup Build Environment
-
-install:
- - Java 8 or later
- - Maven 3.3 or later
-
-## Building and running tests
-
-```
-git submodule update --init --recursive # Needed for flight
-cd java
-mvn install
-```
-## Building and running tests for arrow jni modules like gandiva and orc (optional)
-
-[Arrow Cpp][2] must be built before this step. The cpp build directory must
-be provided as the value for argument arrow.cpp.build.dir. eg.
-
-```
-cd java
-mvn install -P arrow-jni -am -Darrow.cpp.build.dir=../../release
-```
-
-The gandiva library is still in Alpha stages, and subject to API changes without
-deprecation warnings.
-
-## Flatbuffers dependency
-
-Arrow uses Google's Flatbuffers to transport metadata.  The java version of the library
-requires the generated flatbuffer classes can only be used with the same version that
-generated them.  Arrow packages a version of the arrow-vector module that shades flatbuffers
-and arrow-format into a single JAR.  Using the classifier "shade-format-flatbuffers" in your
-pom.xml will make use of this JAR, you can then exclude/resolve the original dependency to
-a version of your choosing.
-
-### Updating the flatbuffers generated code
-
-1. Verify that your version of flatc matches the declared dependency:
-
-```bash
-$ flatc --version
-flatc version 1.12.0
-
-$ grep "dep.fbs.version" java/pom.xml
-    <dep.fbs.version>1.12.0</dep.fbs.version>
-```
-
-2. Generate the flatbuffer java files by performing the following:
-
-```bash
-cd $ARROW_HOME
-
-# remove the existing files
-rm -rf java/format/src
-
-# regenerate from the .fbs files
-flatc --java -o java/format/src/main/java format/*.fbs
-
-# prepend license header
-find java/format/src -type f | while read file; do
-  (cat header | while read line; do echo "// $line"; done; cat $file) > $file.tmp
-  mv $file.tmp $file
-done
-```
-
-## Performance Tuning
-
-There are several system/environmental variables that users can configure.  These trade off safety (they turn off checking) for speed.  Typically they are only used in production settings after the code has been thoroughly tested without using them.
-
-* Bounds Checking for memory accesses: Bounds checking is on by default.  You can disable it by setting either the
-system property("arrow.enable_unsafe_memory_access") or the environmental variable
-("ARROW_ENABLE_UNSAFE_MEMORY_ACCESS") to "true". When both the system property and the environmental
-variable are set, the system property takes precedence.
-
-* null checking for gets: ValueVector get methods (not getObject) methods by default verify the slot is not null.  You can disable it by setting either the
-system property("arrow.enable_null_check_for_get") or the environmental variable
-("ARROW_ENABLE_NULL_CHECK_FOR_GET") to "false". When both the system property and the environmental
-variable are set, the system property takes precedence.
-
-## Java Properties
-
- * For java 9 or later, should set "-Dio.netty.tryReflectionSetAccessible=true".
-This fixes `java.lang.UnsupportedOperationException: sun.misc.Unsafe or java.nio.DirectByteBuffer.(long, int) not available`. thrown by netty.
- * To support duplicate fields in a `StructVector` enable "-Darrow.struct.conflict.policy=CONFLICT_APPEND".
-Duplicate fields are ignored (`CONFLICT_REPLACE`) by default and overwritten. To support different policies for
-conflicting or duplicate fields set this JVM flag or use the correct static constructor methods for `StructVector`s.
-
-## Java Code Style Guide
-
-Arrow Java follows the Google style guide [here][3] with the following
-differences:
-
-* Imports are grouped, from top to bottom, in this order: static imports,
-standard Java, org.\*, com.\*
-* Line length can be up to 120 characters
-* Operators for line wrapping are at end-of-line
-* Naming rules for methods, parameters, etc. have been relaxed
-* Disabled `NoFinalizer`, `OverloadMethodsDeclarationOrder`, and
-`VariableDeclarationUsageDistance` due to the existing code base. These rules
-should be followed when possible.
-
-Refer to `java/dev/checkstyle/checkstyle.xml for rule specifics.
-
-## Test Logging Configuration
-
-When running tests, Arrow Java uses the Logback logger with SLF4J. By default,
-it uses the logback.xml present in the corresponding module's src/test/resources
-directory, which has the default log level set to INFO.
-Arrow Java can be built with an alternate logback configuration file using the
-following command run in the project root directory:
-
-```bash
-mvn -Dlogback.configurationFile=file:<path-of-logback-file>
-```
-
-See [Logback Configuration][1] for more details.
-
-## Integration Tests
-
-Integration tests which require more time or more memory can be run by activating
-the `integration-tests` profile. This activates the [maven failsafe][4] plugin
-and any class prefixed with `IT` will be run during the testing phase. The integration
-tests currently require a larger amount of memory (>4GB) and time to complete. To activate
-the profile:
-
-```bash
-mvn -Pintegration-tests <rest of mvn arguments>
-```
-
-[1]: https://logback.qos.ch/manual/configuration.html
-[2]: https://github.com/apache/arrow/blob/master/cpp/README.md
-[3]: http://google.github.io/styleguide/javaguide.html
-[4]: https://maven.apache.org/surefire/maven-failsafe-plugin/
diff --git a/java/adapter/avro/pom.xml b/java/adapter/avro/pom.xml
deleted file mode 100644
index d2b242f..0000000
--- a/java/adapter/avro/pom.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
-    license agreements. See the NOTICE file distributed with this work for additional
-    information regarding copyright ownership. The ASF licenses this file to
-    You under the Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain a copy of
-    the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
-    by applicable law or agreed to in writing, software distributed under the
-    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
-    OF ANY KIND, either express or implied. See the License for the specific
-    language governing permissions and limitations under the License. -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.arrow</groupId>
-    <artifactId>arrow-java-root</artifactId>
-    <version>4.0.0-SNAPSHOT</version>
-    <relativePath>../../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>arrow-avro</artifactId>
-  <name>Arrow AVRO Adapter</name>
-  <description>(Contrib/Experimental) A library for converting Avro data to Arrow data.</description>
-  <url>http://maven.apache.org</url>
-
-  <dependencies>
-
-    <!-- https://mvnrepository.com/artifact/org.apache.arrow/arrow-memory-core -->
-    <dependency>
-      <groupId>org.apache.arrow</groupId>
-      <artifactId>arrow-memory-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <!-- https://mvnrepository.com/artifact/org.apache.arrow/arrow-memory-netty -->
-    <dependency>
-      <groupId>org.apache.arrow</groupId>
-      <artifactId>arrow-memory-netty</artifactId>
-      <version>${project.version}</version>
-      <scope>runtime</scope>
-    </dependency>
-
-    <!-- https://mvnrepository.com/artifact/org.apache.arrow/arrow-vector -->
-    <dependency>
-      <groupId>org.apache.arrow</groupId>
-      <artifactId>arrow-vector</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.avro</groupId>
-      <artifactId>avro</artifactId>
-      <version>${dep.avro.version}</version>
-    </dependency>
-  </dependencies>
-
-</project>
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrow.java b/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrow.java
deleted file mode 100644
index 9fb5ce2..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrow.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow;
-
-import java.io.IOException;
-
-import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.VectorSchemaRoot;
-import org.apache.avro.Schema;
-import org.apache.avro.io.Decoder;
-
-/**
- * Utility class to convert Avro objects to columnar Arrow format objects.
- */
-public class AvroToArrow {
-
-  /**
-   * Fetch the data from {@link Decoder} and convert it to Arrow objects.
-   * Only for testing purpose.
-   * @param schema avro schema.
-   * @param decoder avro decoder
-   * @param config configuration of the conversion.
-   * @return Arrow Data Objects {@link VectorSchemaRoot}
-   */
-  static VectorSchemaRoot avroToArrow(Schema schema, Decoder decoder, AvroToArrowConfig config)
-      throws IOException {
-    Preconditions.checkNotNull(schema, "Avro schema object can not be null");
-    Preconditions.checkNotNull(decoder, "Avro decoder object can not be null");
-    Preconditions.checkNotNull(config, "config can not be null");
-
-    return AvroToArrowUtils.avroToArrowVectors(schema, decoder, config);
-  }
-
-  /**
-   * Fetch the data from {@link Decoder} and iteratively convert it to Arrow objects.
-   * @param schema avro schema
-   * @param decoder avro decoder
-   * @param config configuration of the conversion.
-   * @throws IOException on error
-   */
-  public static AvroToArrowVectorIterator avroToArrowIterator(
-      Schema schema,
-      Decoder decoder,
-      AvroToArrowConfig config) throws IOException {
-
-    Preconditions.checkNotNull(schema, "Avro schema object can not be null");
-    Preconditions.checkNotNull(decoder, "Avro decoder object can not be null");
-    Preconditions.checkNotNull(config, "config can not be null");
-
-    return AvroToArrowVectorIterator.create(decoder, schema, config);
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrowConfig.java b/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrowConfig.java
deleted file mode 100644
index 4f59ef3..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrowConfig.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow;
-
-import java.util.Set;
-
-import org.apache.arrow.memory.BufferAllocator;
-import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.dictionary.DictionaryProvider;
-
-/**
- * This class configures the Avro-to-Arrow conversion process.
- */
-public class AvroToArrowConfig {
-
-  private final BufferAllocator allocator;
-  /**
-   * The maximum rowCount to read each time when partially convert data.
-   * Default value is 1024 and -1 means read all data into one vector.
-   */
-  private final int targetBatchSize;
-
-  /**
-   * The dictionary provider used for enum type.
-   * If avro schema has enum type, will create dictionary and update this provider.
-   */
-  private final DictionaryProvider.MapDictionaryProvider provider;
-
-  /**
-   * The field names which to skip when reading decoder values.
-   */
-  private final Set<String> skipFieldNames;
-
-  /**
-   * Instantiate an instance.
-   * @param allocator The memory allocator to construct the Arrow vectors with.
-   * @param targetBatchSize The maximum rowCount to read each time when partially convert data.
-   * @param provider The dictionary provider used for enum type, adapter will update this provider.
-   * @param skipFieldNames Field names which to skip.
-   */
-  AvroToArrowConfig(
-      BufferAllocator allocator,
-      int targetBatchSize,
-      DictionaryProvider.MapDictionaryProvider provider,
-      Set<String> skipFieldNames) {
-
-    Preconditions.checkArgument(targetBatchSize == AvroToArrowVectorIterator.NO_LIMIT_BATCH_SIZE ||
-        targetBatchSize > 0, "invalid targetBatchSize: %s", targetBatchSize);
-
-    this.allocator = allocator;
-    this.targetBatchSize = targetBatchSize;
-    this.provider = provider;
-    this.skipFieldNames = skipFieldNames;
-  }
-
-  public BufferAllocator getAllocator() {
-    return allocator;
-  }
-
-  public int getTargetBatchSize() {
-    return targetBatchSize;
-  }
-
-  public DictionaryProvider.MapDictionaryProvider getProvider() {
-    return provider;
-  }
-
-  public Set<String> getSkipFieldNames() {
-    return skipFieldNames;
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrowConfigBuilder.java b/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrowConfigBuilder.java
deleted file mode 100644
index 474c1eb..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrowConfigBuilder.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.arrow.memory.BufferAllocator;
-import org.apache.arrow.vector.dictionary.DictionaryProvider;
-
-/**
- * This class builds {@link AvroToArrowConfig}s.
- */
-public class AvroToArrowConfigBuilder {
-
-  private BufferAllocator allocator;
-
-  private int targetBatchSize;
-
-  private DictionaryProvider.MapDictionaryProvider provider;
-
-  private Set<String> skipFieldNames;
-
-  /**
-   * Default constructor for the {@link AvroToArrowConfigBuilder}.
-   */
-  public AvroToArrowConfigBuilder(BufferAllocator allocator) {
-    this.allocator = allocator;
-    this.targetBatchSize = AvroToArrowVectorIterator.DEFAULT_BATCH_SIZE;
-    this.provider = new DictionaryProvider.MapDictionaryProvider();
-    this.skipFieldNames = new HashSet<>();
-  }
-
-  public AvroToArrowConfigBuilder setTargetBatchSize(int targetBatchSize) {
-    this.targetBatchSize = targetBatchSize;
-    return this;
-  }
-
-  public AvroToArrowConfigBuilder setProvider(DictionaryProvider.MapDictionaryProvider provider) {
-    this.provider = provider;
-    return this;
-  }
-
-  public AvroToArrowConfigBuilder setSkipFieldNames(Set<String> skipFieldNames) {
-    this.skipFieldNames = skipFieldNames;
-    return this;
-  }
-
-  /**
-   * This builds the {@link AvroToArrowConfig} from the provided params.
-   */
-  public AvroToArrowConfig build() {
-    return new AvroToArrowConfig(
-        allocator,
-        targetBatchSize,
-        provider,
-        skipFieldNames);
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrowUtils.java b/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrowUtils.java
deleted file mode 100644
index 80293c8..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrowUtils.java
+++ /dev/null
@@ -1,805 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow;
-
-import static org.apache.arrow.vector.types.FloatingPointPrecision.DOUBLE;
-import static org.apache.arrow.vector.types.FloatingPointPrecision.SINGLE;
-
-import java.io.EOFException;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import org.apache.arrow.consumers.AvroArraysConsumer;
-import org.apache.arrow.consumers.AvroBooleanConsumer;
-import org.apache.arrow.consumers.AvroBytesConsumer;
-import org.apache.arrow.consumers.AvroDoubleConsumer;
-import org.apache.arrow.consumers.AvroEnumConsumer;
-import org.apache.arrow.consumers.AvroFixedConsumer;
-import org.apache.arrow.consumers.AvroFloatConsumer;
-import org.apache.arrow.consumers.AvroIntConsumer;
-import org.apache.arrow.consumers.AvroLongConsumer;
-import org.apache.arrow.consumers.AvroMapConsumer;
-import org.apache.arrow.consumers.AvroNullConsumer;
-import org.apache.arrow.consumers.AvroStringConsumer;
-import org.apache.arrow.consumers.AvroStructConsumer;
-import org.apache.arrow.consumers.AvroUnionsConsumer;
-import org.apache.arrow.consumers.CompositeAvroConsumer;
-import org.apache.arrow.consumers.Consumer;
-import org.apache.arrow.consumers.SkipConsumer;
-import org.apache.arrow.consumers.SkipFunction;
-import org.apache.arrow.consumers.logical.AvroDateConsumer;
-import org.apache.arrow.consumers.logical.AvroDecimalConsumer;
-import org.apache.arrow.consumers.logical.AvroTimeMicroConsumer;
-import org.apache.arrow.consumers.logical.AvroTimeMillisConsumer;
-import org.apache.arrow.consumers.logical.AvroTimestampMicrosConsumer;
-import org.apache.arrow.consumers.logical.AvroTimestampMillisConsumer;
-import org.apache.arrow.memory.BufferAllocator;
-import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.BaseIntVector;
-import org.apache.arrow.vector.BigIntVector;
-import org.apache.arrow.vector.BitVector;
-import org.apache.arrow.vector.DateDayVector;
-import org.apache.arrow.vector.DecimalVector;
-import org.apache.arrow.vector.FieldVector;
-import org.apache.arrow.vector.FixedSizeBinaryVector;
-import org.apache.arrow.vector.Float4Vector;
-import org.apache.arrow.vector.Float8Vector;
-import org.apache.arrow.vector.IntVector;
-import org.apache.arrow.vector.NullVector;
-import org.apache.arrow.vector.TimeMicroVector;
-import org.apache.arrow.vector.TimeMilliVector;
-import org.apache.arrow.vector.TimeStampMicroVector;
-import org.apache.arrow.vector.TimeStampMilliVector;
-import org.apache.arrow.vector.VarBinaryVector;
-import org.apache.arrow.vector.VarCharVector;
-import org.apache.arrow.vector.VectorSchemaRoot;
-import org.apache.arrow.vector.complex.ListVector;
-import org.apache.arrow.vector.complex.MapVector;
-import org.apache.arrow.vector.complex.StructVector;
-import org.apache.arrow.vector.complex.UnionVector;
-import org.apache.arrow.vector.dictionary.Dictionary;
-import org.apache.arrow.vector.dictionary.DictionaryEncoder;
-import org.apache.arrow.vector.dictionary.DictionaryProvider;
-import org.apache.arrow.vector.types.DateUnit;
-import org.apache.arrow.vector.types.TimeUnit;
-import org.apache.arrow.vector.types.Types;
-import org.apache.arrow.vector.types.UnionMode;
-import org.apache.arrow.vector.types.pojo.ArrowType;
-import org.apache.arrow.vector.types.pojo.DictionaryEncoding;
-import org.apache.arrow.vector.types.pojo.Field;
-import org.apache.arrow.vector.types.pojo.FieldType;
-import org.apache.arrow.vector.util.JsonStringArrayList;
-import org.apache.arrow.vector.util.ValueVectorUtility;
-import org.apache.avro.LogicalType;
-import org.apache.avro.LogicalTypes;
-import org.apache.avro.Schema;
-import org.apache.avro.Schema.Type;
-import org.apache.avro.io.Decoder;
-
-/**
- * Class that does most of the work to convert Avro data into Arrow columnar format Vector objects.
- */
-public class AvroToArrowUtils {
-
-  /**
-   * Creates a {@link Consumer} from the {@link Schema}
-   *
-   <p>This method currently performs following type mapping for Avro data types to corresponding Arrow data types.
-   *
-   * <ul>
-   *   <li>STRING --> ArrowType.Utf8</li>
-   *   <li>INT --> ArrowType.Int(32, signed)</li>
-   *   <li>LONG --> ArrowType.Int(64, signed)</li>
-   *   <li>FLOAT --> ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE)</li>
-   *   <li>DOUBLE --> ArrowType.FloatingPoint(FloatingPointPrecision.DOUBLE)</li>
-   *   <li>BOOLEAN --> ArrowType.Bool</li>
-   *   <li>BYTES --> ArrowType.Binary</li>
-   *   <li>ARRAY --> ArrowType.List</li>
-   *   <li>MAP --> ArrowType.Map</li>
-   *   <li>FIXED --> ArrowType.FixedSizeBinary</li>
-   *   <li>RECORD --> ArrowType.Struct</li>
-   *   <li>UNION --> ArrowType.Union</li>
-   *   <li>ENUM--> ArrowType.Int</li>
-   *   <li>DECIMAL --> ArrowType.Decimal</li>
-   *   <li>Date --> ArrowType.Date(DateUnit.DAY)</li>
-   *   <li>TimeMillis --> ArrowType.Time(TimeUnit.MILLISECOND, 32)</li>
-   *   <li>TimeMicros --> ArrowType.Time(TimeUnit.MICROSECOND, 64)</li>
-   *   <li>TimestampMillis --> ArrowType.Timestamp(TimeUnit.MILLISECOND, null)</li>
-   *   <li>TimestampMicros --> ArrowType.Timestamp(TimeUnit.MICROSECOND, null)</li>
-   * </ul>
-   */
-
-  private static Consumer createConsumer(Schema schema, String name, AvroToArrowConfig config) {
-    return createConsumer(schema, name, false, config, null);
-  }
-
-  private static Consumer createConsumer(Schema schema, String name, AvroToArrowConfig config, FieldVector vector) {
-    return createConsumer(schema, name, false, config, vector);
-  }
-
-  /**
-   * Create a consumer with the given Avro schema.
-   *
-   * @param schema avro schema
-   * @param name arrow field name
-   * @param consumerVector vector to keep in consumer, if v == null, will create a new vector via field.
-   * @return consumer
-   */
-  private static Consumer createConsumer(
-      Schema schema,
-      String name,
-      boolean nullable,
-      AvroToArrowConfig config,
-      FieldVector consumerVector) {
-
-    Preconditions.checkNotNull(schema, "Avro schema object can't be null");
-    Preconditions.checkNotNull(config, "Config can't be null");
-
-    final BufferAllocator allocator = config.getAllocator();
-
-    final Type type = schema.getType();
-    final LogicalType logicalType = schema.getLogicalType();
-
-    final ArrowType arrowType;
-    final FieldType fieldType;
-    final FieldVector vector;
-    final Consumer consumer;
-
-    switch (type) {
-      case UNION:
-        consumer = createUnionConsumer(schema, name, config, consumerVector);
-        break;
-      case ARRAY:
-        consumer = createArrayConsumer(schema, name, config, consumerVector);
-        break;
-      case MAP:
-        consumer = createMapConsumer(schema, name, config, consumerVector);
-        break;
-      case RECORD:
-        consumer = createStructConsumer(schema, name, config, consumerVector);
-        break;
-      case ENUM:
-        consumer = createEnumConsumer(schema, name, config, consumerVector);
-        break;
-      case STRING:
-        arrowType = new ArrowType.Utf8();
-        fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-        vector = createVector(consumerVector, fieldType, name, allocator);
-        consumer = new AvroStringConsumer((VarCharVector) vector);
-        break;
-      case FIXED:
-        Map<String, String> extProps = createExternalProps(schema);
-        if (logicalType instanceof LogicalTypes.Decimal) {
-          arrowType = createDecimalArrowType((LogicalTypes.Decimal) logicalType);
-          fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema, extProps));
-          vector = createVector(consumerVector, fieldType, name, allocator);
-          consumer = new AvroDecimalConsumer.FixedDecimalConsumer((DecimalVector) vector, schema.getFixedSize());
-        } else {
-          arrowType = new ArrowType.FixedSizeBinary(schema.getFixedSize());
-          fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema, extProps));
-          vector = createVector(consumerVector, fieldType, name, allocator);
-          consumer = new AvroFixedConsumer((FixedSizeBinaryVector) vector, schema.getFixedSize());
-        }
-        break;
-      case INT:
-        if (logicalType instanceof LogicalTypes.Date) {
-          arrowType = new ArrowType.Date(DateUnit.DAY);
-          fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-          vector = createVector(consumerVector, fieldType, name, allocator);
-          consumer = new AvroDateConsumer((DateDayVector) vector);
-        } else if (logicalType instanceof LogicalTypes.TimeMillis) {
-          arrowType = new ArrowType.Time(TimeUnit.MILLISECOND, 32);
-          fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-          vector = createVector(consumerVector, fieldType, name, allocator);
-          consumer = new AvroTimeMillisConsumer((TimeMilliVector) vector);
-        } else {
-          arrowType = new ArrowType.Int(32, /*signed=*/true);
-          fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-          vector = createVector(consumerVector, fieldType, name, allocator);
-          consumer = new AvroIntConsumer((IntVector) vector);
-        }
-        break;
-      case BOOLEAN:
-        arrowType = new ArrowType.Bool();
-        fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-        vector = createVector(consumerVector, fieldType, name, allocator);
-        consumer = new AvroBooleanConsumer((BitVector) vector);
-        break;
-      case LONG:
-        if (logicalType instanceof LogicalTypes.TimeMicros) {
-          arrowType = new ArrowType.Time(TimeUnit.MICROSECOND, 64);
-          fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-          vector = createVector(consumerVector, fieldType, name, allocator);
-          consumer = new AvroTimeMicroConsumer((TimeMicroVector) vector);
-        } else if (logicalType instanceof LogicalTypes.TimestampMillis) {
-          arrowType = new ArrowType.Timestamp(TimeUnit.MILLISECOND, null);
-          fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-          vector = createVector(consumerVector, fieldType, name, allocator);
-          consumer = new AvroTimestampMillisConsumer((TimeStampMilliVector) vector);
-        } else if (logicalType instanceof LogicalTypes.TimestampMicros) {
-          arrowType = new ArrowType.Timestamp(TimeUnit.MICROSECOND, null);
-          fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-          vector = createVector(consumerVector, fieldType, name, allocator);
-          consumer = new AvroTimestampMicrosConsumer((TimeStampMicroVector) vector);
-        } else {
-          arrowType = new ArrowType.Int(64, /*signed=*/true);
-          fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-          vector = createVector(consumerVector, fieldType, name, allocator);
-          consumer = new AvroLongConsumer((BigIntVector) vector);
-        }
-        break;
-      case FLOAT:
-        arrowType = new ArrowType.FloatingPoint(SINGLE);
-        fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-        vector = createVector(consumerVector, fieldType, name, allocator);
-        consumer = new AvroFloatConsumer((Float4Vector) vector);
-        break;
-      case DOUBLE:
-        arrowType = new ArrowType.FloatingPoint(DOUBLE);
-        fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-        vector = createVector(consumerVector, fieldType, name, allocator);
-        consumer = new AvroDoubleConsumer((Float8Vector) vector);
-        break;
-      case BYTES:
-        if (logicalType instanceof LogicalTypes.Decimal) {
-          arrowType = createDecimalArrowType((LogicalTypes.Decimal) logicalType);
-          fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-          vector = createVector(consumerVector, fieldType, name, allocator);
-          consumer = new AvroDecimalConsumer.BytesDecimalConsumer((DecimalVector) vector);
-        } else {
-          arrowType = new ArrowType.Binary();
-          fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-          vector = createVector(consumerVector, fieldType, name, allocator);
-          consumer = new AvroBytesConsumer((VarBinaryVector) vector);
-        }
-        break;
-      case NULL:
-        arrowType = new ArrowType.Null();
-        fieldType = new FieldType(nullable, arrowType, /*dictionary=*/null, getMetaData(schema));
-        vector = fieldType.createNewSingleVector(name, allocator, /*schemaCallback=*/null);
-        consumer = new AvroNullConsumer((NullVector) vector);
-        break;
-      default:
-        // no-op, shouldn't get here
-        throw new UnsupportedOperationException("Can't convert avro type %s to arrow type." + type.getName());
-    }
-    return consumer;
-  }
-
-  private static ArrowType createDecimalArrowType(LogicalTypes.Decimal logicalType) {
-    final int scale = logicalType.getScale();
-    final int precision = logicalType.getPrecision();
-    Preconditions.checkArgument(precision > 0 && precision <= 38,
-        "Precision must be in range of 1 to 38");
-    Preconditions.checkArgument(scale >= 0 && scale <= 38,
-        "Scale must be in range of 0 to 38.");
-    Preconditions.checkArgument(scale <= precision,
-        "Invalid decimal scale: %s (greater than precision: %s)", scale, precision);
-
-    return new ArrowType.Decimal(precision, scale, 128);
-
-  }
-
-  private static Consumer createSkipConsumer(Schema schema) {
-
-    SkipFunction skipFunction;
-    Type type = schema.getType();
-
-    switch (type) {
-      case UNION:
-        List<Consumer> unionDelegates = schema.getTypes().stream().map(s ->
-            createSkipConsumer(s)).collect(Collectors.toList());
-        skipFunction = decoder -> unionDelegates.get(decoder.readInt()).consume(decoder);
-
-        break;
-      case ARRAY:
-        Consumer elementDelegate = createSkipConsumer(schema.getElementType());
-        skipFunction = decoder -> {
-          for (long i = decoder.skipArray(); i != 0; i = decoder.skipArray()) {
-            for (long j = 0; j < i; j++) {
-              elementDelegate.consume(decoder);
-            }
-          }
-        };
-        break;
-      case MAP:
-        Consumer valueDelegate = createSkipConsumer(schema.getValueType());
-        skipFunction = decoder -> {
-          for (long i = decoder.skipMap(); i != 0; i = decoder.skipMap()) {
-            for (long j = 0; j < i; j++) {
-              decoder.skipString(); // Discard key
-              valueDelegate.consume(decoder);
-            }
-          }
-        };
-        break;
-      case RECORD:
-        List<Consumer> delegates = schema.getFields().stream().map(field ->
-            createSkipConsumer(field.schema())).collect(Collectors.toList());
-
-        skipFunction = decoder -> {
-          for (Consumer consumer : delegates) {
-            consumer.consume(decoder);
-          }
-        };
-
-        break;
-      case ENUM:
-        skipFunction = decoder -> decoder.readEnum();
-        break;
-      case STRING:
-        skipFunction = decoder -> decoder.skipString();
-        break;
-      case FIXED:
-        skipFunction = decoder -> decoder.skipFixed(schema.getFixedSize());
-        break;
-      case INT:
-        skipFunction = decoder -> decoder.readInt();
-        break;
-      case BOOLEAN:
-        skipFunction = decoder -> decoder.skipFixed(1);
-        break;
-      case LONG:
-        skipFunction = decoder -> decoder.readLong();
-        break;
-      case FLOAT:
-        skipFunction = decoder -> decoder.readFloat();
-        break;
-      case DOUBLE:
-        skipFunction = decoder -> decoder.readDouble();
-        break;
-      case BYTES:
-        skipFunction = decoder -> decoder.skipBytes();
-        break;
-      case NULL:
-        skipFunction = decoder -> { };
-        break;
-      default:
-        // no-op, shouldn't get here
-        throw new UnsupportedOperationException("Invalid avro type: " + type.getName());
-    }
-
-    return new SkipConsumer(skipFunction);
-  }
-
-  static CompositeAvroConsumer createCompositeConsumer(
-      Schema schema, AvroToArrowConfig config) {
-
-    List<Consumer> consumers = new ArrayList<>();
-    final Set<String> skipFieldNames = config.getSkipFieldNames();
-
-    Schema.Type type = schema.getType();
-    if (type == Type.RECORD) {
-      for (Schema.Field field : schema.getFields()) {
-        if (skipFieldNames.contains(field.name())) {
-          consumers.add(createSkipConsumer(field.schema()));
-        } else {
-          Consumer consumer = createConsumer(field.schema(), field.name(), config);
-          consumers.add(consumer);
-        }
-
-      }
-    } else {
-      Consumer consumer = createConsumer(schema, "", config);
-      consumers.add(consumer);
-    }
-
-    return new CompositeAvroConsumer(consumers);
-  }
-
-  private static FieldVector createVector(FieldVector consumerVector, FieldType fieldType,
-      String name, BufferAllocator allocator) {
-    return consumerVector != null ? consumerVector : fieldType.createNewSingleVector(name, allocator, null);
-  }
-
-  private static String getDefaultFieldName(ArrowType type) {
-    Types.MinorType minorType = Types.getMinorTypeForArrowType(type);
-    return minorType.name().toLowerCase();
-  }
-
-  private static Field avroSchemaToField(Schema schema, String name, AvroToArrowConfig config) {
-    return avroSchemaToField(schema, name, config, null);
-  }
-
-  private static Field avroSchemaToField(
-      Schema schema,
-      String name,
-      AvroToArrowConfig config,
-      Map<String, String> externalProps) {
-
-    final Type type = schema.getType();
-    final LogicalType logicalType = schema.getLogicalType();
-    final List<Field> children = new ArrayList<>();
-    final FieldType fieldType;
-
-    switch (type) {
-      case UNION:
-        for (int i = 0; i < schema.getTypes().size(); i++) {
-          Schema childSchema = schema.getTypes().get(i);
-          // Union child vector should use default name
-          children.add(avroSchemaToField(childSchema, null, config));
-        }
-        fieldType = createFieldType(new ArrowType.Union(UnionMode.Sparse, null), schema, externalProps);
-        break;
-      case ARRAY:
-        Schema elementSchema = schema.getElementType();
-        children.add(avroSchemaToField(elementSchema, elementSchema.getName(), config));
-        fieldType = createFieldType(new ArrowType.List(), schema, externalProps);
-        break;
-      case MAP:
-        // MapVector internal struct field and key field should be non-nullable
-        FieldType keyFieldType = new FieldType(/*nullable=*/false, new ArrowType.Utf8(), /*dictionary=*/null);
-        Field keyField = new Field("key", keyFieldType, /*children=*/null);
-        Field valueField = avroSchemaToField(schema.getValueType(), "value", config);
-
-        FieldType structFieldType = new FieldType(false, new ArrowType.Struct(), /*dictionary=*/null);
-        Field structField = new Field("internal", structFieldType, Arrays.asList(keyField, valueField));
-        children.add(structField);
-        fieldType = createFieldType(new ArrowType.Map(/*keySorted=*/false), schema, externalProps);
-        break;
-      case RECORD:
-        final Set<String> skipFieldNames = config.getSkipFieldNames();
-        for (int i = 0; i < schema.getFields().size(); i++) {
-          final Schema.Field field = schema.getFields().get(i);
-          Schema childSchema = field.schema();
-          String fullChildName = String.format("%s.%s", name, field.name());
-          if (!skipFieldNames.contains(fullChildName)) {
-            final Map<String, String> extProps = new HashMap<>();
-            String doc = field.doc();
-            Set<String> aliases = field.aliases();
-            if (doc != null) {
-              extProps.put("doc", doc);
-            }
-            if (aliases != null) {
-              extProps.put("aliases", convertAliases(aliases));
-            }
-            children.add(avroSchemaToField(childSchema, fullChildName, config, extProps));
-          }
-        }
-        fieldType = createFieldType(new ArrowType.Struct(), schema, externalProps);
-        break;
-      case ENUM:
-        DictionaryProvider.MapDictionaryProvider provider = config.getProvider();
-        int current = provider.getDictionaryIds().size();
-        int enumCount = schema.getEnumSymbols().size();
-        ArrowType.Int indexType = DictionaryEncoder.getIndexType(enumCount);
-
-        fieldType = createFieldType(indexType, schema, externalProps,
-            new DictionaryEncoding(current, /*ordered=*/false, /*indexType=*/indexType));
-        break;
-
-      case STRING:
-        fieldType = createFieldType(new ArrowType.Utf8(), schema, externalProps);
-        break;
-      case FIXED:
-        final ArrowType fixedArrowType;
-        if (logicalType instanceof LogicalTypes.Decimal) {
-          fixedArrowType = createDecimalArrowType((LogicalTypes.Decimal) logicalType);
-        } else {
-          fixedArrowType = new ArrowType.FixedSizeBinary(schema.getFixedSize());
-        }
-        fieldType = createFieldType(fixedArrowType, schema, externalProps);
-        break;
-      case INT:
-        final ArrowType intArrowType;
-        if (logicalType instanceof LogicalTypes.Date) {
-          intArrowType = new ArrowType.Date(DateUnit.DAY);
-        } else if (logicalType instanceof LogicalTypes.TimeMillis) {
-          intArrowType = new ArrowType.Time(TimeUnit.MILLISECOND, 32);
-        } else {
-          intArrowType = new ArrowType.Int(32, /*signed=*/true);
-        }
-        fieldType = createFieldType(intArrowType, schema, externalProps);
-        break;
-      case BOOLEAN:
-        fieldType = createFieldType(new ArrowType.Bool(), schema, externalProps);
-        break;
-      case LONG:
-        final ArrowType longArrowType;
-        if (logicalType instanceof LogicalTypes.TimeMicros) {
-          longArrowType = new ArrowType.Time(TimeUnit.MICROSECOND, 64);
-        } else if (logicalType instanceof LogicalTypes.TimestampMillis) {
-          longArrowType = new ArrowType.Timestamp(TimeUnit.MILLISECOND, null);
-        } else if (logicalType instanceof LogicalTypes.TimestampMicros) {
-          longArrowType = new ArrowType.Timestamp(TimeUnit.MICROSECOND, null);
-        } else {
-          longArrowType = new ArrowType.Int(64, /*signed=*/true);
-        }
-        fieldType = createFieldType(longArrowType, schema, externalProps);
-        break;
-      case FLOAT:
-        fieldType = createFieldType(new ArrowType.FloatingPoint(SINGLE), schema, externalProps);
-        break;
-      case DOUBLE:
-        fieldType = createFieldType(new ArrowType.FloatingPoint(DOUBLE), schema, externalProps);
-        break;
-      case BYTES:
-        final ArrowType bytesArrowType;
-        if (logicalType instanceof LogicalTypes.Decimal) {
-          bytesArrowType = createDecimalArrowType((LogicalTypes.Decimal) logicalType);
-        } else {
-          bytesArrowType = new ArrowType.Binary();
-        }
-        fieldType = createFieldType(bytesArrowType, schema, externalProps);
-        break;
-      case NULL:
-        fieldType = createFieldType(ArrowType.Null.INSTANCE, schema, externalProps);
-        break;
-      default:
-        // no-op, shouldn't get here
-        throw new UnsupportedOperationException();
-    }
-
-    if (name == null) {
-      name = getDefaultFieldName(fieldType.getType());
-    }
-    return new Field(name, fieldType, children.size() == 0 ? null : children);
-  }
-
-  private static Consumer createArrayConsumer(Schema schema, String name, AvroToArrowConfig config,
-      FieldVector consumerVector) {
-
-    ListVector listVector;
-    if (consumerVector == null) {
-      final Field field = avroSchemaToField(schema, name, config);
-      listVector = (ListVector) field.createVector(config.getAllocator());
-    } else {
-      listVector = (ListVector) consumerVector;
-    }
-
-    FieldVector dataVector = listVector.getDataVector();
-
-    // create delegate
-    Schema childSchema = schema.getElementType();
-    Consumer delegate = createConsumer(childSchema, childSchema.getName(), config, dataVector);
-
-    return new AvroArraysConsumer(listVector, delegate);
-  }
-
-  private static Consumer createStructConsumer(Schema schema, String name, AvroToArrowConfig config,
-      FieldVector consumerVector) {
-
-    final Set<String> skipFieldNames = config.getSkipFieldNames();
-
-    StructVector structVector;
-    if (consumerVector == null) {
-      final Field field = avroSchemaToField(schema, name, config, createExternalProps(schema));
-      structVector = (StructVector) field.createVector(config.getAllocator());
-    } else {
-      structVector = (StructVector) consumerVector;
-    }
-
-    Consumer[] delegates = new Consumer[schema.getFields().size()];
-    int vectorIndex = 0;
-    for (int i = 0; i < schema.getFields().size(); i++) {
-      Schema.Field childField = schema.getFields().get(i);
-      Consumer delegate;
-      // use full name to distinguish fields have same names between parent and child fields.
-      final String fullChildName = String.format("%s.%s", name, childField.name());
-      if (skipFieldNames.contains(fullChildName)) {
-        delegate = createSkipConsumer(childField.schema());
-      } else {
-        delegate = createConsumer(childField.schema(), fullChildName, config,
-            structVector.getChildrenFromFields().get(vectorIndex++));
-      }
-
-      delegates[i] = delegate;
-    }
-
-    return new AvroStructConsumer(structVector, delegates);
-
-  }
-
-  private static Consumer createEnumConsumer(Schema schema, String name, AvroToArrowConfig config,
-      FieldVector consumerVector) {
-
-    BaseIntVector indexVector;
-    if (consumerVector == null) {
-      final Field field = avroSchemaToField(schema, name, config, createExternalProps(schema));
-      indexVector = (BaseIntVector) field.createVector(config.getAllocator());
-    } else {
-      indexVector = (BaseIntVector) consumerVector;
-    }
-
-    final int valueCount = schema.getEnumSymbols().size();
-    VarCharVector dictVector = new VarCharVector(name, config.getAllocator());
-    dictVector.allocateNewSafe();
-    dictVector.setValueCount(valueCount);
-    for (int i = 0; i < valueCount; i++) {
-      dictVector.set(i, schema.getEnumSymbols().get(i).getBytes(StandardCharsets.UTF_8));
-    }
-    Dictionary dictionary =
-        new Dictionary(dictVector, indexVector.getField().getDictionary());
-    config.getProvider().put(dictionary);
-
-    return new AvroEnumConsumer(indexVector);
-
-  }
-
-  private static Consumer createMapConsumer(Schema schema, String name, AvroToArrowConfig config,
-      FieldVector consumerVector) {
-
-    MapVector mapVector;
-    if (consumerVector == null) {
-      final Field field = avroSchemaToField(schema, name, config);
-      mapVector = (MapVector) field.createVector(config.getAllocator());
-    } else {
-      mapVector = (MapVector) consumerVector;
-    }
-
-    // create delegate struct consumer
-    StructVector structVector = (StructVector) mapVector.getDataVector();
-
-    // keys in avro map are always assumed to be strings.
-    Consumer keyConsumer = new AvroStringConsumer(
-        (VarCharVector) structVector.getChildrenFromFields().get(0));
-    Consumer valueConsumer = createConsumer(schema.getValueType(), schema.getValueType().getName(),
-        config, structVector.getChildrenFromFields().get(1));
-
-    AvroStructConsumer internalConsumer =
-        new AvroStructConsumer(structVector, new Consumer[] {keyConsumer, valueConsumer});
-
-    return new AvroMapConsumer(mapVector, internalConsumer);
-  }
-
-  private static Consumer createUnionConsumer(Schema schema, String name, AvroToArrowConfig config,
-      FieldVector consumerVector) {
-    final int size = schema.getTypes().size();
-
-    final boolean nullable = schema.getTypes().stream().anyMatch(t -> t.getType() == Type.NULL);
-
-    UnionVector unionVector;
-    if (consumerVector == null) {
-      final Field field = avroSchemaToField(schema, name, config);
-      unionVector = (UnionVector) field.createVector(config.getAllocator());
-    } else {
-      unionVector = (UnionVector) consumerVector;
-    }
-
-    List<FieldVector> childVectors = unionVector.getChildrenFromFields();
-
-    Consumer[] delegates = new Consumer[size];
-    Types.MinorType[] types = new Types.MinorType[size];
-
-    for (int i = 0; i < size; i++) {
-      FieldVector child = childVectors.get(i);
-      Schema subSchema = schema.getTypes().get(i);
-      Consumer delegate = createConsumer(subSchema, subSchema.getName(), nullable, config, child);
-      delegates[i] = delegate;
-      types[i] = child.getMinorType();
-    }
-    return new AvroUnionsConsumer(unionVector, delegates, types);
-  }
-
-  /**
-   * Read data from {@link Decoder} and generate a {@link VectorSchemaRoot}.
-   * @param schema avro schema
-   * @param decoder avro decoder to read data from
-   */
-  static VectorSchemaRoot avroToArrowVectors(
-      Schema schema,
-      Decoder decoder,
-      AvroToArrowConfig config)
-      throws IOException {
-
-    List<FieldVector> vectors = new ArrayList<>();
-    List<Consumer> consumers = new ArrayList<>();
-    final Set<String> skipFieldNames = config.getSkipFieldNames();
-
-    Schema.Type type = schema.getType();
-    if (type == Type.RECORD) {
-      for (Schema.Field field : schema.getFields()) {
-        if (skipFieldNames.contains(field.name())) {
-          consumers.add(createSkipConsumer(field.schema()));
-        } else {
-          Consumer consumer = createConsumer(field.schema(), field.name(), config);
-          consumers.add(consumer);
-          vectors.add(consumer.getVector());
-        }
-      }
-    } else {
-      Consumer consumer = createConsumer(schema, "", config);
-      consumers.add(consumer);
-      vectors.add(consumer.getVector());
-    }
-
-    long validConsumerCount = consumers.stream().filter(c -> !c.skippable()).count();
-    Preconditions.checkArgument(vectors.size() == validConsumerCount,
-        "vectors size not equals consumers size.");
-
-    List<Field> fields = vectors.stream().map(t -> t.getField()).collect(Collectors.toList());
-
-    VectorSchemaRoot root = new VectorSchemaRoot(fields, vectors, 0);
-
-    CompositeAvroConsumer compositeConsumer = new CompositeAvroConsumer(consumers);
-
-    int valueCount = 0;
-    try {
-      while (true) {
-        ValueVectorUtility.ensureCapacity(root, valueCount + 1);
-        compositeConsumer.consume(decoder);
-        valueCount++;
-      }
-    } catch (EOFException eof) {
-      // reach the end of encoder stream.
-      root.setRowCount(valueCount);
-    } catch (Exception e) {
-      compositeConsumer.close();
-      throw new UnsupportedOperationException("Error occurs while consume process.", e);
-    }
-
-    return root;
-  }
-
-  private static Map<String, String> getMetaData(Schema schema) {
-    Map<String, String> metadata = new HashMap<>();
-    schema.getObjectProps().forEach((k, v) -> metadata.put(k, v.toString()));
-    return metadata;
-  }
-
-  private static Map<String, String> getMetaData(Schema schema, Map<String, String> externalProps) {
-    Map<String, String> metadata = getMetaData(schema);
-    if (externalProps != null) {
-      metadata.putAll(externalProps);
-    }
-    return metadata;
-  }
-
-  /**
-   * Parse avro attributes and convert them to metadata.
-   */
-  private static Map<String, String> createExternalProps(Schema schema) {
-    final Map<String, String> extProps = new HashMap<>();
-    String doc = schema.getDoc();
-    Set<String> aliases = schema.getAliases();
-    if (doc != null) {
-      extProps.put("doc", doc);
-    }
-    if (aliases != null) {
-      extProps.put("aliases", convertAliases(aliases));
-    }
-    return extProps;
-  }
-
-  private static FieldType createFieldType(ArrowType arrowType, Schema schema, Map<String, String> externalProps) {
-    return createFieldType(arrowType, schema, externalProps, /*dictionary=*/null);
-  }
-
-  private static FieldType createFieldType(
-      ArrowType arrowType,
-      Schema schema,
-      Map<String, String> externalProps,
-      DictionaryEncoding dictionary) {
-
-    return new FieldType(/*nullable=*/false, arrowType, dictionary,
-        getMetaData(schema, externalProps));
-  }
-
-  private static String convertAliases(Set<String> aliases) {
-    JsonStringArrayList jsonList = new JsonStringArrayList();
-    aliases.stream().forEach(a -> jsonList.add(a));
-    return jsonList.toString();
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrowVectorIterator.java b/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrowVectorIterator.java
deleted file mode 100644
index 1faa759..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/AvroToArrowVectorIterator.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow;
-
-import java.io.EOFException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.apache.arrow.consumers.CompositeAvroConsumer;
-import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.FieldVector;
-import org.apache.arrow.vector.VectorSchemaRoot;
-import org.apache.arrow.vector.types.pojo.Field;
-import org.apache.arrow.vector.util.ValueVectorUtility;
-import org.apache.avro.Schema;
-import org.apache.avro.io.Decoder;
-
-/**
- * VectorSchemaRoot iterator for partially converting avro data.
- */
-public class AvroToArrowVectorIterator implements Iterator<VectorSchemaRoot>, AutoCloseable {
-
-  public static final int NO_LIMIT_BATCH_SIZE = -1;
-  public static final int DEFAULT_BATCH_SIZE = 1024;
-
-  private final Decoder decoder;
-  private final Schema schema;
-
-  private final AvroToArrowConfig config;
-
-  private CompositeAvroConsumer compositeConsumer;
-
-  private org.apache.arrow.vector.types.pojo.Schema rootSchema;
-
-  private VectorSchemaRoot nextBatch;
-
-  private final int targetBatchSize;
-
-  /**
-   * Construct an instance.
-   */
-  private AvroToArrowVectorIterator(
-      Decoder decoder,
-      Schema schema,
-      AvroToArrowConfig config) {
-
-    this.decoder = decoder;
-    this.schema = schema;
-    this.config = config;
-    this.targetBatchSize = config.getTargetBatchSize();
-
-  }
-
-  /**
-   * Create a ArrowVectorIterator to partially convert data.
-   */
-  public static AvroToArrowVectorIterator create(
-      Decoder decoder,
-      Schema schema,
-      AvroToArrowConfig config) {
-
-    AvroToArrowVectorIterator iterator = new AvroToArrowVectorIterator(decoder, schema, config);
-    try {
-      iterator.initialize();
-      return iterator;
-    } catch (Exception e) {
-      iterator.close();
-      throw new RuntimeException("Error occurs while creating iterator.", e);
-    }
-  }
-
-  private void initialize() {
-    // create consumers
-    compositeConsumer = AvroToArrowUtils.createCompositeConsumer(schema, config);
-    List<FieldVector> vectors = new ArrayList<>();
-    compositeConsumer.getConsumers().forEach(c -> vectors.add(c.getVector()));
-    List<Field> fields = vectors.stream().map(t -> t.getField()).collect(Collectors.toList());
-    VectorSchemaRoot root = new VectorSchemaRoot(fields, vectors, 0);
-    rootSchema = root.getSchema();
-
-    load(root);
-  }
-
-  private void consumeData(VectorSchemaRoot root) {
-    int readRowCount = 0;
-    try {
-      while ((targetBatchSize == NO_LIMIT_BATCH_SIZE || readRowCount < targetBatchSize)) {
-        compositeConsumer.consume(decoder);
-        readRowCount++;
-      }
-
-      if (targetBatchSize == NO_LIMIT_BATCH_SIZE) {
-        while (true) {
-          ValueVectorUtility.ensureCapacity(root, readRowCount + 1);
-          compositeConsumer.consume(decoder);
-          readRowCount++;
-        }
-      } else {
-        while (readRowCount < targetBatchSize) {
-          compositeConsumer.consume(decoder);
-          readRowCount++;
-        }
-      }
-
-      root.setRowCount(readRowCount);
-    } catch (EOFException eof) {
-      // reach the end of encoder stream.
-      root.setRowCount(readRowCount);
-    } catch (Exception e) {
-      compositeConsumer.close();
-      throw new RuntimeException("Error occurs while consuming data.", e);
-    }
-  }
-
-  // Loads the next schema root or null if no more rows are available.
-  private void load(VectorSchemaRoot root) {
-    final int targetBatchSize = config.getTargetBatchSize();
-    if (targetBatchSize != NO_LIMIT_BATCH_SIZE) {
-      ValueVectorUtility.preAllocate(root, targetBatchSize);
-    }
-
-    long validConsumerCount = compositeConsumer.getConsumers().stream().filter(c ->
-        !c.skippable()).count();
-    Preconditions.checkArgument(root.getFieldVectors().size() == validConsumerCount,
-        "Schema root vectors size not equals to consumers size.");
-
-    compositeConsumer.resetConsumerVectors(root);
-
-    // consume data
-    consumeData(root);
-
-    if (root.getRowCount() == 0) {
-      root.close();
-      nextBatch = null;
-    } else {
-      nextBatch = root;
-    }
-  }
-
-  @Override
-  public boolean hasNext() {
-    return nextBatch != null;
-  }
-
-  /**
-   * Gets the next vector. The user is responsible for freeing its resources.
-   */
-  public VectorSchemaRoot next() {
-    Preconditions.checkArgument(hasNext());
-    VectorSchemaRoot returned = nextBatch;
-    try {
-      load(VectorSchemaRoot.create(rootSchema, config.getAllocator()));
-    } catch (Exception e) {
-      returned.close();
-      throw new RuntimeException("Error occurs while getting next schema root.", e);
-    }
-    return returned;
-  }
-
-  /**
-   * Clean up resources.
-   */
-  public void close() {
-    if (nextBatch != null) {
-      nextBatch.close();
-    }
-    compositeConsumer.close();
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroArraysConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroArraysConsumer.java
deleted file mode 100644
index b9d0f84..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroArraysConsumer.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.vector.complex.ListVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume array type values from avro decoder.
- * Write the data to {@link ListVector}.
- */
-public class AvroArraysConsumer extends BaseAvroConsumer<ListVector> {
-
-  private final Consumer delegate;
-
-  /**
-   * Instantiate a ArrayConsumer.
-   */
-  public AvroArraysConsumer(ListVector vector, Consumer delegate) {
-    super(vector);
-    this.delegate = delegate;
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-
-    vector.startNewValue(currentIndex);
-    long totalCount = 0;
-    for (long count = decoder.readArrayStart(); count != 0; count = decoder.arrayNext()) {
-      totalCount += count;
-      ensureInnerVectorCapacity(totalCount);
-      for (int element = 0; element < count; element++) {
-        delegate.consume(decoder);
-      }
-    }
-    vector.endValue(currentIndex, (int) totalCount);
-    currentIndex++;
-  }
-
-  @Override
-  public void close() throws Exception {
-    super.close();
-    delegate.close();
-  }
-
-  @Override
-  public boolean resetValueVector(ListVector vector) {
-    this.delegate.resetValueVector(vector.getDataVector());
-    return super.resetValueVector(vector);
-  }
-
-  void ensureInnerVectorCapacity(long targetCapacity) {
-    while (vector.getDataVector().getValueCapacity() < targetCapacity) {
-      vector.getDataVector().reAlloc();
-    }
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroBooleanConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroBooleanConsumer.java
deleted file mode 100644
index 4ca5f24..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroBooleanConsumer.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.vector.BitVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume boolean type values from avro decoder.
- * Write the data to {@link BitVector}.
- */
-public class AvroBooleanConsumer extends BaseAvroConsumer<BitVector> {
-
-  /**
-   * Instantiate a AvroBooleanConsumer.
-   */
-  public AvroBooleanConsumer(BitVector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    vector.set(currentIndex, decoder.readBoolean() ? 1 : 0);
-    currentIndex++;
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroBytesConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroBytesConsumer.java
deleted file mode 100644
index eede68e..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroBytesConsumer.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-
-import org.apache.arrow.vector.VarBinaryVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume bytes type values from avro decoder.
- * Write the data to {@link VarBinaryVector}.
- */
-public class AvroBytesConsumer extends BaseAvroConsumer<VarBinaryVector> {
-
-  private ByteBuffer cacheBuffer;
-
-  /**
-   * Instantiate a AvroBytesConsumer.
-   */
-  public AvroBytesConsumer(VarBinaryVector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    // cacheBuffer is initialized null and create in the first consume,
-    // if its capacity < size to read, decoder will create a new one with new capacity.
-    cacheBuffer = decoder.readBytes(cacheBuffer);
-    vector.setSafe(currentIndex, cacheBuffer, 0, cacheBuffer.limit());
-    currentIndex++;
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroDoubleConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroDoubleConsumer.java
deleted file mode 100644
index 356707a..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroDoubleConsumer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.vector.Float8Vector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume double type values from avro decoder.
- * Write the data to {@link Float8Vector}.
- */
-public class AvroDoubleConsumer extends BaseAvroConsumer<Float8Vector> {
-
-  /**
-   * Instantiate a AvroDoubleConsumer.
-   */
-  public AvroDoubleConsumer(Float8Vector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    vector.set(currentIndex++, decoder.readDouble());
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroEnumConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroEnumConsumer.java
deleted file mode 100644
index 2f4443b..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroEnumConsumer.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.vector.BaseIntVector;
-import org.apache.arrow.vector.IntVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume enum type values from avro decoder.
- * Write the data to {@link IntVector}.
- */
-public class AvroEnumConsumer extends BaseAvroConsumer<BaseIntVector> {
-
-  /**
-   * Instantiate a AvroEnumConsumer.
-   */
-  public AvroEnumConsumer(BaseIntVector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    vector.setWithPossibleTruncate(currentIndex++, decoder.readEnum());
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroFixedConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroFixedConsumer.java
deleted file mode 100644
index a065466..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroFixedConsumer.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.vector.FixedSizeBinaryVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume fixed type values from avro decoder.
- * Write the data to {@link org.apache.arrow.vector.FixedSizeBinaryVector}.
- */
-public class AvroFixedConsumer extends BaseAvroConsumer<FixedSizeBinaryVector> {
-
-  private final byte[] reuseBytes;
-
-  /**
-   * Instantiate a AvroFixedConsumer.
-   */
-  public AvroFixedConsumer(FixedSizeBinaryVector vector, int size) {
-    super(vector);
-    reuseBytes = new byte[size];
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    decoder.readFixed(reuseBytes);
-    vector.setSafe(currentIndex++, reuseBytes);
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroFloatConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroFloatConsumer.java
deleted file mode 100644
index c8de4a2..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroFloatConsumer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.vector.Float4Vector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume float type values from avro decoder.
- * Write the data to {@link Float4Vector}.
- */
-public class AvroFloatConsumer extends BaseAvroConsumer<Float4Vector> {
-
-  /**
-   * Instantiate a AvroFloatConsumer.
-   */
-  public AvroFloatConsumer(Float4Vector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    vector.set(currentIndex++, decoder.readFloat());
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroIntConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroIntConsumer.java
deleted file mode 100644
index bc8d4de..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroIntConsumer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.vector.IntVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume int type values from avro decoder.
- * Write the data to {@link IntVector}.
- */
-public class AvroIntConsumer extends BaseAvroConsumer<IntVector> {
-
-  /**
-   * Instantiate a AvroIntConsumer.
-   */
-  public AvroIntConsumer(IntVector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    vector.set(currentIndex++, decoder.readInt());
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroLongConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroLongConsumer.java
deleted file mode 100644
index b9016c5..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroLongConsumer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.vector.BigIntVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume long type values from avro decoder.
- * Write the data to {@link BigIntVector}.
- */
-public class AvroLongConsumer extends BaseAvroConsumer<BigIntVector> {
-
-  /**
-   * Instantiate a AvroLongConsumer.
-   */
-  public AvroLongConsumer(BigIntVector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    vector.set(currentIndex++, decoder.readLong());
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroMapConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroMapConsumer.java
deleted file mode 100644
index b8e8bd5..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroMapConsumer.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.vector.FieldVector;
-import org.apache.arrow.vector.complex.MapVector;
-import org.apache.arrow.vector.complex.StructVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume map type values from avro decoder.
- * Write the data to {@link MapVector}.
- */
-public class AvroMapConsumer extends BaseAvroConsumer<MapVector> {
-
-  private final Consumer delegate;
-
-  /**
-   * Instantiate a AvroMapConsumer.
-   */
-  public AvroMapConsumer(MapVector vector, Consumer delegate) {
-    super(vector);
-    this.delegate = delegate;
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-
-    vector.startNewValue(currentIndex);
-    long totalCount = 0;
-    for (long count = decoder.readMapStart(); count != 0; count = decoder.mapNext()) {
-      totalCount += count;
-      ensureInnerVectorCapacity(totalCount);
-      for (int element = 0; element < count; element++) {
-        delegate.consume(decoder);
-      }
-    }
-    vector.endValue(currentIndex, (int) totalCount);
-    currentIndex++;
-  }
-
-  @Override
-  public void close() throws Exception {
-    super.close();
-    delegate.close();
-  }
-
-  @Override
-  public boolean resetValueVector(MapVector vector) {
-    this.delegate.resetValueVector(vector.getDataVector());
-    return super.resetValueVector(vector);
-  }
-
-  void ensureInnerVectorCapacity(long targetCapacity) {
-    StructVector innerVector = (StructVector) vector.getDataVector();
-    for (FieldVector v : innerVector.getChildrenFromFields()) {
-      while (v.getValueCapacity() < targetCapacity) {
-        v.reAlloc();
-      }
-    }
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroNullConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroNullConsumer.java
deleted file mode 100644
index 6476800..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroNullConsumer.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.vector.NullVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume null type values from avro decoder.
- * Corresponding to {@link org.apache.arrow.vector.NullVector}.
- */
-public class AvroNullConsumer extends BaseAvroConsumer<NullVector> {
-
-  public AvroNullConsumer(NullVector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    currentIndex++;
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroStringConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroStringConsumer.java
deleted file mode 100644
index 10fe234..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroStringConsumer.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-
-import org.apache.arrow.vector.VarCharVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume string type values from avro decoder.
- * Write the data to {@link VarCharVector}.
- */
-public class AvroStringConsumer extends BaseAvroConsumer<VarCharVector> {
-
-  private ByteBuffer cacheBuffer;
-
-  /**
-   * Instantiate a AvroStringConsumer.
-   */
-  public AvroStringConsumer(VarCharVector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    // cacheBuffer is initialized null and create in the first consume,
-    // if its capacity < size to read, decoder will create a new one with new capacity.
-    cacheBuffer = decoder.readBytes(cacheBuffer);
-    vector.setSafe(currentIndex++, cacheBuffer, 0, cacheBuffer.limit());
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroStructConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroStructConsumer.java
deleted file mode 100644
index 792d01e..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroStructConsumer.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.util.AutoCloseables;
-import org.apache.arrow.vector.FieldVector;
-import org.apache.arrow.vector.complex.StructVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume nested record type values from avro decoder.
- * Write the data to {@link org.apache.arrow.vector.complex.StructVector}.
- */
-public class AvroStructConsumer extends BaseAvroConsumer<StructVector> {
-
-  private final Consumer[] delegates;
-
-  /**
-   * Instantiate a AvroStructConsumer.
-   */
-  public AvroStructConsumer(StructVector vector, Consumer[] delegates) {
-    super(vector);
-    this.delegates = delegates;
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-
-    ensureInnerVectorCapacity(currentIndex + 1);
-    for (int i = 0; i < delegates.length; i++) {
-      delegates[i].consume(decoder);
-    }
-    vector.setIndexDefined(currentIndex);
-    currentIndex++;
-
-  }
-
-  @Override
-  public void close() throws Exception {
-    super.close();
-    AutoCloseables.close(delegates);
-  }
-
-  @Override
-  public boolean resetValueVector(StructVector vector) {
-    for (int i = 0; i < delegates.length; i++) {
-      delegates[i].resetValueVector(vector.getChildrenFromFields().get(i));
-    }
-    return super.resetValueVector(vector);
-  }
-
-  void ensureInnerVectorCapacity(long targetCapacity) {
-    for (FieldVector v : vector.getChildrenFromFields()) {
-      while (v.getValueCapacity() < targetCapacity) {
-        v.reAlloc();
-      }
-    }
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroUnionsConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroUnionsConsumer.java
deleted file mode 100644
index c0bb020..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/AvroUnionsConsumer.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.util.AutoCloseables;
-import org.apache.arrow.vector.ValueVector;
-import org.apache.arrow.vector.complex.UnionVector;
-import org.apache.arrow.vector.types.Types;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume unions type values from avro decoder.
- * Write the data to {@link org.apache.arrow.vector.complex.UnionVector}.
- */
-public class AvroUnionsConsumer extends BaseAvroConsumer<UnionVector> {
-
-  private Consumer[] delegates;
-  private Types.MinorType[] types;
-
-  /**
-   * Instantiate an AvroUnionConsumer.
-   */
-  public AvroUnionsConsumer(UnionVector vector, Consumer[] delegates, Types.MinorType[] types) {
-
-    super(vector);
-    this.delegates = delegates;
-    this.types = types;
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    int fieldIndex = decoder.readInt();
-
-    ensureInnerVectorCapacity(currentIndex + 1, fieldIndex);
-    Consumer delegate = delegates[fieldIndex];
-
-    vector.setType(currentIndex, types[fieldIndex]);
-    // In UnionVector we need to set sub vector writer position before consume a value
-    // because in the previous iterations we might not have written to the specific union sub vector.
-    delegate.setPosition(currentIndex);
-    delegate.consume(decoder);
-
-    currentIndex++;
-  }
-
-  @Override
-  public void close() throws Exception {
-    super.close();
-    AutoCloseables.close(delegates);
-  }
-
-  @Override
-  public boolean resetValueVector(UnionVector vector) {
-    for (int i = 0; i < delegates.length; i++) {
-      delegates[i].resetValueVector(vector.getChildrenFromFields().get(i));
-    }
-    return super.resetValueVector(vector);
-  }
-
-  void ensureInnerVectorCapacity(long targetCapacity, int fieldIndex) {
-    ValueVector fieldVector = vector.getChildrenFromFields().get(fieldIndex);
-    if (fieldVector.getMinorType() == Types.MinorType.NULL) {
-      return;
-    }
-    while (fieldVector.getValueCapacity() < targetCapacity) {
-      fieldVector.reAlloc();
-    }
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/BaseAvroConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/BaseAvroConsumer.java
deleted file mode 100644
index 303be8e..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/BaseAvroConsumer.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import org.apache.arrow.vector.FieldVector;
-
-/**
- * Base class for non-skippable avro consumers.
- * @param <T> vector type.
- */
-public abstract class BaseAvroConsumer<T extends FieldVector> implements Consumer<T> {
-
-  protected T vector;
-  protected int currentIndex;
-
-  /**
-   * Constructs a base avro consumer.
-   * @param vector the vector to consume.
-   */
-  public BaseAvroConsumer(T vector) {
-    this.vector = vector;
-  }
-
-  @Override
-  public void addNull() {
-    currentIndex++;
-  }
-
-  @Override
-  public void setPosition(int index) {
-    currentIndex = index;
-  }
-
-  @Override
-  public FieldVector getVector() {
-    return vector;
-  }
-
-  @Override
-  public void close() throws Exception {
-    vector.close();
-  }
-
-  @Override
-  public boolean resetValueVector(T vector) {
-    this.vector = vector;
-    this.currentIndex = 0;
-    return true;
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/CompositeAvroConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/CompositeAvroConsumer.java
deleted file mode 100644
index af476d2..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/CompositeAvroConsumer.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-import java.util.List;
-
-import org.apache.arrow.util.AutoCloseables;
-import org.apache.arrow.vector.VectorSchemaRoot;
-import org.apache.avro.io.Decoder;
-
-/**
- * Composite consumer which hold all consumers.
- * It manages the consume and cleanup process.
- */
-public class CompositeAvroConsumer implements AutoCloseable {
-
-  private final List<Consumer> consumers;
-
-  public List<Consumer> getConsumers() {
-    return consumers;
-  }
-
-  public CompositeAvroConsumer(List<Consumer> consumers) {
-    this.consumers = consumers;
-  }
-
-  /**
-   * Consume decoder data.
-   */
-  public void consume(Decoder decoder) throws IOException {
-    for (Consumer consumer : consumers) {
-      consumer.consume(decoder);
-    }
-  }
-
-  /**
-   * Reset vector of consumers with the given {@link VectorSchemaRoot}.
-   */
-  public void resetConsumerVectors(VectorSchemaRoot root) {
-    int index = 0;
-    for (Consumer consumer : consumers) {
-      if (consumer.resetValueVector(root.getFieldVectors().get(index))) {
-        index++;
-      }
-    }
-  }
-
-  @Override
-  public void close() {
-    // clean up
-    try {
-      AutoCloseables.close(consumers);
-    } catch (Exception e) {
-      throw new RuntimeException("Error occurs in close.", e);
-    }
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/Consumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/Consumer.java
deleted file mode 100644
index 8c4ee9a..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/Consumer.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.vector.FieldVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Interface that is used to consume values from avro decoder.
- * @param <T> The vector within consumer or its delegate, used for partially consume purpose.
- */
-public interface Consumer<T extends FieldVector> extends AutoCloseable {
-
-  /**
-   * Consume a specific type value from avro decoder and write it to vector.
-   * @param decoder avro decoder to read data
-   * @throws IOException on error
-   */
-  void consume(Decoder decoder) throws IOException;
-
-  /**
-   * Add null value to vector by making writer position + 1.
-   */
-  void addNull();
-
-  /**
-   * Set the position to write value into vector.
-   */
-  void setPosition(int index);
-
-  /**
-   * Get the vector within the consumer.
-   */
-  FieldVector getVector();
-
-  /**
-   * Close this consumer when occurs exception to avoid potential leak.
-   */
-  void close() throws Exception;
-
-  /**
-   * Reset the vector within consumer for partial read purpose.
-   * @return true if reset is successful, false if reset is not needed.
-   */
-  boolean resetValueVector(T vector);
-
-  /**
-   * Indicates whether the consumer is type of {@link SkipConsumer}.
-   */
-  default boolean skippable() {
-    return false;
-  }
-
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/SkipConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/SkipConsumer.java
deleted file mode 100644
index 94c5b33..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/SkipConsumer.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.arrow.vector.FieldVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which skip (throw away) data from the decoder.
- */
-public class SkipConsumer implements Consumer {
-
-  private final SkipFunction skipFunction;
-
-  public SkipConsumer(SkipFunction skipFunction) {
-    this.skipFunction = skipFunction;
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    skipFunction.apply(decoder);
-  }
-
-  @Override
-  public void addNull() {
-  }
-
-  @Override
-  public void setPosition(int index) {
-  }
-
-  @Override
-  public FieldVector getVector() {
-    return null;
-  }
-
-  @Override
-  public void close() throws Exception {
-  }
-
-  @Override
-  public boolean resetValueVector(FieldVector vector) {
-    return false;
-  }
-
-  @Override
-  public boolean skippable() {
-    return true;
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/SkipFunction.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/SkipFunction.java
deleted file mode 100644
index 6193891..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/SkipFunction.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers;
-
-import java.io.IOException;
-
-import org.apache.avro.io.Decoder;
-
-/**
- * Adapter function to skip (throw away) data from the decoder.
- */
-@FunctionalInterface
-public interface SkipFunction {
-  void apply(Decoder decoder) throws IOException;
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroDateConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroDateConsumer.java
deleted file mode 100644
index 3aa8970..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroDateConsumer.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers.logical;
-
-import java.io.IOException;
-
-import org.apache.arrow.consumers.BaseAvroConsumer;
-import org.apache.arrow.vector.DateDayVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume date type values from avro decoder.
- * Write the data to {@link DateDayVector}.
- */
-public class AvroDateConsumer extends BaseAvroConsumer<DateDayVector> {
-
-  /**
-   * Instantiate a AvroDateConsumer.
-   */
-  public AvroDateConsumer(DateDayVector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    vector.set(currentIndex++, decoder.readInt());
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroDecimalConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroDecimalConsumer.java
deleted file mode 100644
index 24d73cf..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroDecimalConsumer.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers.logical;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-
-import org.apache.arrow.consumers.BaseAvroConsumer;
-import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.DecimalVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume decimal type values from avro decoder.
- * Write the data to {@link DecimalVector}.
- */
-public abstract class AvroDecimalConsumer extends BaseAvroConsumer<DecimalVector> {
-
-  /**
-   * Instantiate a AvroDecimalConsumer.
-   */
-  public AvroDecimalConsumer(DecimalVector vector) {
-    super(vector);
-  }
-
-  /**
-   * Consumer for decimal logical type with original bytes type.
-   */
-  public static class BytesDecimalConsumer extends AvroDecimalConsumer {
-
-    private ByteBuffer cacheBuffer;
-
-    /**
-     * Instantiate a BytesDecimalConsumer.
-     */
-    public BytesDecimalConsumer(DecimalVector vector) {
-      super(vector);
-    }
-
-    @Override
-    public void consume(Decoder decoder) throws IOException {
-      cacheBuffer = decoder.readBytes(cacheBuffer);
-      byte[] bytes = new byte[cacheBuffer.limit()];
-      Preconditions.checkArgument(bytes.length <= 16, "Decimal bytes length should <= 16.");
-      cacheBuffer.get(bytes);
-      vector.setBigEndian(currentIndex++, bytes);
-    }
-
-  }
-
-  /**
-   * Consumer for decimal logical type with original fixed type.
-   */
-  public static class FixedDecimalConsumer extends AvroDecimalConsumer {
-
-    private byte[] reuseBytes;
-
-    /**
-     * Instantiate a FixedDecimalConsumer.
-     */
-    public FixedDecimalConsumer(DecimalVector vector, int size) {
-      super(vector);
-      Preconditions.checkArgument(size <= 16, "Decimal bytes length should <= 16.");
-      reuseBytes = new byte[size];
-    }
-
-    @Override
-    public void consume(Decoder decoder) throws IOException {
-      decoder.readFixed(reuseBytes);
-      vector.setBigEndian(currentIndex++, reuseBytes);
-    }
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroTimeMicroConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroTimeMicroConsumer.java
deleted file mode 100644
index e68ba15..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroTimeMicroConsumer.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers.logical;
-
-import java.io.IOException;
-
-import org.apache.arrow.consumers.BaseAvroConsumer;
-import org.apache.arrow.vector.TimeMicroVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume date time-micro values from avro decoder.
- * Write the data to {@link TimeMicroVector}.
- */
-public class AvroTimeMicroConsumer extends BaseAvroConsumer<TimeMicroVector> {
-
-  /**
-   * Instantiate a AvroTimeMicroConsumer.
-   */
-  public AvroTimeMicroConsumer(TimeMicroVector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    vector.set(currentIndex++, decoder.readLong());
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroTimeMillisConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroTimeMillisConsumer.java
deleted file mode 100644
index f76186f..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroTimeMillisConsumer.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers.logical;
-
-import java.io.IOException;
-
-import org.apache.arrow.consumers.BaseAvroConsumer;
-import org.apache.arrow.vector.TimeMilliVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume date time-millis values from avro decoder.
- * Write the data to {@link TimeMilliVector}.
- */
-public class AvroTimeMillisConsumer extends BaseAvroConsumer<TimeMilliVector> {
-
-  /**
-   * Instantiate a AvroTimeMilliConsumer.
-   */
-  public AvroTimeMillisConsumer(TimeMilliVector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    vector.set(currentIndex++, decoder.readInt());
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroTimestampMicrosConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroTimestampMicrosConsumer.java
deleted file mode 100644
index 82da0e8..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroTimestampMicrosConsumer.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers.logical;
-
-import java.io.IOException;
-
-import org.apache.arrow.consumers.BaseAvroConsumer;
-import org.apache.arrow.vector.TimeStampMicroVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume date timestamp-micro values from avro decoder.
- * Write the data to {@link TimeStampMicroVector}.
- */
-public class AvroTimestampMicrosConsumer extends BaseAvroConsumer<TimeStampMicroVector> {
-
-  /**
-   * Instantiate a AvroTimestampMicroConsumer.
-   */
-  public AvroTimestampMicrosConsumer(TimeStampMicroVector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    vector.set(currentIndex++, decoder.readLong());
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroTimestampMillisConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroTimestampMillisConsumer.java
deleted file mode 100644
index 159f49e..0000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/consumers/logical/AvroTimestampMillisConsumer.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.consumers.logical;
-
-import java.io.IOException;
-
-import org.apache.arrow.consumers.BaseAvroConsumer;
-import org.apache.arrow.vector.TimeStampMilliVector;
-import org.apache.avro.io.Decoder;
-
-/**
- * Consumer which consume date timestamp-millis values from avro decoder.
- * Write the data to {@link TimeStampMilliVector}.
- */
-public class AvroTimestampMillisConsumer extends BaseAvroConsumer<TimeStampMilliVector> {
-
-  /**
-   * Instantiate a AvroTimestampMillisConsumer.
-   */
-  public AvroTimestampMillisConsumer(TimeStampMilliVector vector) {
-    super(vector);
-  }
-
-  @Override
-  public void consume(Decoder decoder) throws IOException {
-    vector.set(currentIndex++, decoder.readLong());
-  }
-}
diff --git a/java/adapter/avro/src/test/java/org/apache/arrow/AvroLogicalTypesTest.java b/java/adapter/avro/src/test/java/org/apache/arrow/AvroLogicalTypesTest.java
deleted file mode 100644
index 050a50d..0000000
--- a/java/adapter/avro/src/test/java/org/apache/arrow/AvroLogicalTypesTest.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow;
-
-import static junit.framework.TestCase.assertNull;
-import static junit.framework.TestCase.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-import java.math.BigDecimal;
-import java.nio.ByteBuffer;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.arrow.vector.FieldVector;
-import org.apache.arrow.vector.VectorSchemaRoot;
-import org.apache.arrow.vector.util.DateUtility;
-import org.apache.avro.Conversions;
-import org.apache.avro.Schema;
-import org.apache.avro.generic.GenericFixed;
-import org.junit.Test;
-
-public class AvroLogicalTypesTest extends AvroTestBase {
-
-  @Test
-  public void testTimestampMicros() throws Exception {
-    Schema schema = getSchema("logical/test_timestamp_micros.avsc");
-
-    List<Long> data = Arrays.asList(10000L, 20000L, 30000L, 40000L, 50000L);
-    List<LocalDateTime> expected = Arrays.asList(
-        DateUtility.getLocalDateTimeFromEpochMicro(10000),
-        DateUtility.getLocalDateTimeFromEpochMicro(20000),
-        DateUtility.getLocalDateTimeFromEpochMicro(30000),
-        DateUtility.getLocalDateTimeFromEpochMicro(40000),
-        DateUtility.getLocalDateTimeFromEpochMicro(50000)
-    );
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(expected, vector);
-  }
-
-  @Test
-  public void testTimestampMillis() throws Exception {
-    Schema schema = getSchema("logical/test_timestamp_millis.avsc");
-
-    List<Long> data = Arrays.asList(10000L, 20000L, 30000L, 40000L, 50000L);
-    List<LocalDateTime> expected = Arrays.asList(
-        DateUtility.getLocalDateTimeFromEpochMilli(10000),
-        DateUtility.getLocalDateTimeFromEpochMilli(20000),
-        DateUtility.getLocalDateTimeFromEpochMilli(30000),
-        DateUtility.getLocalDateTimeFromEpochMilli(40000),
-        DateUtility.getLocalDateTimeFromEpochMilli(50000)
-    );
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(expected, vector);
-  }
-
-  @Test
-  public void testTimeMicros() throws Exception {
-    Schema schema = getSchema("logical/test_time_micros.avsc");
-
-    List<Long> data = Arrays.asList(10000L, 20000L, 30000L, 40000L, 50000L);
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(data, vector);
-  }
-
-  @Test
-  public void testTimeMillis() throws Exception {
-    Schema schema = getSchema("logical/test_time_millis.avsc");
-
-    List<Integer> data = Arrays.asList(100, 200, 300, 400, 500);
-    List<LocalDateTime> expected = Arrays.asList(
-        DateUtility.getLocalDateTimeFromEpochMilli(100),
-        DateUtility.getLocalDateTimeFromEpochMilli(200),
-        DateUtility.getLocalDateTimeFromEpochMilli(300),
-        DateUtility.getLocalDateTimeFromEpochMilli(400),
-        DateUtility.getLocalDateTimeFromEpochMilli(500)
-    );
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(expected, vector);
-  }
-
-  @Test
-  public void testDate() throws Exception {
-    Schema schema = getSchema("logical/test_date.avsc");
-
-    List<Integer> data = Arrays.asList(100, 200, 300, 400, 500);
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(data, vector);
-  }
-
-  @Test
-  public void testDecimalWithOriginalBytes() throws Exception {
-    Schema schema = getSchema("logical/test_decimal_with_original_bytes.avsc");
-    List<ByteBuffer> data = new ArrayList<>();
-    List<BigDecimal> expected = new ArrayList<>();
-
-    Conversions.DecimalConversion conversion = new Conversions.DecimalConversion();
-
-    for (int i = 0; i < 5; i++) {
-      BigDecimal value = new BigDecimal(i * i).setScale(2);
-      ByteBuffer buffer = conversion.toBytes(value, schema, schema.getLogicalType());
-      data.add(buffer);
-      expected.add(value);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-    checkPrimitiveResult(expected, vector);
-
-  }
-
-  @Test
-  public void testDecimalWithOriginalFixed() throws Exception {
-    Schema schema = getSchema("logical/test_decimal_with_original_fixed.avsc");
-
-    List<GenericFixed> data = new ArrayList<>();
-    List<BigDecimal> expected = new ArrayList<>();
-
-    Conversions.DecimalConversion conversion = new Conversions.DecimalConversion();
-
-    for (int i = 0; i < 5; i++) {
-      BigDecimal value = new BigDecimal(i * i).setScale(2);
-      GenericFixed fixed = conversion.toFixed(value, schema, schema.getLogicalType());
-      data.add(fixed);
-      expected.add(value);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-    checkPrimitiveResult(expected, vector);
-  }
-
-  @Test
-  public void testInvalidDecimalPrecision() throws Exception {
-    Schema schema = getSchema("logical/test_decimal_invalid1.avsc");
-    List<ByteBuffer> data = new ArrayList<>();
-
-    Conversions.DecimalConversion conversion = new Conversions.DecimalConversion();
-
-    for (int i = 0; i < 5; i++) {
-      BigDecimal value = new BigDecimal(i * i).setScale(2);
-      ByteBuffer buffer = conversion.toBytes(value, schema, schema.getLogicalType());
-      data.add(buffer);
-    }
-
-    IllegalArgumentException e = assertThrows(IllegalArgumentException.class,
-        () -> writeAndRead(schema, data));
-    assertTrue(e.getMessage().contains("Precision must be in range of 1 to 38"));
-
-  }
-
-  @Test
-  public void testFailedToCreateDecimalLogicalType() throws Exception {
-    // For decimal logical type, if avro validate schema failed, it will not create logical type,
-    // and the schema will be treated as its original type.
-
-    // java.lang.IllegalArgumentException: Invalid decimal scale: -1 (must be positive)
-    Schema schema1 = getSchema("logical/test_decimal_invalid2.avsc");
-    assertNull(schema1.getLogicalType());
-
-    // java.lang.IllegalArgumentException: Invalid decimal scale: 40 (greater than precision: 20)
-    Schema schema2 = getSchema("logical/test_decimal_invalid3.avsc");
-    assertNull(schema2.getLogicalType());
-
-    // java.lang.IllegalArgumentException: fixed(1) cannot store 30 digits (max 2)
-    Schema schema3 = getSchema("logical/test_decimal_invalid4.avsc");
-    assertNull(schema3.getLogicalType());
-  }
-
-}
diff --git a/java/adapter/avro/src/test/java/org/apache/arrow/AvroSkipFieldTest.java b/java/adapter/avro/src/test/java/org/apache/arrow/AvroSkipFieldTest.java
deleted file mode 100644
index b946dbd..0000000
--- a/java/adapter/avro/src/test/java/org/apache/arrow/AvroSkipFieldTest.java
+++ /dev/null
@@ -1,626 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow;
-
-import static org.junit.Assert.assertEquals;
-
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.arrow.vector.VectorSchemaRoot;
-import org.apache.arrow.vector.complex.StructVector;
-import org.apache.arrow.vector.types.Types;
-import org.apache.avro.Schema;
-import org.apache.avro.generic.GenericData;
-import org.apache.avro.generic.GenericRecord;
-import org.junit.Test;
-
-public class AvroSkipFieldTest extends AvroTestBase {
-
-  @Test
-  public void testSkipUnionWithOneField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f0");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_union_before.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_union_one_field_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, "test" + i);
-      record.put(1, i % 2 == 0 ? "test" + i : null);
-      record.put(2, i % 2 == 0 ? "test" + i : i);
-      record.put(3, i);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, record.get(1));
-      expectedRecord.put(1, record.get(2));
-      expectedRecord.put(2, record.get(3));
-      expectedData.add(expectedRecord);
-    }
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipUnionWithNullableOneField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f1");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_union_before.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_union_nullable_field_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, "test" + i);
-      record.put(1, i % 2 == 0 ? "test" + i : null);
-      record.put(2, i % 2 == 0 ? "test" + i : i);
-      record.put(3, i);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, record.get(0));
-      expectedRecord.put(1, record.get(2));
-      expectedRecord.put(2, record.get(3));
-      expectedData.add(expectedRecord);
-    }
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipUnionWithMultiFields() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f2");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_union_before.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_union_multi_fields_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, "test" + i);
-      record.put(1, i % 2 == 0 ? "test" + i : null);
-      record.put(2, i % 2 == 0 ? "test" + i : i);
-      record.put(3, i);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, record.get(0));
-      expectedRecord.put(1, record.get(1));
-      expectedRecord.put(2, record.get(3));
-      expectedData.add(expectedRecord);
-    }
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipMapField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f1");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_map_before.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_map_expected.avsc");
-
-    HashMap map = new HashMap();
-    map.put("key1", "value1");
-    map.put("key2", "value3");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, "test" + i);
-      record.put(1, map);
-      record.put(2, i % 2 == 0);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, record.get(0));
-      expectedRecord.put(1, record.get(2));
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipArrayField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f1");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_array_before.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_array_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, "test" + i);
-      record.put(1, Arrays.asList("test" + i, "test" + i));
-      record.put(2, i % 2 == 0);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, record.get(0));
-      expectedRecord.put(1, record.get(2));
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipMultiFields() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f1");
-    skipFieldNames.add("f2");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("test_record.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_multi_fields_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, "test" + i);
-      record.put(1, i);
-      record.put(2, i % 2 == 0);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, record.get(0));
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipStringField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f2");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_base1.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_string_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      final byte[] testBytes = ("test" + i).getBytes();
-      GenericRecord record = new GenericData.Record(schema);
-      GenericData.Fixed fixed = new GenericData.Fixed(schema.getField("f0").schema());
-      fixed.bytes(testBytes);
-      record.put(0, fixed);
-      GenericData.EnumSymbol symbol = new GenericData.EnumSymbol(schema.getField("f1").schema(), "TEST" + i % 2);
-      record.put(1, symbol);
-      record.put(2, "testtest" + i);
-      record.put(3, ByteBuffer.wrap(testBytes));
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, testBytes);
-      expectedRecord.put(1, (byte) i % 2);
-      expectedRecord.put(2, testBytes);
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipBytesField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f3");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_base1.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_bytes_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      final byte[] testBytes = ("test" + i).getBytes();
-      GenericRecord record = new GenericData.Record(schema);
-      GenericData.Fixed fixed = new GenericData.Fixed(schema.getField("f0").schema());
-      fixed.bytes(testBytes);
-      record.put(0, fixed);
-      GenericData.EnumSymbol symbol = new GenericData.EnumSymbol(schema.getField("f1").schema(), "TEST" + i % 2);
-      record.put(1, symbol);
-      record.put(2, "testtest" + i);
-      record.put(3, ByteBuffer.wrap(testBytes));
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, testBytes);
-      expectedRecord.put(1, (byte) i % 2);
-      expectedRecord.put(2, record.get(2));
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipFixedField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f0");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_base1.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_fixed_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      final byte[] testBytes = ("test" + i).getBytes();
-      GenericRecord record = new GenericData.Record(schema);
-      GenericData.Fixed fixed = new GenericData.Fixed(schema.getField("f0").schema());
-      fixed.bytes(testBytes);
-      record.put(0, fixed);
-      GenericData.EnumSymbol symbol = new GenericData.EnumSymbol(schema.getField("f1").schema(), "TEST" + i % 2);
-      record.put(1, symbol);
-      record.put(2, "testtest" + i);
-      record.put(3, ByteBuffer.wrap(testBytes));
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, (byte) i % 2);
-      expectedRecord.put(1, record.get(2));
-      expectedRecord.put(2, record.get(3));
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipEnumField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f1");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_base1.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_fixed_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      final byte[] testBytes = ("test" + i).getBytes();
-      GenericRecord record = new GenericData.Record(schema);
-      GenericData.Fixed fixed = new GenericData.Fixed(schema.getField("f0").schema());
-      fixed.bytes(testBytes);
-      record.put(0, fixed);
-      GenericData.EnumSymbol symbol = new GenericData.EnumSymbol(schema.getField("f1").schema(), "TEST" + i % 2);
-      record.put(1, symbol);
-      record.put(2, "testtest" + i);
-      record.put(3, ByteBuffer.wrap(testBytes));
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, testBytes);
-      expectedRecord.put(1, record.get(2));
-      expectedRecord.put(2, record.get(3));
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipBooleanField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f0");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_base2.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_boolean_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0);
-      record.put(1, i);
-      record.put(2, (long) i);
-      record.put(3, (float) i);
-      record.put(4, (double) i);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, record.get(1));
-      expectedRecord.put(1, record.get(2));
-      expectedRecord.put(2, record.get(3));
-      expectedRecord.put(3, record.get(4));
-
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipIntField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f1");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_base2.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_int_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0);
-      record.put(1, i);
-      record.put(2, (long) i);
-      record.put(3, (float) i);
-      record.put(4, (double) i);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, record.get(0));
-      expectedRecord.put(1, record.get(2));
-      expectedRecord.put(2, record.get(3));
-      expectedRecord.put(3, record.get(4));
-
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipLongField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f2");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_base2.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_long_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0);
-      record.put(1, i);
-      record.put(2, (long) i);
-      record.put(3, (float) i);
-      record.put(4, (double) i);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, record.get(0));
-      expectedRecord.put(1, record.get(1));
-      expectedRecord.put(2, record.get(3));
-      expectedRecord.put(3, record.get(4));
-
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipFloatField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f3");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_base2.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_float_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0);
-      record.put(1, i);
-      record.put(2, (long) i);
-      record.put(3, (float) i);
-      record.put(4, (double) i);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, record.get(0));
-      expectedRecord.put(1, record.get(1));
-      expectedRecord.put(2, record.get(2));
-      expectedRecord.put(3, record.get(4));
-
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipDoubleField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f4");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_base2.avsc");
-    Schema expectedSchema = getSchema("skip/test_skip_double_expected.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0);
-      record.put(1, i);
-      record.put(2, (long) i);
-      record.put(3, (float) i);
-      record.put(4, (double) i);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, record.get(0));
-      expectedRecord.put(1, record.get(1));
-      expectedRecord.put(2, record.get(2));
-      expectedRecord.put(3, record.get(3));
-
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipRecordField() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f0");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("skip/test_skip_record_before.avsc");
-    Schema nestedSchema = schema.getFields().get(0).schema();
-    ArrayList<GenericRecord> data = new ArrayList<>();
-
-    Schema expectedSchema = getSchema("skip/test_skip_record_expected.avsc");
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      GenericRecord nestedRecord = new GenericData.Record(nestedSchema);
-      nestedRecord.put(0, "test" + i);
-      nestedRecord.put(1, i);
-      record.put(0, nestedRecord);
-      record.put(1, i);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      expectedRecord.put(0, i);
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipNestedFields() throws Exception {
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f0.f0");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    Schema schema = getSchema("test_nested_record.avsc");
-    Schema nestedSchema = schema.getFields().get(0).schema();
-    ArrayList<GenericRecord> data = new ArrayList<>();
-
-    Schema expectedSchema = getSchema("skip/test_skip_second_level_expected.avsc");
-    Schema expectedNestedSchema = expectedSchema.getFields().get(0).schema();
-    ArrayList<GenericRecord> expectedData = new ArrayList<>();
-
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      GenericRecord nestedRecord = new GenericData.Record(nestedSchema);
-      nestedRecord.put(0, "test" + i);
-      nestedRecord.put(1, i);
-      record.put(0, nestedRecord);
-      data.add(record);
-
-      GenericRecord expectedRecord = new GenericData.Record(expectedSchema);
-      GenericRecord expectedNestedRecord = new GenericData.Record(expectedNestedSchema);
-      expectedNestedRecord.put(0, nestedRecord.get(1));
-      expectedRecord.put(0, expectedNestedRecord);
-      expectedData.add(expectedRecord);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkNestedRecordResult(expectedSchema, expectedData, root);
-  }
-
-  @Test
-  public void testSkipThirdLevelField() throws Exception {
-    Schema firstLevelSchema = getSchema("skip/test_skip_third_level_expected.avsc");
-    Schema secondLevelSchema = firstLevelSchema.getFields().get(0).schema();
-    Schema thirdLevelSchema = secondLevelSchema.getFields().get(0).schema();
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord firstLevelRecord = new GenericData.Record(firstLevelSchema);
-      GenericRecord secondLevelRecord = new GenericData.Record(secondLevelSchema);
-      GenericRecord thirdLevelRecord = new GenericData.Record(thirdLevelSchema);
-
-      thirdLevelRecord.put(0, i);
-      thirdLevelRecord.put(1, "test" + i);
-      thirdLevelRecord.put(2, i % 2 == 0);
-
-      secondLevelRecord.put(0, thirdLevelRecord);
-      firstLevelRecord.put(0, secondLevelRecord);
-      data.add(firstLevelRecord);
-    }
-
-    // do not skip any fields first
-    VectorSchemaRoot root1 = writeAndRead(firstLevelSchema, data);
-
-    assertEquals(1, root1.getFieldVectors().size());
-    assertEquals(Types.MinorType.STRUCT, root1.getFieldVectors().get(0).getMinorType());
-    StructVector secondLevelVector = (StructVector) root1.getFieldVectors().get(0);
-    assertEquals(1, secondLevelVector.getChildrenFromFields().size());
-    assertEquals(Types.MinorType.STRUCT, secondLevelVector.getChildrenFromFields().get(0).getMinorType());
-    StructVector thirdLevelVector = (StructVector) secondLevelVector.getChildrenFromFields().get(0);
-    assertEquals(3, thirdLevelVector.getChildrenFromFields().size());
-
-    // skip third level field and validate
-    Set<String> skipFieldNames = new HashSet<>();
-    skipFieldNames.add("f0.f0.f0");
-    config = new AvroToArrowConfigBuilder(config.getAllocator()).setSkipFieldNames(skipFieldNames).build();
-    VectorSchemaRoot root2 = writeAndRead(firstLevelSchema, data);
-
-    assertEquals(1, root2.getFieldVectors().size());
-    assertEquals(Types.MinorType.STRUCT, root2.getFieldVectors().get(0).getMinorType());
-    StructVector secondStruct = (StructVector) root2.getFieldVectors().get(0);
-    assertEquals(1, secondStruct.getChildrenFromFields().size());
-    assertEquals(Types.MinorType.STRUCT, secondStruct.getChildrenFromFields().get(0).getMinorType());
-    StructVector thirdStruct = (StructVector) secondStruct.getChildrenFromFields().get(0);
-    assertEquals(2, thirdStruct.getChildrenFromFields().size());
-
-    assertEquals(Types.MinorType.INT, thirdStruct.getChildrenFromFields().get(0).getMinorType());
-    assertEquals(Types.MinorType.BIT, thirdStruct.getChildrenFromFields().get(1).getMinorType());
-  }
-}
diff --git a/java/adapter/avro/src/test/java/org/apache/arrow/AvroTestBase.java b/java/adapter/avro/src/test/java/org/apache/arrow/AvroTestBase.java
deleted file mode 100644
index f24f0f1..0000000
--- a/java/adapter/avro/src/test/java/org/apache/arrow/AvroTestBase.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.nio.ByteBuffer;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.arrow.memory.BufferAllocator;
-import org.apache.arrow.memory.RootAllocator;
-import org.apache.arrow.vector.FieldVector;
-import org.apache.arrow.vector.VectorSchemaRoot;
-import org.apache.arrow.vector.complex.ListVector;
-import org.apache.arrow.vector.complex.StructVector;
-import org.apache.arrow.vector.util.JsonStringArrayList;
-import org.apache.arrow.vector.util.Text;
-import org.apache.avro.Schema;
-import org.apache.avro.generic.GenericDatumWriter;
-import org.apache.avro.generic.GenericRecord;
-import org.apache.avro.io.BinaryDecoder;
-import org.apache.avro.io.BinaryEncoder;
-import org.apache.avro.io.DatumWriter;
-import org.apache.avro.io.DecoderFactory;
-import org.apache.avro.io.EncoderFactory;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.rules.TemporaryFolder;
-
-public class AvroTestBase {
-
-  @ClassRule
-  public static final TemporaryFolder TMP = new TemporaryFolder();
-
-  protected AvroToArrowConfig config;
-
-  @Before
-  public void init() {
-    BufferAllocator allocator = new RootAllocator(Long.MAX_VALUE);
-    config = new AvroToArrowConfigBuilder(allocator).build();
-  }
-
-  protected Schema getSchema(String schemaName) throws Exception {
-    Path schemaPath = Paths.get(TestWriteReadAvroRecord.class.getResource("/").getPath(),
-        "schema", schemaName);
-    return new Schema.Parser().parse(schemaPath.toFile());
-  }
-
-  protected VectorSchemaRoot writeAndRead(Schema schema, List data) throws Exception {
-    File dataFile = TMP.newFile();
-
-    BinaryEncoder
-        encoder = new EncoderFactory().directBinaryEncoder(new FileOutputStream(dataFile), null);
-    DatumWriter writer = new GenericDatumWriter(schema);
-    BinaryDecoder
-        decoder = new DecoderFactory().directBinaryDecoder(new FileInputStream(dataFile), null);
-
-    for (Object value : data) {
-      writer.write(value, encoder);
-    }
-
-    return AvroToArrow.avroToArrow(schema, decoder, config);
-  }
-
-  protected void checkArrayResult(List<List<?>> expected, ListVector vector) {
-    assertEquals(expected.size(), vector.getValueCount());
-    for (int i = 0; i < expected.size(); i++) {
-      checkArrayElement(expected.get(i), (JsonStringArrayList) vector.getObject(i));
-    }
-  }
-
-  protected void checkArrayElement(List expected, List actual) {
-    assertEquals(expected.size(), actual.size());
-    for (int i = 0; i < expected.size(); i++) {
-      Object value1 = expected.get(i);
-      Object value2 = actual.get(i);
-      if (value1 == null) {
-        assertTrue(value2 == null);
-        continue;
-      }
-      if (value2 instanceof byte[]) {
-        value2 = ByteBuffer.wrap((byte[]) value2);
-      } else if (value2 instanceof Text) {
-        value2 = value2.toString();
-      }
-      assertEquals(value1, value2);
-    }
-  }
-
-  protected void checkPrimitiveResult(List data, FieldVector vector) {
-    assertEquals(data.size(), vector.getValueCount());
-    for (int i = 0; i < data.size(); i++) {
-      Object value1 = data.get(i);
-      Object value2 = vector.getObject(i);
-      if (value1 == null) {
-        assertTrue(value2 == null);
-        continue;
-      }
-      if (value2 instanceof byte[]) {
-        value2 = ByteBuffer.wrap((byte[]) value2);
-        if (value1 instanceof byte[]) {
-          value1 = ByteBuffer.wrap((byte[]) value1);
-        }
-      } else if (value2 instanceof Text) {
-        value2 = value2.toString();
-      } else if (value2 instanceof Byte) {
-        value2 = ((Byte) value2).intValue();
-      }
-      assertEquals(value1, value2);
-    }
-  }
-
-  protected void checkRecordResult(Schema schema, ArrayList<GenericRecord> data, VectorSchemaRoot root) {
-    assertEquals(data.size(), root.getRowCount());
-    assertEquals(schema.getFields().size(), root.getFieldVectors().size());
-
-    for (int i = 0; i < schema.getFields().size(); i++) {
-      ArrayList fieldData = new ArrayList();
-      for (GenericRecord record : data) {
-        fieldData.add(record.get(i));
-      }
-
-      checkPrimitiveResult(fieldData, root.getFieldVectors().get(i));
-    }
-
-  }
-
-  protected void checkNestedRecordResult(Schema schema, List<GenericRecord> data, VectorSchemaRoot root) {
-    assertEquals(data.size(), root.getRowCount());
-    assertTrue(schema.getFields().size() == 1);
-
-    final Schema nestedSchema = schema.getFields().get(0).schema();
-    final StructVector structVector = (StructVector) root.getFieldVectors().get(0);
-
-    for (int i = 0; i < nestedSchema.getFields().size(); i++) {
-      ArrayList fieldData = new ArrayList();
-      for (GenericRecord record : data) {
-        GenericRecord nestedRecord = (GenericRecord) record.get(0);
-        fieldData.add(nestedRecord.get(i));
-      }
-
-      checkPrimitiveResult(fieldData, structVector.getChildrenFromFields().get(i));
-    }
-
-  }
-
-
-  // belows are for iterator api
-
-  protected void checkArrayResult(List<List<?>> expected, List<ListVector> vectors) {
-    int valueCount = vectors.stream().mapToInt(v -> v.getValueCount()).sum();
-    assertEquals(expected.size(), valueCount);
-
-    int index = 0;
-    for (ListVector vector : vectors) {
-      for (int i = 0; i < vector.getValueCount(); i++) {
-        checkArrayElement(expected.get(index++), (JsonStringArrayList) vector.getObject(i));
-      }
-    }
-  }
-
-  protected void checkRecordResult(Schema schema, ArrayList<GenericRecord> data, List<VectorSchemaRoot> roots) {
-    roots.forEach(root -> {
-      assertEquals(schema.getFields().size(), root.getFieldVectors().size());
-    });
-
-    for (int i = 0; i < schema.getFields().size(); i++) {
-      List fieldData = new ArrayList();
-      List<FieldVector> vectors = new ArrayList<>();
-      for (GenericRecord record : data) {
-        fieldData.add(record.get(i));
-      }
-      final int columnIndex = i;
-      roots.forEach(root -> vectors.add(root.getFieldVectors().get(columnIndex)));
-
-      checkPrimitiveResult(fieldData, vectors);
-    }
-
-  }
-
-  protected void checkPrimitiveResult(List data, List<FieldVector> vectors) {
-    int valueCount = vectors.stream().mapToInt(v -> v.getValueCount()).sum();
-    assertEquals(data.size(), valueCount);
-
-    int index = 0;
-    for (FieldVector vector : vectors) {
-      for (int i = 0; i < vector.getValueCount(); i++) {
-        Object value1 = data.get(index++);
-        Object value2 = vector.getObject(i);
-        if (value1 == null) {
-          assertNull(value2);
-          continue;
-        }
-        if (value2 instanceof byte[]) {
-          value2 = ByteBuffer.wrap((byte[]) value2);
-          if (value1 instanceof byte[]) {
-            value1 = ByteBuffer.wrap((byte[]) value1);
-          }
-        } else if (value2 instanceof Text) {
-          value2 = value2.toString();
-        }
-        assertEquals(value1, value2);
-      }
-    }
-  }
-}
diff --git a/java/adapter/avro/src/test/java/org/apache/arrow/AvroToArrowIteratorTest.java b/java/adapter/avro/src/test/java/org/apache/arrow/AvroToArrowIteratorTest.java
deleted file mode 100644
index 2b05a19..0000000
--- a/java/adapter/avro/src/test/java/org/apache/arrow/AvroToArrowIteratorTest.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.EOFException;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.arrow.memory.BufferAllocator;
-import org.apache.arrow.memory.RootAllocator;
-import org.apache.arrow.util.AutoCloseables;
-import org.apache.arrow.vector.FieldVector;
-import org.apache.arrow.vector.VectorSchemaRoot;
-import org.apache.arrow.vector.complex.ListVector;
-import org.apache.avro.Schema;
-import org.apache.avro.generic.GenericData;
-import org.apache.avro.generic.GenericDatumWriter;
-import org.apache.avro.generic.GenericRecord;
-import org.apache.avro.io.BinaryDecoder;
-import org.apache.avro.io.BinaryEncoder;
-import org.apache.avro.io.DatumWriter;
-import org.apache.avro.io.Decoder;
-import org.apache.avro.io.DecoderFactory;
-import org.apache.avro.io.EncoderFactory;
-import org.apache.avro.util.Utf8;
-import org.junit.Test;
-
-public class AvroToArrowIteratorTest extends AvroTestBase {
-
-  @Override
-  public void init() {
-    final BufferAllocator allocator = new RootAllocator(Long.MAX_VALUE);
-    this.config = new AvroToArrowConfigBuilder(allocator).setTargetBatchSize(3).build();
-  }
-
-  private AvroToArrowVectorIterator convert(Schema schema, List data) throws Exception {
-    File dataFile = TMP.newFile();
-
-    BinaryEncoder
-        encoder = new EncoderFactory().directBinaryEncoder(new FileOutputStream(dataFile), null);
-    DatumWriter writer = new GenericDatumWriter(schema);
-    BinaryDecoder
-        decoder = new DecoderFactory().directBinaryDecoder(new FileInputStream(dataFile), null);
-
-    for (Object value : data) {
-      writer.write(value, encoder);
-    }
-
-    return AvroToArrow.avroToArrowIterator(schema, decoder, config);
-  }
-
-  @Test
-  public void testStringType() throws Exception {
-    Schema schema = getSchema("test_primitive_string.avsc");
-    List<String> data = Arrays.asList("v1", "v2", "v3", "v4", "v5");
-
-    List<VectorSchemaRoot> roots = new ArrayList<>();
-    List<FieldVector> vectors = new ArrayList<>();
-    try (AvroToArrowVectorIterator iterator = convert(schema, data)) {
-      while (iterator.hasNext()) {
-        VectorSchemaRoot root = iterator.next();
-        FieldVector vector = root.getFieldVectors().get(0);
-        roots.add(root);
-        vectors.add(vector);
-      }
-    }
-    checkPrimitiveResult(data, vectors);
-    AutoCloseables.close(roots);
-  }
-
-  @Test
-  public void testNullableStringType() throws Exception {
-    Schema schema = getSchema("test_nullable_string.avsc");
-
-    List<GenericRecord> data = new ArrayList<>();
-    List<String> expected = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      String value = i % 2 == 0 ? "test" + i : null;
-      record.put(0, value);
-      expected.add(value);
-      data.add(record);
-    }
-
-    List<VectorSchemaRoot> roots = new ArrayList<>();
-    List<FieldVector> vectors = new ArrayList<>();
-    try (AvroToArrowVectorIterator iterator = convert(schema, data);) {
-      while (iterator.hasNext()) {
-        VectorSchemaRoot root = iterator.next();
-        FieldVector vector = root.getFieldVectors().get(0);
-        roots.add(root);
-        vectors.add(vector);
-      }
-    }
-    checkPrimitiveResult(expected, vectors);
-    AutoCloseables.close(roots);
-
-  }
-
-  @Test
-  public void testRecordType() throws Exception {
-    Schema schema = getSchema("test_record.avsc");
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, "test" + i);
-      record.put(1, i);
-      record.put(2, i % 2 == 0);
-      data.add(record);
-    }
-
-    List<VectorSchemaRoot> roots = new ArrayList<>();
-    try (AvroToArrowVectorIterator iterator = convert(schema, data)) {
-      while (iterator.hasNext()) {
-        roots.add(iterator.next());
-      }
-    }
-    checkRecordResult(schema, data, roots);
-    AutoCloseables.close(roots);
-
-  }
-
-  @Test
-  public void testArrayType() throws Exception {
-    Schema schema = getSchema("test_array.avsc");
-    List<List<?>> data = Arrays.asList(
-        Arrays.asList("11", "222", "999"),
-        Arrays.asList("12222", "2333", "1000"),
-        Arrays.asList("1rrr", "2ggg"),
-        Arrays.asList("1vvv", "2bbb"),
-        Arrays.asList("1fff", "2"));
-
-    List<VectorSchemaRoot> roots = new ArrayList<>();
-    List<ListVector> vectors = new ArrayList<>();
-    try (AvroToArrowVectorIterator iterator = convert(schema, data)) {
-      while (iterator.hasNext()) {
-        VectorSchemaRoot root = iterator.next();
-        roots.add(root);
-        vectors.add((ListVector) root.getFieldVectors().get(0));
-      }
-    }
-    checkArrayResult(data, vectors);
-    AutoCloseables.close(roots);
-  }
-
-  @Test
-  public void runLargeNumberOfRows() throws Exception {
-    Schema schema = getSchema("test_large_data.avsc");
-    int x = 0;
-    final int targetRows = 600000;
-    Decoder fakeDecoder = new FakeDecoder(targetRows);
-    try (AvroToArrowVectorIterator iter = AvroToArrow.avroToArrowIterator(schema, fakeDecoder,
-            new AvroToArrowConfigBuilder(config.getAllocator()).build())) {
-      while (iter.hasNext()) {
-        VectorSchemaRoot root = iter.next();
-        x += root.getRowCount();
-        root.close();
-      }
-    }
-
-    assertEquals(x, targetRows);
-  }
-
-  /**
-   * Fake avro decoder to test large data.
-   */
-  private class FakeDecoder extends Decoder {
-
-    private int numRows;
-
-    FakeDecoder(int numRows) {
-      this.numRows = numRows;
-    }
-
-    // note that Decoder has no hasNext() API, assume enum is the first type in schema
-    // and fixed is the last type in schema and they are unique.
-    private void validate() throws EOFException {
-      if (numRows <= 0) {
-        throw new EOFException();
-      }
-    }
-
-    @Override
-    public void readNull() throws IOException {
-    }
-
-    @Override
-    public boolean readBoolean() throws IOException {
-      return false;
-    }
-
-    @Override
-    public int readInt() throws IOException {
-      return 0;
-    }
-
-    @Override
-    public long readLong() throws IOException {
-      return 0;
-    }
-
-    @Override
-    public float readFloat() throws IOException {
-      return 0;
-    }
-
-    @Override
-    public double readDouble() throws IOException {
-      return 0;
-    }
-
-    @Override
-    public Utf8 readString(Utf8 old) throws IOException {
-      return new Utf8("test123test123" + numRows);
-    }
-
-    @Override
-    public String readString() throws IOException {
-      return "test123test123" + numRows;
-    }
-
-    @Override
-    public void skipString() throws IOException {
-
-    }
-
-    @Override
-    public ByteBuffer readBytes(ByteBuffer old) throws IOException {
-      return ByteBuffer.allocate(0);
-    }
-
-    @Override
-    public void skipBytes() throws IOException {
-
-    }
-
-    @Override
-    public void readFixed(byte[] bytes, int start, int length) throws IOException {
-      // fixed type is last column, after read value, decrease numRows
-      numRows--;
-    }
-
-    @Override
-    public void skipFixed(int length) throws IOException {
-
-    }
-
-    @Override
-    public int readEnum() throws IOException {
-      // enum type is first column, validate numRows first.
-      validate();
-      return 0;
-    }
-
-    @Override
-    public long readArrayStart() throws IOException {
-      return 5;
-    }
-
-    @Override
-    public long arrayNext() throws IOException {
-      return 0;
-    }
-
-    @Override
-    public long skipArray() throws IOException {
-      return 0;
-    }
-
-    @Override
-    public long readMapStart() throws IOException {
-      return 5;
-    }
-
-    @Override
-    public long mapNext() throws IOException {
-      return 0;
-    }
-
-    @Override
-    public long skipMap() throws IOException {
-      return 0;
-    }
-
-    @Override
-    public int readIndex() throws IOException {
-      return 0;
-    }
-  }
-}
diff --git a/java/adapter/avro/src/test/java/org/apache/arrow/AvroToArrowTest.java b/java/adapter/avro/src/test/java/org/apache/arrow/AvroToArrowTest.java
deleted file mode 100644
index c007e1a..0000000
--- a/java/adapter/avro/src/test/java/org/apache/arrow/AvroToArrowTest.java
+++ /dev/null
@@ -1,477 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow;
-
-import static org.junit.Assert.assertEquals;
-
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.arrow.vector.FieldVector;
-import org.apache.arrow.vector.VarCharVector;
-import org.apache.arrow.vector.VectorSchemaRoot;
-import org.apache.arrow.vector.complex.ListVector;
-import org.apache.arrow.vector.complex.MapVector;
-import org.apache.arrow.vector.complex.StructVector;
-import org.apache.avro.Schema;
-import org.apache.avro.generic.GenericData;
-import org.apache.avro.generic.GenericRecord;
-import org.junit.Test;
-
-public class AvroToArrowTest extends AvroTestBase {
-
-  @Test
-  public void testStringType() throws Exception {
-    Schema schema = getSchema("test_primitive_string.avsc");
-    List<String> data = Arrays.asList("v1", "v2", "v3", "v4", "v5");
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(data, vector);
-  }
-
-  @Test
-  public void testNullableStringType() throws Exception {
-    Schema schema = getSchema("test_nullable_string.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0 ? "test" + i : null);
-      data.add(record);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(schema, data, root);
-  }
-
-  @Test
-  public void testRecordType() throws Exception {
-    Schema schema = getSchema("test_record.avsc");
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, "test" + i);
-      record.put(1, i);
-      record.put(2, i % 2 == 0);
-      data.add(record);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(schema, data, root);
-  }
-
-  @Test
-  public void testFixedAttributes() throws Exception {
-    Schema schema = getSchema("attrs/test_fixed_attr.avsc");
-
-    List<GenericData.Fixed> data = new ArrayList<>();
-    List<byte[]> expected = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      byte[] value = ("value" + i).getBytes(StandardCharsets.UTF_8);
-      expected.add(value);
-      GenericData.Fixed fixed = new GenericData.Fixed(schema);
-      fixed.bytes(value);
-      data.add(fixed);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    Map<String, String> metadata = vector.getField().getMetadata();
-    assertEquals("fixed doc", metadata.get("doc"));
-    assertEquals("[\"alias1\",\"alias2\"]", metadata.get("aliases"));
-  }
-
-  @Test
-  public void testEnumAttributes() throws Exception {
-    Schema schema = getSchema("attrs/test_enum_attrs.avsc");
-    List<GenericData.EnumSymbol> data = Arrays.asList(
-        new GenericData.EnumSymbol(schema, "SPADES"),
-        new GenericData.EnumSymbol(schema, "HEARTS"),
-        new GenericData.EnumSymbol(schema, "DIAMONDS"),
-        new GenericData.EnumSymbol(schema, "CLUBS"),
-        new GenericData.EnumSymbol(schema, "SPADES"));
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    Map<String, String> metadata = vector.getField().getMetadata();
-    assertEquals("enum doc", metadata.get("doc"));
-    assertEquals("[\"alias1\",\"alias2\"]", metadata.get("aliases"));
-  }
-
-  @Test
-  public void testRecordAttributes() throws Exception {
-    Schema schema = getSchema("attrs/test_record_attrs.avsc");
-    Schema nestedSchema = schema.getFields().get(0).schema();
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      GenericRecord nestedRecord = new GenericData.Record(nestedSchema);
-      nestedRecord.put(0, "test" + i);
-      nestedRecord.put(1, i);
-      record.put(0, nestedRecord);
-
-      data.add(record);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-
-    StructVector structVector = (StructVector) root.getFieldVectors().get(0);
-    Map<String, String> structMeta = structVector.getField().getMetadata();
-    Map<String, String> childMeta1 = structVector.getChildByOrdinal(0).getField().getMetadata();
-    Map<String, String> childMeta2 = structVector.getChildByOrdinal(1).getField().getMetadata();
-
-    assertEquals("f0 doc", structMeta.get("doc"));
-    assertEquals("[\"f0.a1\"]", structMeta.get("aliases"));
-    assertEquals("f1 doc", childMeta1.get("doc"));
-    assertEquals("[\"f1.a1\",\"f1.a2\"]", childMeta1.get("aliases"));
-    assertEquals("f2 doc", childMeta2.get("doc"));
-    assertEquals("[\"f2.a1\",\"f2.a2\"]", childMeta2.get("aliases"));
-  }
-
-  @Test
-  public void testNestedRecordType() throws Exception {
-    Schema schema = getSchema("test_nested_record.avsc");
-    Schema nestedSchema = schema.getFields().get(0).schema();
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      GenericRecord nestedRecord = new GenericData.Record(nestedSchema);
-      nestedRecord.put(0, "test" + i);
-      nestedRecord.put(1, i);
-      record.put(0, nestedRecord);
-
-      data.add(record);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkNestedRecordResult(schema, data, root);
-  }
-
-  @Test
-  public void testEnumType() throws Exception {
-    Schema schema = getSchema("test_primitive_enum.avsc");
-    List<GenericData.EnumSymbol> data = Arrays.asList(
-        new GenericData.EnumSymbol(schema, "SPADES"),
-        new GenericData.EnumSymbol(schema, "HEARTS"),
-        new GenericData.EnumSymbol(schema, "DIAMONDS"),
-        new GenericData.EnumSymbol(schema, "CLUBS"),
-        new GenericData.EnumSymbol(schema, "SPADES"));
-
-    List<Integer> expectedIndices = Arrays.asList(0, 1, 2, 3, 0);
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(expectedIndices, vector);
-
-    VarCharVector dictVector = (VarCharVector) config.getProvider().lookup(0).getVector();
-    assertEquals(4, dictVector.getValueCount());
-
-    assertEquals("SPADES", dictVector.getObject(0).toString());
-    assertEquals("HEARTS", dictVector.getObject(1).toString());
-    assertEquals("DIAMONDS", dictVector.getObject(2).toString());
-    assertEquals("CLUBS", dictVector.getObject(3).toString());
-  }
-
-  @Test
-  public void testIntType() throws Exception {
-    Schema schema = getSchema("test_primitive_int.avsc");
-    List<Integer> data = Arrays.asList(1, 2, 3, 4, 5);
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(data, vector);
-  }
-
-  @Test
-  public void testNullableIntType() throws Exception {
-    Schema schema = getSchema("test_nullable_int.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0 ? i : null);
-      data.add(record);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(schema, data, root);
-  }
-
-  @Test
-  public void testLongType() throws Exception {
-    Schema schema = getSchema("test_primitive_long.avsc");
-    List<Long> data = Arrays.asList(1L, 2L, 3L, 4L, 5L);
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(data, vector);
-  }
-
-  @Test
-  public void testNullableLongType() throws Exception {
-    Schema schema = getSchema("test_nullable_long.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0 ? (long) i : null);
-      data.add(record);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(schema, data, root);
-  }
-
-  @Test
-  public void testFloatType() throws Exception {
-    Schema schema = getSchema("test_primitive_float.avsc");
-    List<Float> data = Arrays.asList(1.1f, 2.2f, 3.3f, 4.4f, 5.5f);
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(data, vector);
-  }
-
-  @Test
-  public void testNullableFloatType() throws Exception {
-    Schema schema = getSchema("test_nullable_float.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0 ? i + 0.1f : null);
-      data.add(record);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(schema, data, root);
-  }
-
-  @Test
-  public void testDoubleType() throws Exception {
-    Schema schema = getSchema("test_primitive_double.avsc");
-    List<Double> data = Arrays.asList(1.1, 2.2, 3.3, 4.4, 5.5);
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(data, vector);
-  }
-
-  @Test
-  public void testNullableDoubleType() throws Exception {
-    Schema schema = getSchema("test_nullable_double.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0 ? i + 0.1 : null);
-      data.add(record);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(schema, data, root);
-  }
-
-  @Test
-  public void testBytesType() throws Exception {
-    Schema schema = getSchema("test_primitive_bytes.avsc");
-    List<ByteBuffer> data = Arrays.asList(
-        ByteBuffer.wrap("value1".getBytes(StandardCharsets.UTF_8)),
-        ByteBuffer.wrap("value2".getBytes(StandardCharsets.UTF_8)),
-        ByteBuffer.wrap("value3".getBytes(StandardCharsets.UTF_8)),
-        ByteBuffer.wrap("value4".getBytes(StandardCharsets.UTF_8)),
-        ByteBuffer.wrap("value5".getBytes(StandardCharsets.UTF_8)));
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(data, vector);
-  }
-
-  @Test
-  public void testNullableBytesType() throws Exception {
-    Schema schema = getSchema("test_nullable_bytes.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0 ? ByteBuffer.wrap(("test" + i).getBytes(StandardCharsets.UTF_8)) : null);
-      data.add(record);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(schema, data, root);
-  }
-
-  @Test
-  public void testBooleanType() throws Exception {
-    Schema schema = getSchema("test_primitive_boolean.avsc");
-    List<Boolean> data = Arrays.asList(true, false, true, false, true);
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(data, vector);
-  }
-
-  @Test
-  public void testNullableBooleanType() throws Exception {
-    Schema schema = getSchema("test_nullable_boolean.avsc");
-
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0 ? true : null);
-      data.add(record);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    checkRecordResult(schema, data, root);
-  }
-
-  @Test
-  public void testArrayType() throws Exception {
-    Schema schema = getSchema("test_array.avsc");
-    List<List<?>> data = Arrays.asList(
-        Arrays.asList("11", "222", "999"),
-        Arrays.asList("12222", "2333", "1000"),
-        Arrays.asList("1rrr", "2ggg"),
-        Arrays.asList("1vvv", "2bbb"),
-        Arrays.asList("1fff", "2"));
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkArrayResult(data, (ListVector) vector);
-  }
-
-  @Test
-  public void testMapType() throws Exception {
-    Schema schema = getSchema("test_map.avsc");
-
-    List keys = Arrays.asList("key1", "key2", "key3", "key4", "key5", "key6");
-    List vals = Arrays.asList("val1", "val2", "val3", "val4", "val5", "val6");
-
-    List<LinkedHashMap> data = new ArrayList<>();
-    LinkedHashMap map1 = new LinkedHashMap();
-    map1.put(keys.get(0), vals.get(0));
-    map1.put(keys.get(1), vals.get(1));
-    data.add(map1);
-
-    LinkedHashMap map2 = new LinkedHashMap();
-    map2.put(keys.get(2), vals.get(2));
-    map2.put(keys.get(3), vals.get(3));
-    data.add(map2);
-
-    LinkedHashMap map3 = new LinkedHashMap();
-    map3.put(keys.get(4), vals.get(4));
-    map3.put(keys.get(5), vals.get(5));
-    data.add(map3);
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    MapVector vector = (MapVector) root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(keys, vector.getDataVector().getChildrenFromFields().get(0));
-    checkPrimitiveResult(vals, vector.getDataVector().getChildrenFromFields().get(1));
-    assertEquals(0, vector.getOffsetBuffer().getInt(0));
-    assertEquals(2, vector.getOffsetBuffer().getInt(1 * 4));
-    assertEquals(4, vector.getOffsetBuffer().getInt(2 * 4));
-    assertEquals(6, vector.getOffsetBuffer().getInt(3 * 4));
-  }
-
-  @Test
-  public void testFixedType() throws Exception {
-    Schema schema = getSchema("test_fixed.avsc");
-
-    List<GenericData.Fixed> data = new ArrayList<>();
-    List<byte[]> expected = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      byte[] value = ("value" + i).getBytes(StandardCharsets.UTF_8);
-      expected.add(value);
-      GenericData.Fixed fixed = new GenericData.Fixed(schema);
-      fixed.bytes(value);
-      data.add(fixed);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(expected, vector);
-  }
-
-  @Test
-  public void testUnionType() throws Exception {
-    Schema schema = getSchema("test_union.avsc");
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<Object> expected = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      record.put(0, i % 2 == 0 ? "test" + i : i);
-      expected.add(i % 2 == 0 ? "test" + i : i);
-      data.add(record);
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(expected, vector);
-  }
-
-  @Test
-  public void testNullableUnionType() throws Exception {
-    Schema schema = getSchema("test_nullable_union.avsc");
-    ArrayList<GenericRecord> data = new ArrayList<>();
-    ArrayList<Object> expected = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      GenericRecord record = new GenericData.Record(schema);
-      if (i % 3 == 0) {
-        record.put(0, "test" + i);
-        expected.add("test" + i);
-        data.add(record);
-      } else if (i % 3 == 1) {
-        record.put(0, i);
-        expected.add(i);
-        data.add(record);
-      } else {
-        record.put(0, null);
-        expected.add(null);
-        data.add(record);
-      }
-    }
-
-    VectorSchemaRoot root = writeAndRead(schema, data);
-    FieldVector vector = root.getFieldVectors().get(0);
-
-    checkPrimitiveResult(expected, vector);
-  }
-
-}
diff --git a/java/adapter/avro/src/test/java/org/apache/arrow/TestWriteReadAvroRecord.java b/java/adapter/avro/src/test/java/org/apache/arrow/TestWriteReadAvroRecord.java
deleted file mode 100644
index bf695d1..0000000
--- a/java/adapter/avro/src/test/java/org/apache/arrow/TestWriteReadAvroRecord.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.File;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.avro.Schema;
-import org.apache.avro.file.DataFileReader;
-import org.apache.avro.file.DataFileWriter;
-import org.apache.avro.generic.GenericData;
-import org.apache.avro.generic.GenericDatumReader;
-import org.apache.avro.generic.GenericDatumWriter;
-import org.apache.avro.generic.GenericRecord;
-import org.apache.avro.io.DatumReader;
-import org.apache.avro.io.DatumWriter;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-
-
-public class TestWriteReadAvroRecord {
-
-  @ClassRule
-  public static final TemporaryFolder TMP = new TemporaryFolder();
-
-  @Test
-  public void testWriteAndRead() throws Exception {
-
-    File dataFile = TMP.newFile();
-    Path schemaPath = Paths.get(TestWriteReadAvroRecord.class.getResource("/").getPath(), "schema", "test.avsc");
-    Schema schema = new Schema.Parser().parse(schemaPath.toFile());
-
-    //write data to disk
-    GenericRecord user1 = new GenericData.Record(schema);
-    user1.put("name", "Alyssa");
-    user1.put("favorite_number", 256);
-
-    GenericRecord user2 = new GenericData.Record(schema);
-    user2.put("name", "Ben");
-    user2.put("favorite_number", 7);
-    user2.put("favorite_color", "red");
-
-    DatumWriter<GenericRecord> datumWriter = new GenericDatumWriter<GenericRecord>(schema);
-    DataFileWriter<GenericRecord> dataFileWriter = new DataFileWriter<GenericRecord>(datumWriter);
-    dataFileWriter.create(schema, dataFile);
-    dataFileWriter.append(user1);
-    dataFileWriter.append(user2);
-    dataFileWriter.close();
-
-    //read data from disk
-    DatumReader<GenericRecord> datumReader = new GenericDatumReader<GenericRecord>(schema);
-    DataFileReader<GenericRecord>
-        dataFileReader = new DataFileReader<GenericRecord>(dataFile, datumReader);
-    List<GenericRecord> result = new ArrayList<>();
-    while (dataFileReader.hasNext()) {
-      GenericRecord user = dataFileReader.next();
-      result.add(user);
-    }
-
-    assertEquals(2, result.size());
-    GenericRecord deUser1 = result.get(0);
-    assertEquals("Alyssa", deUser1.get("name").toString());
-    assertEquals(256, deUser1.get("favorite_number"));
-    assertEquals(null, deUser1.get("favorite_color"));
-
-    GenericRecord deUser2 = result.get(1);
-    assertEquals("Ben", deUser2.get("name").toString());
-    assertEquals(7, deUser2.get("favorite_number"));
-    assertEquals("red", deUser2.get("favorite_color").toString());
-  }
-
-}
diff --git a/java/adapter/avro/src/test/resources/schema/attrs/test_enum_attrs.avsc b/java/adapter/avro/src/test/resources/schema/attrs/test_enum_attrs.avsc
deleted file mode 100644
index afd00b8..0000000
--- a/java/adapter/avro/src/test/resources/schema/attrs/test_enum_attrs.avsc
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "type": "enum",
- "symbols" : ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"],
- "name": "testEnum",
- "doc" : "enum doc",
- "aliases" : ["alias1", "alias2"]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/attrs/test_fixed_attr.avsc b/java/adapter/avro/src/test/resources/schema/attrs/test_fixed_attr.avsc
deleted file mode 100644
index 55e504d..0000000
--- a/java/adapter/avro/src/test/resources/schema/attrs/test_fixed_attr.avsc
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "type": "fixed",
- "size": 6,
- "name": "testFixed",
- "doc" : "fixed doc",
- "aliases" : ["alias1", "alias2"]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/attrs/test_record_attrs.avsc b/java/adapter/avro/src/test/resources/schema/attrs/test_record_attrs.avsc
deleted file mode 100644
index 2e2e311..0000000
--- a/java/adapter/avro/src/test/resources/schema/attrs/test_record_attrs.avsc
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testAttrs",
- "fields": [
-  {
-    "name" : "f0",
-    "type" : {
-        "type" : "record",
-        "name" : "nestedInRecord",
-        "doc" : "f0 doc",
-        "aliases" : ["f0.a1"],
-        "fields": [
-             {"name": "f1", "type": "string", "doc": "f1 doc", "aliases" : ["f1.a1", "f1.a2"]},
-             {"name": "f2", "type": "int", "doc": "f2 doc", "aliases" : ["f2.a1", "f2.a2"]}
-        ]
-    }
-  }
-  ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/logical/test_date.avsc b/java/adapter/avro/src/test/resources/schema/logical/test_date.avsc
deleted file mode 100644
index f661e65..0000000
--- a/java/adapter/avro/src/test/resources/schema/logical/test_date.avsc
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "name": "test",
- "type": "int",
- "logicalType" : "date"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/logical/test_decimal_invalid1.avsc b/java/adapter/avro/src/test/resources/schema/logical/test_decimal_invalid1.avsc
deleted file mode 100644
index 18d7d63..0000000
--- a/java/adapter/avro/src/test/resources/schema/logical/test_decimal_invalid1.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "name": "test",
- "type": "bytes",
- "logicalType" : "decimal",
- "precision": 39,
- "scale": 2
-}
diff --git a/java/adapter/avro/src/test/resources/schema/logical/test_decimal_invalid2.avsc b/java/adapter/avro/src/test/resources/schema/logical/test_decimal_invalid2.avsc
deleted file mode 100644
index eed7bd7..0000000
--- a/java/adapter/avro/src/test/resources/schema/logical/test_decimal_invalid2.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "name": "test",
- "type": "bytes",
- "logicalType" : "decimal",
- "precision": 20,
- "scale": -1
-}
diff --git a/java/adapter/avro/src/test/resources/schema/logical/test_decimal_invalid3.avsc b/java/adapter/avro/src/test/resources/schema/logical/test_decimal_invalid3.avsc
deleted file mode 100644
index 1667b8a..0000000
--- a/java/adapter/avro/src/test/resources/schema/logical/test_decimal_invalid3.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "name": "test",
- "type": "bytes",
- "logicalType" : "decimal",
- "precision": 20,
- "scale": 40
-}
diff --git a/java/adapter/avro/src/test/resources/schema/logical/test_decimal_invalid4.avsc b/java/adapter/avro/src/test/resources/schema/logical/test_decimal_invalid4.avsc
deleted file mode 100644
index e1f7104..0000000
--- a/java/adapter/avro/src/test/resources/schema/logical/test_decimal_invalid4.avsc
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "name": "test",
- "type": "fixed",
- "size" : 1,
- "logicalType" : "decimal",
- "precision": 30,
- "scale": 2
-}
diff --git a/java/adapter/avro/src/test/resources/schema/logical/test_decimal_with_original_bytes.avsc b/java/adapter/avro/src/test/resources/schema/logical/test_decimal_with_original_bytes.avsc
deleted file mode 100644
index 944b5d8..0000000
--- a/java/adapter/avro/src/test/resources/schema/logical/test_decimal_with_original_bytes.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "name": "test",
- "type": "bytes",
- "logicalType" : "decimal",
- "precision": 10,
- "scale": 2
-}
diff --git a/java/adapter/avro/src/test/resources/schema/logical/test_decimal_with_original_fixed.avsc b/java/adapter/avro/src/test/resources/schema/logical/test_decimal_with_original_fixed.avsc
deleted file mode 100644
index 1901f90..0000000
--- a/java/adapter/avro/src/test/resources/schema/logical/test_decimal_with_original_fixed.avsc
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "name": "test",
- "type": "fixed",
- "size" : 10,
- "logicalType" : "decimal",
- "precision": 10,
- "scale": 2
-}
diff --git a/java/adapter/avro/src/test/resources/schema/logical/test_time_micros.avsc b/java/adapter/avro/src/test/resources/schema/logical/test_time_micros.avsc
deleted file mode 100644
index ee7d4e9..0000000
--- a/java/adapter/avro/src/test/resources/schema/logical/test_time_micros.avsc
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "name": "test",
- "type": "long",
- "logicalType" : "time-micros"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/logical/test_time_millis.avsc b/java/adapter/avro/src/test/resources/schema/logical/test_time_millis.avsc
deleted file mode 100644
index 54877ba..0000000
--- a/java/adapter/avro/src/test/resources/schema/logical/test_time_millis.avsc
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "name": "test",
- "type": "int",
- "logicalType" : "time-millis"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/logical/test_timestamp_micros.avsc b/java/adapter/avro/src/test/resources/schema/logical/test_timestamp_micros.avsc
deleted file mode 100644
index 15c0bf5..0000000
--- a/java/adapter/avro/src/test/resources/schema/logical/test_timestamp_micros.avsc
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "name": "test",
- "type": "long",
- "logicalType" : "timestamp-micros"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/logical/test_timestamp_millis.avsc b/java/adapter/avro/src/test/resources/schema/logical/test_timestamp_millis.avsc
deleted file mode 100644
index 822a2c3..0000000
--- a/java/adapter/avro/src/test/resources/schema/logical/test_timestamp_millis.avsc
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "name": "test",
- "type": "long",
- "logicalType" : "timestamp-millis"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_array_before.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_array_before.avsc
deleted file mode 100644
index e836aa7..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_array_before.avsc
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "test",
- "fields": [
-     {"name": "f0", "type": "string"},
-     {"name": "f1", "type": {"type" : "array", "items": "string"}},
-     {"name": "f2", "type": "boolean"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_array_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_array_expected.avsc
deleted file mode 100644
index 36e7fdf..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_array_expected.avsc
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "test",
- "fields": [
-     {"name": "f0", "type": "string"},
-     {"name": "f2", "type": "boolean"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_base1.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_base1.avsc
deleted file mode 100644
index 5338253..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_base1.avsc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testRecord",
- "fields": [
-     {"name": "f0", "type": {"type" : "fixed", "size":5, "name" : "fix"}},
-     {"name": "f1", "type": {"type" : "enum", "name" : "enum", "symbols": ["TEST0", "TEST1"]}},
-     {"name": "f2", "type": "string"},
-     {"name": "f3", "type": "bytes"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_base2.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_base2.avsc
deleted file mode 100644
index 50655a7..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_base2.avsc
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testRecord",
- "fields": [
-     {"name": "f0", "type": "boolean"},
-     {"name": "f1", "type": "int"},
-     {"name": "f2", "type": "long"},
-     {"name": "f3", "type": "float"},
-     {"name": "f4", "type": "double"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_boolean_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_boolean_expected.avsc
deleted file mode 100644
index 9b62e31..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_boolean_expected.avsc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testRecord",
- "fields": [
-     {"name": "f1", "type": "int"},
-     {"name": "f2", "type": "long"},
-     {"name": "f3", "type": "float"},
-     {"name": "f4", "type": "double"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_bytes_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_bytes_expected.avsc
deleted file mode 100644
index 8a1903b..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_bytes_expected.avsc
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testRecord",
- "fields": [
-     {"name": "f0", "type": {"type" : "fixed", "size":5, "name" : "fix"}},
-     {"name": "f1", "type": {"type" : "enum", "name" : "enum", "symbols": ["TEST0", "TEST1"]}},
-     {"name": "f2", "type": "string"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_double_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_double_expected.avsc
deleted file mode 100644
index 6021c44..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_double_expected.avsc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testRecord",
- "fields": [
-     {"name": "f0", "type": "boolean"},
-     {"name": "f1", "type": "int"},
-     {"name": "f2", "type": "long"},
-     {"name": "f3", "type": "float"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_enum_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_enum_expected.avsc
deleted file mode 100644
index f5ed86a..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_enum_expected.avsc
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testRecord",
- "fields": [
-     {"name": "f0", "type": {"type" : "fixed", "size":5, "name" : "fix"}},
-     {"name": "f2", "type": "string"},
-     {"name": "f3", "type": "bytes"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_fixed_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_fixed_expected.avsc
deleted file mode 100644
index 5423a79..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_fixed_expected.avsc
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testRecord",
- "fields": [
-     {"name": "f1", "type": {"type" : "enum", "name" : "enum", "symbols": ["TEST0", "TEST1"]}},
-     {"name": "f2", "type": "string"},
-     {"name": "f3", "type": "bytes"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_float_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_float_expected.avsc
deleted file mode 100644
index dea1063..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_float_expected.avsc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testRecord",
- "fields": [
-     {"name": "f0", "type": "boolean"},
-     {"name": "f1", "type": "int"},
-     {"name": "f2", "type": "long"},
-     {"name": "f4", "type": "double"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_int_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_int_expected.avsc
deleted file mode 100644
index 53d4f10..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_int_expected.avsc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testRecord",
- "fields": [
-     {"name": "f0", "type": "boolean"},
-     {"name": "f2", "type": "long"},
-     {"name": "f3", "type": "float"},
-     {"name": "f4", "type": "double"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_long_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_long_expected.avsc
deleted file mode 100644
index bf16601..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_long_expected.avsc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testRecord",
- "fields": [
-     {"name": "f0", "type": "boolean"},
-     {"name": "f1", "type": "int"},
-     {"name": "f3", "type": "float"},
-     {"name": "f4", "type": "double"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_map_before.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_map_before.avsc
deleted file mode 100644
index 8cbb1a1..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_map_before.avsc
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "test",
- "fields": [
-     {"name": "f0", "type": "string"},
-     {"name": "f1", "type": {"type" : "map", "values": "string"}},
-     {"name": "f2", "type": "boolean"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_map_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_map_expected.avsc
deleted file mode 100644
index 36e7fdf..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_map_expected.avsc
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "test",
- "fields": [
-     {"name": "f0", "type": "string"},
-     {"name": "f2", "type": "boolean"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_multi_fields_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_multi_fields_expected.avsc
deleted file mode 100644
index b5d637b..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_multi_fields_expected.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testSkip",
- "fields": [
-     {"name": "f0", "type": "string"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_record_before.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_record_before.avsc
deleted file mode 100644
index 7aee92b..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_record_before.avsc
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "test",
- "fields": [
-  {
-    "name" : "f0",
-    "type" : {
-        "type" : "record",
-        "name" : "nestedInRecord",
-        "fields": [
-             {"name": "f00", "type": "string"},
-             {"name": "f01", "type": "int"}
-        ]
-    }
-  },
-  {
-    "name" : "f1", "type" : "int"
-  }
-  ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_record_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_record_expected.avsc
deleted file mode 100644
index 3e24952..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_record_expected.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "test",
- "fields": [
-    { "name" : "f1", "type" : "int"}
-  ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_second_level_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_second_level_expected.avsc
deleted file mode 100644
index f3b7f8c..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_second_level_expected.avsc
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testSkipNested",
- "fields": [
-  {
-    "name" : "nested",
-    "type" : {
-        "type" : "record",
-        "name" : "nestedInRecord",
-        "fields": [
-             {"name": "f1", "type": "int"}
-        ]
-    }
-  }
-  ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_single_field_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_single_field_expected.avsc
deleted file mode 100644
index 5535258..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_single_field_expected.avsc
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testSkip",
- "fields": [
-     {"name": "f0", "type": "string"},
-     {"name": "f2", "type": "boolean"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_string_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_string_expected.avsc
deleted file mode 100644
index 2d2c081..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_string_expected.avsc
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testRecord",
- "fields": [
-     {"name": "f0", "type": {"type" : "fixed", "size":5, "name" : "fix"}},
-     {"name": "f1", "type": {"type" : "enum", "name" : "enum", "symbols": ["TEST0", "TEST1"]}},
-     {"name": "f3", "type": "bytes"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_third_level_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_third_level_expected.avsc
deleted file mode 100644
index 6f42da8..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_third_level_expected.avsc
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "firstLevel",
- "fields": [
-  {
-    "name" : "f0",
-    "type" : {
-        "type" : "record",
-        "name" : "secondLevel",
-        "fields": [
-        {
-             "name" : "f0",
-             "type" : {
-                "type" : "record",
-                "name" : "thirdLevel",
-                "fields" : [
-                    {"name": "f1", "type": "int"},
-                    {"name": "f0", "type": "string"},
-                    {"name": "f2", "type": "boolean"}
-                ]
-             }
-        }
-        ]
-    }
-  }
-  ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_union_before.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_union_before.avsc
deleted file mode 100644
index fc11059..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_union_before.avsc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "test",
- "fields": [
-     {"name": "f0", "type": ["string"]},
-     {"name": "f1", "type": ["string", "null"]},
-     {"name": "f2", "type": ["string", "int"]},
-     {"name": "f3", "type": "int"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_union_multi_fields_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_union_multi_fields_expected.avsc
deleted file mode 100644
index 308e027..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_union_multi_fields_expected.avsc
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "test",
- "fields": [
-     {"name": "f0", "type": ["string"]},
-     {"name": "f1", "type": ["string", "null"]},
-     {"name": "f3", "type": "int"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_union_nullable_field_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_union_nullable_field_expected.avsc
deleted file mode 100644
index cbc83e5..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_union_nullable_field_expected.avsc
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "test",
- "fields": [
-     {"name": "f0", "type": ["string"]},
-     {"name": "f2", "type": ["string", "int"]},
-     {"name": "f3", "type": "int"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/skip/test_skip_union_one_field_expected.avsc b/java/adapter/avro/src/test/resources/schema/skip/test_skip_union_one_field_expected.avsc
deleted file mode 100644
index 0f72fb4..0000000
--- a/java/adapter/avro/src/test/resources/schema/skip/test_skip_union_one_field_expected.avsc
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "test",
- "fields": [
-     {"name": "f1", "type": ["string", "null"]},
-     {"name": "f2", "type": ["string", "int"]},
-     {"name": "f3", "type": ["string", "int"]}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test.avsc b/java/adapter/avro/src/test/resources/schema/test.avsc
deleted file mode 100644
index 92c0873..0000000
--- a/java/adapter/avro/src/test/resources/schema/test.avsc
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "User",
- "fields": [
-     {"name": "name", "type": "string"},
-     {"name": "favorite_number",  "type": ["int", "null"]},
-     {"name": "favorite_color", "type": ["string", "null"]}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_array.avsc b/java/adapter/avro/src/test/resources/schema/test_array.avsc
deleted file mode 100644
index 5b75a40..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_array.avsc
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "array",
- "items": "string",
- "name": "testArray"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_fixed.avsc b/java/adapter/avro/src/test/resources/schema/test_fixed.avsc
deleted file mode 100644
index a4d96e9..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_fixed.avsc
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "fixed",
- "size": 6,
- "name": "testFixed"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_large_data.avsc b/java/adapter/avro/src/test/resources/schema/test_large_data.avsc
deleted file mode 100644
index f784ae6..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_large_data.avsc
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testLargeData",
- "fields": [
-    {
-        "name": "f0",
-        "type": {
-          "name" : "f0",
-          "type" : "enum",
-          "symbols" : ["value1", "value2", "value3", "value4", "value5"]
-        }
-    },
-    {
-        "name" : "f1",
-        "type" : {
-            "type" : "record",
-            "name" : "nestedRecord",
-            "fields": [
-                 {"name": "f1_0", "type": "string"},
-                 {"name": "f1_1", "type": "int"}
-            ]
-        }
-    },
-
-    {"name": "f2", "type": "string"},
-    {"name": "f3", "type": "int"},
-    {"name": "f4", "type": "boolean"},
-    {"name": "f5", "type": "float"},
-    {"name": "f6", "type": "double"},
-    {"name": "f7", "type": "bytes"},
-    {"name": "f8", "type": ["string", "int"]},
-    {
-        "name": "f9",
-        "type": {
-            "name" : "f9",
-            "type" : "array",
-            "items" : "string"
-        }
-    },
-    {
-        "name": "f10",
-        "type": {
-            "name" : "f10",
-            "type" : "map",
-            "values" : "string"
-        }
-    },
-    {
-      "name": "f11",
-      "type": {
-          "type" : "fixed",
-          "name" : "f11",
-          "size" : 5
-      }
-    }
-  ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_map.avsc b/java/adapter/avro/src/test/resources/schema/test_map.avsc
deleted file mode 100644
index 0dfa3a5..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_map.avsc
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "map",
- "values": "string",
- "name": "testMap"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_nested_record.avsc b/java/adapter/avro/src/test/resources/schema/test_nested_record.avsc
deleted file mode 100644
index 29dddfd..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_nested_record.avsc
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testNestedRecord",
- "fields": [
-  {
-    "name" : "f0",
-    "type" : {
-        "type" : "record",
-        "name" : "nestedInRecord",
-        "fields": [
-             {"name": "f0", "type": "string"},
-             {"name": "f1", "type": "int"}
-        ]
-    }
-  }
-  ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_nullable_boolean.avsc b/java/adapter/avro/src/test/resources/schema/test_nullable_boolean.avsc
deleted file mode 100644
index 62af1a8..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_nullable_boolean.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "nullableBoolean",
- "fields": [
-     {"name": "f0", "type": ["null", "boolean"]}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_nullable_bytes.avsc b/java/adapter/avro/src/test/resources/schema/test_nullable_bytes.avsc
deleted file mode 100644
index 002bc7c..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_nullable_bytes.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "nullableBytes",
- "fields": [
-     {"name": "f0", "type": ["null", "bytes"]}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_nullable_double.avsc b/java/adapter/avro/src/test/resources/schema/test_nullable_double.avsc
deleted file mode 100644
index 642b7aa..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_nullable_double.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "nullableDouble",
- "fields": [
-     {"name": "f0", "type": ["null", "double"]}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_nullable_float.avsc b/java/adapter/avro/src/test/resources/schema/test_nullable_float.avsc
deleted file mode 100644
index dff2859..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_nullable_float.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "nullableFloat",
- "fields": [
-     {"name": "f0", "type": ["null", "float"]}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_nullable_int.avsc b/java/adapter/avro/src/test/resources/schema/test_nullable_int.avsc
deleted file mode 100644
index abb2fc4..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_nullable_int.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "nullableInt",
- "fields": [
-     {"name": "f0", "type": ["null", "int"]}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_nullable_long.avsc b/java/adapter/avro/src/test/resources/schema/test_nullable_long.avsc
deleted file mode 100644
index 0624d27..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_nullable_long.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "nullableLong",
- "fields": [
-     {"name": "f0", "type": ["null", "long"]}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_nullable_string.avsc b/java/adapter/avro/src/test/resources/schema/test_nullable_string.avsc
deleted file mode 100644
index 347808c..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_nullable_string.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "nullableString",
- "fields": [
-     {"name": "f0", "type": ["null", "string"]}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_nullable_union.avsc b/java/adapter/avro/src/test/resources/schema/test_nullable_union.avsc
deleted file mode 100644
index af94812..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_nullable_union.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testNullableUnions",
- "fields": [
-     {"name": "f0", "type": ["string", "int", "null"]}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_primitive_boolean.avsc b/java/adapter/avro/src/test/resources/schema/test_primitive_boolean.avsc
deleted file mode 100644
index 7652ce7..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_primitive_boolean.avsc
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "boolean",
- "name": "TestBoolean"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_primitive_bytes.avsc b/java/adapter/avro/src/test/resources/schema/test_primitive_bytes.avsc
deleted file mode 100644
index 5102430..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_primitive_bytes.avsc
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "bytes",
- "name": "TestBytes"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_primitive_double.avsc b/java/adapter/avro/src/test/resources/schema/test_primitive_double.avsc
deleted file mode 100644
index d1ae0b6..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_primitive_double.avsc
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "double",
- "name": "TestDouble"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_primitive_enum.avsc b/java/adapter/avro/src/test/resources/schema/test_primitive_enum.avsc
deleted file mode 100644
index bd8df61..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_primitive_enum.avsc
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "enum",
- "symbols" : ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"],
- "name": "testEnum"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_primitive_float.avsc b/java/adapter/avro/src/test/resources/schema/test_primitive_float.avsc
deleted file mode 100644
index 675d109..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_primitive_float.avsc
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "float",
- "name": "TestFloat"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_primitive_int.avsc b/java/adapter/avro/src/test/resources/schema/test_primitive_int.avsc
deleted file mode 100644
index 8fc8488..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_primitive_int.avsc
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "int",
- "name": "TestInt"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_primitive_long.avsc b/java/adapter/avro/src/test/resources/schema/test_primitive_long.avsc
deleted file mode 100644
index b970610..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_primitive_long.avsc
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "long",
- "name": "TestLong"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_primitive_string.avsc b/java/adapter/avro/src/test/resources/schema/test_primitive_string.avsc
deleted file mode 100644
index b4a89a7..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_primitive_string.avsc
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "string",
- "name": "TestString"
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_record.avsc b/java/adapter/avro/src/test/resources/schema/test_record.avsc
deleted file mode 100644
index e83cf11..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_record.avsc
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testRecord",
- "fields": [
-     {"name": "f0", "type": "string"},
-     {"name": "f1", "type": "int"},
-     {"name": "f2", "type": "boolean"}
- ]
-}
diff --git a/java/adapter/avro/src/test/resources/schema/test_union.avsc b/java/adapter/avro/src/test/resources/schema/test_union.avsc
deleted file mode 100644
index f181e36..0000000
--- a/java/adapter/avro/src/test/resources/schema/test_union.avsc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-{
- "namespace": "org.apache.arrow.avro",
- "type": "record",
- "name": "testUnions",
- "fields": [
-     {"name": "f0", "type": ["string", "int"]}
- ]
-}
diff --git a/java/adapter/jdbc/pom.xml b/java/adapter/jdbc/pom.xml
deleted file mode 100644
index b75135f..0000000
--- a/java/adapter/jdbc/pom.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
-    license agreements. See the NOTICE file distributed with this work for additional
-    information regarding copyright ownership. The ASF licenses this file to
-    You under the Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain a copy of
-    the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
-    by applicable law or agreed to in writing, software distributed under the
-    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
-    OF ANY KIND, either express or implied. See the License for the specific
-    language governing permissions and limitations under the License. -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.arrow</groupId>
-        <artifactId>arrow-java-root</artifactId>
-        <version>4.0.0-SNAPSHOT</version>
-        <relativePath>../../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>arrow-jdbc</artifactId>
-    <name>Arrow JDBC Adapter</name>
-    <description>(Contrib/Experimental)A library for converting JDBC data to Arrow data.</description>
-    <url>http://maven.apache.org</url>
-
-    <dependencies>
-
-        <!-- https://mvnrepository.com/artifact/org.apache.arrow/arrow-memory-core -->
-        <dependency>
-            <groupId>org.apache.arrow</groupId>
-            <artifactId>arrow-memory-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <!-- https://mvnrepository.com/artifact/org.apache.arrow/arrow-memory-netty -->
-        <dependency>
-            <groupId>org.apache.arrow</groupId>
-            <artifactId>arrow-memory-netty</artifactId>
-            <version>${project.version}</version>
-            <scope>runtime</scope>
-        </dependency>
-
-        <!-- https://mvnrepository.com/artifact/org.apache.arrow/arrow-vector -->
-        <dependency>
-            <groupId>org.apache.arrow</groupId>
-            <artifactId>arrow-vector</artifactId>
-            <version>${project.version}</version>
-            <classifier>${arrow.vector.classifier}</classifier>
-        </dependency>
-
-        <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
-        <dependency>
-            <groupId>com.h2database</groupId>
-            <artifactId>h2</artifactId>
-            <version>1.4.196</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-yaml</artifactId>
-            <version>${dep.jackson.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-            <version>${dep.jackson.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-core</artifactId>
-            <version>${dep.jackson.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-annotations</artifactId>
-            <version>${dep.jackson.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-common</artifactId>
-        </dependency>
-
-    </dependencies>
-
-    <build>	
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <systemPropertyVariables>
-                        <user.timezone>UTC</user.timezone>
-                    </systemPropertyVariables>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/ArrowVectorIterator.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/ArrowVectorIterator.java
deleted file mode 100644
index b8796cd..0000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/ArrowVectorIterator.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.adapter.jdbc;
-
-import static org.apache.arrow.adapter.jdbc.JdbcToArrowUtils.isColumnNullable;
-
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.util.Iterator;
-
-import org.apache.arrow.adapter.jdbc.consumer.CompositeJdbcConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.JdbcConsumer;
-import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.VectorSchemaRoot;
-import org.apache.arrow.vector.types.pojo.ArrowType;
-import org.apache.arrow.vector.types.pojo.Schema;
-import org.apache.arrow.vector.util.ValueVectorUtility;
-
-/**
- * VectorSchemaRoot iterator for partially converting JDBC data.
- */
-public class ArrowVectorIterator implements Iterator<VectorSchemaRoot>, AutoCloseable {
-
-  private final ResultSet resultSet;
-  private final JdbcToArrowConfig config;
-
-  private final Schema schema;
-  private final ResultSetMetaData rsmd;
-
-  private final JdbcConsumer[] consumers;
-  final CompositeJdbcConsumer compositeConsumer;
-
-  private VectorSchemaRoot nextBatch;
-
-  private final int targetBatchSize;
-
-  /**
-   * Construct an instance.
-   */
-  private ArrowVectorIterator(ResultSet resultSet, JdbcToArrowConfig config) throws SQLException {
-    this.resultSet = resultSet;
-    this.config = config;
-    this.schema = JdbcToArrowUtils.jdbcToArrowSchema(resultSet.getMetaData(), config);
-    this.targetBatchSize = config.getTargetBatchSize();
-
-    rsmd = resultSet.getMetaData();
-    consumers = new JdbcConsumer[rsmd.getColumnCount()];
-    this.compositeConsumer = new CompositeJdbcConsumer(consumers);
-  }
-
-  private void initialize() throws SQLException {
-    // create consumers
-    for (int i = 1; i <= consumers.length; i++) {
-      ArrowType arrowType = config.getJdbcToArrowTypeConverter()
-          .apply(new JdbcFieldInfo(resultSet.getMetaData(), i));
-      consumers[i - 1] = JdbcToArrowUtils.getConsumer(
-          arrowType, i, isColumnNullable(resultSet, i), null, config);
-    }
-
-    load(createVectorSchemaRoot());
-  }
-
-  /**
-   * Create a ArrowVectorIterator to partially convert data.
-   */
-  public static ArrowVectorIterator create(
-      ResultSet resultSet,
-      JdbcToArrowConfig config)
-      throws SQLException {
-
-    ArrowVectorIterator iterator = new ArrowVectorIterator(resultSet, config);
-    try {
-      iterator.initialize();
-      return iterator;
-    } catch (Exception e) {
-      iterator.close();
-      throw new RuntimeException("Error occurred while creating iterator.", e);
-    }
-  }
-
-  private void consumeData(VectorSchemaRoot root) {
-    // consume data
-    try {
-      int readRowCount = 0;
-      if (targetBatchSize == JdbcToArrowConfig.NO_LIMIT_BATCH_SIZE) {
-        while (resultSet.next()) {
-          ValueVectorUtility.ensureCapacity(root, readRowCount + 1);
-          compositeConsumer.consume(resultSet);
-          readRowCount++;
-        }
-      } else {
-        while (readRowCount < targetBatchSize && resultSet.next()) {
-          compositeConsumer.consume(resultSet);
-          readRowCount++;
-        }
-      }
-
-
-      root.setRowCount(readRowCount);
-    } catch (Exception e) {
-      compositeConsumer.close();
-      throw new RuntimeException("Error occurred while consuming data.", e);
-    }
-  }
-
-  private VectorSchemaRoot createVectorSchemaRoot() {
-    VectorSchemaRoot root = null;
-    try {
-      root = VectorSchemaRoot.create(schema, config.getAllocator());
-      if (config.getTargetBatchSize() != JdbcToArrowConfig.NO_LIMIT_BATCH_SIZE) {
-        ValueVectorUtility.preAllocate(root, config.getTargetBatchSize());
-      }
-    } catch (Exception e) {
-      if (root != null) {
-        root.close();
-      }
-      throw new RuntimeException("Error occurred while creating schema root.", e);
-    }
-    return root;
-  }
-
-  // Loads the next schema root or null if no more rows are available.
-  private void load(VectorSchemaRoot root) throws SQLException {
-
-    for (int i = 1; i <= consumers.length; i++) {
-      consumers[i - 1].resetValueVector(root.getVector(rsmd.getColumnName(i)));
-    }
-
-    consumeData(root);
-
-    if (root.getRowCount() == 0) {
-      root.close();
-      nextBatch = null;
-    } else {
-      nextBatch = root;
-    }
-  }
-
-  @Override
-  public boolean hasNext() {
-    return nextBatch != null;
-  }
-
-  /**
-   * Gets the next vector. The user is responsible for freeing its resources.
-   */
-  @Override
-  public VectorSchemaRoot next() {
-    Preconditions.checkArgument(hasNext());
-    VectorSchemaRoot returned = nextBatch;
-    try {
-      load(createVectorSchemaRoot());
-    } catch (Exception e) {
-      close();
-      throw new RuntimeException("Error occurred while getting next schema root.", e);
-    }
-    return returned;
-  }
-
-  /**
-   * Clean up resources.
-   */
-  @Override
-  public void close() {
-    if (nextBatch != null) {
-      nextBatch.close();
-    }
-    compositeConsumer.close();
-  }
-}
diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/Constants.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/Constants.java
deleted file mode 100644
index aaadacb..0000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/Constants.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.adapter.jdbc;
-
-/**
- * String constants used for metadata returned on Vectors.
- */
-public class Constants {
-  private Constants() {}
-
-  public static final String SQL_CATALOG_NAME_KEY = "SQL_CATALOG_NAME";
-  public static final String SQL_TABLE_NAME_KEY = "SQL_TABLE_NAME";
-  public static final String SQL_COLUMN_NAME_KEY = "SQL_COLUMN_NAME";
-  public static final String SQL_TYPE_KEY = "SQL_TYPE";
-
-}
diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcFieldInfo.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcFieldInfo.java
deleted file mode 100644
index e3747bb..0000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcFieldInfo.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.adapter.jdbc;
-
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Types;
-
-import org.apache.arrow.util.Preconditions;
-
-/**
- * This class represents the information about a JDBC ResultSet Field that is
- * needed to construct an {@link org.apache.arrow.vector.types.pojo.ArrowType}.
- * Currently, this is:
- * <ul>
- *   <li>The JDBC {@link java.sql.Types} type.</li>
- *   <li>The field's precision (used for {@link java.sql.Types#DECIMAL} and {@link java.sql.Types#NUMERIC} types)</li>
- *   <li>The field's scale (used for {@link java.sql.Types#DECIMAL} and {@link java.sql.Types#NUMERIC} types)</li>
- * </ul>
- */
-public class JdbcFieldInfo {
-  private final int jdbcType;
-  private final int precision;
-  private final int scale;
-
-  /**
-   * Builds a <code>JdbcFieldInfo</code> using only the {@link java.sql.Types} type.  Do not use this constructor
-   * if the field type is {@link java.sql.Types#DECIMAL} or {@link java.sql.Types#NUMERIC}; the precision and
-   * scale will be set to <code>0</code>.
-   *
-   * @param jdbcType The {@link java.sql.Types} type.
-   * @throws IllegalArgumentException if jdbcType is {@link java.sql.Types#DECIMAL} or {@link java.sql.Types#NUMERIC}.
-   */
-  public JdbcFieldInfo(int jdbcType) {
-    Preconditions.checkArgument(
-        (jdbcType != Types.DECIMAL && jdbcType != Types.NUMERIC),
-        "DECIMAL and NUMERIC types require a precision and scale; please use another constructor.");
-
-    this.jdbcType = jdbcType;
-    this.precision = 0;
-    this.scale = 0;
-  }
-
-  /**
-   * Builds a <code>JdbcFieldInfo</code> from the {@link java.sql.Types} type, precision, and scale.
-   * Use this constructor for {@link java.sql.Types#DECIMAL} and {@link java.sql.Types#NUMERIC} types.
-   *
-   * @param jdbcType The {@link java.sql.Types} type.
-   * @param precision The field's numeric precision.
-   * @param scale The field's numeric scale.
-   */
-  public JdbcFieldInfo(int jdbcType, int precision, int scale) {
-    this.jdbcType = jdbcType;
-    this.precision = precision;
-    this.scale = scale;
-  }
-
-  /**
-   * Builds a <code>JdbcFieldInfo</code> from the corresponding {@link java.sql.ResultSetMetaData} column.
-   *
-   * @param rsmd The {@link java.sql.ResultSetMetaData} to get the field information from.
-   * @param column The column to get the field information for (on a 1-based index).
-   * @throws SQLException If the column information cannot be retrieved.
-   * @throws NullPointerException if <code>rsmd</code> is <code>null</code>.
-   * @throws IllegalArgumentException if <code>column</code> is out of bounds.
-   */
-  public JdbcFieldInfo(ResultSetMetaData rsmd, int column) throws SQLException {
-    Preconditions.checkNotNull(rsmd, "ResultSetMetaData cannot be null.");
-    Preconditions.checkArgument(column > 0, "ResultSetMetaData columns have indices starting at 1.");
-    Preconditions.checkArgument(
-        column <= rsmd.getColumnCount(),
-        "The index must be within the number of columns (1 to %s, inclusive)", rsmd.getColumnCount());
-
-    this.jdbcType = rsmd.getColumnType(column);
-    this.precision = rsmd.getPrecision(column);
-    this.scale = rsmd.getScale(column);
-  }
-
-  /**
-   * The {@link java.sql.Types} type.
-   */
-  public int getJdbcType() {
-    return jdbcType;
-  }
-
-  /**
-   * The numeric precision, for {@link java.sql.Types#NUMERIC}  and {@link java.sql.Types#DECIMAL} types.
-   */
-  public int getPrecision() {
-    return precision;
-  }
-
-  /**
-   * The numeric scale, for {@link java.sql.Types#NUMERIC}  and {@link java.sql.Types#DECIMAL} types.
-   */
-  public int getScale() {
-    return scale;
-  }
-}
diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrow.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrow.java
deleted file mode 100644
index c65523d..0000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrow.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.adapter.jdbc;
-
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Calendar;
-
-import org.apache.arrow.memory.BufferAllocator;
-import org.apache.arrow.memory.RootAllocator;
-import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.VectorSchemaRoot;
-import org.apache.arrow.vector.util.ValueVectorUtility;
-
-/**
- * Utility class to convert JDBC objects to columnar Arrow format objects.
- *
- * <p>This utility uses following data mapping to map JDBC/SQL datatype to Arrow data types.
- *
- * <p>CHAR --> ArrowType.Utf8
- * NCHAR --> ArrowType.Utf8
- * VARCHAR --> ArrowType.Utf8
- * NVARCHAR --> ArrowType.Utf8
- * LONGVARCHAR --> ArrowType.Utf8
- * LONGNVARCHAR --> ArrowType.Utf8
- * NUMERIC --> ArrowType.Decimal(precision, scale)
- * DECIMAL --> ArrowType.Decimal(precision, scale)
- * BIT --> ArrowType.Bool
- * TINYINT --> ArrowType.Int(8, signed)
- * SMALLINT --> ArrowType.Int(16, signed)
- * INTEGER --> ArrowType.Int(32, signed)
- * BIGINT --> ArrowType.Int(64, signed)
- * REAL --> ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE)
- * FLOAT --> ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE)
- * DOUBLE --> ArrowType.FloatingPoint(FloatingPointPrecision.DOUBLE)
- * BINARY --> ArrowType.Binary
- * VARBINARY --> ArrowType.Binary
- * LONGVARBINARY --> ArrowType.Binary
- * DATE --> ArrowType.Date(DateUnit.MILLISECOND)
- * TIME --> ArrowType.Time(TimeUnit.MILLISECOND, 32)
- * TIMESTAMP --> ArrowType.Timestamp(TimeUnit.MILLISECOND, timezone=null)
- * CLOB --> ArrowType.Utf8
- * BLOB --> ArrowType.Binary
- *
- * @since 0.10.0
- */
-public class JdbcToArrow {
-
-  /**
-   * For the given SQL query, execute and fetch the data from Relational DB and convert it to Arrow objects.
-   * This method uses the default Calendar instance with default TimeZone and Locale as returned by the JVM.
-   * If you wish to use specific TimeZone or Locale for any Date, Time and Timestamp datasets, you may want use
-   * overloaded API that taken Calendar object instance.
-   *
-   * @param connection Database connection to be used. This method will not close the passed connection object. Since
-   *                   the caller has passed the connection object it's the responsibility of the caller to close or
-   *                   return the connection to the pool.
-   * @param query      The DB Query to fetch the data.
-   * @param allocator  Memory allocator
-   * @return Arrow Data Objects {@link VectorSchemaRoot}
-   * @throws SQLException Propagate any SQL Exceptions to the caller after closing any resources opened such as
-   *                      ResultSet and Statement objects.
-   */
-  @Deprecated
-  public static VectorSchemaRoot sqlToArrow(Connection connection, String query, BufferAllocator allocator)
-      throws SQLException, IOException {
-    Preconditions.checkNotNull(allocator, "Memory allocator object can not be null");
-
-    JdbcToArrowConfig config =
-        new JdbcToArrowConfig(allocator, JdbcToArrowUtils.getUtcCalendar());
-    return sqlToArrow(connection, query, config);
-  }
-
-  /**
-   * For the given SQL query, execute and fetch the data from Relational DB and convert it to Arrow objects.
-   *
-   * @param connection Database connection to be used. This method will not close the passed connection object. Since
-   *                   the caller has passed the connection object it's the responsibility of the caller to close or
-   *                   return the connection to the pool.
-   * @param query      The DB Query to fetch the data.
-   * @param allocator  Memory allocator
-   * @param calendar   Calendar object to use to handle Date, Time and Timestamp datasets.
-   * @return Arrow Data Objects {@link VectorSchemaRoot}
-   * @throws SQLException Propagate any SQL Exceptions to the caller after closing any resources opened such as
-   *                      ResultSet and Statement objects.
-   */
-  @Deprecated
-  public static VectorSchemaRoot sqlToArrow(
-      Connection connection,
-      String query,
-      BufferAllocator allocator,
-      Calendar calendar) throws SQLException, IOException {
-
-    Preconditions.checkNotNull(allocator, "Memory allocator object can not be null");
-    Preconditions.checkNotNull(calendar, "Calendar object can not be null");
-
-    return sqlToArrow(connection, query, new JdbcToArrowConfig(allocator, calendar));
-  }
-
-  /**
-   * For the given SQL query, execute and fetch the data from Relational DB and convert it to Arrow objects.
-   *
-   * @param connection Database connection to be used. This method will not close the passed connection object.
-   *                   Since the caller has passed the connection object it's the responsibility of the caller
-   *                   to close or return the connection to the pool.
-   * @param query      The DB Query to fetch the data.
-   * @param config     Configuration
-   * @return Arrow Data Objects {@link VectorSchemaRoot}
-   * @throws SQLException Propagate any SQL Exceptions to the caller after closing any resources opened such as
-   *                      ResultSet and Statement objects.
-   */
-  @Deprecated
-  public static VectorSchemaRoot sqlToArrow(Connection connection, String query, JdbcToArrowConfig config)
-      throws SQLException, IOException {
-    Preconditions.checkNotNull(connection, "JDBC connection object can not be null");
-    Preconditions.checkArgument(query != null && query.length() > 0, "SQL query can not be null or empty");
-
-    try (Statement stmt = connection.createStatement()) {
-      return sqlToArrow(stmt.executeQuery(query), config);
-    }
-  }
-
-  /**
-   * For the given JDBC {@link ResultSet}, fetch the data from Relational DB and convert it to Arrow objects. This
-   * method uses the default RootAllocator and Calendar object.
-   *
-   * @param resultSet ResultSet to use to fetch the data from underlying database
-   * @return Arrow Data Objects {@link VectorSchemaRoot}
-   * @throws SQLException on error
-   */
-  @Deprecated
-  public static VectorSchemaRoot sqlToArrow(ResultSet resultSet) throws SQLException, IOException {
-    Preconditions.checkNotNull(resultSet, "JDBC ResultSet object can not be null");
-
-    return sqlToArrow(resultSet, JdbcToArrowUtils.getUtcCalendar());
-  }
-
-  /**
-   * For the given JDBC {@link ResultSet}, fetch the data from Relational DB and convert it to Arrow objects.
-   *
-   * @param resultSet ResultSet to use to fetch the data from underlying database
-   * @param allocator Memory allocator
-   * @return Arrow Data Objects {@link VectorSchemaRoot}
-   * @throws SQLException on error
-   */
-  @Deprecated
-  public static VectorSchemaRoot sqlToArrow(ResultSet resultSet, BufferAllocator allocator)
-      throws SQLException, IOException {
-    Preconditions.checkNotNull(allocator, "Memory Allocator object can not be null");
-
-    JdbcToArrowConfig config =
-        new JdbcToArrowConfig(allocator, JdbcToArrowUtils.getUtcCalendar());
-    return sqlToArrow(resultSet, config);
-  }
-
-  /**
-   * For the given JDBC {@link ResultSet}, fetch the data from Relational DB and convert it to Arrow objects.
-   *
-   * @param resultSet ResultSet to use to fetch the data from underlying database
-   * @param calendar  Calendar instance to use for Date, Time and Timestamp datasets, or <code>null</code> if none.
-   * @return Arrow Data Objects {@link VectorSchemaRoot}
-   * @throws SQLException on error
-   */
-  @Deprecated
-  public static VectorSchemaRoot sqlToArrow(ResultSet resultSet, Calendar calendar) throws SQLException, IOException {
-    Preconditions.checkNotNull(resultSet, "JDBC ResultSet object can not be null");
-    return sqlToArrow(resultSet, new JdbcToArrowConfig(new RootAllocator(Integer.MAX_VALUE), calendar));
-  }
-
-  /**
-   * For the given JDBC {@link ResultSet}, fetch the data from Relational DB and convert it to Arrow objects.
-   *
-   * @param resultSet ResultSet to use to fetch the data from underlying database
-   * @param allocator Memory allocator to use.
-   * @param calendar  Calendar instance to use for Date, Time and Timestamp datasets, or <code>null</code> if none.
-   * @return Arrow Data Objects {@link VectorSchemaRoot}
-   * @throws SQLException on error
-   */
-  @Deprecated
-  public static VectorSchemaRoot sqlToArrow(
-      ResultSet resultSet,
-      BufferAllocator allocator,
-      Calendar calendar)
-      throws SQLException, IOException {
-    Preconditions.checkNotNull(allocator, "Memory Allocator object can not be null");
-
-    return sqlToArrow(resultSet, new JdbcToArrowConfig(allocator, calendar));
-  }
-
-  /**
-   * For the given JDBC {@link ResultSet}, fetch the data from Relational DB and convert it to Arrow objects.
-   *
-   * @param resultSet ResultSet to use to fetch the data from underlying database
-   * @param config    Configuration of the conversion from JDBC to Arrow.
-   * @return Arrow Data Objects {@link VectorSchemaRoot}
-   * @throws SQLException on error
-   */
-  @Deprecated
-  public static VectorSchemaRoot sqlToArrow(ResultSet resultSet, JdbcToArrowConfig config)
-      throws SQLException, IOException {
-    Preconditions.checkNotNull(resultSet, "JDBC ResultSet object can not be null");
-    Preconditions.checkNotNull(config, "The configuration cannot be null");
-
-    VectorSchemaRoot root = VectorSchemaRoot.create(
-        JdbcToArrowUtils.jdbcToArrowSchema(resultSet.getMetaData(), config), config.getAllocator());
-    if (config.getTargetBatchSize() != JdbcToArrowConfig.NO_LIMIT_BATCH_SIZE) {
-      ValueVectorUtility.preAllocate(root, config.getTargetBatchSize());
-    }
-    JdbcToArrowUtils.jdbcToArrowVectors(resultSet, root, config);
-    return root;
-  }
-
-  /*----------------------------------------------------------------*
-   |                                                                |
-   |          Partial Convert API                        |
-   |                                                                |
-   *----------------------------------------------------------------*/
-
-  /**
-   * For the given JDBC {@link ResultSet}, fetch the data from Relational DB and convert it to Arrow objects.
-   * Note here uses the default targetBatchSize = 1024.
-   *
-   * @param resultSet ResultSet to use to fetch the data from underlying database
-   * @param allocator Memory allocator
-   * @return Arrow Data Objects {@link ArrowVectorIterator}
-   * @throws SQLException on error
-   */
-  public static ArrowVectorIterator sqlToArrowVectorIterator(
-      ResultSet resultSet,
-      BufferAllocator allocator)
-      throws SQLException, IOException {
-    Preconditions.checkNotNull(allocator, "Memory Allocator object can not be null");
-
-    JdbcToArrowConfig config =
-        new JdbcToArrowConfig(allocator, JdbcToArrowUtils.getUtcCalendar());
-    return sqlToArrowVectorIterator(resultSet, config);
-  }
-
-  /**
-   * For the given JDBC {@link ResultSet}, fetch the data from Relational DB and convert it to Arrow objects.
-   * Note if not specify {@link JdbcToArrowConfig#targetBatchSize}, will use default value 1024.
-   * @param resultSet ResultSet to use to fetch the data from underlying database
-   * @param config    Configuration of the conversion from JDBC to Arrow.
-   * @return Arrow Data Objects {@link ArrowVectorIterator}
-   * @throws SQLException on error
-   */
-  public static ArrowVectorIterator sqlToArrowVectorIterator(
-      ResultSet resultSet,
-      JdbcToArrowConfig config)
-      throws SQLException, IOException {
-    Preconditions.checkNotNull(resultSet, "JDBC ResultSet object can not be null");
-    Preconditions.checkNotNull(config, "The configuration cannot be null");
-    return ArrowVectorIterator.create(resultSet, config);
-  }
-}
diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowConfig.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowConfig.java
deleted file mode 100644
index 9a587e7..0000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowConfig.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.adapter.jdbc;
-
-import static org.apache.arrow.vector.types.FloatingPointPrecision.DOUBLE;
-import static org.apache.arrow.vector.types.FloatingPointPrecision.SINGLE;
-
-import java.sql.Types;
-import java.util.Calendar;
-import java.util.Map;
-import java.util.function.Function;
-
-import org.apache.arrow.memory.BufferAllocator;
-import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.types.DateUnit;
-import org.apache.arrow.vector.types.TimeUnit;
-import org.apache.arrow.vector.types.pojo.ArrowType;
-
-/**
- * This class configures the JDBC-to-Arrow conversion process.
- * <p>
- * The allocator is used to construct the {@link org.apache.arrow.vector.VectorSchemaRoot},
- * and the calendar is used to define the time zone of any
- * {@link org.apache.arrow.vector.types.pojo.ArrowType.Timestamp}
- * fields that are created during the conversion.  Neither field may be <code>null</code>.
- * </p>
- * <p>
- * If the <code>includeMetadata</code> flag is set, the Arrow field metadata will contain information
- * from the corresponding {@link java.sql.ResultSetMetaData} that was used to create the
- * {@link org.apache.arrow.vector.types.pojo.FieldType} of the corresponding
- * {@link org.apache.arrow.vector.FieldVector}.
- * </p>
- * <p>
- * If there are any {@link java.sql.Types#ARRAY} fields in the {@link java.sql.ResultSet}, the corresponding
- * {@link JdbcFieldInfo} for the array's contents must be defined here.  Unfortunately, the sub-type
- * information cannot be retrieved from all JDBC implementations (H2 for example, returns
- * {@link java.sql.Types#NULL} for the array sub-type), so it must be configured here.  The column index
- * or name can be used to map to a {@link JdbcFieldInfo}, and that will be used for the conversion.
- * </p>
- */
-public final class JdbcToArrowConfig {
-
-  private final Calendar calendar;
-  private final BufferAllocator allocator;
-  private final boolean includeMetadata;
-  private final Map<Integer, JdbcFieldInfo> arraySubTypesByColumnIndex;
-  private final Map<String, JdbcFieldInfo> arraySubTypesByColumnName;
-
-  public static final int DEFAULT_TARGET_BATCH_SIZE = 1024;
-  public static final int NO_LIMIT_BATCH_SIZE = -1;
-
-  /**
-   * The maximum rowCount to read each time when partially convert data.
-   * Default value is 1024 and -1 means disable partial read.
-   * default is -1 which means disable partial read.
-   * Note that this flag only useful for {@link JdbcToArrow#sqlToArrowVectorIterator}
-   * 1) if targetBatchSize != -1, it will convert full data into multiple vectors
-   * with valueCount no more than targetBatchSize.
-   * 2) if targetBatchSize == -1, it will convert full data into a single vector in {@link ArrowVectorIterator}
-   * </p>
-   */
-  private final int targetBatchSize;
-
-  private final Function<JdbcFieldInfo, ArrowType> jdbcToArrowTypeConverter;
-
-  /**
-   * Constructs a new configuration from the provided allocator and calendar.  The <code>allocator</code>
-   * is used when constructing the Arrow vectors from the ResultSet, and the calendar is used to define
-   * Arrow Timestamp fields, and to read time-based fields from the JDBC <code>ResultSet</code>. 
-   *
-   * @param allocator       The memory allocator to construct the Arrow vectors with.
-   * @param calendar        The calendar to use when constructing Timestamp fields and reading time-based results.
-   */
-  JdbcToArrowConfig(BufferAllocator allocator, Calendar calendar) {
-    this(allocator, calendar, false, null, null, DEFAULT_TARGET_BATCH_SIZE, null);
-  }
-
-  /**
-   * Constructs a new configuration from the provided allocator and calendar.  The <code>allocator</code>
-   * is used when constructing the Arrow vectors from the ResultSet, and the calendar is used to define
-   * Arrow Timestamp fields, and to read time-based fields from the JDBC <code>ResultSet</code>. 
-   *
-   * @param allocator       The memory allocator to construct the Arrow vectors with.
-   * @param calendar        The calendar to use when constructing Timestamp fields and reading time-based results.
-   * @param includeMetadata Whether to include JDBC field metadata in the Arrow Schema Field metadata.
-   * @param arraySubTypesByColumnIndex The type of the JDBC array at the column index (1-based).
-   * @param arraySubTypesByColumnName  The type of the JDBC array at the column name.
-   * @param jdbcToArrowTypeConverter The function that maps JDBC field type information to arrow type. If set to null,
-   *                                 the default mapping will be used, which is defined as:
-   *  <ul>
-   *    <li>CHAR --> ArrowType.Utf8</li>
-   *    <li>NCHAR --> ArrowType.Utf8</li>
-   *    <li>VARCHAR --> ArrowType.Utf8</li>
-   *    <li>NVARCHAR --> ArrowType.Utf8</li>
-   *    <li>LONGVARCHAR --> ArrowType.Utf8</li>
-   *    <li>LONGNVARCHAR --> ArrowType.Utf8</li>
-   *    <li>NUMERIC --> ArrowType.Decimal(precision, scale)</li>
-   *    <li>DECIMAL --> ArrowType.Decimal(precision, scale)</li>
-   *    <li>BIT --> ArrowType.Bool</li>
-   *    <li>TINYINT --> ArrowType.Int(8, signed)</li>
-   *    <li>SMALLINT --> ArrowType.Int(16, signed)</li>
-   *    <li>INTEGER --> ArrowType.Int(32, signed)</li>
-   *    <li>BIGINT --> ArrowType.Int(64, signed)</li>
-   *    <li>REAL --> ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE)</li>
-   *    <li>FLOAT --> ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE)</li>
-   *    <li>DOUBLE --> ArrowType.FloatingPoint(FloatingPointPrecision.DOUBLE)</li>
-   *    <li>BINARY --> ArrowType.Binary</li>
-   *    <li>VARBINARY --> ArrowType.Binary</li>
-   *    <li>LONGVARBINARY --> ArrowType.Binary</li>
-   *    <li>DATE --> ArrowType.Date(DateUnit.DAY)</li>
-   *    <li>TIME --> ArrowType.Time(TimeUnit.MILLISECOND, 32)</li>
-   *    <li>TIMESTAMP --> ArrowType.Timestamp(TimeUnit.MILLISECOND, calendar timezone)</li>
-   *    <li>CLOB --> ArrowType.Utf8</li>
-   *    <li>BLOB --> ArrowType.Binary</li>
-   *    <li>NULL --> ArrowType.Null</li>
-   *  </ul>
-   */
-  JdbcToArrowConfig(
-      BufferAllocator allocator,
-      Calendar calendar,
-      boolean includeMetadata,
-      Map<Integer, JdbcFieldInfo> arraySubTypesByColumnIndex,
-      Map<String, JdbcFieldInfo> arraySubTypesByColumnName,
-      int targetBatchSize,
-      Function<JdbcFieldInfo, ArrowType> jdbcToArrowTypeConverter) {
-    Preconditions.checkNotNull(allocator, "Memory allocator cannot be null");
-    this.allocator = allocator;
-    this.calendar = calendar;
-    this.includeMetadata = includeMetadata;
-    this.arraySubTypesByColumnIndex = arraySubTypesByColumnIndex;
-    this.arraySubTypesByColumnName = arraySubTypesByColumnName;
-    this.targetBatchSize = targetBatchSize;
-
-    // set up type converter
-    this.jdbcToArrowTypeConverter = jdbcToArrowTypeConverter != null ? jdbcToArrowTypeConverter :
-        fieldInfo -> {
-          final String timezone;
-          if (calendar != null) {
-            timezone = calendar.getTimeZone().getID();
-          } else {
-            timezone = null;
-          }
-
-          switch (fieldInfo.getJdbcType()) {
-            case Types.BOOLEAN:
-            case Types.BIT:
-              return new ArrowType.Bool();
-            case Types.TINYINT:
-              return new ArrowType.Int(8, true);
-            case Types.SMALLINT:
-              return new ArrowType.Int(16, true);
-            case Types.INTEGER:
-              return new ArrowType.Int(32, true);
-            case Types.BIGINT:
-              return new ArrowType.Int(64, true);
-            case Types.NUMERIC:
-            case Types.DECIMAL:
-              int precision = fieldInfo.getPrecision();
-              int scale = fieldInfo.getScale();
-              return new ArrowType.Decimal(precision, scale, 128);
-            case Types.REAL:
-            case Types.FLOAT:
-              return new ArrowType.FloatingPoint(SINGLE);
-            case Types.DOUBLE:
-              return new ArrowType.FloatingPoint(DOUBLE);
-            case Types.CHAR:
-            case Types.NCHAR:
-            case Types.VARCHAR:
-            case Types.NVARCHAR:
-            case Types.LONGVARCHAR:
-            case Types.LONGNVARCHAR:
-            case Types.CLOB:
-              return new ArrowType.Utf8();
-            case Types.DATE:
-              return new ArrowType.Date(DateUnit.DAY);
-            case Types.TIME:
-              return new ArrowType.Time(TimeUnit.MILLISECOND, 32);
-            case Types.TIMESTAMP:
-              return new ArrowType.Timestamp(TimeUnit.MILLISECOND, timezone);
-            case Types.BINARY:
-            case Types.VARBINARY:
-            case Types.LONGVARBINARY:
-            case Types.BLOB:
-              return new ArrowType.Binary();
-            case Types.ARRAY:
-              return new ArrowType.List();
-            case Types.NULL:
-              return new ArrowType.Null();
-            default:
-              // no-op, shouldn't get here
-              return null;
-          }
-        };
-  }
-
-  /**
-   * The calendar to use when defining Arrow Timestamp fields
-   * and retrieving {@link java.sql.Date}, {@link java.sql.Time}, or {@link java.sql.Timestamp}
-   * data types from the {@link java.sql.ResultSet}, or <code>null</code> if not converting.
-   *
-   * @return the calendar.
-   */
-  public Calendar getCalendar() {
-    return calendar;
-  }
-
-  /**
-   * The Arrow memory allocator.
-   * @return the allocator.
-   */
-  public BufferAllocator getAllocator() {
-    return allocator;
-  }
-
-  /**
-   * Whether to include JDBC ResultSet field metadata in the Arrow Schema field metadata.
-   *
-   * @return <code>true</code> to include field metadata, <code>false</code> to exclude it.
-   */
-  public boolean shouldIncludeMetadata() {
-    return includeMetadata;
-  }
-
-  /**
-   * Get the target batch size for partial read.
-   */
-  public int getTargetBatchSize() {
-    return targetBatchSize;
-  }
-
-  /**
-   * Gets the mapping between JDBC type information to Arrow type.
-   */
-  public Function<JdbcFieldInfo, ArrowType> getJdbcToArrowTypeConverter() {
-    return jdbcToArrowTypeConverter;
-  }
-
-  /**
-   * Returns the array sub-type {@link JdbcFieldInfo} defined for the provided column index.
-   *
-   * @param index The {@link java.sql.ResultSetMetaData} column index of an {@link java.sql.Types#ARRAY} type.
-   * @return The {@link JdbcFieldInfo} for that array's sub-type, or <code>null</code> if not defined.
-   */
-  public JdbcFieldInfo getArraySubTypeByColumnIndex(int index) {
-    if (arraySubTypesByColumnIndex == null) {
-      return null;
-    } else {
-      return arraySubTypesByColumnIndex.get(index);
-    }
-  }
-
-  /**
-   * Returns the array sub-type {@link JdbcFieldInfo} defined for the provided column name.
-   *
-   * @param name The {@link java.sql.ResultSetMetaData} column name of an {@link java.sql.Types#ARRAY} type.
-   * @return The {@link JdbcFieldInfo} for that array's sub-type, or <code>null</code> if not defined.
-   */
-  public JdbcFieldInfo getArraySubTypeByColumnName(String name) {
-    if (arraySubTypesByColumnName == null) {
-      return null;
-    } else {
-      return arraySubTypesByColumnName.get(name);
-    }
-  }
-}
diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowConfigBuilder.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowConfigBuilder.java
deleted file mode 100644
index cf08735..0000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowConfigBuilder.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.adapter.jdbc;
-
-import static org.apache.arrow.adapter.jdbc.JdbcToArrowConfig.DEFAULT_TARGET_BATCH_SIZE;
-
-import java.util.Calendar;
-import java.util.Map;
-import java.util.function.Function;
-
-import org.apache.arrow.memory.BufferAllocator;
-import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.types.pojo.ArrowType;
-
-/**
- * This class builds {@link JdbcToArrowConfig}s.
- */
-public class JdbcToArrowConfigBuilder {
-  private Calendar calendar;
-  private BufferAllocator allocator;
-  private boolean includeMetadata;
-  private Map<Integer, JdbcFieldInfo> arraySubTypesByColumnIndex;
-  private Map<String, JdbcFieldInfo> arraySubTypesByColumnName;
-
-  private int targetBatchSize;
-  private Function<JdbcFieldInfo, ArrowType> jdbcToArrowTypeConverter;
-
-  /**
-   * Default constructor for the <code>JdbcToArrowConfigBuilder}</code>.
-   * Use the setter methods for the allocator and calendar; the allocator must be
-   * set.  Otherwise, {@link #build()} will throw a {@link NullPointerException}.
-   */
-  public JdbcToArrowConfigBuilder() {
-    this.allocator = null;
-    this.calendar = null;
-    this.includeMetadata = false;
-    this.arraySubTypesByColumnIndex = null;
-    this.arraySubTypesByColumnName = null;
-  }
-
-  /**
-   * Constructor for the <code>JdbcToArrowConfigBuilder</code>.  The
-   * allocator is required, and a {@link NullPointerException}
-   * will be thrown if it is <code>null</code>.
-   * <p>
-   * The allocator is used to construct Arrow vectors from the JDBC ResultSet.
-   * The calendar is used to determine the time zone of {@link java.sql.Timestamp}
-   * fields and convert {@link java.sql.Date}, {@link java.sql.Time}, and
-   * {@link java.sql.Timestamp} fields to a single, common time zone when reading
-   * from the result set.
-   * </p>
-   *
-   * @param allocator The Arrow Vector memory allocator.
-   * @param calendar The calendar to use when constructing timestamp fields.
-   */
-  public JdbcToArrowConfigBuilder(BufferAllocator allocator, Calendar calendar) {
-    this();
-
-    Preconditions.checkNotNull(allocator, "Memory allocator cannot be null");
-
-    this.allocator = allocator;
-    this.calendar = calendar;
-    this.includeMetadata = false;
-    this.targetBatchSize = DEFAULT_TARGET_BATCH_SIZE;
-  }
-
-  /**
-   * Constructor for the <code>JdbcToArrowConfigBuilder</code>.  Both the
-   * allocator and calendar are required.  A {@link NullPointerException}
-   * will be thrown if either of those arguments is <code>null</code>.
-   * <p>
-   * The allocator is used to construct Arrow vectors from the JDBC ResultSet.
-   * The calendar is used to determine the time zone of {@link java.sql.Timestamp}
-   * fields and convert {@link java.sql.Date}, {@link java.sql.Time}, and
-   * {@link java.sql.Timestamp} fields to a single, common time zone when reading
-   * from the result set.
-   * </p>
-   * <p>
-   * The <code>includeMetadata</code> argument, if <code>true</code> will cause
-   * various information about each database field to be added to the Vector
-   * Schema's field metadata.
-   * </p>
-   *
-   * @param allocator The Arrow Vector memory allocator.
-   * @param calendar The calendar to use when constructing timestamp fields.
-   */
-  public JdbcToArrowConfigBuilder(BufferAllocator allocator, Calendar calendar, boolean includeMetadata) {
-    this(allocator, calendar);
-    this.includeMetadata = includeMetadata;
-  }
-
-  /**
-   * Sets the memory allocator to use when constructing the Arrow vectors from the ResultSet.
-   *
-   * @param allocator the allocator to set.
-   * @exception NullPointerException if <code>allocator</code> is null.
-   */
-  public JdbcToArrowConfigBuilder setAllocator(BufferAllocator allocator) {
-    Preconditions.checkNotNull(allocator, "Memory allocator cannot be null");
-    this.allocator = allocator;
-    return this;
-  }
-
-  /**
-   * Sets the {@link Calendar} to use when constructing timestamp fields in the
-   * Arrow schema, and reading time-based fields from the JDBC <code>ResultSet</code>.
-   *
-   * @param calendar the calendar to set.
-   */
-  public JdbcToArrowConfigBuilder setCalendar(Calendar calendar) {
-    this.calendar = calendar;
-    return this;
-  }
-
-  /**
-   * Sets whether to include JDBC ResultSet field metadata in the Arrow Schema field metadata.
-   *
-   * @param includeMetadata Whether to include or exclude JDBC metadata in the Arrow Schema field metadata.
-   * @return This instance of the <code>JdbcToArrowConfig</code>, for chaining.
-   */
-  public JdbcToArrowConfigBuilder setIncludeMetadata(boolean includeMetadata) {
-    this.includeMetadata = includeMetadata;
-    return this;
-  }
-
-  /**
-   * Sets the mapping of column-index-to-{@link JdbcFieldInfo} used for columns of type {@link java.sql.Types#ARRAY}.
-   * The column index is 1-based, to match the JDBC column index.
-   *
-   * @param map The mapping.
-   * @return This instance of the <code>JdbcToArrowConfig</code>, for chaining.
-   */
-  public JdbcToArrowConfigBuilder setArraySubTypeByColumnIndexMap(Map<Integer, JdbcFieldInfo> map) {
-    this.arraySubTypesByColumnIndex = map;
-    return this;
-  }
-
-  /**
-   * Sets the mapping of column-name-to-{@link JdbcFieldInfo} used for columns of type {@link java.sql.Types#ARRAY}.
-   *
-   * @param map The mapping.
-   * @return This instance of the <code>JdbcToArrowConfig</code>, for chaining.
-   */
-  public JdbcToArrowConfigBuilder setArraySubTypeByColumnNameMap(Map<String, JdbcFieldInfo> map) {
-    this.arraySubTypesByColumnName = map;
-    return this;
-  }
-
-  public JdbcToArrowConfigBuilder setTargetBatchSize(int targetBatchSize) {
-    this.targetBatchSize = targetBatchSize;
-    return this;
-  }
-
-  public JdbcToArrowConfigBuilder setJdbcToArrowTypeConverter(
-      Function<JdbcFieldInfo, ArrowType> jdbcToArrowTypeConverter) {
-    this.jdbcToArrowTypeConverter = jdbcToArrowTypeConverter;
-    return this;
-  }
-
-  /**
-   * This builds the {@link JdbcToArrowConfig} from the provided
-   * {@link BufferAllocator} and {@link Calendar}.
-   *
-   * @return The built {@link JdbcToArrowConfig}
-   * @throws NullPointerException if either the allocator or calendar was not set.
-   */
-  public JdbcToArrowConfig build() {
-    return new JdbcToArrowConfig(
-        allocator,
-        calendar,
-        includeMetadata,
-        arraySubTypesByColumnIndex,
-        arraySubTypesByColumnName,
-        targetBatchSize,
-        jdbcToArrowTypeConverter);
-  }
-}
diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowUtils.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowUtils.java
deleted file mode 100644
index 8361c11..0000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowUtils.java
+++ /dev/null
@@ -1,336 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.adapter.jdbc;
-
-import java.io.IOException;
-import java.sql.Date;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Time;
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.TimeZone;
-
-import org.apache.arrow.adapter.jdbc.consumer.ArrayConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.BigIntConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.BinaryConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.BitConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.CompositeJdbcConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.DateConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.DecimalConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.DoubleConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.FloatConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.IntConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.JdbcConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.NullConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.SmallIntConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.TimeConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.TimestampConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.TimestampTZConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.TinyIntConsumer;
-import org.apache.arrow.adapter.jdbc.consumer.VarCharConsumer;
-import org.apache.arrow.memory.RootAllocator;
-import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.BigIntVector;
-import org.apache.arrow.vector.BitVector;
-import org.apache.arrow.vector.DateDayVector;
-import org.apache.arrow.vector.DecimalVector;
-import org.apache.arrow.vector.FieldVector;
-import org.apache.arrow.vector.Float4Vector;
-import org.apache.arrow.vector.Float8Vector;
-import org.apache.arrow.vector.IntVector;
-import org.apache.arrow.vector.NullVector;
-import org.apache.arrow.vector.SmallIntVector;
-import org.apache.arrow.vector.TimeMilliVector;
-import org.apache.arrow.vector.TimeStampMilliTZVector;
-import org.apache.arrow.vector.TimeStampMilliVector;
-import org.apache.arrow.vector.TinyIntVector;
-import org.apache.arrow.vector.VarBinaryVector;
-import org.apache.arrow.vector.VarCharVector;
-import org.apache.arrow.vector.VectorSchemaRoot;
-import org.apache.arrow.vector.complex.ListVector;
-import org.apache.arrow.vector.types.pojo.ArrowType;
-import org.apache.arrow.vector.types.pojo.Field;
-import org.apache.arrow.vector.types.pojo.FieldType;
-import org.apache.arrow.vector.types.pojo.Schema;
-import org.apache.arrow.vector.util.ValueVectorUtility;
-
-/**
- * Class that does most of the work to convert JDBC ResultSet data into Arrow columnar format Vector objects.
- *
- * @since 0.10.0
- */
-public class JdbcToArrowUtils {
-
-  private static final int JDBC_ARRAY_VALUE_COLUMN = 2;
-
-  /**
-   * Returns the instance of a {java.util.Calendar} with the UTC time zone and root locale.
-   */
-  public static Calendar getUtcCalendar() {
-    return Calendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.ROOT);
-  }
-
-  /**
-   * Create Arrow {@link Schema} object for the given JDBC {@link ResultSetMetaData}.
-   *
-   * @param rsmd The ResultSetMetaData containing the results, to read the JDBC metadata from.
-   * @param calendar The calendar to use the time zone field of, to construct Timestamp fields from.
-   * @return {@link Schema}
-   * @throws SQLException on error
-   */
-  public static Schema jdbcToArrowSchema(ResultSetMetaData rsmd, Calendar calendar) throws SQLException {
-    Preconditions.checkNotNull(calendar, "Calendar object can't be null");
-
-    return jdbcToArrowSchema(rsmd, new JdbcToArrowConfig(new RootAllocator(0), calendar));
-  }
-
-  /**
-   * Create Arrow {@link Schema} object for the given JDBC {@link java.sql.ResultSetMetaData}.
-   *
-   * <p>
-   * If {@link JdbcToArrowConfig#shouldIncludeMetadata()} returns <code>true</code>, the following fields
-   * will be added to the {@link FieldType#getMetadata()}:
-   * <ul>
-   *  <li>{@link Constants#SQL_CATALOG_NAME_KEY} representing {@link ResultSetMetaData#getCatalogName(int)}</li>
-   *  <li>{@link Constants#SQL_TABLE_NAME_KEY} representing {@link ResultSetMetaData#getTableName(int)}</li>
-   *  <li>{@link Constants#SQL_COLUMN_NAME_KEY} representing {@link ResultSetMetaData#getColumnName(int)}</li>
-   *  <li>{@link Constants#SQL_TYPE_KEY} representing {@link ResultSetMetaData#getColumnTypeName(int)}</li>
-   * </ul>
-   * </p>
-   * <p>
-   * If any columns are of type {@link java.sql.Types#ARRAY}, the configuration object will be used to look up
-   * the array sub-type field.  The {@link JdbcToArrowConfig#getArraySubTypeByColumnIndex(int)} method will be
-   * checked first, followed by the {@link JdbcToArrowConfig#getArraySubTypeByColumnName(String)} method.
-   * </p>
-   *
-   * @param rsmd The ResultSetMetaData containing the results, to read the JDBC metadata from.
-   * @param config The configuration to use when constructing the schema.
-   * @return {@link Schema}
-   * @throws SQLException on error
-   * @throws IllegalArgumentException if <code>rsmd</code> contains an {@link java.sql.Types#ARRAY} but the
-   *                                  <code>config</code> does not have a sub-type definition for it.
-   */
-  public static Schema jdbcToArrowSchema(ResultSetMetaData rsmd, JdbcToArrowConfig config) throws SQLException {
-    Preconditions.checkNotNull(rsmd, "JDBC ResultSetMetaData object can't be null");
-    Preconditions.checkNotNull(config, "The configuration object must not be null");
-
-    List<Field> fields = new ArrayList<>();
-    int columnCount = rsmd.getColumnCount();
-    for (int i = 1; i <= columnCount; i++) {
-      final String columnName = rsmd.getColumnName(i);
-
-      final Map<String, String> metadata;
-      if (config.shouldIncludeMetadata()) {
-        metadata = new HashMap<>();
-        metadata.put(Constants.SQL_CATALOG_NAME_KEY, rsmd.getCatalogName(i));
-        metadata.put(Constants.SQL_TABLE_NAME_KEY, rsmd.getTableName(i));
-        metadata.put(Constants.SQL_COLUMN_NAME_KEY, columnName);
-        metadata.put(Constants.SQL_TYPE_KEY, rsmd.getColumnTypeName(i));
-
-      } else {
-        metadata = null;
-      }
-
-      final ArrowType arrowType = config.getJdbcToArrowTypeConverter().apply(new JdbcFieldInfo(rsmd, i));
-      if (arrowType != null) {
-        final FieldType fieldType = new FieldType(true, arrowType, /* dictionary encoding */ null, metadata);
-
-        List<Field> children = null;
-        if (arrowType.getTypeID() == ArrowType.List.TYPE_TYPE) {
-          final JdbcFieldInfo arrayFieldInfo = getJdbcFieldInfoForArraySubType(rsmd, i, config);
-          if (arrayFieldInfo == null) {
-            throw new IllegalArgumentException("Configuration does not provide a mapping for array column " + i);
-          }
-          children = new ArrayList<Field>();
-          final ArrowType childType = config.getJdbcToArrowTypeConverter().apply(arrayFieldInfo);
-          children.add(new Field("child", FieldType.nullable(childType), null));
-        }
-
-        fields.add(new Field(columnName, fieldType, children));
-      }
-    }
-
-    return new Schema(fields, null);
-  }
-
-  /* Uses the configuration to determine what the array sub-type JdbcFieldInfo is.
-   * If no sub-type can be found, returns null.
-   */
-  private static JdbcFieldInfo getJdbcFieldInfoForArraySubType(
-      ResultSetMetaData rsmd,
-      int arrayColumn,
-      JdbcToArrowConfig config)
-          throws SQLException {
-
-    Preconditions.checkNotNull(rsmd, "ResultSet MetaData object cannot be null");
-    Preconditions.checkNotNull(config, "Configuration must not be null");
-    Preconditions.checkArgument(
-        arrayColumn > 0,
-        "ResultSetMetaData columns start with 1; column cannot be less than 1");
-    Preconditions.checkArgument(
-        arrayColumn <= rsmd.getColumnCount(),
-        "Column number cannot be more than the number of columns");
-
-    JdbcFieldInfo fieldInfo = config.getArraySubTypeByColumnIndex(arrayColumn);
-    if (fieldInfo == null) {
-      fieldInfo = config.getArraySubTypeByColumnName(rsmd.getColumnName(arrayColumn));
-    }
-    return fieldInfo;
-  }
-
-  /**
-   * Iterate the given JDBC {@link ResultSet} object to fetch the data and transpose it to populate
-   * the given Arrow Vector objects.
-   *
-   * @param rs       ResultSet to use to fetch the data from underlying database
-   * @param root     Arrow {@link VectorSchemaRoot} object to populate
-   * @param calendar The calendar to use when reading {@link Date}, {@link Time}, or {@link Timestamp}
-   *                 data types from the {@link ResultSet}, or <code>null</code> if not converting.
-   * @throws SQLException on error
-   */
-  public static void jdbcToArrowVectors(ResultSet rs, VectorSchemaRoot root, Calendar calendar)
-      throws SQLException, IOException {
-
-    Preconditions.checkNotNull(calendar, "Calendar object can't be null");
-
-    jdbcToArrowVectors(rs, root, new JdbcToArrowConfig(new RootAllocator(0), calendar));
-  }
-
-  static boolean isColumnNullable(ResultSet resultSet, int index) throws SQLException {
-    int nullableValue = resultSet.getMetaData().isNullable(index);
-    return nullableValue == ResultSetMetaData.columnNullable ||
-        nullableValue == ResultSetMetaData.columnNullableUnknown;
-  }
-
-  /**
-   * Iterate the given JDBC {@link ResultSet} object to fetch the data and transpose it to populate
-   * the given Arrow Vector objects.
-   *
-   * @param rs     ResultSet to use to fetch the data from underlying database
-   * @param root   Arrow {@link VectorSchemaRoot} object to populate
-   * @param config The configuration to use when reading the data.
-   * @throws SQLException on error
-   */
-  public static void jdbcToArrowVectors(ResultSet rs, VectorSchemaRoot root, JdbcToArrowConfig config)
-      throws SQLException, IOException {
-
-    ResultSetMetaData rsmd = rs.getMetaData();
-    int columnCount = rsmd.getColumnCount();
-
-    JdbcConsumer[] consumers = new JdbcConsumer[columnCount];
-    for (int i = 1; i <= columnCount; i++) {
-      FieldVector vector = root.getVector(rsmd.getColumnName(i));
-      consumers[i - 1] = getConsumer(vector.getField().getType(), i, isColumnNullable(rs, i), vector, config);
-    }
-
-    CompositeJdbcConsumer compositeConsumer = null;
-    // Only clean resources when occurs error,
-    // vectors within consumers are useful and users are responsible for its close.
-    try {
-      compositeConsumer = new CompositeJdbcConsumer(consumers);
-      int readRowCount = 0;
-      if (config.getTargetBatchSize() == JdbcToArrowConfig.NO_LIMIT_BATCH_SIZE) {
-        while (rs.next()) {
-          ValueVectorUtility.ensureCapacity(root, readRowCount + 1);
-          compositeConsumer.consume(rs);
-          readRowCount++;
-        }
-      } else {
-        while (rs.next() && readRowCount < config.getTargetBatchSize()) {
-          compositeConsumer.consume(rs);
-          readRowCount++;
-        }
-      }
-
-      root.setRowCount(readRowCount);
-    } catch (Exception e) {
-      // error occurs and clean up resources.
-      if (compositeConsumer != null) {
-        compositeConsumer.close();
-      }
-      throw e;
-    }
-  }
-
-  static JdbcConsumer getConsumer(ArrowType arrowType, int columnIndex, boolean nullable,
-      FieldVector vector, JdbcToArrowConfig config) {
-    final Calendar calendar = config.getCalendar();
-
-    switch (arrowType.getTypeID()) {
-      case Bool:
-        return BitConsumer.createConsumer((BitVector) vector, columnIndex, nullable);
-      case Int:
-        switch (((ArrowType.Int) arrowType).getBitWidth()) {
-          case 8:
-            return TinyIntConsumer.createConsumer((TinyIntVector) vector, columnIndex, nullable);
-          case 16:
-            return SmallIntConsumer.createConsumer((SmallIntVector) vector, columnIndex, nullable);
-          case 32:
-            return IntConsumer.createConsumer((IntVector) vector, columnIndex, nullable);
-          case 64:
-            return BigIntConsumer.createConsumer((BigIntVector) vector, columnIndex, nullable);
-          default:
-            return null;
-        }
-      case Decimal:
-        return DecimalConsumer.createConsumer((DecimalVector) vector, columnIndex, nullable);
-      case FloatingPoint:
-        switch (((ArrowType.FloatingPoint) arrowType).getPrecision()) {
-          case SINGLE:
-            return FloatConsumer.createConsumer((Float4Vector) vector, columnIndex, nullable);
-          case DOUBLE:
-            return DoubleConsumer.createConsumer((Float8Vector) vector, columnIndex, nullable);
-          default:
-            return null;
-        }
-      case Utf8:
-      case LargeUtf8:
-        return VarCharConsumer.createConsumer((VarCharVector) vector, columnIndex, nullable);
-      case Binary:
-      case LargeBinary:
-        return BinaryConsumer.createConsumer((VarBinaryVector) vector, columnIndex, nullable);
-      case Date:
-        return DateConsumer.createConsumer((DateDayVector) vector, columnIndex, nullable, calendar);
-      case Time:
-        return TimeConsumer.createConsumer((TimeMilliVector) vector, columnIndex, nullable, calendar);
-      case Timestamp:
-        if (config.getCalendar() == null) {
-          return TimestampConsumer.createConsumer((TimeStampMilliVector) vector, columnIndex, nullable);
-        } else {
-          return TimestampTZConsumer.createConsumer((TimeStampMilliTZVector) vector, columnIndex, nullable, calendar);
-        }
-      case List:
-        FieldVector childVector = ((ListVector) vector).getDataVector();
-        JdbcConsumer delegate = getConsumer(childVector.getField().getType(), JDBC_ARRAY_VALUE_COLUMN,
-            childVector.getField().isNullable(), childVector, config);
-        return ArrayConsumer.createConsumer((ListVector) vector, delegate, columnIndex, nullable);
-      case Null:
-        return new NullConsumer((NullVector) vector);
-      default:
-        // no-op, shouldn't get here
-        throw new UnsupportedOperationException();
-    }
-  }
-}
diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/consumer/ArrayConsumer.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/consumer/ArrayConsumer.java
deleted file mode 100644
index ed12f81..0000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/consumer/ArrayConsumer.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.adapter.jdbc.consumer;
-
-import java.io.IOException;
-import java.sql.Array;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-import org.apache.arrow.vector.ValueVector;
-import org.apache.arrow.vector.complex.ListVector;
-
-/**
- * Consumer which consume array type values from {@link ResultSet}.
- * Write the data to {@link org.apache.arrow.vector.complex.ListVector}.
- */
-public abstract class ArrayConsumer extends BaseConsumer<ListVector> {
-
-  /**
-   * Creates a consumer for {@link ListVector}.
-   */
-  public static ArrayConsumer createConsumer(
-          ListVector vector, JdbcConsumer delegate, int index, boolean nullable) {
-    if (nullable) {
-      return new ArrayConsumer.NullableArrayConsumer(vector, delegate, index);
-    } else {
-      return new ArrayConsumer.NonNullableArrayConsumer(vector, delegate, index);
-    }
-  }
-
-  protected final JdbcConsumer delegate;
-
-  private final ValueVector innerVector;
-
-  protected int innerVectorIndex = 0;
-
-  /**
-   * Instantiate a ArrayConsumer.
-   */
-  public ArrayConsumer(ListVector vector, JdbcConsumer delegate, int index) {
-    super(vector, index);
-    this.delegate = delegate;
-    this.innerVector = vector.getDataVector();
-  }
-
-  @Override
-  public void close() throws Exception {
-    this.vector.close();
-    this.delegate.close();
-  }
-
-  void ensureInnerVectorCapacity(int targetCapacity) {
-    while (innerVector.getValueCapacity() < targetCapacity) {
-      innerVector.reAlloc();
-    }
-  }
-
-  /**
-   * Nullable consumer for {@link ListVector}.
-   */
-  static class NullableArrayConsumer extends ArrayConsumer {
-
-    /**
-     * Instantiate a nullable array consumer.
-     */
-    public NullableArrayConsumer(ListVector vector, JdbcConsumer delegate, int index) {
-      super(vector, delegate, index);
-    }
-
-    @Override
-    public void consume(ResultSet resultSet) throws SQLException, IOException {
-      final Array array = resultSet.getArray(columnIndexInResultSet);
-      if (!resultSet.wasNull()) {
-        vector.startNewValue(currentIndex);
-        int count = 0;
-        try (ResultSet rs = array.getResultSet()) {
-          while (rs.next()) {
-            ensureInnerVectorCapacity(innerVectorIndex + count + 1);
-            delegate.consume(rs);
-            count++;
-          }
-        }
-        vector.endValue(currentIndex, count);
-        innerVectorIndex += count;
-      }
-      currentIndex++;
-    }
-  }
-
-  /**
-   * Non-nullable consumer for {@link ListVector}.
-   */
-  static class NonNullableArrayConsumer extends ArrayConsumer {
-
-    /**
-     * Instantiate a nullable array consumer.
-     */
-    public NonNullableArrayConsumer(ListVector vector, JdbcConsumer delegate, int index) {
-      super(vector, delegate, index);
-    }
-
-    @Override
-    public void consume(ResultSet resultSet) throws SQLException, IOException {
-      final Array array = resultSet.getArray(columnIndexInResultSet);
-      vector.startNewValue(currentIndex);
-      int count = 0;
-      try (ResultSet rs = array.getResultSet()) {
-        while (rs.next()) {
-          ensureInnerVectorCapacity(innerVectorIndex + count + 1);
-          delegate.consume(rs);
-          count++;
-        }
-      }
-      vector.endValue(currentIndex, count);
-      innerVectorIndex += count;
-      currentIndex++;
-    }
-  }
-}
diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/consumer/BaseConsumer.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/consumer/BaseConsumer.java
deleted file mode 100644
index 2db128d..0000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/consumer/BaseConsumer.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.adapter.jdbc.consumer;
-
-import org.apache.arrow.vector.ValueVector;
-
-/**
- * Base class for all consumers.
- * @param <V> vector type.
- */
-public abstract class BaseConsumer<V extends ValueVector> implements JdbcConsumer<V> {
-
-  protected V vector;
-
-  protected final int columnIndexInResultSet;
-
-  protected int currentIndex;
-
-  /**
-   * Constructs a new consumer.
-   * @param vector the underlying vector for the consumer.
-   * @param index the column id for the consumer.
-   */
-  public BaseConsumer(V vector, int index) {
-    this.vector = vector;
-    this.columnIndexInResultSet = index;
-  }
-
-  @Override
-  public void close() throws Exception {
-    this.vector.close();
-  }
-
-  @Override
-  public void resetValueVector(V vector) {
-    this.vector = vector;
-    this.currentIndex = 0;
-  }
-}
diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/consumer/BigIntConsumer.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/consumer/BigIntConsumer.java
deleted file mode 100644
index 19c8efa..0000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/consumer/BigIntConsumer.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.adapter.jdbc.consumer;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-import org.apache.arrow.vector.BigIntVector;
-
-/**
- * Consumer which consume bigint type values from {@link ResultSet}.
- * Write the data to {@link org.apache.arrow.vector.BigIntVector}.
- */
-public class BigIntConsumer {
-
-  /**
-   * Creates a consumer for {@link BigIntVector}.
-   */
-  public static JdbcConsumer<BigIntVector> createConsumer(BigIntVector vector, int index, boolean nullable) {
-    if (nullable) {
-      return new NullableBigIntConsumer(vector, index);
-    } else {
-      return new NonNullableBigIntConsumer(vector, index);
-    }
-  }
-
-  /**
-   * Nullable consumer for big int.
-   */
-  static class NullableBigIntConsumer extends BaseConsumer<BigIntVector> {
-
-    /**
-     * Instantiate a BigIntConsumer.
-     */
-    public NullableBigIntConsumer(BigIntVector vector, int index) {
-      super(vector, index);
-    }
-
-    @Override
-    public void consume(ResultSet resultSet) throws SQLException {
-      long value = resultSet.getLong(columnIndexInResultSet);
-      if (!resultSet.wasNull()) {
-        // for fixed width vectors, we have allocated enough memory proactively,
-        // so there is no need to call the setSafe method here.
-        vector.set(currentIndex, value);
-      }
-      currentIndex++;
-    }
-  }
-
-  /**
-   * Non-nullable consumer for big int.
-   */
-  static class NonNullableBigIntConsumer extends BaseConsumer<BigIntVector> {
-
-    /**
-     * Instantiate a BigIntConsumer.
-     */
-    public NonNullableBigIntConsumer(BigIntVector vector, int index) {
-      super(vector, index);
-    }
-
-    @Override
-    public void consume(ResultSet resultSet) throws SQLException {
-      long value = resultSet.getLong(columnIndexInResultSet);
-      // for fixed width vectors, we have allocated enough memory proactively,
-      // so there is no need to call the setSafe method here.
-      vector.set(currentIndex, value);
-      currentIndex++;
-    }
-  }
-}
diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/consumer/BinaryConsumer.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/consumer/BinaryConsumer.java
deleted file mode 100644
index 8c5f611..0000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/consumer/BinaryConsumer.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.arrow.adapter.jdbc.consumer;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-import org.apache.arrow.memory.ArrowBuf;
-import org.apache.arrow.vector.BitVectorHelper;
-import org.apache.arrow.vector.VarBinaryVector;
-
-/**
- * Consumer which consume binary type values from {@link ResultSet}.
- * Write the data to {@link org.apache.arrow.vector.VarBinaryVector}.
- */
-public abstract class BinaryConsumer extends BaseConsumer<VarBinaryVector> {
-
-  /**
-   * Creates a consumer for {@link VarBinaryVector}.
-   */
-  public static BinaryConsumer createConsumer(VarBinaryVector vector, int index, boolean nullable) {
-    if (nullable) {
-      return new NullableBinaryConsumer(vector, index);
-    } else {
-      return new NonNullableBinaryConsumer(vector, index);
-    }
-  }
-
-  private final byte[] reuseBytes = new byte[1024];
-
-  /**
-   * Instantiate a BinaryConsumer.
-   */
-  public BinaryConsumer(VarBinaryVector vector, int index) {
-    super(vector, index);
-    if (vector != null) {
-      vector.allocateNewSafe();
-    }
-  }
-
-  /**
-   * consume a InputStream.
-   */
-  public void consume(InputStream is) throws IOException {
-    if (is != null) {
-      while (currentIndex >= vector.getValueCapacity()) {
-        vector.reallocValidityAndOffsetBuffers();
-      }
-      final int startOffset = vector.getStartOffset(currentIndex);
-      final ArrowBuf offsetBuffer = vector.getOffsetBuffer();
-      int dataLength = 0;
-      int read;
-      while ((read = is.read(reuseBytes)) != -1) {
-        while (vector.getDataBuffer().capacity() < (startOffset + dataLength + read)) {
-          vector.reallocDataBuffer();
-        }
-        vector.getDataBuffer().setBytes(startOffset + dataLength, reuseBytes, 0, read);
-        dataLength += read;
-      }
-      offsetBuffer.setInt((currentIndex + 1) * VarBinaryVector.OFFSET_WIDTH, startOffset + dataLength);
-      BitVectorHelper.setBit(vector.getValidityBuffer(), currentIndex);
-      vector.setLastSet(currentIndex);
-    }
-  }
-
-  public void moveWriterPosition() {
-    currentIndex++;
-  }
-
-  @Override
-  public void resetValueVector(VarBinaryVector vector) {
-    this.vector = vector;
-    this.vector.allocateNewSafe();
-    this.currentIndex = 0;
-  }
-
-  /**
-   * Consumer for nullable binary data.
-   */
-  static class NullableBinaryConsumer extends BinaryConsumer {
-    
-    /**
-     * Instantiate a BinaryConsumer.
-     */
-    public NullableBinaryConsumer(VarBinaryVector vector, int index) {
-      super(vector, index);
-    }
-
-    @Override
-    public void consume(ResultSet resultSet) throws SQLException, IOException {
-      InputStream is = resultSet.getBinaryStream(columnIndexInResultSet);
-      if (!resultSet.wasNull()) {
-        consume(is);
-      }
... 148455 lines suppressed ...