Hi Arrow community, I am submitting a new Pull Request that proposes simplifying the creation of extension type writers by transitioning from a factory-based pattern to a type-based pattern.
Currently, ExtensionTypeWriterFactory instances are passed through multiple API layers. The proposed change moves this responsibility to the extension types themselves via a new getNewFieldWriter() method on ArrowType.ExtensionType. This new approach aligns with the pattern used by MinorType, where each type is responsible for creating its own writer. This significantly reduces boilerplate, simplifies the API, and will make it much easier to implement custom extension types outside of arrow-java. Please note that this PR introduces breaking changes to the extension type writing mechanism, which are not backward compatible with the current implementation. All breaking changes and implementation details are thoroughly described in the PR: https://github.com/apache/arrow-java/pull/892 ( https://github.com/apache/arrow-java/pull/892). Given that this is a breaking change, I recommend including it in the v18.4.0 release. Best regards, Joana Hrotkó
