You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ko...@apache.org on 2024/12/05 07:53:01 UTC

(arrow) branch main updated: GH-44831: [CI] Build Java for integration tests from arrow-java (#44932)

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

kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new 8ac434fb97 GH-44831: [CI] Build Java for integration tests from arrow-java (#44932)
8ac434fb97 is described below

commit 8ac434fb97ab5fb0adc7591736826b2d1db76b9d
Author: David Li <li...@gmail.com>
AuthorDate: Thu Dec 5 02:52:54 2024 -0500

    GH-44831: [CI] Build Java for integration tests from arrow-java (#44932)
    
    
    
    ### Rationale for this change
    
    We moved `java/` in apache/arrow to apache/arrow-java. We should use apache/arrow-java to integration tests.
    
    ### What changes are included in this PR?
    
    * Remove `java/`
    * Use apache/arrow-java for integration test
    
    ### Are these changes tested?
    
    Yes.
    
    ### Are there any user-facing changes?
    
    No.
    
    * GitHub Issue: #44945
    * GitHub Issue: #44831
    
    Authored-by: David Li <li...@gmail.com>
    Signed-off-by: Sutou Kouhei <ko...@clear-code.com>
---
 .github/workflows/integration.yml                  |    6 +
 ci/scripts/integration_arrow.sh                    |    6 +-
 ci/scripts/integration_arrow_build.sh              |    7 +-
 dev/archery/archery/cli.py                         |    3 +-
 dev/archery/archery/integration/tester_java.py     |    3 +-
 java/.gitattributes                                |    3 -
 java/.gitignore                                    |   23 -
 java/.mvn/develocity.xml                           |   45 -
 java/.mvn/extensions.xml                           |   33 -
 java/Brewfile                                      |   19 -
 java/CMakeLists.txt                                |  105 -
 java/README.md                                     |  139 -
 java/adapter/avro/pom.xml                          |   73 -
 java/adapter/avro/src/main/java/module-info.java   |   26 -
 .../org/apache/arrow/adapter/avro/AvroToArrow.java |   62 -
 .../arrow/adapter/avro/AvroToArrowConfig.java      |   83 -
 .../adapter/avro/AvroToArrowConfigBuilder.java     |   62 -
 .../arrow/adapter/avro/AvroToArrowUtils.java       |  827 -----
 .../adapter/avro/AvroToArrowVectorIterator.java    |  171 -
 .../adapter/avro/consumers/AvroArraysConsumer.java |   69 -
 .../avro/consumers/AvroBooleanConsumer.java        |   39 -
 .../adapter/avro/consumers/AvroBytesConsumer.java  |   45 -
 .../adapter/avro/consumers/AvroDoubleConsumer.java |   38 -
 .../adapter/avro/consumers/AvroEnumConsumer.java   |   38 -
 .../adapter/avro/consumers/AvroFixedConsumer.java  |   42 -
 .../adapter/avro/consumers/AvroFloatConsumer.java  |   38 -
 .../adapter/avro/consumers/AvroIntConsumer.java    |   37 -
 .../adapter/avro/consumers/AvroLongConsumer.java   |   38 -
 .../adapter/avro/consumers/AvroMapConsumer.java    |   74 -
 .../adapter/avro/consumers/AvroNullConsumer.java   |   37 -
 .../adapter/avro/consumers/AvroStringConsumer.java |   44 -
 .../adapter/avro/consumers/AvroStructConsumer.java |   71 -
 .../adapter/avro/consumers/AvroUnionsConsumer.java |   83 -
 .../adapter/avro/consumers/BaseAvroConsumer.java   |   66 -
 .../avro/consumers/CompositeAvroConsumer.java      |   64 -
 .../arrow/adapter/avro/consumers/Consumer.java     |   62 -
 .../arrow/adapter/avro/consumers/SkipConsumer.java |   60 -
 .../arrow/adapter/avro/consumers/SkipFunction.java |   26 -
 .../avro/consumers/logical/AvroDateConsumer.java   |   39 -
 .../consumers/logical/AvroDecimalConsumer.java     |   75 -
 .../consumers/logical/AvroTimeMicroConsumer.java   |   39 -
 .../consumers/logical/AvroTimeMillisConsumer.java  |   39 -
 .../logical/AvroTimestampMicrosConsumer.java       |   39 -
 .../logical/AvroTimestampMillisConsumer.java       |   39 -
 .../arrow/adapter/avro/AvroLogicalTypesTest.java   |  196 -
 .../arrow/adapter/avro/AvroSkipFieldTest.java      |  685 ----
 .../apache/arrow/adapter/avro/AvroTestBase.java    |  241 --
 .../adapter/avro/AvroToArrowIteratorTest.java      |  321 --
 .../apache/arrow/adapter/avro/AvroToArrowTest.java |  477 ---
 .../adapter/avro/TestWriteReadAvroRecord.java      |   85 -
 java/adapter/avro/src/test/resources/logback.xml   |   28 -
 .../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                          |  130 -
 java/adapter/jdbc/src/main/java/module-info.java   |   29 -
 .../arrow/adapter/jdbc/ArrowVectorIterator.java    |  207 --
 .../org/apache/arrow/adapter/jdbc/Constants.java   |   28 -
 .../apache/arrow/adapter/jdbc/JdbcFieldInfo.java   |  193 -
 .../arrow/adapter/jdbc/JdbcParameterBinder.java    |  150 -
 .../org/apache/arrow/adapter/jdbc/JdbcToArrow.java |   86 -
 .../arrow/adapter/jdbc/JdbcToArrowConfig.java      |  405 ---
 .../adapter/jdbc/JdbcToArrowConfigBuilder.java     |  292 --
 .../arrow/adapter/jdbc/JdbcToArrowUtils.java       |  567 ---
 .../adapter/jdbc/binder/BaseColumnBinder.java      |   44 -
 .../arrow/adapter/jdbc/binder/BigIntBinder.java    |   40 -
 .../arrow/adapter/jdbc/binder/BitBinder.java       |   44 -
 .../arrow/adapter/jdbc/binder/ColumnBinder.java    |   64 -
 .../jdbc/binder/ColumnBinderArrowTypeVisitor.java  |  297 --
 .../arrow/adapter/jdbc/binder/DateDayBinder.java   |   56 -
 .../arrow/adapter/jdbc/binder/DateMilliBinder.java |   54 -
 .../adapter/jdbc/binder/Decimal128Binder.java      |   44 -
 .../adapter/jdbc/binder/Decimal256Binder.java      |   44 -
 .../adapter/jdbc/binder/FixedSizeBinaryBinder.java |   44 -
 .../arrow/adapter/jdbc/binder/Float4Binder.java    |   40 -
 .../arrow/adapter/jdbc/binder/Float8Binder.java    |   41 -
 .../arrow/adapter/jdbc/binder/IntBinder.java       |   40 -
 .../arrow/adapter/jdbc/binder/ListBinder.java      |   77 -
 .../arrow/adapter/jdbc/binder/MapBinder.java       |   87 -
 .../adapter/jdbc/binder/NullableColumnBinder.java  |   50 -
 .../arrow/adapter/jdbc/binder/SmallIntBinder.java  |   41 -
 .../arrow/adapter/jdbc/binder/Time32Binder.java    |   62 -
 .../arrow/adapter/jdbc/binder/Time64Binder.java    |   61 -
 .../arrow/adapter/jdbc/binder/TimeStampBinder.java |  102 -
 .../arrow/adapter/jdbc/binder/TinyIntBinder.java   |   40 -
 .../arrow/adapter/jdbc/binder/VarBinaryBinder.java |   64 -
 .../arrow/adapter/jdbc/binder/VarCharBinder.java   |   65 -
 .../arrow/adapter/jdbc/binder/package-info.java    |   19 -
 .../arrow/adapter/jdbc/consumer/ArrayConsumer.java |  131 -
 .../arrow/adapter/jdbc/consumer/BaseConsumer.java  |   55 -
 .../adapter/jdbc/consumer/BigIntConsumer.java      |   76 -
 .../adapter/jdbc/consumer/BinaryConsumer.java      |  120 -
 .../arrow/adapter/jdbc/consumer/BitConsumer.java   |   76 -
 .../arrow/adapter/jdbc/consumer/BlobConsumer.java  |   65 -
 .../arrow/adapter/jdbc/consumer/ClobConsumer.java  |  146 -
 .../jdbc/consumer/CompositeJdbcConsumer.java       |   80 -
 .../arrow/adapter/jdbc/consumer/DateConsumer.java  |  102 -
 .../adapter/jdbc/consumer/Decimal256Consumer.java  |  115 -
 .../adapter/jdbc/consumer/DecimalConsumer.java     |  114 -
 .../adapter/jdbc/consumer/DoubleConsumer.java      |   76 -
 .../arrow/adapter/jdbc/consumer/FloatConsumer.java |   76 -
 .../arrow/adapter/jdbc/consumer/IntConsumer.java   |   76 -
 .../arrow/adapter/jdbc/consumer/JdbcConsumer.java  |   40 -
 .../arrow/adapter/jdbc/consumer/MapConsumer.java   |   97 -
 .../arrow/adapter/jdbc/consumer/NullConsumer.java  |   35 -
 .../adapter/jdbc/consumer/SmallIntConsumer.java    |   76 -
 .../arrow/adapter/jdbc/consumer/TimeConsumer.java  |  100 -
 .../adapter/jdbc/consumer/TimestampConsumer.java   |   77 -
 .../adapter/jdbc/consumer/TimestampTZConsumer.java |   87 -
 .../adapter/jdbc/consumer/TinyIntConsumer.java     |   76 -
 .../adapter/jdbc/consumer/VarCharConsumer.java     |   75 -
 .../consumer/exceptions/JdbcConsumerException.java |   52 -
 .../adapter/jdbc/AbstractJdbcToArrowTest.java      |  393 --
 .../arrow/adapter/jdbc/JdbcFieldInfoTest.java      |   43 -
 .../adapter/jdbc/JdbcParameterBinderTest.java      | 1019 ------
 .../jdbc/JdbcToArrowCommentMetadataTest.java       |  263 --
 .../arrow/adapter/jdbc/JdbcToArrowConfigTest.java  |  197 -
 .../arrow/adapter/jdbc/JdbcToArrowTestHelper.java  |  487 ---
 .../arrow/adapter/jdbc/MockPreparedStatement.java  |  535 ---
 .../arrow/adapter/jdbc/ResultSetUtility.java       | 1751 ---------
 .../arrow/adapter/jdbc/ResultSetUtilityTest.java   |  110 -
 .../java/org/apache/arrow/adapter/jdbc/Table.java  |  219 --
 .../arrow/adapter/jdbc/UnreliableMetaDataTest.java |  308 --
 .../jdbc/consumer/AbstractConsumerTest.java        |   37 -
 .../adapter/jdbc/consumer/BinaryConsumerTest.java  |  123 -
 .../adapter/jdbc/h2/JdbcAliasToArrowTest.java      |  134 -
 .../adapter/jdbc/h2/JdbcToArrowArrayTest.java      |  384 --
 .../adapter/jdbc/h2/JdbcToArrowCharSetTest.java    |  174 -
 .../adapter/jdbc/h2/JdbcToArrowDataTypesTest.java  |  357 --
 .../jdbc/h2/JdbcToArrowMapDataTypeTest.java        |   86 -
 .../arrow/adapter/jdbc/h2/JdbcToArrowNullTest.java |  359 --
 .../jdbc/h2/JdbcToArrowOptionalColumnsTest.java    |   86 -
 .../arrow/adapter/jdbc/h2/JdbcToArrowTest.java     |  292 --
 .../adapter/jdbc/h2/JdbcToArrowTimeZoneTest.java   |  190 -
 .../jdbc/h2/JdbcToArrowVectorIteratorTest.java     |  579 ---
 .../adapter/jdbc/src/test/resources/h2/comment.sql |   21 -
 .../test/resources/h2/test1_all_datatypes_h2.yml   |  123 -
 .../resources/h2/test1_all_datatypes_null_h2.yml   |   55 -
 .../test1_all_datatypes_selected_null_rows_h2.yml  |   91 -
 .../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_list_h2.yml   |   46 -
 .../jdbc/src/test/resources/h2/test1_map_h2.yml    |   33 -
 .../test/resources/h2/test1_null_and_notnull.yml   |   26 -
 .../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        |   49 -
 .../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                    |   47 -
 java/adapter/orc/pom.xml                           |  174 -
 java/adapter/orc/src/main/cpp/concurrent_map.h     |   77 -
 java/adapter/orc/src/main/cpp/jni_wrapper.cpp      |  306 --
 java/adapter/orc/src/main/java/module-info.java    |   24 -
 .../org/apache/arrow/adapter/orc/OrcFieldNode.java |   43 -
 .../org/apache/arrow/adapter/orc/OrcJniUtils.java  |   76 -
 .../arrow/adapter/orc/OrcMemoryJniWrapper.java     |   78 -
 .../org/apache/arrow/adapter/orc/OrcReader.java    |   88 -
 .../arrow/adapter/orc/OrcReaderJniWrapper.java     |   81 -
 .../apache/arrow/adapter/orc/OrcRecordBatch.java   |   43 -
 .../arrow/adapter/orc/OrcReferenceManager.java     |  122 -
 .../apache/arrow/adapter/orc/OrcStripeReader.java  |  104 -
 .../adapter/orc/OrcStripeReaderJniWrapper.java     |   44 -
 .../apache/arrow/adapter/orc/OrcReaderTest.java    |  100 -
 java/algorithm/pom.xml                             |   58 -
 java/algorithm/src/main/java/module-info.java      |   29 -
 .../algorithm/deduplicate/DeduplicationUtils.java  |   96 -
 .../deduplicate/VectorRunDeduplicator.java         |  111 -
 .../algorithm/dictionary/DictionaryBuilder.java    |   70 -
 .../algorithm/dictionary/DictionaryEncoder.java    |   40 -
 .../HashTableBasedDictionaryBuilder.java           |  143 -
 .../dictionary/HashTableDictionaryEncoder.java     |  133 -
 .../dictionary/LinearDictionaryEncoder.java        |  112 -
 .../dictionary/SearchDictionaryEncoder.java        |   95 -
 .../SearchTreeBasedDictionaryBuilder.java          |  140 -
 .../arrow/algorithm/misc/PartialSumUtils.java      |  116 -
 .../apache/arrow/algorithm/rank/VectorRank.java    |   88 -
 .../arrow/algorithm/search/ParallelSearcher.java   |  186 -
 .../algorithm/search/VectorRangeSearcher.java      |  105 -
 .../arrow/algorithm/search/VectorSearcher.java     |   84 -
 .../algorithm/sort/CompositeVectorComparator.java  |   68 -
 .../algorithm/sort/DefaultVectorComparators.java   |  858 -----
 .../sort/FixedWidthInPlaceVectorSorter.java        |  164 -
 .../sort/FixedWidthOutOfPlaceVectorSorter.java     |   88 -
 .../sort/GeneralOutOfPlaceVectorSorter.java        |   61 -
 .../arrow/algorithm/sort/InPlaceVectorSorter.java  |   36 -
 .../apache/arrow/algorithm/sort/IndexSorter.java   |  175 -
 .../arrow/algorithm/sort/InsertionSorter.java      |   71 -
 .../arrow/algorithm/sort/OffHeapIntStack.java      |   69 -
 .../algorithm/sort/OutOfPlaceVectorSorter.java     |   37 -
 .../algorithm/sort/StableVectorComparator.java     |   67 -
 .../sort/VariableWidthOutOfPlaceVectorSorter.java  |  105 -
 .../algorithm/sort/VectorValueComparator.java      |  144 -
 .../deduplicate/TestDeduplicationUtils.java        |  137 -
 .../deduplicate/TestVectorRunDeduplicator.java     |  128 -
 .../TestHashTableBasedDictionaryBuilder.java       |  213 --
 .../dictionary/TestHashTableDictionaryEncoder.java |  358 --
 .../dictionary/TestLinearDictionaryEncoder.java    |  357 --
 .../dictionary/TestSearchDictionaryEncoder.java    |  364 --
 .../TestSearchTreeBasedDictionaryBuilder.java      |  248 --
 .../arrow/algorithm/misc/TestPartialSumUtils.java  |  138 -
 .../arrow/algorithm/rank/TestVectorRank.java       |  145 -
 .../algorithm/search/TestParallelSearcher.java     |  155 -
 .../algorithm/search/TestVectorRangeSearcher.java  |  186 -
 .../arrow/algorithm/search/TestVectorSearcher.java |  297 --
 .../sort/TestCompositeVectorComparator.java        |  110 -
 .../sort/TestDefaultVectorComparator.java          | 1112 ------
 .../sort/TestFixedWidthInPlaceVectorSorter.java    |  237 --
 .../sort/TestFixedWidthOutOfPlaceVectorSorter.java |  387 --
 .../algorithm/sort/TestFixedWidthSorting.java      |  188 -
 .../sort/TestGeneralOutOfPlaceVectorSorter.java    |  147 -
 .../arrow/algorithm/sort/TestIndexSorter.java      |  204 --
 .../arrow/algorithm/sort/TestInsertionSorter.java  |  114 -
 .../arrow/algorithm/sort/TestOffHeapIntStack.java  |   64 -
 .../algorithm/sort/TestOutOfPlaceVectorSorter.java |   34 -
 .../arrow/algorithm/sort/TestSortingUtil.java      |  173 -
 .../algorithm/sort/TestStableVectorComparator.java |  148 -
 .../TestVariableWidthOutOfPlaceVectorSorter.java   |  114 -
 .../algorithm/sort/TestVariableWidthSorting.java   |  155 -
 java/algorithm/src/test/resources/logback.xml      |   28 -
 java/api-changes.md                                |   32 -
 java/bom/pom.xml                                   |  283 --
 java/c/CMakeLists.txt                              |   40 -
 java/c/README.md                                   |   54 -
 java/c/pom.xml                                     |  106 -
 java/c/src/main/cpp/abi.h                          |  111 -
 java/c/src/main/cpp/jni_wrapper.cc                 |  523 ---
 java/c/src/main/java/module-info.java              |   27 -
 .../java/org/apache/arrow/c/ArrayExporter.java     |  133 -
 .../java/org/apache/arrow/c/ArrayImporter.java     |  144 -
 .../org/apache/arrow/c/ArrayStreamExporter.java    |  109 -
 .../main/java/org/apache/arrow/c/ArrowArray.java   |  191 -
 .../java/org/apache/arrow/c/ArrowArrayStream.java  |  188 -
 .../org/apache/arrow/c/ArrowArrayStreamReader.java |   92 -
 .../main/java/org/apache/arrow/c/ArrowSchema.java  |  180 -
 .../main/java/org/apache/arrow/c/BaseStruct.java   |   38 -
 .../apache/arrow/c/BufferImportTypeVisitor.java    |  423 ---
 .../apache/arrow/c/CDataDictionaryProvider.java    |   68 -
 java/c/src/main/java/org/apache/arrow/c/Data.java  |  411 ---
 java/c/src/main/java/org/apache/arrow/c/Flags.java |   47 -
 .../c/src/main/java/org/apache/arrow/c/Format.java |  383 --
 .../src/main/java/org/apache/arrow/c/Metadata.java |   99 -
 .../main/java/org/apache/arrow/c/NativeUtil.java   |  136 -
 .../apache/arrow/c/ReferenceCountedArrowArray.java |   76 -
 .../java/org/apache/arrow/c/SchemaExporter.java    |  126 -
 .../java/org/apache/arrow/c/SchemaImporter.java    |  111 -
 .../org/apache/arrow/c/StructVectorLoader.java     |  178 -
 .../org/apache/arrow/c/StructVectorUnloader.java   |  127 -
 .../org/apache/arrow/c/jni/CDataJniException.java  |   37 -
 .../java/org/apache/arrow/c/jni/JniLoader.java     |  111 -
 .../java/org/apache/arrow/c/jni/JniWrapper.java    |   54 -
 .../java/org/apache/arrow/c/jni/PrivateData.java   |   30 -
 .../org/apache/arrow/c/ArrowArrayUtilityTest.java  |  186 -
 .../java/org/apache/arrow/c/DictionaryTest.java    |  352 --
 .../test/java/org/apache/arrow/c/FlagsTest.java    |   93 -
 .../test/java/org/apache/arrow/c/FormatTest.java   |  159 -
 .../test/java/org/apache/arrow/c/MetadataTest.java |  106 -
 .../java/org/apache/arrow/c/NativeUtilTest.java    |   79 -
 .../java/org/apache/arrow/c/RoundtripTest.java     | 1095 ------
 .../test/java/org/apache/arrow/c/StreamTest.java   |  435 ---
 java/c/src/test/python/integration_tests.py        |  418 ---
 java/compression/pom.xml                           |   61 -
 java/compression/src/main/java/module-info.java    |   31 -
 .../compression/CommonsCompressionFactory.java     |   54 -
 .../arrow/compression/Lz4CompressionCodec.java     |   93 -
 .../arrow/compression/ZstdCompressionCodec.java    |   89 -
 ...row.vector.compression.CompressionCodec$Factory |   15 -
 .../TestArrowReaderWriterWithCompression.java      |  287 --
 .../arrow/compression/TestCompressionCodec.java    |  387 --
 .../TestCompressionCodecServiceProvider.java       |   50 -
 java/compression/src/test/resources/logback.xml    |   28 -
 java/dataset/CMakeLists.txt                        |   58 -
 java/dataset/pom.xml                               |  216 --
 java/dataset/src/main/cpp/jni_util.cc              |  377 --
 java/dataset/src/main/cpp/jni_util.h               |  176 -
 java/dataset/src/main/cpp/jni_util_test.cc         |  135 -
 java/dataset/src/main/cpp/jni_wrapper.cc           | 1013 ------
 java/dataset/src/main/java/module-info.java        |   29 -
 .../arrow/dataset/file/DatasetFileWriter.java      |   73 -
 .../org/apache/arrow/dataset/file/FileFormat.java  |   37 -
 .../dataset/file/FileSystemDatasetFactory.java     |   71 -
 .../org/apache/arrow/dataset/file/JniWrapper.java  |   80 -
 .../dataset/jni/DirectReservationListener.java     |  127 -
 .../arrow/dataset/jni/JniExceptionDescriber.java   |   39 -
 .../org/apache/arrow/dataset/jni/JniLoader.java    |  120 -
 .../org/apache/arrow/dataset/jni/JniWrapper.java   |  127 -
 .../apache/arrow/dataset/jni/NativeContext.java    |   46 -
 .../apache/arrow/dataset/jni/NativeDataset.java    |   71 -
 .../arrow/dataset/jni/NativeDatasetFactory.java    |  101 -
 .../jni/NativeInstanceReleasedException.java       |   28 -
 .../apache/arrow/dataset/jni/NativeMemoryPool.java |   65 -
 .../apache/arrow/dataset/jni/NativeScanTask.java   |   46 -
 .../apache/arrow/dataset/jni/NativeScanner.java    |  172 -
 .../arrow/dataset/jni/ReservationListener.java     |   31 -
 .../arrow/dataset/scanner/ArrowScannerReader.java  |  118 -
 .../arrow/dataset/scanner/FragmentScanOptions.java |   26 -
 .../apache/arrow/dataset/scanner/ScanOptions.java  |  175 -
 .../org/apache/arrow/dataset/scanner/ScanTask.java |   31 -
 .../org/apache/arrow/dataset/scanner/Scanner.java  |   48 -
 .../dataset/scanner/csv/CsvConvertOptions.java     |   48 -
 .../scanner/csv/CsvFragmentScanOptions.java        |   97 -
 .../org/apache/arrow/dataset/source/Dataset.java   |   32 -
 .../arrow/dataset/source/DatasetFactory.java       |   49 -
 .../dataset/substrait/AceroSubstraitConsumer.java  |  137 -
 .../apache/arrow/dataset/substrait/JniWrapper.java |   73 -
 .../org/apache/arrow/dataset/utils/MapUtil.java    |   43 -
 .../org/apache/arrow/dataset/OrcWriteSupport.java  |   42 -
 .../apache/arrow/dataset/ParquetWriteSupport.java  |  138 -
 .../org/apache/arrow/dataset/TestAllTypes.java     |  286 --
 .../java/org/apache/arrow/dataset/TestDataset.java |  163 -
 .../arrow/dataset/TestFragmentScanOptions.java     |  346 --
 .../arrow/dataset/TextBasedWriteSupport.java       |   65 -
 .../arrow/dataset/file/TestDatasetFileWriter.java  |  106 -
 .../arrow/dataset/file/TestFileSystemDataset.java  |  598 ----
 .../dataset/file/TestFileSystemDatasetFactory.java |   58 -
 .../arrow/dataset/jni/TestNativeDataset.java       |   33 -
 .../arrow/dataset/jni/TestReservationListener.java |  130 -
 .../substrait/TestAceroSubstraitConsumer.java      |  640 ----
 .../src/test/resources/avroschema/user.avsc        |   26 -
 java/dataset/src/test/resources/data/student.csv   |    4 -
 .../resources/substrait/local_files_users.json     |   75 -
 .../resources/substrait/named_table_users.json     |   70 -
 java/dev/checkstyle/checkstyle.xml                 |  235 --
 java/dev/checkstyle/suppressions.xml               |   47 -
 java/dev/license/asf-java.license                  |   16 -
 java/dev/license/asf-xml.license                   |   19 -
 java/flight/flight-core/README.md                  |   30 -
 java/flight/flight-core/pom.xml                    |  205 --
 .../flight-core/src/main/java/module-info.java     |   44 -
 .../main/java/org/apache/arrow/flight/Action.java  |   59 -
 .../java/org/apache/arrow/flight/ActionType.java   |   61 -
 .../java/org/apache/arrow/flight/ArrowMessage.java |  583 ---
 .../org/apache/arrow/flight/AsyncPutListener.java  |   69 -
 .../apache/arrow/flight/BackpressureStrategy.java  |  155 -
 .../java/org/apache/arrow/flight/CallHeaders.java  |   54 -
 .../java/org/apache/arrow/flight/CallInfo.java     |   30 -
 .../java/org/apache/arrow/flight/CallOption.java   |   20 -
 .../java/org/apache/arrow/flight/CallOptions.java  |   56 -
 .../java/org/apache/arrow/flight/CallStatus.java   |  138 -
 .../arrow/flight/CancelFlightInfoRequest.java      |   71 -
 .../arrow/flight/CancelFlightInfoResult.java       |  122 -
 .../java/org/apache/arrow/flight/CancelStatus.java |   36 -
 .../apache/arrow/flight/CloseSessionRequest.java   |   56 -
 .../apache/arrow/flight/CloseSessionResult.java    |   96 -
 .../java/org/apache/arrow/flight/Criteria.java     |   54 -
 .../org/apache/arrow/flight/DictionaryUtils.java   |  136 -
 .../apache/arrow/flight/ErrorFlightMetadata.java   |   74 -
 .../apache/arrow/flight/FlightBindingService.java  |  186 -
 .../org/apache/arrow/flight/FlightCallHeaders.java |  113 -
 .../java/org/apache/arrow/flight/FlightClient.java |  956 -----
 .../arrow/flight/FlightClientMiddleware.java       |   44 -
 .../org/apache/arrow/flight/FlightConstants.java   |   59 -
 .../org/apache/arrow/flight/FlightDescriptor.java  |  178 -
 .../org/apache/arrow/flight/FlightEndpoint.java    |  241 --
 .../org/apache/arrow/flight/FlightGrpcUtils.java   |  166 -
 .../java/org/apache/arrow/flight/FlightInfo.java   |  394 --
 .../java/org/apache/arrow/flight/FlightMethod.java |   64 -
 .../org/apache/arrow/flight/FlightProducer.java    |  181 -
 .../arrow/flight/FlightRuntimeException.java       |   43 -
 .../java/org/apache/arrow/flight/FlightServer.java |  556 ---
 .../arrow/flight/FlightServerMiddleware.java       |  103 -
 .../org/apache/arrow/flight/FlightService.java     |  471 ---
 .../org/apache/arrow/flight/FlightStatusCode.java  |   61 -
 .../java/org/apache/arrow/flight/FlightStream.java |  535 ---
 .../arrow/flight/GetSessionOptionsRequest.java     |   56 -
 .../arrow/flight/GetSessionOptionsResult.java      |   85 -
 .../org/apache/arrow/flight/HeaderCallOption.java  |   49 -
 .../java/org/apache/arrow/flight/Location.java     |  173 -
 .../org/apache/arrow/flight/LocationSchemes.java   |   30 -
 .../apache/arrow/flight/NoOpFlightProducer.java    |   57 -
 .../flight/NoOpSessionOptionValueVisitor.java      |   61 -
 .../apache/arrow/flight/NoOpStreamListener.java    |   46 -
 .../arrow/flight/OutboundStreamListener.java       |  125 -
 .../arrow/flight/OutboundStreamListenerImpl.java   |  139 -
 .../java/org/apache/arrow/flight/PollInfo.java     |  171 -
 .../java/org/apache/arrow/flight/PutResult.java    |  100 -
 .../arrow/flight/RenewFlightEndpointRequest.java   |   71 -
 .../org/apache/arrow/flight/RequestContext.java    |   52 -
 .../main/java/org/apache/arrow/flight/Result.java  |   46 -
 .../java/org/apache/arrow/flight/SchemaResult.java |   89 -
 .../arrow/flight/ServerHeaderMiddleware.java       |   52 -
 .../arrow/flight/ServerSessionMiddleware.java      |  224 --
 .../apache/arrow/flight/SessionOptionValue.java    |   87 -
 .../arrow/flight/SessionOptionValueFactory.java    |  285 --
 .../arrow/flight/SessionOptionValueVisitor.java    |   47 -
 .../arrow/flight/SetSessionOptionsRequest.java     |   86 -
 .../arrow/flight/SetSessionOptionsResult.java      |  148 -
 .../java/org/apache/arrow/flight/StreamPipe.java   |  115 -
 .../org/apache/arrow/flight/SyncPutListener.java   |  124 -
 .../main/java/org/apache/arrow/flight/Ticket.java  |   95 -
 .../apache/arrow/flight/auth/AuthConstants.java    |   51 -
 .../arrow/flight/auth/BasicClientAuthHandler.java  |   53 -
 .../arrow/flight/auth/BasicServerAuthHandler.java  |   66 -
 .../arrow/flight/auth/ClientAuthHandler.java       |   51 -
 .../arrow/flight/auth/ClientAuthInterceptor.java   |   69 -
 .../arrow/flight/auth/ClientAuthWrapper.java       |  156 -
 .../arrow/flight/auth/ServerAuthHandler.java       |   76 -
 .../arrow/flight/auth/ServerAuthInterceptor.java   |   86 -
 .../arrow/flight/auth/ServerAuthWrapper.java       |  142 -
 .../apache/arrow/flight/auth2/Auth2Constants.java  |   27 -
 .../apache/arrow/flight/auth2/AuthUtilities.java   |   41 -
 .../flight/auth2/BasicAuthCredentialWriter.java    |   44 -
 .../flight/auth2/BasicCallHeaderAuthenticator.java |   85 -
 .../arrow/flight/auth2/BearerCredentialWriter.java |   36 -
 .../flight/auth2/BearerTokenAuthenticator.java     |   63 -
 .../flight/auth2/CallHeaderAuthenticator.java      |   88 -
 .../flight/auth2/ClientBearerHeaderHandler.java    |   35 -
 .../arrow/flight/auth2/ClientHandshakeWrapper.java |   94 -
 .../arrow/flight/auth2/ClientHeaderHandler.java    |   41 -
 .../auth2/ClientIncomingAuthHeaderMiddleware.java  |   73 -
 .../auth2/GeneratedBearerTokenAuthenticator.java   |  133 -
 .../auth2/ServerCallHeaderAuthMiddleware.java      |   71 -
 .../flight/client/ClientCookieMiddleware.java      |  124 -
 .../arrow/flight/grpc/AddWritableBuffer.java       |  134 -
 .../arrow/flight/grpc/CallCredentialAdapter.java   |   49 -
 .../flight/grpc/ClientInterceptorAdapter.java      |  153 -
 .../grpc/ContextPropagatingExecutorService.java    |  122 -
 .../arrow/flight/grpc/CredentialCallOption.java    |   36 -
 .../arrow/flight/grpc/GetReadableBuffer.java       |   99 -
 .../apache/arrow/flight/grpc/MetadataAdapter.java  |   98 -
 .../arrow/flight/grpc/RequestContextAdapter.java   |   52 -
 .../ServerBackpressureThresholdInterceptor.java    |   42 -
 .../flight/grpc/ServerInterceptorAdapter.java      |  157 -
 .../org/apache/arrow/flight/grpc/StatusUtils.java  |  254 --
 .../org/apache/arrow/flight/FlightTestUtil.java    |  110 -
 .../org/apache/arrow/flight/TestActionType.java    |   32 -
 .../arrow/flight/TestApplicationMetadata.java      |  353 --
 .../java/org/apache/arrow/flight/TestAuth.java     |  110 -
 .../org/apache/arrow/flight/TestBackPressure.java  |  272 --
 .../apache/arrow/flight/TestBasicOperation.java    |  686 ----
 .../org/apache/arrow/flight/TestCallOptions.java   |  201 --
 .../apache/arrow/flight/TestClientMiddleware.java  |  372 --
 .../apache/arrow/flight/TestDictionaryUtils.java   |   88 -
 .../org/apache/arrow/flight/TestDoExchange.java    |  672 ----
 .../org/apache/arrow/flight/TestErrorMetadata.java |  168 -
 .../org/apache/arrow/flight/TestFlightClient.java  |  254 --
 .../apache/arrow/flight/TestFlightGrpcUtils.java   |  192 -
 .../org/apache/arrow/flight/TestFlightService.java |  228 --
 .../org/apache/arrow/flight/TestLargeMessage.java  |  156 -
 .../java/org/apache/arrow/flight/TestLeak.java     |  191 -
 .../apache/arrow/flight/TestMetadataVersion.java   |  345 --
 .../apache/arrow/flight/TestServerMiddleware.java  |  377 --
 .../org/apache/arrow/flight/TestServerOptions.java |  217 --
 .../test/java/org/apache/arrow/flight/TestTls.java |  139 -
 .../apache/arrow/flight/auth/TestBasicAuth.java    |  183 -
 .../apache/arrow/flight/auth2/TestBasicAuth2.java  |  234 --
 .../arrow/flight/client/CustomHeaderTest.java      |  227 --
 .../arrow/flight/client/TestCookieHandling.java    |  266 --
 .../apache/arrow/flight/grpc/TestStatusUtils.java  |   73 -
 .../arrow/flight/perf/PerformanceTestServer.java   |  212 --
 .../org/apache/arrow/flight/perf/TestPerf.java     |  206 --
 java/flight/flight-core/src/test/proto/perf.proto  |   45 -
 java/flight/flight-core/src/test/proto/test.proto  |   26 -
 .../flight-core/src/test/resources/logback.xml     |   28 -
 java/flight/flight-integration-tests/pom.xml       |  100 -
 .../AppMetadataFlightInfoEndpointScenario.java     |   76 -
 .../integration/tests/AuthBasicProtoScenario.java  |  100 -
 .../integration/tests/DoExchangeEchoScenario.java  |   95 -
 .../integration/tests/DoExchangeProducer.java      |   82 -
 .../ExpirationTimeCancelFlightInfoScenario.java    |   64 -
 .../tests/ExpirationTimeDoGetScenario.java         |   97 -
 .../tests/ExpirationTimeListActionsScenario.java   |   54 -
 .../integration/tests/ExpirationTimeProducer.java  |  239 --
 .../ExpirationTimeRenewFlightEndpointScenario.java |   63 -
 .../tests/FlightSqlExtensionScenario.java          |  190 -
 .../tests/FlightSqlIngestionScenario.java          |  106 -
 .../integration/tests/FlightSqlScenario.java       |  276 --
 .../tests/FlightSqlScenarioProducer.java           |  834 -----
 .../integration/tests/IntegrationAssertions.java   |  110 -
 .../integration/tests/IntegrationProducer.java     |  210 --
 .../integration/tests/IntegrationTestClient.java   |  213 --
 .../integration/tests/IntegrationTestServer.java   |   97 -
 .../tests/LocationReuseConnectionScenario.java     |   65 -
 .../integration/tests/MiddlewareScenario.java      |  168 -
 .../flight/integration/tests/OrderedScenario.java  |  161 -
 .../integration/tests/PollFlightInfoProducer.java  |   59 -
 .../integration/tests/PollFlightInfoScenario.java  |   64 -
 .../arrow/flight/integration/tests/Scenario.java   |   36 -
 .../arrow/flight/integration/tests/Scenarios.java  |  101 -
 .../integration/tests/SessionOptionsProducer.java  |  112 -
 .../integration/tests/SessionOptionsScenario.java  |  129 -
 .../tests/TestBufferAllocationListener.java        |   73 -
 .../flight/integration/tests/IntegrationTest.java  |  145 -
 .../src/test/resources/logback.xml                 |   28 -
 .../flight-sql-jdbc-core/jdbc-spotbugs-exclude.xml |   40 -
 java/flight/flight-sql-jdbc-core/pom.xml           |  153 -
 .../arrow/driver/jdbc/ArrowDatabaseMetadata.java   | 1279 -------
 .../arrow/driver/jdbc/ArrowFlightConnection.java   |  198 --
 .../driver/jdbc/ArrowFlightInfoStatement.java      |   36 -
 .../arrow/driver/jdbc/ArrowFlightJdbcArray.java    |  174 -
 .../ArrowFlightJdbcConnectionPoolDataSource.java   |  119 -
 .../arrow/driver/jdbc/ArrowFlightJdbcCursor.java   |  100 -
 .../driver/jdbc/ArrowFlightJdbcDataSource.java     |  127 -
 .../arrow/driver/jdbc/ArrowFlightJdbcDriver.java   |  283 --
 .../arrow/driver/jdbc/ArrowFlightJdbcFactory.java  |  132 -
 .../jdbc/ArrowFlightJdbcFlightStreamResultSet.java |  264 --
 .../jdbc/ArrowFlightJdbcPooledConnection.java      |  107 -
 .../arrow/driver/jdbc/ArrowFlightJdbcTime.java     |  105 -
 .../ArrowFlightJdbcVectorSchemaRootResultSet.java  |  146 -
 .../arrow/driver/jdbc/ArrowFlightMetaImpl.java     |  303 --
 .../driver/jdbc/ArrowFlightPreparedStatement.java  |   81 -
 .../arrow/driver/jdbc/ArrowFlightStatement.java    |   61 -
 .../jdbc/accessor/ArrowFlightJdbcAccessor.java     |  254 --
 .../accessor/ArrowFlightJdbcAccessorFactory.java   |  212 --
 .../impl/ArrowFlightJdbcNullVectorAccessor.java    |   45 -
 .../ArrowFlightJdbcBinaryVectorAccessor.java       |  140 -
 .../ArrowFlightJdbcDateVectorAccessor.java         |  137 -
 .../calendar/ArrowFlightJdbcDateVectorGetter.java  |   63 -
 .../ArrowFlightJdbcDurationVectorAccessor.java     |   51 -
 .../ArrowFlightJdbcIntervalVectorAccessor.java     |  160 -
 .../ArrowFlightJdbcTimeStampVectorAccessor.java    |  180 -
 .../ArrowFlightJdbcTimeStampVectorGetter.java      |  152 -
 .../ArrowFlightJdbcTimeVectorAccessor.java         |  165 -
 .../calendar/ArrowFlightJdbcTimeVectorGetter.java  |   85 -
 .../AbstractArrowFlightJdbcListVectorAccessor.java |   72 -
 ...AbstractArrowFlightJdbcUnionVectorAccessor.java |  255 --
 .../ArrowFlightJdbcDenseUnionVectorAccessor.java   |   62 -
 ...ArrowFlightJdbcFixedSizeListVectorAccessor.java |   67 -
 .../ArrowFlightJdbcLargeListVectorAccessor.java    |   67 -
 .../complex/ArrowFlightJdbcListVectorAccessor.java |   69 -
 .../complex/ArrowFlightJdbcMapVectorAccessor.java  |   91 -
 .../ArrowFlightJdbcStructVectorAccessor.java       |   73 -
 .../ArrowFlightJdbcUnionVectorAccessor.java        |   61 -
 .../ArrowFlightJdbcBaseIntVectorAccessor.java      |  217 --
 .../numeric/ArrowFlightJdbcBitVectorAccessor.java  |  114 -
 .../ArrowFlightJdbcDecimalVectorAccessor.java      |  133 -
 .../ArrowFlightJdbcFloat4VectorAccessor.java       |  130 -
 .../ArrowFlightJdbcFloat8VectorAccessor.java       |  128 -
 .../impl/numeric/ArrowFlightJdbcNumericGetter.java |  207 --
 .../text/ArrowFlightJdbcVarCharVectorAccessor.java |  255 --
 .../jdbc/client/ArrowFlightSqlClientHandler.java   |  926 -----
 .../jdbc/client/CloseableEndpointStreamPair.java   |   43 -
 .../client/utils/ClientAuthenticationUtils.java    |  310 --
 .../jdbc/converter/AvaticaParameterConverter.java  |   46 -
 .../impl/BaseAvaticaParameterConverter.java        |   42 -
 .../impl/BinaryAvaticaParameterConverter.java      |   45 -
 .../impl/BinaryViewAvaticaParameterConverter.java  |   39 -
 .../impl/BoolAvaticaParameterConverter.java        |   45 -
 .../impl/DateAvaticaParameterConverter.java        |   49 -
 .../impl/DecimalAvaticaParameterConverter.java     |   46 -
 .../impl/DurationAvaticaParameterConverter.java    |   39 -
 .../FixedSizeBinaryAvaticaParameterConverter.java  |   45 -
 .../FixedSizeListAvaticaParameterConverter.java    |   82 -
 .../FloatingPointAvaticaParameterConverter.java    |   49 -
 .../impl/IntAvaticaParameterConverter.java         |   76 -
 .../impl/IntervalAvaticaParameterConverter.java    |   45 -
 .../impl/LargeBinaryAvaticaParameterConverter.java |   45 -
 .../impl/LargeListAvaticaParameterConverter.java   |   72 -
 .../impl/LargeUtf8AvaticaParameterConverter.java   |   46 -
 .../impl/ListAvaticaParameterConverter.java        |   71 -
 .../impl/MapAvaticaParameterConverter.java         |   39 -
 .../impl/NullAvaticaParameterConverter.java        |   47 -
 .../impl/StructAvaticaParameterConverter.java      |   39 -
 .../impl/TimeAvaticaParameterConverter.java        |   57 -
 .../impl/TimestampAvaticaParameterConverter.java   |   73 -
 .../impl/UnionAvaticaParameterConverter.java       |   39 -
 .../impl/Utf8AvaticaParameterConverter.java        |   46 -
 .../impl/Utf8ViewAvaticaParameterConverter.java    |   39 -
 .../utils/ArrowFlightConnectionConfigImpl.java     |  333 --
 .../driver/jdbc/utils/AvaticaParameterBinder.java  |  291 --
 .../arrow/driver/jdbc/utils/ConnectionWrapper.java |  345 --
 .../arrow/driver/jdbc/utils/ConvertUtils.java      |  294 --
 .../arrow/driver/jdbc/utils/DateTimeUtils.java     |   69 -
 .../driver/jdbc/utils/FlightEndpointDataQueue.java |  250 --
 .../driver/jdbc/utils/IntervalStringUtils.java     |   78 -
 .../apache/arrow/driver/jdbc/utils/SqlTypes.java   |  159 -
 .../apache/arrow/driver/jdbc/utils/UrlParser.java  |   64 -
 .../jdbc/utils/VectorSchemaRootTransformer.java    |  167 -
 .../resources/META-INF/services/java.sql.Driver    |   15 -
 .../main/resources/properties/flight.properties    |   18 -
 .../driver/jdbc/ArrowDatabaseMetadataTest.java     | 1523 --------
 .../driver/jdbc/ArrowFlightJdbcArrayTest.java      |  180 -
 .../jdbc/ArrowFlightJdbcConnectionCookieTest.java  |   49 -
 ...rrowFlightJdbcConnectionPoolDataSourceTest.java |  139 -
 .../driver/jdbc/ArrowFlightJdbcCursorTest.java     |  239 --
 .../driver/jdbc/ArrowFlightJdbcDriverTest.java     |  433 ---
 .../driver/jdbc/ArrowFlightJdbcFactoryTest.java    |   95 -
 .../arrow/driver/jdbc/ArrowFlightJdbcTimeTest.java |   77 -
 .../jdbc/ArrowFlightPreparedStatementTest.java     |  225 --
 .../jdbc/ArrowFlightStatementExecuteTest.java      |  171 -
 .../ArrowFlightStatementExecuteUpdateTest.java     |  227 --
 .../arrow/driver/jdbc/ConnectionMutualTlsTest.java |  442 ---
 .../apache/arrow/driver/jdbc/ConnectionTest.java   |  579 ---
 .../driver/jdbc/ConnectionTlsRootCertsTest.java    |  363 --
 .../arrow/driver/jdbc/ConnectionTlsTest.java       |  478 ---
 .../driver/jdbc/FlightServerTestExtension.java     |  344 --
 .../arrow/driver/jdbc/ResultSetMetadataTest.java   |  223 --
 .../apache/arrow/driver/jdbc/ResultSetTest.java    |  671 ----
 .../arrow/driver/jdbc/TokenAuthenticationTest.java |   61 -
 .../ArrowFlightJdbcAccessorFactoryTest.java        |  474 ---
 .../jdbc/accessor/ArrowFlightJdbcAccessorTest.java |  356 --
 .../ArrowFlightJdbcNullVectorAccessorTest.java     |   38 -
 .../ArrowFlightJdbcBinaryVectorAccessorTest.java   |  278 --
 .../ArrowFlightJdbcDateVectorAccessorTest.java     |  281 --
 .../ArrowFlightJdbcDurationVectorAccessorTest.java |  116 -
 .../ArrowFlightJdbcIntervalVectorAccessorTest.java |  331 --
 ...ArrowFlightJdbcTimeStampVectorAccessorTest.java |  376 --
 .../ArrowFlightJdbcTimeVectorAccessorTest.java     |  290 --
 .../AbstractArrowFlightJdbcListAccessorTest.java   |  202 --
 ...ractArrowFlightJdbcUnionVectorAccessorTest.java |  259 --
 ...rrowFlightJdbcDenseUnionVectorAccessorTest.java |  119 -
 .../ArrowFlightJdbcMapVectorAccessorTest.java      |  218 --
 .../ArrowFlightJdbcStructVectorAccessorTest.java   |  208 --
 .../ArrowFlightJdbcUnionVectorAccessorTest.java    |  107 -
 .../ArrowFlightJdbcBaseIntVectorAccessorTest.java  |  197 -
 ...rowFlightJdbcBaseIntVectorAccessorUnitTest.java |  229 --
 .../ArrowFlightJdbcBitVectorAccessorTest.java      |  146 -
 .../ArrowFlightJdbcDecimalVectorAccessorTest.java  |  329 --
 .../ArrowFlightJdbcFloat4VectorAccessorTest.java   |  222 --
 .../ArrowFlightJdbcFloat8VectorAccessorTest.java   |  199 --
 .../ArrowFlightJdbcVarCharVectorAccessorTest.java  |  698 ----
 .../driver/jdbc/authentication/Authentication.java |   36 -
 .../jdbc/authentication/TokenAuthentication.java   |   76 -
 .../authentication/UserPasswordAuthentication.java |   79 -
 .../ArrowFlightSqlClientHandlerBuilderTest.java    |  175 -
 .../utils/ClientAuthenticationUtilsTest.java       |  221 --
 .../arrow/driver/jdbc/utils/AccessorTestUtils.java |  145 -
 .../utils/ArrowFlightConnectionConfigImplTest.java |  107 -
 .../utils/ArrowFlightConnectionPropertyTest.java   |   93 -
 .../driver/jdbc/utils/ConnectionWrapperTest.java   |  445 ---
 .../arrow/driver/jdbc/utils/ConvertUtilsTest.java  |  123 -
 .../driver/jdbc/utils/CoreMockedSqlProducers.java  |  339 --
 .../arrow/driver/jdbc/utils/DateTimeUtilsTest.java |   98 -
 .../jdbc/utils/FallbackFlightSqlProducer.java      |  117 -
 .../jdbc/utils/FlightEndpointDataQueueTest.java    |   82 -
 .../jdbc/utils/FlightSqlTestCertificates.java      |   86 -
 .../driver/jdbc/utils/MockFlightSqlProducer.java   |  689 ----
 .../jdbc/utils/PartitionedFlightSqlProducer.java   |  117 -
 .../driver/jdbc/utils/ResultSetTestUtils.java      |  135 -
 .../jdbc/utils/RootAllocatorTestExtension.java     |  814 -----
 .../arrow/driver/jdbc/utils/SqlTypesTest.java      |  128 -
 .../driver/jdbc/utils/ThrowableAssertionUtils.java |   57 -
 .../arrow/driver/jdbc/utils/UrlParserTest.java     |   48 -
 .../utils/VectorSchemaRootTransformerTest.java     |  120 -
 .../src/test/resources/keys/keyStore.jks           |  Bin 1537 -> 0 bytes
 .../src/test/resources/keys/noCertificate.jks      |  Bin 2545 -> 0 bytes
 .../src/test/resources/logback.xml                 |   27 -
 java/flight/flight-sql-jdbc-driver/pom.xml         |  178 -
 .../arrow/driver/jdbc/ITDriverJarValidation.java   |  170 -
 java/flight/flight-sql/pom.xml                     |  131 -
 .../flight-sql/src/main/java/module-info.java      |   30 -
 .../arrow/flight/sql/BasicFlightSqlProducer.java   |  107 -
 .../apache/arrow/flight/sql/CancelListener.java    |   49 -
 .../org/apache/arrow/flight/sql/CancelResult.java  |   47 -
 .../arrow/flight/sql/CancelStatusListener.java     |   46 -
 .../flight/sql/CloseSessionResultListener.java     |   46 -
 .../arrow/flight/sql/FlightEndpointListener.java   |   45 -
 .../apache/arrow/flight/sql/FlightSqlClient.java   | 1540 --------
 .../arrow/flight/sql/FlightSqlColumnMetadata.java  |  332 --
 .../apache/arrow/flight/sql/FlightSqlProducer.java | 1207 -------
 .../apache/arrow/flight/sql/FlightSqlUtils.java    |  143 -
 .../sql/GetSessionOptionsResultListener.java       |   46 -
 .../arrow/flight/sql/NoOpFlightSqlProducer.java    |  270 --
 .../apache/arrow/flight/sql/NoResultListener.java  |   44 -
 .../org/apache/arrow/flight/sql/ProtoListener.java |   50 -
 .../sql/SetSessionOptionsResultListener.java       |   46 -
 .../apache/arrow/flight/sql/SqlInfoBuilder.java    | 1119 ------
 .../flight/sql/example/FlightSqlClientDemoApp.java |  239 --
 .../arrow/flight/sql/util/SqlInfoOptionsUtils.java |   68 -
 .../org/apache/arrow/flight/sql/util/TableRef.java |   76 -
 .../example/DoPutPreparedStatementResultPOJO.java  |   37 -
 .../arrow/flight/sql/example/FlightSqlExample.java | 1639 ---------
 .../sql/example/FlightSqlStatelessExample.java     |  256 --
 .../arrow/flight/sql/example/StatementContext.java |   80 -
 .../arrow/flight/sql/test/TestFlightSql.java       | 1605 ---------
 .../flight/sql/test/TestFlightSqlStateless.java    |  101 -
 .../flight/sql/test/TestFlightSqlStreams.java      |  326 --
 .../arrow/flight/sql/util/AdhocTestOption.java     |   47 -
 .../arrow/flight/sql/util/FlightStreamUtils.java   |  134 -
 .../SqlInfoOptionsUtilsBitmaskCreationTest.java    |   52 -
 .../SqlInfoOptionsUtilsBitmaskParsingTest.java     |   60 -
 .../flight-sql/src/test/resources/logback.xml      |   28 -
 java/flight/pom.xml                                |   40 -
 java/format/pom.xml                                |   75 -
 java/format/src/main/java/module-info.java         |   23 -
 .../main/java/org/apache/arrow/flatbuf/Binary.java |   61 -
 .../java/org/apache/arrow/flatbuf/BinaryView.java  |   67 -
 .../main/java/org/apache/arrow/flatbuf/Block.java  |   71 -
 .../org/apache/arrow/flatbuf/BodyCompression.java  |   83 -
 .../arrow/flatbuf/BodyCompressionMethod.java       |   42 -
 .../main/java/org/apache/arrow/flatbuf/Bool.java   |   58 -
 .../main/java/org/apache/arrow/flatbuf/Buffer.java |   73 -
 .../org/apache/arrow/flatbuf/CompressionType.java  |   29 -
 .../main/java/org/apache/arrow/flatbuf/Date.java   |   75 -
 .../java/org/apache/arrow/flatbuf/DateUnit.java    |   29 -
 .../java/org/apache/arrow/flatbuf/Decimal.java     |   91 -
 .../org/apache/arrow/flatbuf/DictionaryBatch.java  |   89 -
 .../apache/arrow/flatbuf/DictionaryEncoding.java   |   98 -
 .../org/apache/arrow/flatbuf/DictionaryKind.java   |   35 -
 .../java/org/apache/arrow/flatbuf/Duration.java    |   67 -
 .../java/org/apache/arrow/flatbuf/Endianness.java  |   33 -
 .../java/org/apache/arrow/flatbuf/Feature.java     |   57 -
 .../main/java/org/apache/arrow/flatbuf/Field.java  |  130 -
 .../java/org/apache/arrow/flatbuf/FieldNode.java   |   78 -
 .../org/apache/arrow/flatbuf/FixedSizeBinary.java  |   70 -
 .../org/apache/arrow/flatbuf/FixedSizeList.java    |   70 -
 .../org/apache/arrow/flatbuf/FloatingPoint.java    |   67 -
 .../main/java/org/apache/arrow/flatbuf/Footer.java |  110 -
 .../main/java/org/apache/arrow/flatbuf/Int.java    |   71 -
 .../java/org/apache/arrow/flatbuf/Interval.java    |   67 -
 .../org/apache/arrow/flatbuf/IntervalUnit.java     |   30 -
 .../java/org/apache/arrow/flatbuf/KeyValue.java    |   80 -
 .../java/org/apache/arrow/flatbuf/LargeBinary.java |   62 -
 .../java/org/apache/arrow/flatbuf/LargeList.java   |   62 -
 .../org/apache/arrow/flatbuf/LargeListView.java    |   62 -
 .../java/org/apache/arrow/flatbuf/LargeUtf8.java   |   62 -
 .../main/java/org/apache/arrow/flatbuf/List.java   |   58 -
 .../java/org/apache/arrow/flatbuf/ListView.java    |   63 -
 .../main/java/org/apache/arrow/flatbuf/Map.java    |   97 -
 .../java/org/apache/arrow/flatbuf/Message.java     |   91 -
 .../org/apache/arrow/flatbuf/MessageHeader.java    |   43 -
 .../org/apache/arrow/flatbuf/MetadataVersion.java  |   53 -
 .../main/java/org/apache/arrow/flatbuf/Null.java   |   61 -
 .../java/org/apache/arrow/flatbuf/Precision.java   |   30 -
 .../java/org/apache/arrow/flatbuf/RecordBatch.java |  140 -
 .../org/apache/arrow/flatbuf/RunEndEncoded.java    |   65 -
 .../main/java/org/apache/arrow/flatbuf/Schema.java |  112 -
 .../arrow/flatbuf/SparseMatrixCompressedAxis.java  |   29 -
 .../apache/arrow/flatbuf/SparseMatrixIndexCSX.java |  124 -
 .../org/apache/arrow/flatbuf/SparseTensor.java     |  102 -
 .../apache/arrow/flatbuf/SparseTensorIndex.java    |   31 -
 .../apache/arrow/flatbuf/SparseTensorIndexCOO.java |  128 -
 .../apache/arrow/flatbuf/SparseTensorIndexCSF.java |  183 -
 .../java/org/apache/arrow/flatbuf/Struct_.java     |   63 -
 .../main/java/org/apache/arrow/flatbuf/Tensor.java |  101 -
 .../java/org/apache/arrow/flatbuf/TensorDim.java   |   84 -
 .../main/java/org/apache/arrow/flatbuf/Time.java   |   87 -
 .../java/org/apache/arrow/flatbuf/TimeUnit.java    |   31 -
 .../java/org/apache/arrow/flatbuf/Timestamp.java   |  192 -
 .../main/java/org/apache/arrow/flatbuf/Type.java   |   59 -
 .../main/java/org/apache/arrow/flatbuf/Union.java  |   84 -
 .../java/org/apache/arrow/flatbuf/UnionMode.java   |   29 -
 .../main/java/org/apache/arrow/flatbuf/Utf8.java   |   61 -
 .../java/org/apache/arrow/flatbuf/Utf8View.java    |   67 -
 java/gandiva/CMakeLists.txt                        |   94 -
 java/gandiva/README.md                             |   32 -
 java/gandiva/pom.xml                               |  145 -
 java/gandiva/proto/gandiva/types.proto             |  255 --
 java/gandiva/src/main/cpp/config_builder.cc        |   54 -
 java/gandiva/src/main/cpp/config_holder.cc         |   30 -
 java/gandiva/src/main/cpp/config_holder.h          |   68 -
 java/gandiva/src/main/cpp/env_helper.h             |   23 -
 .../src/main/cpp/expression_registry_helper.cc     |  189 -
 java/gandiva/src/main/cpp/id_to_module_map.h       |   66 -
 java/gandiva/src/main/cpp/jni_common.cc            | 1059 ------
 java/gandiva/src/main/cpp/module_holder.h          |   59 -
 java/gandiva/src/main/cpp/symbols.map              |   20 -
 java/gandiva/src/main/java/module-info.java        |   29 -
 .../gandiva/evaluator/ConfigurationBuilder.java    |   67 -
 .../arrow/gandiva/evaluator/DecimalTypeUtil.java   |   91 -
 .../gandiva/evaluator/ExpressionRegistry.java      |  211 --
 .../evaluator/ExpressionRegistryJniHelper.java     |   25 -
 .../org/apache/arrow/gandiva/evaluator/Filter.java |  215 --
 .../arrow/gandiva/evaluator/FunctionSignature.java |   87 -
 .../apache/arrow/gandiva/evaluator/JniLoader.java  |  181 -
 .../apache/arrow/gandiva/evaluator/JniWrapper.java |  123 -
 .../apache/arrow/gandiva/evaluator/Projector.java  |  403 ---
 .../arrow/gandiva/evaluator/SelectionVector.java   |   88 -
 .../gandiva/evaluator/SelectionVectorInt16.java    |   46 -
 .../gandiva/evaluator/SelectionVectorInt32.java    |   45 -
 .../arrow/gandiva/evaluator/VectorExpander.java    |   63 -
 .../exceptions/EvaluatorClosedException.java       |   24 -
 .../arrow/gandiva/exceptions/GandivaException.java |   34 -
 .../exceptions/UnsupportedTypeException.java       |   24 -
 .../apache/arrow/gandiva/expression/AndNode.java   |   43 -
 .../arrow/gandiva/expression/ArrowTypeHelper.java  |  400 ---
 .../arrow/gandiva/expression/BinaryNode.java       |   38 -
 .../arrow/gandiva/expression/BooleanNode.java      |   42 -
 .../apache/arrow/gandiva/expression/Condition.java |   40 -
 .../arrow/gandiva/expression/DecimalNode.java      |   48 -
 .../arrow/gandiva/expression/DoubleNode.java       |   42 -
 .../arrow/gandiva/expression/ExpressionTree.java   |   44 -
 .../apache/arrow/gandiva/expression/FieldNode.java |   40 -
 .../apache/arrow/gandiva/expression/FloatNode.java |   42 -
 .../arrow/gandiva/expression/FunctionNode.java     |   50 -
 .../apache/arrow/gandiva/expression/IfNode.java    |   49 -
 .../apache/arrow/gandiva/expression/InNode.java    |  201 --
 .../apache/arrow/gandiva/expression/IntNode.java   |   42 -
 .../apache/arrow/gandiva/expression/LongNode.java  |   42 -
 .../apache/arrow/gandiva/expression/NullNode.java  |   40 -
 .../apache/arrow/gandiva/expression/OrNode.java    |   43 -
 .../arrow/gandiva/expression/StringNode.java       |   42 -
 .../arrow/gandiva/expression/TreeBuilder.java      |  209 --
 .../apache/arrow/gandiva/expression/TreeNode.java  |   31 -
 .../arrow/gandiva/evaluator/BaseEvaluatorTest.java |  409 ---
 .../gandiva/evaluator/DecimalTypeUtilTest.java     |   94 -
 .../gandiva/evaluator/ExpressionRegistryTest.java  |   63 -
 .../arrow/gandiva/evaluator/FilterProjectTest.java |  110 -
 .../apache/arrow/gandiva/evaluator/FilterTest.java |  337 --
 .../gandiva/evaluator/MicroBenchmarkTest.java      |  160 -
 .../gandiva/evaluator/ProjectorDecimalTest.java    |  900 -----
 .../arrow/gandiva/evaluator/ProjectorTest.java     | 2609 --------------
 .../arrow/gandiva/evaluator/TestJniLoader.java     |   66 -
 .../gandiva/expression/ArrowTypeHelperTest.java    |  103 -
 .../arrow/gandiva/expression/TreeBuilderTest.java  |  350 --
 java/gandiva/src/test/resources/logback.xml        |   28 -
 java/memory/memory-core/pom.xml                    |  114 -
 .../memory-core/src/main/java/module-info.java     |   31 -
 .../java/org/apache/arrow/memory/Accountant.java   |  309 --
 .../apache/arrow/memory/AllocationListener.java    |   84 -
 .../org/apache/arrow/memory/AllocationManager.java |  225 --
 .../org/apache/arrow/memory/AllocationOutcome.java |   88 -
 .../arrow/memory/AllocationOutcomeDetails.java     |  143 -
 .../apache/arrow/memory/AllocationReservation.java |  116 -
 .../arrow/memory/AllocatorClosedException.java     |   31 -
 .../java/org/apache/arrow/memory/ArrowBuf.java     | 1228 -------
 .../org/apache/arrow/memory/BaseAllocator.java     | 1066 ------
 .../org/apache/arrow/memory/BoundsChecking.java    |   60 -
 .../org/apache/arrow/memory/BufferAllocator.java   |  239 --
 .../java/org/apache/arrow/memory/BufferLedger.java |  511 ---
 .../org/apache/arrow/memory/BufferManager.java     |   52 -
 .../org/apache/arrow/memory/CheckAllocator.java    |  113 -
 .../org/apache/arrow/memory/ChildAllocator.java    |   39 -
 .../memory/DefaultAllocationManagerOption.java     |  134 -
 .../org/apache/arrow/memory/ForeignAllocation.java |   52 -
 .../arrow/memory/ForeignAllocationManager.java     |   43 -
 .../arrow/memory/LowCostIdentityHashMap.java       |  336 --
 .../apache/arrow/memory/OutOfMemoryException.java  |   64 -
 .../apache/arrow/memory/OwnershipTransferNOOP.java |   36 -
 .../arrow/memory/OwnershipTransferResult.java      |   25 -
 .../org/apache/arrow/memory/ReferenceManager.java  |  187 -
 .../org/apache/arrow/memory/ReusableBuffer.java    |   46 -
 .../org/apache/arrow/memory/RootAllocator.java     |   68 -
 .../apache/arrow/memory/ValueWithKeyIncluded.java  |   26 -
 .../java/org/apache/arrow/memory/package-info.java |   22 -
 .../memory/rounding/DefaultRoundingPolicy.java     |  108 -
 .../arrow/memory/rounding/RoundingPolicy.java      |   25 -
 .../memory/rounding/SegmentRoundingPolicy.java     |   79 -
 .../apache/arrow/memory/util/ArrowBufPointer.java  |  193 -
 .../apache/arrow/memory/util/AssertionUtil.java    |   39 -
 .../arrow/memory/util/AutoCloseableLock.java       |   39 -
 .../arrow/memory/util/ByteFunctionHelpers.java     |  319 --
 .../org/apache/arrow/memory/util/CommonUtil.java   |   75 -
 .../java/org/apache/arrow/memory/util/Float16.java |  262 --
 .../apache/arrow/memory/util/HistoricalLog.java    |  177 -
 .../apache/arrow/memory/util/LargeMemoryUtil.java  |   38 -
 .../org/apache/arrow/memory/util/MemoryUtil.java   |  253 --
 .../org/apache/arrow/memory/util/StackTrace.java   |   68 -
 .../arrow/memory/util/hash/ArrowBufHasher.java     |   47 -
 .../arrow/memory/util/hash/MurmurHasher.java       |  174 -
 .../arrow/memory/util/hash/SimpleHasher.java       |  113 -
 .../java/org/apache/arrow/util/AutoCloseables.java |  230 --
 .../java/org/apache/arrow/util/Collections2.java   |   86 -
 .../java/org/apache/arrow/util/Preconditions.java  | 1218 -------
 .../org/apache/arrow/util/VisibleForTesting.java   |   23 -
 .../arrow/memory/CountingAllocationListener.java   |  117 -
 .../memory/DefaultAllocationManagerFactory.java    |   59 -
 .../org/apache/arrow/memory/TestAccountant.java    |  172 -
 .../apache/arrow/memory/TestAllocationManager.java |   36 -
 .../java/org/apache/arrow/memory/TestArrowBuf.java |  189 -
 .../org/apache/arrow/memory/TestBaseAllocator.java | 1141 ------
 .../apache/arrow/memory/TestBoundaryChecking.java  |  153 -
 .../apache/arrow/memory/TestForeignAllocation.java |  153 -
 .../arrow/memory/TestLowCostIdentityHashMap.java   |  169 -
 .../java/org/apache/arrow/memory/TestOpens.java    |   52 -
 .../arrow/memory/util/TestArrowBufPointer.java     |  214 --
 .../arrow/memory/util/TestByteFunctionHelpers.java |  147 -
 .../arrow/memory/util/TestLargeMemoryUtil.java     |  107 -
 .../arrow/memory/util/hash/TestArrowBufHasher.java |  131 -
 .../org/apache/arrow/util/TestCollections2.java    |   78 -
 .../java/org/apache/arrow/util/TestStackTrace.java |   39 -
 .../memory-core/src/test/resources/logback.xml     |   28 -
 java/memory/memory-netty-buffer-patch/pom.xml      |   50 -
 .../java/io/netty/buffer/ExpandableByteBuf.java    |   53 -
 .../src/main/java/io/netty/buffer/LargeBuffer.java |   33 -
 .../io/netty/buffer/MutableWrappedByteBuf.java     |  438 ---
 .../main/java/io/netty/buffer/NettyArrowBuf.java   |  634 ----
 .../io/netty/buffer/PooledByteBufAllocatorL.java   |  273 --
 .../io/netty/buffer/UnsafeDirectLittleEndian.java  |  251 --
 .../arrow/memory/patch/ArrowByteBufAllocator.java  |  159 -
 .../netty/buffer/TestUnsafeDirectLittleEndian.java |   78 -
 java/memory/memory-netty/pom.xml                   |   92 -
 .../netty/DefaultAllocationManagerFactory.java     |   37 -
 .../arrow/memory/netty/NettyAllocationManager.java |  119 -
 .../io/netty/buffer/TestExpandableByteBuf.java     |  119 -
 .../java/io/netty/buffer/TestNettyArrowBuf.java    |  151 -
 .../arrow/memory/netty/ITTestLargeArrowBuf.java    |   72 -
 .../memory/netty/TestAllocationManagerNetty.java   |   38 -
 .../arrow/memory/netty/TestEmptyArrowBuf.java      |   95 -
 .../apache/arrow/memory/netty/TestEndianness.java  |   49 -
 .../memory/netty/TestNettyAllocationManager.java   |  110 -
 .../arrow/memory/netty/TestNettyAllocator.java     |   91 -
 .../memory-netty/src/test/resources/logback.xml    |   28 -
 java/memory/memory-unsafe/pom.xml                  |   43 -
 .../memory-unsafe/src/main/java/module-info.java   |   23 -
 .../unsafe/DefaultAllocationManagerFactory.java    |   37 -
 .../memory/unsafe/UnsafeAllocationManager.java     |   68 -
 .../memory/unsafe/TestAllocationManagerUnsafe.java |   39 -
 .../memory/unsafe/TestUnsafeAllocationManager.java |   70 -
 .../memory-unsafe/src/test/resources/logback.xml   |   28 -
 java/memory/pom.xml                                |   37 -
 java/performance/pom.xml                           |  176 -
 .../arrow/adapter/AvroAdapterBenchmarks.java       |  140 -
 .../arrow/adapter/jdbc/JdbcAdapterBenchmarks.java  |  356 --
 .../search/ParallelSearcherBenchmarks.java         |  112 -
 .../apache/arrow/memory/AllocatorBenchmarks.java   |   85 -
 .../apache/arrow/memory/ArrowBufBenchmarks.java    |   72 -
 .../memory/util/ArrowBufPointerBenchmarks.java     |   98 -
 .../memory/util/ByteFunctionHelpersBenchmarks.java |  147 -
 .../arrow/vector/BaseValueVectorBenchmarks.java    |   87 -
 .../arrow/vector/BitVectorHelperBenchmarks.java    |  212 --
 .../arrow/vector/DecimalVectorBenchmarks.java      |  110 -
 .../org/apache/arrow/vector/Float8Benchmarks.java  |  115 -
 .../arrow/vector/FloatingPointBenchmarks.java      |  128 -
 .../org/apache/arrow/vector/IntBenchmarks.java     |  106 -
 .../org/apache/arrow/vector/VarCharBenchmarks.java |   94 -
 .../vector/VariableWidthVectorBenchmarks.java      |  125 -
 .../apache/arrow/vector/VectorLoaderBenchmark.java |  107 -
 .../arrow/vector/VectorUnloaderBenchmark.java      |  104 -
 .../dictionary/DictionaryEncoderBenchmarks.java    |  140 -
 .../arrow/vector/ipc/WriteChannelBenchmark.java    |   81 -
 .../ipc/message/ArrowRecordBatchBenchmarks.java    |   94 -
 .../arrow/vector/util/TransferPairBenchmarks.java  |  115 -
 java/pom.xml                                       | 1336 -------
 java/tools/pom.xml                                 |  142 -
 java/tools/src/main/java/module-info.java          |   27 -
 .../java/org/apache/arrow/tools/EchoServer.java    |  133 -
 .../java/org/apache/arrow/tools/FileRoundtrip.java |  125 -
 .../java/org/apache/arrow/tools/FileToStream.java  |   73 -
 .../java/org/apache/arrow/tools/Integration.java   |  243 --
 .../java/org/apache/arrow/tools/StreamToFile.java  |   70 -
 .../apache/arrow/tools/ArrowFileTestFixtures.java  |  185 -
 .../org/apache/arrow/tools/EchoServerTest.java     |  298 --
 .../org/apache/arrow/tools/TestFileRoundtrip.java  |  114 -
 .../org/apache/arrow/tools/TestIntegration.java    |  404 ---
 java/tools/src/test/resources/logback.xml          |   27 -
 java/vector/pom.xml                                |  212 --
 java/vector/src/main/codegen/config.fmpp           |   24 -
 java/vector/src/main/codegen/data/ArrowTypes.tdd   |  149 -
 .../src/main/codegen/data/ValueVectorTypes.tdd     |  218 --
 java/vector/src/main/codegen/includes/license.ftl  |   16 -
 .../src/main/codegen/includes/vv_imports.ftl       |   58 -
 .../codegen/templates/AbstractFieldReader.java     |  132 -
 .../codegen/templates/AbstractFieldWriter.java     |  283 --
 .../templates/AbstractPromotableFieldWriter.java   |  353 --
 .../src/main/codegen/templates/ArrowType.java      |  375 --
 .../src/main/codegen/templates/BaseReader.java     |   85 -
 .../src/main/codegen/templates/BaseWriter.java     |  142 -
 .../templates/CaseSensitiveStructWriters.java      |   53 -
 .../src/main/codegen/templates/ComplexCopier.java  |  218 --
 .../src/main/codegen/templates/ComplexReaders.java |  147 -
 .../src/main/codegen/templates/ComplexWriters.java |  280 --
 .../main/codegen/templates/DenseUnionReader.java   |  229 --
 .../main/codegen/templates/DenseUnionVector.java   |  999 ------
 .../main/codegen/templates/DenseUnionWriter.java   |  323 --
 .../main/codegen/templates/HolderReaderImpl.java   |  173 -
 .../src/main/codegen/templates/NullReader.java     |  147 -
 .../codegen/templates/PromotableViewWriter.java    |  178 -
 .../main/codegen/templates/PromotableWriter.java   |  578 ---
 .../src/main/codegen/templates/StructWriters.java  |  380 --
 .../templates/UnionFixedSizeListWriter.java        |  375 --
 .../main/codegen/templates/UnionListWriter.java    |  413 ---
 .../src/main/codegen/templates/UnionMapWriter.java |  234 --
 .../src/main/codegen/templates/UnionReader.java    |  243 --
 .../src/main/codegen/templates/UnionVector.java    |  928 -----
 .../main/codegen/templates/UnionViewWriter.java    |  210 --
 .../src/main/codegen/templates/UnionWriter.java    |  517 ---
 .../src/main/codegen/templates/ValueHolders.java   |   77 -
 java/vector/src/main/java/module-info.java         |   53 -
 .../org/apache/arrow/vector/AddOrGetResult.java    |   45 -
 .../org/apache/arrow/vector/AllocationHelper.java  |   95 -
 .../apache/arrow/vector/BaseFixedWidthVector.java  |  960 -----
 .../org/apache/arrow/vector/BaseIntVector.java     |   40 -
 .../arrow/vector/BaseLargeVariableWidthVector.java | 1450 --------
 .../org/apache/arrow/vector/BaseValueVector.java   |  251 --
 .../arrow/vector/BaseVariableWidthVector.java      | 1500 --------
 .../arrow/vector/BaseVariableWidthViewVector.java  | 1698 ---------
 .../java/org/apache/arrow/vector/BigIntVector.java |  354 --
 .../java/org/apache/arrow/vector/BitVector.java    |  596 ----
 .../org/apache/arrow/vector/BitVectorHelper.java   |  449 ---
 .../java/org/apache/arrow/vector/BufferBacked.java |   28 -
 .../java/org/apache/arrow/vector/BufferLayout.java |  172 -
 .../org/apache/arrow/vector/DateDayVector.java     |  340 --
 .../org/apache/arrow/vector/DateMilliVector.java   |  342 --
 .../org/apache/arrow/vector/Decimal256Vector.java  |  602 ----
 .../org/apache/arrow/vector/DecimalVector.java     |  599 ----
 .../apache/arrow/vector/DensityAwareVector.java    |   50 -
 .../org/apache/arrow/vector/DurationVector.java    |  413 ---
 .../arrow/vector/ElementAddressableVector.java     |   43 -
 .../apache/arrow/vector/ExtensionTypeVector.java   |  290 --
 .../java/org/apache/arrow/vector/FieldVector.java  |  148 -
 .../apache/arrow/vector/FixedSizeBinaryVector.java |  420 ---
 .../org/apache/arrow/vector/FixedWidthVector.java  |   34 -
 .../java/org/apache/arrow/vector/Float2Vector.java |  417 ---
 .../java/org/apache/arrow/vector/Float4Vector.java |  354 --
 .../java/org/apache/arrow/vector/Float8Vector.java |  354 --
 .../apache/arrow/vector/FloatingPointVector.java   |   46 -
 .../apache/arrow/vector/GenerateSampleData.java    |  393 --
 .../java/org/apache/arrow/vector/IntVector.java    |  354 --
 .../org/apache/arrow/vector/IntervalDayVector.java |  437 ---
 .../arrow/vector/IntervalMonthDayNanoVector.java   |  434 ---
 .../apache/arrow/vector/IntervalYearVector.java    |  370 --
 .../apache/arrow/vector/LargeVarBinaryVector.java  |  308 --
 .../apache/arrow/vector/LargeVarCharVector.java    |  354 --
 .../apache/arrow/vector/NullCheckingForGet.java    |   78 -
 .../java/org/apache/arrow/vector/NullVector.java   |  375 --
 .../org/apache/arrow/vector/PeriodDuration.java    |  131 -
 .../apache/arrow/vector/SchemaChangeCallBack.java  |   48 -
 .../org/apache/arrow/vector/SmallIntVector.java    |  381 --
 .../org/apache/arrow/vector/TimeMicroVector.java   |  340 --
 .../org/apache/arrow/vector/TimeMilliVector.java   |  343 --
 .../org/apache/arrow/vector/TimeNanoVector.java    |  340 --
 .../org/apache/arrow/vector/TimeSecVector.java     |  340 --
 .../arrow/vector/TimeStampMicroTZVector.java       |  255 --
 .../apache/arrow/vector/TimeStampMicroVector.java  |  226 --
 .../arrow/vector/TimeStampMilliTZVector.java       |  255 --
 .../apache/arrow/vector/TimeStampMilliVector.java  |  226 --
 .../apache/arrow/vector/TimeStampNanoTZVector.java |  254 --
 .../apache/arrow/vector/TimeStampNanoVector.java   |  226 --
 .../apache/arrow/vector/TimeStampSecTZVector.java  |  250 --
 .../apache/arrow/vector/TimeStampSecVector.java    |  227 --
 .../org/apache/arrow/vector/TimeStampVector.java   |  184 -
 .../org/apache/arrow/vector/TinyIntVector.java     |  381 --
 .../java/org/apache/arrow/vector/TypeLayout.java   |  539 ---
 .../java/org/apache/arrow/vector/UInt1Vector.java  |  370 --
 .../java/org/apache/arrow/vector/UInt2Vector.java  |  355 --
 .../java/org/apache/arrow/vector/UInt4Vector.java  |  344 --
 .../java/org/apache/arrow/vector/UInt8Vector.java  |  342 --
 .../apache/arrow/vector/ValueIterableVector.java   |   51 -
 .../java/org/apache/arrow/vector/ValueVector.java  |  334 --
 .../org/apache/arrow/vector/VarBinaryVector.java   |  309 --
 .../org/apache/arrow/vector/VarCharVector.java     |  352 --
 .../arrow/vector/VariableWidthFieldVector.java     |  139 -
 .../apache/arrow/vector/VariableWidthVector.java   |   51 -
 .../arrow/vector/VectorDefinitionSetter.java       |   23 -
 .../java/org/apache/arrow/vector/VectorLoader.java |  161 -
 .../org/apache/arrow/vector/VectorSchemaRoot.java  |  434 ---
 .../org/apache/arrow/vector/VectorUnloader.java    |  137 -
 .../apache/arrow/vector/ViewVarBinaryVector.java   |  296 --
 .../org/apache/arrow/vector/ViewVarCharVector.java |  347 --
 .../java/org/apache/arrow/vector/ZeroVector.java   |  131 -
 .../arrow/vector/compare/ApproxEqualsVisitor.java  |  150 -
 .../org/apache/arrow/vector/compare/Range.java     |   73 -
 .../arrow/vector/compare/RangeEqualsVisitor.java   |  921 -----
 .../arrow/vector/compare/TypeEqualsVisitor.java    |  171 -
 .../arrow/vector/compare/VectorEqualsVisitor.java  |   58 -
 .../arrow/vector/compare/VectorValueEqualizer.java |   46 -
 .../apache/arrow/vector/compare/VectorVisitor.java |   80 -
 .../compare/util/ValueEpsilonEqualizers.java       |  143 -
 .../vector/complex/AbstractContainerVector.java    |  158 -
 .../arrow/vector/complex/AbstractStructVector.java |  431 ---
 .../complex/BaseLargeRepeatedValueViewVector.java  |  411 ---
 .../arrow/vector/complex/BaseListVector.java       |   29 -
 .../vector/complex/BaseRepeatedValueVector.java    |  389 --
 .../complex/BaseRepeatedValueViewVector.java       |  411 ---
 .../arrow/vector/complex/EmptyValuePopulator.java  |   50 -
 .../arrow/vector/complex/FixedSizeListVector.java  |  733 ----
 .../arrow/vector/complex/LargeListVector.java      | 1127 ------
 .../arrow/vector/complex/LargeListViewVector.java  | 1029 ------
 .../apache/arrow/vector/complex/ListVector.java    |  978 -----
 .../arrow/vector/complex/ListViewVector.java       | 1031 ------
 .../org/apache/arrow/vector/complex/MapVector.java |  309 --
 .../vector/complex/NonNullableStructVector.java    |  520 ---
 .../apache/arrow/vector/complex/Positionable.java  |   25 -
 .../arrow/vector/complex/PromotableVector.java     |   29 -
 .../complex/RepeatedFixedWidthVectorLike.java      |   31 -
 .../arrow/vector/complex/RepeatedValueVector.java  |   51 -
 .../complex/RepeatedVariableWidthVectorLike.java   |   39 -
 .../arrow/vector/complex/RunEndEncodedVector.java  |  823 -----
 .../org/apache/arrow/vector/complex/StateTool.java |   42 -
 .../apache/arrow/vector/complex/StructVector.java  |  677 ----
 .../arrow/vector/complex/VectorWithOrdinal.java    |   33 -
 .../vector/complex/impl/AbstractBaseReader.java    |  118 -
 .../vector/complex/impl/AbstractBaseWriter.java    |   53 -
 .../vector/complex/impl/ComplexWriterImpl.java     |  299 --
 .../complex/impl/NullableStructReaderImpl.java     |   58 -
 .../complex/impl/NullableStructWriterFactory.java  |   50 -
 .../vector/complex/impl/SingleListReaderImpl.java  |   88 -
 .../complex/impl/SingleStructReaderImpl.java       |  107 -
 .../complex/impl/StructOrListWriterImpl.java       |  138 -
 .../complex/impl/UnionFixedSizeListReader.java     |  101 -
 .../vector/complex/impl/UnionLargeListReader.java  |  108 -
 .../complex/impl/UnionLargeListViewReader.java     |  116 -
 .../arrow/vector/complex/impl/UnionListReader.java |  110 -
 .../vector/complex/impl/UnionListViewReader.java   |  111 -
 .../arrow/vector/complex/impl/UnionMapReader.java  |   72 -
 .../arrow/vector/complex/reader/FieldReader.java   |   38 -
 .../arrow/vector/complex/writer/FieldWriter.java   |   32 -
 .../compression/AbstractCompressionCodec.java      |  116 -
 .../arrow/vector/compression/CompressionCodec.java |  105 -
 .../arrow/vector/compression/CompressionUtil.java  |   93 -
 .../vector/compression/NoCompressionCodec.java     |   76 -
 .../apache/arrow/vector/dictionary/Dictionary.java |   73 -
 .../arrow/vector/dictionary/DictionaryEncoder.java |  218 --
 .../vector/dictionary/DictionaryHashTable.java     |  260 --
 .../vector/dictionary/DictionaryProvider.java      |   86 -
 .../vector/dictionary/ListSubfieldEncoder.java     |  169 -
 .../vector/dictionary/StructSubfieldEncoder.java   |  232 --
 .../InvalidExtensionMetadataException.java         |   28 -
 .../apache/arrow/vector/extension/OpaqueType.java  |  403 ---
 .../arrow/vector/extension/OpaqueVector.java       |   58 -
 .../apache/arrow/vector/holders/ComplexHolder.java |   25 -
 .../arrow/vector/holders/DenseUnionHolder.java     |   35 -
 .../arrow/vector/holders/RepeatedListHolder.java   |   23 -
 .../arrow/vector/holders/RepeatedStructHolder.java |   23 -
 .../apache/arrow/vector/holders/UnionHolder.java   |   34 -
 .../apache/arrow/vector/holders/ValueHolder.java   |   27 -
 .../apache/arrow/vector/ipc/ArrowFileReader.java   |  228 --
 .../apache/arrow/vector/ipc/ArrowFileWriter.java   |  176 -
 .../org/apache/arrow/vector/ipc/ArrowMagic.java    |   44 -
 .../org/apache/arrow/vector/ipc/ArrowReader.java   |  254 --
 .../apache/arrow/vector/ipc/ArrowStreamReader.java |  231 --
 .../apache/arrow/vector/ipc/ArrowStreamWriter.java |  182 -
 .../org/apache/arrow/vector/ipc/ArrowWriter.java   |  240 --
 .../vector/ipc/InvalidArrowFileException.java      |   29 -
 .../apache/arrow/vector/ipc/JsonFileReader.java    |  990 ------
 .../apache/arrow/vector/ipc/JsonFileWriter.java    |  607 ----
 .../org/apache/arrow/vector/ipc/ReadChannel.java   |   98 -
 .../arrow/vector/ipc/SeekableReadChannel.java      |   39 -
 .../org/apache/arrow/vector/ipc/WriteChannel.java  |  140 -
 .../arrow/vector/ipc/message/ArrowBlock.java       |   93 -
 .../vector/ipc/message/ArrowBodyCompression.java   |   51 -
 .../arrow/vector/ipc/message/ArrowBuffer.java      |   87 -
 .../vector/ipc/message/ArrowDictionaryBatch.java   |   94 -
 .../arrow/vector/ipc/message/ArrowFieldNode.java   |   59 -
 .../arrow/vector/ipc/message/ArrowFooter.java      |  220 --
 .../arrow/vector/ipc/message/ArrowMessage.java     |   39 -
 .../arrow/vector/ipc/message/ArrowRecordBatch.java |  386 --
 .../arrow/vector/ipc/message/FBSerializable.java   |   25 -
 .../arrow/vector/ipc/message/FBSerializables.java  |   61 -
 .../apache/arrow/vector/ipc/message/IpcOption.java |   41 -
 .../vector/ipc/message/MessageChannelReader.java   |   86 -
 .../vector/ipc/message/MessageMetadataResult.java  |  111 -
 .../arrow/vector/ipc/message/MessageResult.java    |   60 -
 .../vector/ipc/message/MessageSerializer.java      |  757 ----
 .../org/apache/arrow/vector/table/BaseTable.java   |  433 ---
 .../java/org/apache/arrow/vector/table/Row.java    | 1944 ----------
 .../java/org/apache/arrow/vector/table/Table.java  |  212 --
 .../apache/arrow/vector/table/package-info.java    |   23 -
 .../org/apache/arrow/vector/types/DateUnit.java    |   47 -
 .../arrow/vector/types/FloatingPointPrecision.java |   52 -
 .../apache/arrow/vector/types/IntervalUnit.java    |   53 -
 .../apache/arrow/vector/types/MetadataVersion.java |   61 -
 .../org/apache/arrow/vector/types/TimeUnit.java    |   47 -
 .../java/org/apache/arrow/vector/types/Types.java  | 1046 ------
 .../org/apache/arrow/vector/types/UnionMode.java   |   54 -
 .../vector/types/pojo/DictionaryEncoding.java      |   83 -
 .../vector/types/pojo/ExtensionTypeRegistry.java   |   38 -
 .../org/apache/arrow/vector/types/pojo/Field.java  |  307 --
 .../apache/arrow/vector/types/pojo/FieldType.java  |  135 -
 .../org/apache/arrow/vector/types/pojo/Schema.java |  294 --
 .../util/ByteArrayReadableSeekableByteChannel.java |   80 -
 .../org/apache/arrow/vector/util/CallBack.java     |   22 -
 .../arrow/vector/util/DataSizeRoundingUtil.java    |   96 -
 .../org/apache/arrow/vector/util/DateUtility.java  |  140 -
 .../apache/arrow/vector/util/DecimalUtility.java   |  220 --
 .../arrow/vector/util/DictionaryUtility.java       |  150 -
 .../util/ElementAddressableVectorIterator.java     |   87 -
 .../apache/arrow/vector/util/IntObjectHashMap.java |  717 ----
 .../org/apache/arrow/vector/util/IntObjectMap.java |   81 -
 .../arrow/vector/util/JsonStringArrayList.java     |   49 -
 .../arrow/vector/util/JsonStringHashMap.java       |   42 -
 .../apache/arrow/vector/util/MapWithOrdinal.java   |   66 -
 .../arrow/vector/util/MapWithOrdinalImpl.java      |  237 --
 .../arrow/vector/util/MultiMapWithOrdinal.java     |  224 --
 .../arrow/vector/util/ObjectMapperFactory.java     |   32 -
 .../vector/util/OversizedAllocationException.java  |   47 -
 .../vector/util/PromotableMultiMapWithOrdinal.java |  135 -
 .../arrow/vector/util/ReusableByteArray.java       |  132 -
 .../vector/util/SchemaChangeRuntimeException.java  |   41 -
 .../apache/arrow/vector/util/SchemaUtility.java    |   54 -
 .../java/org/apache/arrow/vector/util/Text.java    |  876 -----
 .../org/apache/arrow/vector/util/TransferPair.java |   30 -
 .../org/apache/arrow/vector/util/Validator.java    |  227 --
 .../arrow/vector/util/ValueVectorUtility.java      |  171 -
 .../apache/arrow/vector/util/VectorAppender.java   |  642 ----
 .../arrow/vector/util/VectorBatchAppender.java     |   37 -
 .../vector/util/VectorSchemaRootAppender.java      |   85 -
 .../vector/validate/MetadataV4UnionChecker.java    |   82 -
 .../apache/arrow/vector/validate/ValidateUtil.java |   57 -
 .../validate/ValidateVectorBufferVisitor.java      |  324 --
 .../vector/validate/ValidateVectorDataVisitor.java |  209 --
 .../vector/validate/ValidateVectorTypeVisitor.java |  493 ---
 .../vector/validate/ValidateVectorVisitor.java     |  321 --
 .../apache/arrow/vector/DirtyRootAllocator.java    |   51 -
 .../org/apache/arrow/vector/ITTestLargeVector.java |  279 --
 .../org/apache/arrow/vector/TestBitVector.java     |  572 ---
 .../apache/arrow/vector/TestBitVectorHelper.java   |  290 --
 .../arrow/vector/TestBufferOwnershipTransfer.java  |  137 -
 .../java/org/apache/arrow/vector/TestCopyFrom.java | 1101 ------
 .../apache/arrow/vector/TestDecimal256Vector.java  |  394 --
 .../org/apache/arrow/vector/TestDecimalVector.java |  390 --
 .../apache/arrow/vector/TestDenseUnionVector.java  |  709 ----
 .../apache/arrow/vector/TestDictionaryVector.java  | 1246 -------
 .../apache/arrow/vector/TestDurationVector.java    |  162 -
 .../arrow/vector/TestFixedSizeBinaryVector.java    |  313 --
 .../arrow/vector/TestFixedSizeListVector.java      |  668 ----
 .../vector/TestIntervalMonthDayNanoVector.java     |  107 -
 .../arrow/vector/TestIntervalYearVector.java       |   77 -
 .../apache/arrow/vector/TestLargeListVector.java   | 1030 ------
 .../arrow/vector/TestLargeListViewVector.java      | 2239 ------------
 .../arrow/vector/TestLargeVarBinaryVector.java     |  156 -
 .../arrow/vector/TestLargeVarCharVector.java       |  861 -----
 .../org/apache/arrow/vector/TestListVector.java    | 1208 -------
 .../apache/arrow/vector/TestListViewVector.java    | 2226 ------------
 .../org/apache/arrow/vector/TestMapVector.java     | 1244 -------
 .../arrow/vector/TestNullCheckingForGet.java       |   93 -
 .../arrow/vector/TestOpaqueExtensionType.java      |  188 -
 .../vector/TestOutOfMemoryForValueVector.java      |   88 -
 .../TestOversizedAllocationForValueVector.java     |  145 -
 .../apache/arrow/vector/TestPeriodDuration.java    |  106 -
 .../arrow/vector/TestRunEndEncodedVector.java      |  333 --
 .../apache/arrow/vector/TestSplitAndTransfer.java  |  980 -----
 .../org/apache/arrow/vector/TestStructVector.java  |  366 --
 .../org/apache/arrow/vector/TestTypeLayout.java    |  193 -
 .../org/apache/arrow/vector/TestUnionVector.java   |  553 ---
 .../java/org/apache/arrow/vector/TestUtils.java    |   55 -
 .../org/apache/arrow/vector/TestValueVector.java   | 3749 --------------------
 .../arrow/vector/TestValueVectorIterable.java      |  909 -----
 .../apache/arrow/vector/TestVarCharListVector.java |   79 -
 .../arrow/vector/TestVariableWidthViewVector.java  | 2863 ---------------
 .../org/apache/arrow/vector/TestVectorAlloc.java   |  166 -
 .../org/apache/arrow/vector/TestVectorReAlloc.java |  492 ---
 .../org/apache/arrow/vector/TestVectorReset.java   |  192 -
 .../apache/arrow/vector/TestVectorSchemaRoot.java  |  327 --
 .../apache/arrow/vector/TestVectorUnloadLoad.java  |  350 --
 .../vector/compare/TestRangeEqualsVisitor.java     | 1075 ------
 .../vector/compare/TestTypeEqualsVisitor.java      |  263 --
 .../vector/complex/TestDenseUnionBufferSize.java   |   92 -
 .../vector/complex/impl/TestComplexCopier.java     |  848 -----
 .../vector/complex/impl/TestPromotableWriter.java  |  732 ----
 .../vector/complex/writer/TestComplexWriter.java   | 2492 -------------
 .../vector/complex/writer/TestSimpleWriter.java    |  187 -
 .../org/apache/arrow/vector/ipc/BaseFileTest.java  |  889 -----
 .../vector/ipc/ITTestIPCWithLargeArrowBuffers.java |  190 -
 .../arrow/vector/ipc/MessageSerializerTest.java    |  245 --
 .../org/apache/arrow/vector/ipc/TestArrowFile.java |  134 -
 .../apache/arrow/vector/ipc/TestArrowFooter.java   |   68 -
 .../arrow/vector/ipc/TestArrowReaderWriter.java    | 1049 ------
 .../apache/arrow/vector/ipc/TestArrowStream.java   |  146 -
 .../arrow/vector/ipc/TestArrowStreamPipe.java      |  155 -
 .../org/apache/arrow/vector/ipc/TestJSONFile.java  |  524 ---
 .../org/apache/arrow/vector/ipc/TestRoundTrip.java |  720 ----
 .../vector/ipc/TestUIntDictionaryRoundTrip.java    |  267 --
 .../ipc/message/TestMessageMetadataResult.java     |   34 -
 .../org/apache/arrow/vector/pojo/TestConvert.java  |  197 -
 .../apache/arrow/vector/table/BaseTableTest.java   |  327 --
 .../org/apache/arrow/vector/table/RowTest.java     |  854 -----
 .../org/apache/arrow/vector/table/TableTest.java   |  276 --
 .../org/apache/arrow/vector/table/TestUtils.java   |  441 ---
 .../arrow/vector/test/util/ArrowTestDataUtil.java  |   42 -
 .../arrow/vector/testing/RandomDataGenerator.java  |   40 -
 .../vector/testing/TestValueVectorPopulator.java   |  627 ----
 .../vector/testing/ValueVectorDataPopulator.java   |  836 -----
 .../arrow/vector/types/pojo/TestExtensionType.java |  446 ---
 .../apache/arrow/vector/types/pojo/TestField.java  |   64 -
 .../apache/arrow/vector/types/pojo/TestSchema.java |  301 --
 .../arrow/vector/util/DecimalUtilityTest.java      |  133 -
 .../vector/util/TestDataSizeRoundingUtil.java      |   73 -
 .../util/TestElementAddressableVectorIterator.java |  134 -
 .../arrow/vector/util/TestMapWithOrdinal.java      |   95 -
 .../arrow/vector/util/TestMultiMapWithOrdinal.java |   60 -
 .../arrow/vector/util/TestReusableByteArray.java   |  114 -
 .../apache/arrow/vector/util/TestSchemaUtil.java   |   49 -
 .../apache/arrow/vector/util/TestValidator.java    |   55 -
 .../arrow/vector/util/TestVectorAppender.java      |  932 -----
 .../arrow/vector/util/TestVectorBatchAppender.java |   69 -
 .../vector/util/TestVectorSchemaRootAppender.java  |  158 -
 .../arrow/vector/validate/TestValidateVector.java  |  312 --
 .../vector/validate/TestValidateVectorFull.java    |  333 --
 .../validate/TestValidateVectorSchemaRoot.java     |  104 -
 .../validate/TestValidateVectorTypeVisitor.java    |  417 ---
 java/vector/src/test/resources/logback.xml         |   28 -
 1349 files changed, 15 insertions(+), 256858 deletions(-)

diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
index da0e2004f1..aef81df074 100644
--- a/.github/workflows/integration.yml
+++ b/.github/workflows/integration.yml
@@ -91,6 +91,11 @@ jobs:
         with:
           repository: apache/arrow-go
           path: go
+      - name: Checkout Arrow Java
+        uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+        with:
+          repository: apache/arrow-java
+          path: java
       - name: Free up disk space
         run: |
           ci/scripts/util_free_space.sh
@@ -115,6 +120,7 @@ jobs:
           archery docker run \
             -e ARCHERY_DEFAULT_BRANCH=${{ github.event.repository.default_branch }} \
             -e ARCHERY_INTEGRATION_WITH_GO=1 \
+            -e ARCHERY_INTEGRATION_WITH_JAVA=1 \
             -e ARCHERY_INTEGRATION_WITH_NANOARROW=1 \
             -e ARCHERY_INTEGRATION_WITH_RUST=1 \
             conda-integration
diff --git a/ci/scripts/integration_arrow.sh b/ci/scripts/integration_arrow.sh
index 8d0a343ebb..275ef431c7 100755
--- a/ci/scripts/integration_arrow.sh
+++ b/ci/scripts/integration_arrow.sh
@@ -26,10 +26,9 @@ gold_dir=$arrow_dir/testing/data/arrow-ipc-stream/integration
 
 : ${ARROW_INTEGRATION_CPP:=ON}
 : ${ARROW_INTEGRATION_CSHARP:=ON}
-: ${ARROW_INTEGRATION_JAVA:=ON}
 : ${ARROW_INTEGRATION_JS:=ON}
 
-: ${ARCHERY_INTEGRATION_TARGET_IMPLEMENTATIONS:=cpp,csharp,java,js}
+: ${ARCHERY_INTEGRATION_TARGET_IMPLEMENTATIONS:=cpp,csharp,js}
 export ARCHERY_INTEGRATION_TARGET_IMPLEMENTATIONS
 
 . ${arrow_dir}/ci/scripts/util_log.sh
@@ -43,7 +42,7 @@ github_actions_group_begin "Integration: Prepare: Dependencies"
 if [ "${ARROW_INTEGRATION_CSHARP}" == "ON" ]; then
     pip install pythonnet
 fi
-if [ "${ARROW_INTEGRATION_JAVA}" == "ON" ]; then
+if [ "${ARCHERY_INTEGRATION_WITH_JAVA}" -gt "0" ]; then
     pip install jpype1
 fi
 github_actions_group_end
@@ -66,7 +65,6 @@ time archery integration \
     --run-flight \
     --with-cpp=$([ "$ARROW_INTEGRATION_CPP" == "ON" ] && echo "1" || echo "0") \
     --with-csharp=$([ "$ARROW_INTEGRATION_CSHARP" == "ON" ] && echo "1" || echo "0") \
-    --with-java=$([ "$ARROW_INTEGRATION_JAVA" == "ON" ] && echo "1" || echo "0") \
     --with-js=$([ "$ARROW_INTEGRATION_JS" == "ON" ] && echo "1" || echo "0") \
     --gold-dirs=$gold_dir/0.14.1 \
     --gold-dirs=$gold_dir/0.17.1 \
diff --git a/ci/scripts/integration_arrow_build.sh b/ci/scripts/integration_arrow_build.sh
index 4dfcf8768c..1554865ecc 100755
--- a/ci/scripts/integration_arrow_build.sh
+++ b/ci/scripts/integration_arrow_build.sh
@@ -24,7 +24,6 @@ build_dir=${2}
 
 : ${ARROW_INTEGRATION_CPP:=ON}
 : ${ARROW_INTEGRATION_CSHARP:=ON}
-: ${ARROW_INTEGRATION_JAVA:=ON}
 : ${ARROW_INTEGRATION_JS:=ON}
 
 . ${arrow_dir}/ci/scripts/util_log.sh
@@ -56,12 +55,12 @@ fi
 github_actions_group_end
 
 github_actions_group_begin "Integration: Build: Java"
-if [ "${ARROW_INTEGRATION_JAVA}" == "ON" ]; then
+if [ "${ARCHERY_INTEGRATION_WITH_JAVA}" -gt "0" ]; then
     export ARROW_JAVA_CDATA="ON"
     export JAVA_JNI_CMAKE_ARGS="-DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF -DARROW_JAVA_JNI_ENABLE_C=ON"
 
-    ${arrow_dir}/ci/scripts/java_jni_build.sh ${arrow_dir} ${ARROW_HOME} ${build_dir} /tmp/dist/java
-    ${arrow_dir}/ci/scripts/java_build.sh ${arrow_dir} ${build_dir} /tmp/dist/java
+    ${arrow_dir}/java/ci/scripts/java_jni_build.sh "${arrow_dir}/java" "${ARROW_HOME}" "${build_dir}/java/" /tmp/dist/java
+    ${arrow_dir}/java/ci/scripts/java_build.sh "${arrow_dir}/java" "${build_dir}/java" /tmp/dist/java
 fi
 github_actions_group_end
 
diff --git a/dev/archery/archery/cli.py b/dev/archery/archery/cli.py
index 6dfc3a56a7..3aa6d8a073 100644
--- a/dev/archery/archery/cli.py
+++ b/dev/archery/archery/cli.py
@@ -733,7 +733,8 @@ def _set_default(opt, default):
 @click.option('--with-csharp', type=bool, default=False,
               help='Include C# in integration tests')
 @click.option('--with-java', type=bool, default=False,
-              help='Include Java in integration tests')
+              help='Include Java in integration tests',
+              envvar="ARCHERY_INTEGRATION_WITH_JAVA")
 @click.option('--with-js', type=bool, default=False,
               help='Include JavaScript in integration tests')
 @click.option('--with-go', type=bool, default=False,
diff --git a/dev/archery/archery/integration/tester_java.py b/dev/archery/archery/integration/tester_java.py
index 8d207d3393..cbc76a1825 100644
--- a/dev/archery/archery/integration/tester_java.py
+++ b/dev/archery/archery/integration/tester_java.py
@@ -24,6 +24,7 @@ import subprocess
 from . import cdata
 from .tester import Tester, CDataExporter, CDataImporter
 from .util import run_cmd, log
+from ..utils.source import ARROW_ROOT_DEFAULT
 
 
 ARROW_BUILD_ROOT = os.environ.get(
@@ -34,7 +35,7 @@ ARROW_BUILD_ROOT = os.environ.get(
 
 def load_version_from_pom():
     import xml.etree.ElementTree as ET
-    tree = ET.parse(os.path.join(ARROW_BUILD_ROOT, 'java', 'pom.xml'))
+    tree = ET.parse(os.path.join(ARROW_ROOT_DEFAULT, 'java', 'pom.xml'))
     tag_pattern = '{http://maven.apache.org/POM/4.0.0}version'
     version_tag = list(tree.getroot().findall(tag_pattern))[0]
     return version_tag.text
diff --git a/java/.gitattributes b/java/.gitattributes
deleted file mode 100644
index 366d3c2b3c..0000000000
--- a/java/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-.gitattributes export-ignore
-.gitignore export-ignore
-* text=auto eol=lf
diff --git a/java/.gitignore b/java/.gitignore
deleted file mode 100644
index 63c90af7b7..0000000000
--- a/java/.gitignore
+++ /dev/null
@@ -1,23 +0,0 @@
-*.DS_Store
-*.iml
-*.lck
-*.log
-*.patch
-*~
-.buildpath
-.checkstyle
-.classpath
-.factorypath
-.idea/
-.project
-.settings/
-/build/
-/*-build/
-CMakeCache.txt
-CMakeFiles/
-Makefile
-TAGS
-arrow-git.properties
-cmake_install.cmake
-install_manifest.txt
-target/
diff --git a/java/.mvn/develocity.xml b/java/.mvn/develocity.xml
deleted file mode 100644
index df3cbccd2b..0000000000
--- a/java/.mvn/develocity.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
-
-    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.
-
--->
-<develocity xmlns="https://www.gradle.com/develocity-maven" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.gradle.com/develocity-maven https://www.gradle.com/schema/develocity-maven.xsd">
-    <server>
-        <url>https://ge.apache.org</url>
-        <allowUntrusted>false</allowUntrusted>
-    </server>
-    <buildScan>
-        <capture>
-            <fileFingerprints>true</fileFingerprints>
-            <buildLogging>true</buildLogging>
-            <testLogging>true</testLogging>
-        </capture>
-        <backgroundBuildScanUpload>#{isFalse(env['CI'])}</backgroundBuildScanUpload>
-        <publishing><onlyIf>true</onlyIf></publishing>
-        <publishIfAuthenticated>true</publishIfAuthenticated>
-        <obfuscation>
-            <ipAddresses>#{{'0.0.0.0'}}</ipAddresses>
-        </obfuscation>
-    </buildScan>
-    <buildCache>
-        <remote>
-            <enabled>false</enabled>
-        </remote>
-    </buildCache>
-</develocity>
diff --git a/java/.mvn/extensions.xml b/java/.mvn/extensions.xml
deleted file mode 100644
index 0836fc47d0..0000000000
--- a/java/.mvn/extensions.xml
+++ /dev/null
@@ -1,33 +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.
-
--->
-<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
-    <extension>
-        <groupId>com.gradle</groupId>
-        <artifactId>develocity-maven-extension</artifactId>
-        <version>1.22.2</version>
-    </extension>
-    <extension>
-        <groupId>com.gradle</groupId>
-        <artifactId>common-custom-user-data-maven-extension</artifactId>
-        <version>2.0.1</version>
-    </extension>
-</extensions>
diff --git a/java/Brewfile b/java/Brewfile
deleted file mode 100644
index af6bd65615..0000000000
--- a/java/Brewfile
+++ /dev/null
@@ -1,19 +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.
-
-brew "openjdk@11"
-brew "sccache"
diff --git a/java/CMakeLists.txt b/java/CMakeLists.txt
deleted file mode 100644
index 8b29f37d80..0000000000
--- a/java/CMakeLists.txt
+++ /dev/null
@@ -1,105 +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.
-
-cmake_minimum_required(VERSION 3.16)
-message(STATUS "Building using CMake version: ${CMAKE_VERSION}")
-
-# find_package() uses <PackageName>_ROOT variables.
-# https://cmake.org/cmake/help/latest/policy/CMP0074.html
-if(POLICY CMP0074)
-  cmake_policy(SET CMP0074 NEW)
-endif()
-
-project(arrow-java-jni)
-
-if("${CMAKE_CXX_STANDARD}" STREQUAL "")
-  set(CMAKE_CXX_STANDARD 17)
-endif()
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-
-# Components
-option(ARROW_JAVA_JNI_ENABLE_DEFAULT "Whether enable components by default or not" ON)
-option(ARROW_JAVA_JNI_ENABLE_C "Enable C data interface" ${ARROW_JAVA_JNI_ENABLE_DEFAULT})
-option(ARROW_JAVA_JNI_ENABLE_DATASET "Enable dataset" ${ARROW_JAVA_JNI_ENABLE_DEFAULT})
-option(ARROW_JAVA_JNI_ENABLE_GANDIVA "Enable Gandiva" ${ARROW_JAVA_JNI_ENABLE_DEFAULT})
-option(ARROW_JAVA_JNI_ENABLE_ORC "Enable ORC" ${ARROW_JAVA_JNI_ENABLE_DEFAULT})
-
-include(GNUInstallDirs)
-
-# ccache
-option(ARROW_JAVA_JNI_USE_CCACHE "Use ccache when compiling (if available)" ON)
-if(ARROW_USE_CCACHE
-   AND NOT CMAKE_C_COMPILER_LAUNCHER
-   AND NOT CMAKE_CXX_COMPILER_LAUNCHER)
-  find_program(CCACHE ccache)
-  if(CCACHE)
-    message(STATUS "Using ccache: ${CCACHE}")
-    set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE})
-    set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE})
-    # ARROW-3985: let ccache preserve C++ comments, because some of them may be
-    # meaningful to the compiler
-    set(ENV{CCACHE_COMMENTS} "1")
-  endif()
-endif()
-
-# Build
-find_package(Java REQUIRED)
-find_package(JNI REQUIRED)
-
-include(UseJava)
-
-add_library(jni INTERFACE IMPORTED)
-set_target_properties(jni PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${JNI_INCLUDE_DIRS}")
-
-include(CTest)
-if(BUILD_TESTING)
-  find_package(ArrowTesting REQUIRED)
-  find_package(GTest REQUIRED)
-  add_library(arrow_java_test INTERFACE IMPORTED)
-  target_link_libraries(arrow_java_test INTERFACE ArrowTesting::arrow_testing_static
-                                                  GTest::gtest_main)
-endif()
-
-# The ARROW_JAVA_JNI_ARCH_DIR will automatically be derived the normalized
-# operating system from system processor. The user can override this variable
-# if auto-detection fails.
-if("${ARROW_JAVA_JNI_ARCH_DIR}" STREQUAL "")
-  if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64")
-    set(ARROW_JAVA_JNI_ARCH_DIR "aarch_64")
-  elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i386")
-    set(ARROW_JAVA_JNI_ARCH_DIR "x86_64")
-  elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm64")
-    set(ARROW_JAVA_JNI_ARCH_DIR "aarch_64")
-  elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "AMD64")
-    set(ARROW_JAVA_JNI_ARCH_DIR "x86_64")
-  else()
-    set(ARROW_JAVA_JNI_ARCH_DIR "${CMAKE_SYSTEM_PROCESSOR}")
-  endif()
-endif()
-
-if(ARROW_JAVA_JNI_ENABLE_C)
-  add_subdirectory(c)
-endif()
-if(ARROW_JAVA_JNI_ENABLE_DATASET)
-  add_subdirectory(dataset)
-endif()
-if(ARROW_JAVA_JNI_ENABLE_GANDIVA)
-  add_subdirectory(gandiva)
-endif()
-if(ARROW_JAVA_JNI_ENABLE_ORC)
-  add_subdirectory(adapter/orc)
-endif()
diff --git a/java/README.md b/java/README.md
deleted file mode 100644
index 9f1b1c63c8..0000000000
--- a/java/README.md
+++ /dev/null
@@ -1,139 +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/).
-
-## Building from source
-
-Refer to [Building Apache Arrow](https://arrow.apache.org/docs/dev/developers/java/building.html) for documentation of environment setup and build instructions.
-
-## 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 24.3.25
-
-$ grep "dep.fbs.version" java/pom.xml
-    <dep.fbs.version>24.3.25</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
-mvn spotless:apply -pl :arrow-format
-```
-
-## 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
-
- * `-Dio.netty.tryReflectionSetAccessible=true` should be set.
-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 [checkstyle.xml](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/main/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 827d19f2a2..0000000000
--- a/java/adapter/avro/pom.xml
+++ /dev/null
@@ -1,73 +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>19.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>
-    <dependency>
-      <groupId>org.apache.arrow</groupId>
-      <artifactId>arrow-memory-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.arrow</groupId>
-      <artifactId>arrow-memory-netty</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.arrow</groupId>
-      <artifactId>arrow-vector</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.immutables</groupId>
-      <artifactId>value-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.avro</groupId>
-      <artifactId>avro</artifactId>
-      <version>${dep.avro.version}</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <configuration combine.children="append">
-          <compilerArgs>
-            <arg>-Werror</arg>
-          </compilerArgs>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/java/adapter/avro/src/main/java/module-info.java b/java/adapter/avro/src/main/java/module-info.java
deleted file mode 100644
index 5c6204be60..0000000000
--- a/java/adapter/avro/src/main/java/module-info.java
+++ /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.
- */
-
-module org.apache.arrow.adapter.avro {
-  exports org.apache.arrow.adapter.avro.consumers;
-  exports org.apache.arrow.adapter.avro.consumers.logical;
-  exports org.apache.arrow.adapter.avro;
-
-  requires org.apache.arrow.memory.core;
-  requires org.apache.arrow.vector;
-  requires org.apache.avro;
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/AvroToArrow.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/AvroToArrow.java
deleted file mode 100644
index 2392c36f94..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/AvroToArrow.java
+++ /dev/null
@@ -1,62 +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.avro;
-
-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 cannot be null");
-    Preconditions.checkNotNull(decoder, "Avro decoder object cannot be null");
-    Preconditions.checkNotNull(config, "config cannot 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 cannot be null");
-    Preconditions.checkNotNull(decoder, "Avro decoder object cannot be null");
-    Preconditions.checkNotNull(config, "config cannot be null");
-
-    return AvroToArrowVectorIterator.create(decoder, schema, config);
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/AvroToArrowConfig.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/AvroToArrowConfig.java
deleted file mode 100644
index 290d1a77d9..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/AvroToArrowConfig.java
+++ /dev/null
@@ -1,83 +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.avro;
-
-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/adapter/avro/AvroToArrowConfigBuilder.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/AvroToArrowConfigBuilder.java
deleted file mode 100644
index 1fa176a7fe..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/AvroToArrowConfigBuilder.java
+++ /dev/null
@@ -1,62 +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.avro;
-
-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/adapter/avro/AvroToArrowUtils.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/AvroToArrowUtils.java
deleted file mode 100644
index b39121cfd1..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/AvroToArrowUtils.java
+++ /dev/null
@@ -1,827 +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.avro;
-
-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.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-import org.apache.arrow.adapter.avro.consumers.AvroArraysConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroBooleanConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroBytesConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroDoubleConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroEnumConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroFixedConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroFloatConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroIntConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroLongConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroMapConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroNullConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroStringConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroStructConsumer;
-import org.apache.arrow.adapter.avro.consumers.AvroUnionsConsumer;
-import org.apache.arrow.adapter.avro.consumers.CompositeAvroConsumer;
-import org.apache.arrow.adapter.avro.consumers.Consumer;
-import org.apache.arrow.adapter.avro.consumers.SkipConsumer;
-import org.apache.arrow.adapter.avro.consumers.SkipFunction;
-import org.apache.arrow.adapter.avro.consumers.logical.AvroDateConsumer;
-import org.apache.arrow.adapter.avro.consumers.logical.AvroDecimalConsumer;
-import org.apache.arrow.adapter.avro.consumers.logical.AvroTimeMicroConsumer;
-import org.apache.arrow.adapter.avro.consumers.logical.AvroTimeMillisConsumer;
-import org.apache.arrow.adapter.avro.consumers.logical.AvroTimestampMicrosConsumer;
-import org.apache.arrow.adapter.avro.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.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>INT --> ArrowType.Int(32, signed)
-   *   <li>LONG --> ArrowType.Int(64, signed)
-   *   <li>FLOAT --> ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE)
-   *   <li>DOUBLE --> ArrowType.FloatingPoint(FloatingPointPrecision.DOUBLE)
-   *   <li>BOOLEAN --> ArrowType.Bool
-   *   <li>BYTES --> ArrowType.Binary
-   *   <li>ARRAY --> ArrowType.List
-   *   <li>MAP --> ArrowType.Map
-   *   <li>FIXED --> ArrowType.FixedSizeBinary
-   *   <li>RECORD --> ArrowType.Struct
-   *   <li>UNION --> ArrowType.Union
-   *   <li>ENUM--> ArrowType.Int
-   *   <li>DECIMAL --> ArrowType.Decimal
-   *   <li>Date --> ArrowType.Date(DateUnit.DAY)
-   *   <li>TimeMillis --> ArrowType.Time(TimeUnit.MILLISECOND, 32)
-   *   <li>TimeMicros --> ArrowType.Time(TimeUnit.MICROSECOND, 64)
-   *   <li>TimestampMillis --> ArrowType.Timestamp(TimeUnit.MILLISECOND, null)
-   *   <li>TimestampMicros --> ArrowType.Timestamp(TimeUnit.MICROSECOND, null)
-   * </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 Schema.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, /*isSigned=*/ 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, /*isSigned=*/ 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;
-    Schema.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 == Schema.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(Locale.ROOT);
-  }
-
-  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 Schema.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(/*keysSorted=*/ 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, /*isSigned=*/ 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, /*isSigned=*/ 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() == Schema.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 == Schema.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/adapter/avro/AvroToArrowVectorIterator.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/AvroToArrowVectorIterator.java
deleted file mode 100644
index 4123370061..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/AvroToArrowVectorIterator.java
+++ /dev/null
@@ -1,171 +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.avro;
-
-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.adapter.avro.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. */
-  @Override
-  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. */
-  @Override
-  public void close() {
-    if (nextBatch != null) {
-      nextBatch.close();
-    }
-    compositeConsumer.close();
-  }
-}
diff --git a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroArraysConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroArraysConsumer.java
deleted file mode 100644
index 4555ce7a29..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroArraysConsumer.java
+++ /dev/null
@@ -1,69 +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.avro.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/adapter/avro/consumers/AvroBooleanConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroBooleanConsumer.java
deleted file mode 100644
index 09eb5f3b25..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroBooleanConsumer.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.adapter.avro.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/adapter/avro/consumers/AvroBytesConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroBytesConsumer.java
deleted file mode 100644
index 86b6cbb13d..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroBytesConsumer.java
+++ /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.
- */
-package org.apache.arrow.adapter.avro.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/adapter/avro/consumers/AvroDoubleConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroDoubleConsumer.java
deleted file mode 100644
index 011cbccc09..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroDoubleConsumer.java
+++ /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.
- */
-package org.apache.arrow.adapter.avro.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/adapter/avro/consumers/AvroEnumConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroEnumConsumer.java
deleted file mode 100644
index f47988fb96..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroEnumConsumer.java
+++ /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.
- */
-package org.apache.arrow.adapter.avro.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/adapter/avro/consumers/AvroFixedConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroFixedConsumer.java
deleted file mode 100644
index 6b78afd3c9..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroFixedConsumer.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.adapter.avro.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/adapter/avro/consumers/AvroFloatConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroFloatConsumer.java
deleted file mode 100644
index 2c6d4aa5a0..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroFloatConsumer.java
+++ /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.
- */
-package org.apache.arrow.adapter.avro.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/adapter/avro/consumers/AvroIntConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroIntConsumer.java
deleted file mode 100644
index 22c7b10aa6..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroIntConsumer.java
+++ /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.
- */
-package org.apache.arrow.adapter.avro.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/adapter/avro/consumers/AvroLongConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroLongConsumer.java
deleted file mode 100644
index 90c5313417..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroLongConsumer.java
+++ /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.
- */
-package org.apache.arrow.adapter.avro.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/adapter/avro/consumers/AvroMapConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroMapConsumer.java
deleted file mode 100644
index 543471533e..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroMapConsumer.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.adapter.avro.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/adapter/avro/consumers/AvroNullConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroNullConsumer.java
deleted file mode 100644
index 0f80c2b7b2..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroNullConsumer.java
+++ /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.
- */
-package org.apache.arrow.adapter.avro.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/adapter/avro/consumers/AvroStringConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroStringConsumer.java
deleted file mode 100644
index 164d595e9c..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroStringConsumer.java
+++ /dev/null
@@ -1,44 +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.avro.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/adapter/avro/consumers/AvroStructConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroStructConsumer.java
deleted file mode 100644
index 94c2f611e8..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroStructConsumer.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.adapter.avro.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/adapter/avro/consumers/AvroUnionsConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroUnionsConsumer.java
deleted file mode 100644
index 5a8e23e628..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/AvroUnionsConsumer.java
+++ /dev/null
@@ -1,83 +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.avro.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/adapter/avro/consumers/BaseAvroConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/BaseAvroConsumer.java
deleted file mode 100644
index 9430d83cb4..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/BaseAvroConsumer.java
+++ /dev/null
@@ -1,66 +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.avro.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/adapter/avro/consumers/CompositeAvroConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/CompositeAvroConsumer.java
deleted file mode 100644
index 11c1f7712e..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/CompositeAvroConsumer.java
+++ /dev/null
@@ -1,64 +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.avro.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/adapter/avro/consumers/Consumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/Consumer.java
deleted file mode 100644
index 0c07f90bf5..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/Consumer.java
+++ /dev/null
@@ -1,62 +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.avro.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. */
-  @Override
-  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/adapter/avro/consumers/SkipConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/SkipConsumer.java
deleted file mode 100644
index 2c104728ce..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/SkipConsumer.java
+++ /dev/null
@@ -1,60 +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.avro.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/adapter/avro/consumers/SkipFunction.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/SkipFunction.java
deleted file mode 100644
index 3d72d03104..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/SkipFunction.java
+++ /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.
- */
-package org.apache.arrow.adapter.avro.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/adapter/avro/consumers/logical/AvroDateConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/logical/AvroDateConsumer.java
deleted file mode 100644
index 0f557297a3..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/logical/AvroDateConsumer.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.adapter.avro.consumers.logical;
-
-import java.io.IOException;
-import org.apache.arrow.adapter.avro.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/adapter/avro/consumers/logical/AvroDecimalConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/logical/AvroDecimalConsumer.java
deleted file mode 100644
index fa1a12ac8a..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/logical/AvroDecimalConsumer.java
+++ /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.
- */
-package org.apache.arrow.adapter.avro.consumers.logical;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import org.apache.arrow.adapter.avro.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/adapter/avro/consumers/logical/AvroTimeMicroConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/logical/AvroTimeMicroConsumer.java
deleted file mode 100644
index 60e7d15bf1..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/logical/AvroTimeMicroConsumer.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.adapter.avro.consumers.logical;
-
-import java.io.IOException;
-import org.apache.arrow.adapter.avro.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/adapter/avro/consumers/logical/AvroTimeMillisConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/logical/AvroTimeMillisConsumer.java
deleted file mode 100644
index e0b232e9ab..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/logical/AvroTimeMillisConsumer.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.adapter.avro.consumers.logical;
-
-import java.io.IOException;
-import org.apache.arrow.adapter.avro.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/adapter/avro/consumers/logical/AvroTimestampMicrosConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/logical/AvroTimestampMicrosConsumer.java
deleted file mode 100644
index 88acf7b329..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/logical/AvroTimestampMicrosConsumer.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.adapter.avro.consumers.logical;
-
-import java.io.IOException;
-import org.apache.arrow.adapter.avro.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/adapter/avro/consumers/logical/AvroTimestampMillisConsumer.java b/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/logical/AvroTimestampMillisConsumer.java
deleted file mode 100644
index ec50d79023..0000000000
--- a/java/adapter/avro/src/main/java/org/apache/arrow/adapter/avro/consumers/logical/AvroTimestampMillisConsumer.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.adapter.avro.consumers.logical;
-
-import java.io.IOException;
-import org.apache.arrow.adapter.avro.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/adapter/avro/AvroLogicalTypesTest.java b/java/adapter/avro/src/test/java/org/apache/arrow/adapter/avro/AvroLogicalTypesTest.java
deleted file mode 100644
index 173cc855b1..0000000000
--- a/java/adapter/avro/src/test/java/org/apache/arrow/adapter/avro/AvroLogicalTypesTest.java
+++ /dev/null
@@ -1,196 +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.avro;
-
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-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.jupiter.api.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/adapter/avro/AvroSkipFieldTest.java b/java/adapter/avro/src/test/java/org/apache/arrow/adapter/avro/AvroSkipFieldTest.java
deleted file mode 100644
index 3120c26638..0000000000
--- a/java/adapter/avro/src/test/java/org/apache/arrow/adapter/avro/AvroSkipFieldTest.java
+++ /dev/null
@@ -1,685 +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.avro;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-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.jupiter.api.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(StandardCharsets.UTF_8);
-      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(StandardCharsets.UTF_8);
-      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(StandardCharsets.UTF_8);
-      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(StandardCharsets.UTF_8);
-      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/adapter/avro/AvroTestBase.java b/java/adapter/avro/src/test/java/org/apache/arrow/adapter/avro/AvroTestBase.java
deleted file mode 100644
index 44c4186c52..0000000000
--- a/java/adapter/avro/src/test/java/org/apache/arrow/adapter/avro/AvroTestBase.java
+++ /dev/null
@@ -1,241 +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.avro;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.lang.reflect.Method;
-import java.nio.ByteBuffer;
-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.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.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.io.TempDir;
-
-public class AvroTestBase {
-
-  @TempDir public File TMP;
-
-  protected AvroToArrowConfig config;
-
-  @BeforeEach
-  public void init() {
-    BufferAllocator allocator = new RootAllocator(Long.MAX_VALUE);
-    config = new AvroToArrowConfigBuilder(allocator).build();
-  }
-
-  public static Schema getSchema(String schemaName) throws Exception {
-    try {
-      // Attempt to use JDK 9 behavior of getting the module then the resource stream from the
-      // module.
-      // Note that this code is caller-sensitive.
-      Method getModuleMethod = Class.class.getMethod("getModule");
-      Object module = getModuleMethod.invoke(TestWriteReadAvroRecord.class);
-      Method getResourceAsStreamFromModule =
-          module.getClass().getMethod("getResourceAsStream", String.class);
-      try (InputStream is =
-          (InputStream) getResourceAsStreamFromModule.invoke(module, "/schema/" + schemaName)) {
-        return new Schema.Parser().parse(is);
-      }
-    } catch (NoSuchMethodException ex) {
-      // Use JDK8 behavior.
-      try (InputStream is =
-          TestWriteReadAvroRecord.class.getResourceAsStream("/schema/" + schemaName)) {
-        return new Schema.Parser().parse(is);
-      }
-    }
-  }
-
-  protected VectorSchemaRoot writeAndRead(Schema schema, List data) throws Exception {
-    File dataFile = new File(TMP, "test.avro");
-
-    try (FileOutputStream fos = new FileOutputStream(dataFile);
-        FileInputStream fis = new FileInputStream(dataFile)) {
-
-      BinaryEncoder encoder = new EncoderFactory().directBinaryEncoder(fos, null);
-      DatumWriter<Object> writer = new GenericDatumWriter<>(schema);
-      BinaryDecoder decoder = new DecoderFactory().directBinaryDecoder(fis, 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), 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, List<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++), vector.getObject(i));
-      }
-    }
-  }
-
-  protected void checkRecordResult(
-      Schema schema, List<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/adapter/avro/AvroToArrowIteratorTest.java b/java/adapter/avro/src/test/java/org/apache/arrow/adapter/avro/AvroToArrowIteratorTest.java
deleted file mode 100644
index 44ccbc7451..0000000000
--- a/java/adapter/avro/src/test/java/org/apache/arrow/adapter/avro/AvroToArrowIteratorTest.java
+++ /dev/null
@@ -1,321 +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.avro;
-
-import static org.junit.jupiter.api.Assertions.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.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-public class AvroToArrowIteratorTest extends AvroTestBase {
-
-  @BeforeEach
-  @Override
-  public void init() {
-    final BufferAllocator allocator = new RootAllocator(Long.MAX_VALUE);
-    this.config = new AvroToArrowConfigBuilder(allocator).setTargetBatchSize(3).build();
-  }
-
-  private void writeDataToFile(Schema schema, List<?> data, File dataFile) throws Exception {
-    try (FileOutputStream fos = new FileOutputStream(dataFile)) {
-      BinaryEncoder encoder = EncoderFactory.get().directBinaryEncoder(fos, null);
-      DatumWriter<Object> writer = new GenericDatumWriter<>(schema);
-
-      for (Object value : data) {
-        writer.write(value, encoder);
-      }
-      encoder.flush();
-    }
-  }
-
-  private AvroToArrowVectorIterator convert(Schema schema, FileInputStream fis) throws Exception {
-    BinaryDecoder decoder = DecoderFactory.get().directBinaryDecoder(fis, null);
-    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");
-
-    File dataFile = new File(TMP, "test.avro");
-    writeDataToFile(schema, data, dataFile);
-
-    List<VectorSchemaRoot> roots = new ArrayList<>();
-    List<FieldVector> vectors = new ArrayList<>();
-    try (FileInputStream fis = new FileInputStream(dataFile);
-        AvroToArrowVectorIterator iterator = convert(schema, fis)) {
-      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);
-    }
-
-    File dataFile = new File(TMP, "test.avro");
-    writeDataToFile(schema, data, dataFile);
-
-    List<VectorSchemaRoot> roots = new ArrayList<>();
-    List<FieldVector> vectors = new ArrayList<>();
-    try (FileInputStream fis = new FileInputStream(dataFile);
-        AvroToArrowVectorIterator iterator = convert(schema, fis)) {
-      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);
-    }
-
-    File dataFile = new File(TMP, "test.avro");
-    writeDataToFile(schema, data, dataFile);
-
-    List<VectorSchemaRoot> roots = new ArrayList<>();
-    try (FileInputStream fis = new FileInputStream(dataFile);
-        AvroToArrowVectorIterator iterator = convert(schema, fis)) {
-      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"));
-
-    File dataFile = new File(TMP, "test.avro");
-    writeDataToFile(schema, data, dataFile);
-
-    List<VectorSchemaRoot> roots = new ArrayList<>();
-    List<ListVector> vectors = new ArrayList<>();
-    try (FileInputStream fis = new FileInputStream(dataFile);
-        AvroToArrowVectorIterator iterator = convert(schema, fis)) {
-      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(targetRows, x);
-  }
-
-  /** Fake avro decoder to test large data. */
-  private static 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/adapter/avro/AvroToArrowTest.java b/java/adapter/avro/src/test/java/org/apache/arrow/adapter/avro/AvroToArrowTest.java
deleted file mode 100644
index 899ea40301..0000000000
--- a/java/adapter/avro/src/test/java/org/apache/arrow/adapter/avro/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.adapter.avro;
-
-import static org.junit.jupiter.api.Assertions.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.jupiter.api.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<>();
-    for (int i = 0; i < 5; i++) {
-      byte[] value = ("value" + i).getBytes(StandardCharsets.UTF_8);
-      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/adapter/avro/TestWriteReadAvroRecord.java b/java/adapter/avro/src/test/java/org/apache/arrow/adapter/avro/TestWriteReadAvroRecord.java
deleted file mode 100644
index c318214f5c..0000000000
--- a/java/adapter/avro/src/test/java/org/apache/arrow/adapter/avro/TestWriteReadAvroRecord.java
+++ /dev/null
@@ -1,85 +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.avro;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.io.File;
-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.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
-
-public class TestWriteReadAvroRecord {
-
-  @TempDir public static File TMP;
-
-  @Test
-  public void testWriteAndRead() throws Exception {
-    File dataFile = new File(TMP, "test.avro");
-    Schema schema = AvroTestBase.getSchema("test.avsc");
-
-    // 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);
-    try (DataFileWriter<GenericRecord> dataFileWriter =
-        new DataFileWriter<GenericRecord>(datumWriter)) {
-      dataFileWriter.create(schema, dataFile);
-      dataFileWriter.append(user1);
-      dataFileWriter.append(user2);
-    }
-
-    // read data from disk
-    DatumReader<GenericRecord> datumReader = new GenericDatumReader<GenericRecord>(schema);
-    List<GenericRecord> result = new ArrayList<>();
-    try (DataFileReader<GenericRecord> dataFileReader =
-        new DataFileReader<GenericRecord>(dataFile, datumReader)) {
-      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/logback.xml b/java/adapter/avro/src/test/resources/logback.xml
deleted file mode 100644
index 4c54d18a21..0000000000
--- a/java/adapter/avro/src/test/resources/logback.xml
+++ /dev/null
@@ -1,28 +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. -->
-
-<configuration>
-  <statusListener class="ch.qos.logback.core.status.NopStatusListener"/>
-  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-    <!-- encoders are assigned the type
-         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
-    <encoder>
-      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
-    </encoder>
-  </appender>
-
-  <logger name="org.apache.arrow" additivity="false">
-    <level value="info" />
-    <appender-ref ref="STDOUT" />
-  </logger>
-
-</configuration>
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 afd00b8d9f..0000000000
--- 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 55e504def1..0000000000
--- 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 2e2e311a9d..0000000000
--- 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 f661e65062..0000000000
--- 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 18d7d63fc7..0000000000
--- 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 eed7bd7811..0000000000
--- 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 1667b8aff8..0000000000
--- 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 e1f710416f..0000000000
--- 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 944b5d85d6..0000000000
--- 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 1901f90a97..0000000000
--- 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 ee7d4e9378..0000000000
--- 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 54877babc8..0000000000
--- 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 15c0bf53dc..0000000000
--- 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 822a2c360c..0000000000
--- 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 e836aa7685..0000000000
--- 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 36e7fdfb06..0000000000
--- 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 5338253f45..0000000000
--- 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 50655a70e1..0000000000
--- 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 9b62e3149f..0000000000
--- 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 8a1903b34d..0000000000
--- 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 6021c44541..0000000000
--- 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 f5ed86a289..0000000000
--- 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 5423a7977c..0000000000
--- 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 dea106331a..0000000000
--- 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 53d4f1025b..0000000000
--- 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 bf16601dd4..0000000000
--- 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 8cbb1a1d72..0000000000
--- 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 36e7fdfb06..0000000000
--- 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 b5d637b1da..0000000000
--- 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 7aee92b924..0000000000
--- 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 3e24952035..0000000000
--- 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 f3b7f8c097..0000000000
--- 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 553525847d..0000000000
--- 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 2d2c081743..0000000000
--- 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 6f42da893d..0000000000
--- 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 fc1105911d..0000000000
--- 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 308e027a26..0000000000
--- 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 cbc83e5666..0000000000
--- 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 0f72fb432f..0000000000
--- 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 92c0873de1..0000000000
--- 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 5b75a4031d..0000000000
--- 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 a4d96e9ab5..0000000000
--- 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 f784ae6233..0000000000
--- 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 0dfa3a595b..0000000000
--- 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 29dddfd1ad..0000000000
--- 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 62af1a85d8..0000000000
--- 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 002bc7ce2c..0000000000
--- 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 642b7aa162..0000000000
--- 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 dff285909b..0000000000
--- 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 abb2fc48a6..0000000000
--- 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 0624d27371..0000000000
--- 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 347808ce6d..0000000000
--- 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 af94812d76..0000000000
--- 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 7652ce7238..0000000000
--- 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 5102430b65..0000000000
--- 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 d1ae0b605a..0000000000
--- 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 bd8df61020..0000000000
--- 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 675d1090d8..0000000000
--- 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 8fc8488281..0000000000
--- 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 b9706107c0..0000000000
--- 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 b4a89a7f62..0000000000
--- 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 e83cf1180d..0000000000
--- 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 f181e36e3c..0000000000
--- 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 2f621d7a05..0000000000
--- a/java/adapter/jdbc/pom.xml
+++ /dev/null
@@ -1,130 +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>19.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>
-
-    <dependency>
-      <groupId>org.apache.arrow</groupId>
-      <artifactId>arrow-memory-core</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.arrow</groupId>
-      <artifactId>arrow-memory-netty</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.arrow</groupId>
-      <artifactId>arrow-vector</artifactId>
-      <classifier>${arrow.vector.classifier}</classifier>
-    </dependency>
-
-    <dependency>
-      <groupId>org.immutables</groupId>
-      <artifactId>value-annotations</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>com.h2database</groupId>
-      <artifactId>h2</artifactId>
-      <version>2.3.232</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>com.fasterxml.jackson.dataformat</groupId>
-      <artifactId>jackson-dataformat-yaml</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-databind</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-core</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.assertj</groupId>
-      <artifactId>assertj-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>analyze</id>
-            <phase>verify</phase>
-            <configuration>
-              <ignoredNonTestScopedDependencies>
-                <ignoredNonTestScopedDependency>com.fasterxml.jackson.core:jackson-annotations</ignoredNonTestScopedDependency>
-              </ignoredNonTestScopedDependencies>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration combine.self="override">
-          <argLine>--add-reads=org.apache.arrow.adapter.jdbc=com.fasterxml.jackson.dataformat.yaml --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED -Duser.timezone=UTC</argLine>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <configuration combine.children="append">
-          <compilerArgs>
-            <arg>-Werror</arg>
-          </compilerArgs>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/java/adapter/jdbc/src/main/java/module-info.java b/java/adapter/jdbc/src/main/java/module-info.java
deleted file mode 100644
index 04977222c1..0000000000
--- a/java/adapter/jdbc/src/main/java/module-info.java
+++ /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.
- */
-
-module org.apache.arrow.adapter.jdbc {
-  exports org.apache.arrow.adapter.jdbc.consumer;
-  exports org.apache.arrow.adapter.jdbc;
-  exports org.apache.arrow.adapter.jdbc.binder;
-
-  requires com.fasterxml.jackson.annotation;
-  requires com.fasterxml.jackson.databind;
-  requires java.sql;
-  requires jdk.unsupported;
-  requires org.apache.arrow.memory.core;
-  requires org.apache.arrow.vector;
-}
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 d30cf32a04..0000000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/ArrowVectorIterator.java
+++ /dev/null
@@ -1,207 +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.adapter.jdbc.consumer.exceptions.JdbcConsumerException;
-import org.apache.arrow.util.AutoCloseables;
-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.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;
-
-  // this is used only if resuing vector schema root is enabled.
-  private VectorSchemaRoot nextBatch;
-
-  private final int targetBatchSize;
-
-  // This is used to track whether the ResultSet has been fully read, and is needed specifically for
-  // cases where there
-  // is a ResultSet having zero rows (empty):
-  private boolean readComplete = false;
-
-  /** 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);
-    this.nextBatch = config.isReuseVectorSchemaRoot() ? createVectorSchemaRoot() : null;
-  }
-
-  /** Create a ArrowVectorIterator to partially convert data. */
-  public static ArrowVectorIterator create(ResultSet resultSet, JdbcToArrowConfig config)
-      throws SQLException {
-    ArrowVectorIterator iterator = null;
-    try {
-      iterator = new ArrowVectorIterator(resultSet, config);
-    } catch (Throwable e) {
-      AutoCloseables.close(e, iterator);
-      throw new RuntimeException("Error occurred while creating iterator.", e);
-    }
-    return iterator;
-  }
-
-  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++;
-        }
-        readComplete = true;
-      } else {
-        while ((readRowCount < targetBatchSize) && !readComplete) {
-          if (resultSet.next()) {
-            compositeConsumer.consume(resultSet);
-            readRowCount++;
-          } else {
-            readComplete = true;
-          }
-        }
-      }
-
-      root.setRowCount(readRowCount);
-    } catch (Throwable e) {
-      compositeConsumer.close();
-      if (e instanceof JdbcConsumerException) {
-        throw (JdbcConsumerException) e;
-      } else {
-        throw new RuntimeException("Error occurred while consuming data.", e);
-      }
-    }
-  }
-
-  private VectorSchemaRoot createVectorSchemaRoot() throws SQLException {
-    VectorSchemaRoot root = null;
-    try {
-      root = VectorSchemaRoot.create(schema, config.getAllocator());
-      if (config.getTargetBatchSize() != JdbcToArrowConfig.NO_LIMIT_BATCH_SIZE) {
-        ValueVectorUtility.preAllocate(root, config.getTargetBatchSize());
-      }
-    } catch (Throwable e) {
-      if (root != null) {
-        root.close();
-      }
-      throw new RuntimeException("Error occurred while creating schema root.", e);
-    }
-    initialize(root);
-    return root;
-  }
-
-  private void initialize(VectorSchemaRoot root) throws SQLException {
-    for (int i = 1; i <= consumers.length; i++) {
-      final JdbcFieldInfo columnFieldInfo =
-          JdbcToArrowUtils.getJdbcFieldInfoForColumn(rsmd, i, config);
-      ArrowType arrowType = config.getJdbcToArrowTypeConverter().apply(columnFieldInfo);
-      consumers[i - 1] =
-          config
-              .getJdbcConsumerGetter()
-              .apply(
-                  arrowType,
-                  i,
-                  isColumnNullable(resultSet.getMetaData(), i, columnFieldInfo),
-                  root.getVector(i - 1),
-                  config);
-    }
-  }
-
-  // Loads the next schema root or null if no more rows are available.
-  private void load(VectorSchemaRoot root) {
-    for (int i = 0; i < consumers.length; i++) {
-      FieldVector vec = root.getVector(i);
-      if (config.isReuseVectorSchemaRoot()) {
-        // if we are reusing the vector schema root,
-        // we must reset the vector before populating it with data.
-        vec.reset();
-      }
-      consumers[i].resetValueVector(vec);
-    }
-
-    consumeData(root);
-  }
-
-  @Override
-  public boolean hasNext() {
-    return !readComplete;
-  }
-
-  /**
-   * Gets the next vector. If {@link JdbcToArrowConfig#isReuseVectorSchemaRoot()} is false, the
-   * client is responsible for freeing its resources.
-   *
-   * @throws JdbcConsumerException on error from VectorConsumer
-   */
-  @Override
-  public VectorSchemaRoot next() {
-    Preconditions.checkArgument(hasNext());
-    try {
-      VectorSchemaRoot ret =
-          config.isReuseVectorSchemaRoot() ? nextBatch : createVectorSchemaRoot();
-      load(ret);
-      return ret;
-    } catch (Exception e) {
-      close();
-      if (e instanceof JdbcConsumerException) {
-        throw (JdbcConsumerException) e;
-      } else {
-        throw new RuntimeException("Error occurred while getting next schema root.", e);
-      }
-    }
-  }
-
-  /**
-   * Clean up resources ONLY WHEN THE {@link VectorSchemaRoot} HOLDING EACH BATCH IS REUSED. If a
-   * new VectorSchemaRoot is created for each batch, each root must be closed manually by the client
-   * code.
-   */
-  @Override
-  public void close() {
-    if (config.isReuseVectorSchemaRoot()) {
-      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 30e734a68d..0000000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/Constants.java
+++ /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.
- */
-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_SCHEMA_NAME_KEY = "SQL_SCHEMA_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 6becac0bbc..0000000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcFieldInfo.java
+++ /dev/null
@@ -1,193 +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.ResultSet;
-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>The nullability.
- *   <li>The field's precision (used for {@link java.sql.Types#DECIMAL} and {@link
- *       java.sql.Types#NUMERIC} types).
- *   <li>The field's scale (used for {@link java.sql.Types#DECIMAL} and {@link
- *       java.sql.Types#NUMERIC} types).
- * </ul>
- */
-public class JdbcFieldInfo {
-  private final int column;
-  private final int jdbcType;
-  private final int nullability;
-  private final int precision;
-  private final int scale;
-  private final String typeName;
-  private final int displaySize;
-
-  /**
-   * 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.column = 0;
-    this.jdbcType = jdbcType;
-    this.nullability = ResultSetMetaData.columnNullableUnknown;
-    this.precision = 0;
-    this.scale = 0;
-    this.typeName = "";
-    this.displaySize = 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.column = 0;
-    this.jdbcType = jdbcType;
-    this.nullability = ResultSetMetaData.columnNullableUnknown;
-    this.precision = precision;
-    this.scale = scale;
-    this.typeName = "";
-    this.displaySize = 0;
-  }
-
-  /**
-   * Builds a <code>JdbcFieldInfo</code> from the {@link java.sql.Types} type, nullability,
-   * precision, and scale.
-   *
-   * @param jdbcType The {@link java.sql.Types} type.
-   * @param nullability The nullability. Must be one of {@link ResultSetMetaData#columnNoNulls},
-   *     {@link ResultSetMetaData#columnNullable}, or {@link
-   *     ResultSetMetaData#columnNullableUnknown}.
-   * @param precision The field's numeric precision.
-   * @param scale The field's numeric scale.
-   */
-  public JdbcFieldInfo(int jdbcType, int nullability, int precision, int scale) {
-    this.column = 0;
-    this.jdbcType = jdbcType;
-    this.nullability = nullability;
-    this.precision = precision;
-    this.scale = scale;
-    this.typeName = "";
-    this.displaySize = 0;
-  }
-
-  /**
-   * 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.column = column;
-    this.jdbcType = rsmd.getColumnType(column);
-    this.nullability = rsmd.isNullable(column);
-    this.precision = rsmd.getPrecision(column);
-    this.scale = rsmd.getScale(column);
-    this.typeName = rsmd.getColumnTypeName(column);
-    this.displaySize = rsmd.getColumnDisplaySize(column);
-  }
-
-  /**
-   * Builds a <code>JdbcFieldInfo</code> from the corresponding row from a {@link
-   * java.sql.DatabaseMetaData#getColumns} ResultSet.
-   *
-   * @param rs The {@link java.sql.ResultSet} to get the field information from.
-   * @throws SQLException If the column information cannot be retrieved.
-   */
-  public JdbcFieldInfo(ResultSet rs) throws SQLException {
-    this.column = rs.getInt("ORDINAL_POSITION");
-    this.jdbcType = rs.getInt("DATA_TYPE");
-    this.nullability = rs.getInt("NULLABLE");
-    this.precision = rs.getInt("COLUMN_SIZE");
-    this.scale = rs.getInt("DECIMAL_DIGITS");
-    this.typeName = rs.getString("TYPE_NAME");
-    this.displaySize = rs.getInt("CHAR_OCTET_LENGTH");
-  }
-
-  /** The {@link java.sql.Types} type. */
-  public int getJdbcType() {
-    return jdbcType;
-  }
-
-  /** The nullability. */
-  public int isNullable() {
-    return nullability;
-  }
-
-  /**
-   * 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;
-  }
-
-  /** The column index for query column. */
-  public int getColumn() {
-    return column;
-  }
-
-  /** The type name as reported by the database. */
-  public String getTypeName() {
-    return typeName;
-  }
-
-  /** The max number of characters for the column. */
-  public int getDisplaySize() {
-    return displaySize;
-  }
-}
diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcParameterBinder.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcParameterBinder.java
deleted file mode 100644
index fd4721bcd9..0000000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcParameterBinder.java
+++ /dev/null
@@ -1,150 +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.PreparedStatement;
-import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.Map;
-import org.apache.arrow.adapter.jdbc.binder.ColumnBinder;
-import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.VectorSchemaRoot;
-
-/**
- * A binder binds JDBC prepared statement parameters to rows of Arrow data from a VectorSchemaRoot.
- *
- * <p>Each row of the VectorSchemaRoot will be bound to the configured parameters of the
- * PreparedStatement. One row of data is bound at a time.
- */
-public class JdbcParameterBinder {
-  private final PreparedStatement statement;
-  private final VectorSchemaRoot root;
-  private final ColumnBinder[] binders;
-  private final int[] parameterIndices;
-  private int nextRowIndex;
-
-  /**
-   * Create a new parameter binder.
-   *
-   * @param statement The statement to bind parameters to.
-   * @param root The VectorSchemaRoot to pull data from.
-   * @param binders Column binders to translate from Arrow data to JDBC parameters, one per
-   *     parameter.
-   * @param parameterIndices For each binder in <tt>binders</tt>, the index of the parameter to bind
-   *     to.
-   */
-  private JdbcParameterBinder(
-      final PreparedStatement statement,
-      final VectorSchemaRoot root,
-      final ColumnBinder[] binders,
-      int[] parameterIndices) {
-    Preconditions.checkArgument(
-        binders.length == parameterIndices.length,
-        "Number of column binders (%s) must equal number of parameter indices (%s)",
-        binders.length,
-        parameterIndices.length);
-    this.statement = statement;
-    this.root = root;
-    this.binders = binders;
-    this.parameterIndices = parameterIndices;
-    this.nextRowIndex = 0;
-  }
-
-  /**
-   * Initialize a binder with a builder.
-   *
-   * @param statement The statement to bind to. The binder does not maintain ownership of the
-   *     statement.
-   * @param root The {@link VectorSchemaRoot} to pull data from. The binder does not maintain
-   *     ownership of the vector schema root.
-   */
-  public static Builder builder(final PreparedStatement statement, final VectorSchemaRoot root) {
-    return new Builder(statement, root);
-  }
-
-  /** Reset the binder (so the root can be updated with new data). */
-  public void reset() {
-    nextRowIndex = 0;
-  }
-
-  /**
-   * Bind the next row of data to the parameters of the statement.
-   *
-   * <p>After this, the application should call the desired method on the prepared statement, such
-   * as {@link PreparedStatement#executeUpdate()}, or {@link PreparedStatement#addBatch()}.
-   *
-   * @return true if a row was bound, false if rows were exhausted
-   */
-  public boolean next() throws SQLException {
-    if (nextRowIndex >= root.getRowCount()) {
-      return false;
-    }
-    for (int i = 0; i < parameterIndices.length; i++) {
-      final int parameterIndex = parameterIndices[i];
-      binders[i].bind(statement, parameterIndex, nextRowIndex);
-    }
-    nextRowIndex++;
-    return true;
-  }
-
-  /** A builder for a {@link JdbcParameterBinder}. */
-  public static class Builder {
-    private final PreparedStatement statement;
-    private final VectorSchemaRoot root;
-    private final Map<Integer, ColumnBinder> bindings;
-
-    Builder(PreparedStatement statement, VectorSchemaRoot root) {
-      this.statement = statement;
-      this.root = root;
-      this.bindings = new HashMap<>();
-    }
-
-    /** Bind each column to the corresponding parameter in order. */
-    public Builder bindAll() {
-      for (int i = 0; i < root.getFieldVectors().size(); i++) {
-        bind(/*parameterIndex=*/ i + 1, /*columnIndex=*/ i);
-      }
-      return this;
-    }
-
-    /** Bind the given parameter to the given column using the default binder. */
-    public Builder bind(int parameterIndex, int columnIndex) {
-      return bind(parameterIndex, ColumnBinder.forVector(root.getVector(columnIndex)));
-    }
-
-    /** Bind the given parameter using the given binder. */
-    public Builder bind(int parameterIndex, ColumnBinder binder) {
-      Preconditions.checkArgument(
-          parameterIndex > 0, "parameterIndex %d must be positive", parameterIndex);
-      bindings.put(parameterIndex, binder);
-      return this;
-    }
-
-    /** Build the binder. */
-    public JdbcParameterBinder build() {
-      ColumnBinder[] binders = new ColumnBinder[bindings.size()];
-      int[] parameterIndices = new int[bindings.size()];
-      int index = 0;
-      for (Map.Entry<Integer, ColumnBinder> entry : bindings.entrySet()) {
-        binders[index] = entry.getValue();
-        parameterIndices[index] = entry.getKey();
-        index++;
-      }
-      return new JdbcParameterBinder(statement, root, binders, parameterIndices);
-    }
-  }
-}
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 493e53056f..0000000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrow.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.adapter.jdbc;
-
-import java.io.IOException;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import org.apache.arrow.memory.BufferAllocator;
-import org.apache.arrow.util.Preconditions;
-
-/**
- * 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 {
-
-  /*----------------------------------------------------------------*
-  |                                                                |
-  |          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 cannot 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 cannot 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 1bfcfc8fe0..0000000000
--- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowConfig.java
+++ /dev/null
@@ -1,405 +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.math.RoundingMode;
-import java.util.Calendar;
-import java.util.Map;
-import java.util.function.Function;
-import org.apache.arrow.adapter.jdbc.consumer.JdbcConsumer;
-import org.apache.arrow.memory.BufferAllocator;
-import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.FieldVector;
-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>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>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.
- */
-public final class JdbcToArrowConfig {
-
-  public static final int DEFAULT_TARGET_BATCH_SIZE = 1024;
-  public static final int NO_LIMIT_BATCH_SIZE = -1;
-  private final Calendar calendar;
-  private final BufferAllocator allocator;
-  private final boolean includeMetadata;
-  private final boolean reuseVectorSchemaRoot;
-  private final Map<Integer, JdbcFieldInfo> arraySubTypesByColumnIndex;
-  private final Map<String, JdbcFieldInfo> arraySubTypesByColumnName;
-  private final Map<Integer, JdbcFieldInfo> explicitTypesByColumnIndex;
-  private final Map<String, JdbcFieldInfo> explicitTypesByColumnName;
-  private final Map<String, String> schemaMetadata;
-  private final Map<Integer, Map<String, String>> columnMetadataByColumnIndex;
-  private final RoundingMode bigDecimalRoundingMode;
-  /**
-   * 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}
-   */
-  private final int targetBatchSize;
-
-  private final Function<JdbcFieldInfo, ArrowType> jdbcToArrowTypeConverter;
-  private final JdbcConsumerFactory jdbcConsumerGetter;
-
-  /**
-   * 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,
-        /* include metadata */ false,
-        /* reuse vector schema root */ false,
-        /* array sub-types by column index */ null,
-        /* array sub-types by column name */ null,
-        DEFAULT_TARGET_BATCH_SIZE,
-        null,
-        null);
-  }
-
-  JdbcToArrowConfig(
-      BufferAllocator allocator,
-      Calendar calendar,
-      boolean includeMetadata,
-      boolean reuseVectorSchemaRoot,
-      Map<Integer, JdbcFieldInfo> arraySubTypesByColumnIndex,
-      Map<String, JdbcFieldInfo> arraySubTypesByColumnName,
-      int targetBatchSize,
-      Function<JdbcFieldInfo, ArrowType> jdbcToArrowTypeConverter) {
-    this(
-        allocator,
-        calendar,
-        includeMetadata,
-        reuseVectorSchemaRoot,
-        arraySubTypesByColumnIndex,
-        arraySubTypesByColumnName,
-        targetBatchSize,
-        jdbcToArrowTypeConverter,
-        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 reuseVectorSchemaRoot Whether to reuse the vector schema root for each data load.
-   * @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 targetBatchSize The target batch size to be used in preallocation of the resulting
-   *     vectors.
-   * @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>NCHAR --> ArrowType.Utf8
-   *       <li>VARCHAR --> ArrowType.Utf8
-   *       <li>NVARCHAR --> ArrowType.Utf8
-   *       <li>LONGVARCHAR --> ArrowType.Utf8
-   *       <li>LONGNVARCHAR --> ArrowType.Utf8
-   *       <li>NUMERIC --> ArrowType.Decimal(precision, scale)
-   *       <li>DECIMAL --> ArrowType.Decimal(precision, scale)
-   *       <li>BIT --> ArrowType.Bool
-   *       <li>TINYINT --> ArrowType.Int(8, signed)
-   *       <li>SMALLINT --> ArrowType.Int(16, signed)
-   *       <li>INTEGER --> ArrowType.Int(32, signed)
-   *       <li>BIGINT --> ArrowType.Int(64, signed)
-   *       <li>REAL --> ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE)
-   *       <li>FLOAT --> ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE)
-   *       <li>DOUBLE --> ArrowType.FloatingPoint(FloatingPointPrecision.DOUBLE)
-   *       <li>BINARY --> ArrowType.Binary
-   *       <li>VARBINARY --> ArrowType.Binary
-   *       <li>LONGVARBINARY --> ArrowType.Binary
-   *       <li>DATE --> ArrowType.Date(DateUnit.DAY)
-   *       <li>TIME --> ArrowType.Time(TimeUnit.MILLISECOND, 32)
-   *       <li>TIMESTAMP --> ArrowType.Timestamp(TimeUnit.MILLISECOND, calendar timezone)
-   *       <li>CLOB --> ArrowType.Utf8
-   *       <li>BLOB --> ArrowType.Binary
-   *       <li>ARRAY --> ArrowType.List
-   *       <li>STRUCT --> ArrowType.Struct
-   *       <li>NULL --> ArrowType.Null
-   *     </ul>
-   *
-   * @param bigDecimalRoundingMode The java.math.RoundingMode to be used in coercion of a BigDecimal
-   *     from a ResultSet having a scale which does not match that of the target vector. Use null
-   *     (default value) to require strict scale matching.
-   */
-  JdbcToArrowConfig(
-      BufferAllocator allocator,
-      Calendar calendar,
-      boolean includeMetadata,
-      boolean reuseVectorSchemaRoot,
-      Map<Integer, JdbcFieldInfo> arraySubTypesByColumnIndex,
-      Map<String, JdbcFieldInfo> arraySubTypesByColumnName,
-      int targetBatchSize,
-      Function<JdbcFieldInfo, ArrowType> jdbcToArrowTypeConverter,
-      RoundingMode bigDecimalRoundingMode) {
-
-    this(
-        allocator,
-        calendar,
-        includeMetadata,
-        reuseVectorSchemaRoot,
-        arraySubTypesByColumnIndex,
-        arraySubTypesByColumnName,
-        targetBatchSize,
-        jdbcToArrowTypeConverter,
-        null,
-        null,
-        null,
-        null,
-        bigDecimalRoundingMode);
-  }
-
-  JdbcToArrowConfig(
-      BufferAllocator allocator,
-      Calendar calendar,
-      boolean includeMetadata,
-      boolean reuseVectorSchemaRoot,
-      Map<Integer, JdbcFieldInfo> arraySubTypesByColumnIndex,
-      Map<String, JdbcFieldInfo> arraySubTypesByColumnName,
-      int targetBatchSize,
-      Function<JdbcFieldInfo, ArrowType> jdbcToArrowTypeConverter,
-      Map<Integer, JdbcFieldInfo> explicitTypesByColumnIndex,
-      Map<String, JdbcFieldInfo> explicitTypesByColumnName,
-      Map<String, String> schemaMetadata,
-      Map<Integer, Map<String, String>> columnMetadataByColumnIndex,
-      RoundingMode bigDecimalRoundingMode) {
-    this(
-        allocator,
-        calendar,
-        includeMetadata,
-        reuseVectorSchemaRoot,
-        arraySubTypesByColumnIndex,
-        arraySubTypesByColumnName,
-        targetBatchSize,
-        jdbcToArrowTypeConverter,
-        null,
-        explicitTypesByColumnIndex,
-        explicitTypesByColumnName,
-        schemaMetadata,
-        columnMetadataByColumnIndex,
-        bigDecimalRoundingMode);
-  }
-
-  JdbcToArrowConfig(
-      BufferAllocator allocator,
-      Calendar calendar,
-      boolean includeMetadata,
-      boolean reuseVectorSchemaRoot,
-      Map<Integer, JdbcFieldInfo> arraySubTypesByColumnIndex,
-      Map<String, JdbcFieldInfo> arraySubTypesByColumnName,
-      int targetBatchSize,
-      Function<JdbcFieldInfo, ArrowType> jdbcToArrowTypeConverter,
-      JdbcConsumerFactory jdbcConsumerGetter,
-      Map<Integer, JdbcFieldInfo> explicitTypesByColumnIndex,
-      Map<String, JdbcFieldInfo> explicitTypesByColumnName,
-      Map<String, String> schemaMetadata,
-      Map<Integer, Map<String, String>> columnMetadataByColumnIndex,
-      RoundingMode bigDecimalRoundingMode) {
-    Preconditions.checkNotNull(allocator, "Memory allocator cannot be null");
-    this.allocator = allocator;
-    this.calendar = calendar;
-    this.includeMetadata = includeMetadata;
-    this.reuseVectorSchemaRoot = reuseVectorSchemaRoot;
-    this.arraySubTypesByColumnIndex = arraySubTypesByColumnIndex;
-    this.arraySubTypesByColumnName = arraySubTypesByColumnName;
-    this.targetBatchSize = targetBatchSize;
-    this.explicitTypesByColumnIndex = explicitTypesByColumnIndex;
-    this.explicitTypesByColumnName = explicitTypesByColumnName;
-    this.schemaMetadata = schemaMetadata;
-    this.columnMetadataByColumnIndex = columnMetadataByColumnIndex;
-    this.bigDecimalRoundingMode = bigDecimalRoundingMode;
-
-    // set up type converter
-    this.jdbcToArrowTypeConverter =
-        jdbcToArrowTypeConverter != null
-            ? jdbcToArrowTypeConverter
-            : (jdbcFieldInfo) -> JdbcToArrowUtils.getArrowTypeFromJdbcType(jdbcFieldInfo, calendar);
-
-    this.jdbcConsumerGetter =
-        jdbcConsumerGetter != null ? jdbcConsumerGetter : JdbcToArrowUtils::getConsumer;
-  }
-
-  /**
-   * 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;
-  }
-
-  /** Get whether it is allowed to reuse the vector schema root. */
-  public boolean isReuseVectorSchemaRoot() {
-    return reuseVectorSchemaRoot;
-  }
-
-  /** Gets the mapping between JDBC type information to Arrow type. */
-  public Function<JdbcFieldInfo, ArrowType> getJdbcToArrowTypeConverter() {
-    return jdbcToArrowTypeConverter;
-  }
-
-  /** Gets the JDBC consumer getter. */
-  public JdbcConsumerFactory getJdbcConsumerGetter() {
-    return jdbcConsumerGetter;
-  }
-
-  /**
-   * 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
... 256436 lines suppressed ...