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

davidzollo pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new b665535785 [Improve][Connector-V2] Optimize Arrow Converter SPI 
registration using AutoService (#11219)
b665535785 is described below

commit b6655357858fdb5874322ddc05675d3140f5c1bd
Author: zhiwei.niu <[email protected]>
AuthorDate: Tue Jul 7 21:27:47 2026 +0800

    [Improve][Connector-V2] Optimize Arrow Converter SPI registration using 
AutoService (#11219)
---
 .github/workflows/backend.yml                      |  6 ++---
 .../source/arrow/converter/DateMilliConvertor.java |  3 +++
 .../arrow/converter/FixedSizeListConverter.java    |  3 +++
 .../source/arrow/converter/LargeListConverter.java |  3 +++
 .../source/arrow/converter/ListConverter.java      |  3 +++
 .../source/arrow/converter/MapConverter.java       |  3 +++
 .../source/arrow/converter/NullConverter.java      |  3 +++
 .../source/arrow/converter/StructConverter.java    |  2 ++
 .../arrow/converter/TimeStampMicroConverter.java   |  3 +++
 .../arrow/converter/TimeStampMilliConverter.java   |  3 +++
 .../arrow/converter/TimeStampNanoConverter.java    |  3 +++
 .../arrow/converter/TimeStampSecConverter.java     |  3 +++
 ...atunnel.common.source.arrow.converter.Converter | 26 ----------------------
 13 files changed, 35 insertions(+), 29 deletions(-)

diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml
index 3c6378ffce..6da2eea9a1 100644
--- a/.github/workflows/backend.yml
+++ b/.github/workflows/backend.yml
@@ -505,7 +505,7 @@ jobs:
       matrix:
         java: [ '8', '11' ]
         os: [ 'ubuntu-latest' ]
-    timeout-minutes: 210
+    timeout-minutes: 300
     steps:
       - uses: actions/checkout@v4
       - name: Set up JDK ${{ matrix.java }}
@@ -626,7 +626,7 @@ jobs:
       matrix:
         java: [ '8', '11' ]
         os: [ 'ubuntu-latest' ]
-    timeout-minutes: 120
+    timeout-minutes: 210
     steps:
       - uses: actions/checkout@v4
       - name: Set up JDK ${{ matrix.java }}
@@ -657,7 +657,7 @@ jobs:
       matrix:
         java: [ '8', '11' ]
         os: [ 'ubuntu-latest' ]
-    timeout-minutes: 120
+    timeout-minutes: 210
     steps:
       - uses: actions/checkout@v4
       - name: Set up JDK ${{ matrix.java }}
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/DateMilliConvertor.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/DateMilliConvertor.java
index c184d6271e..9aee5394d7 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/DateMilliConvertor.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/DateMilliConvertor.java
@@ -20,10 +20,13 @@ package 
org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.DateMilliVector;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.types.Types;
 
+import com.google.auto.service.AutoService;
+
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
 
+@AutoService(Converter.class)
 public class DateMilliConvertor implements Converter<DateMilliVector> {
     @Override
     public Object convert(int rowIndex, DateMilliVector fieldVector) {
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/FixedSizeListConverter.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/FixedSizeListConverter.java
index c325cc50cd..59190ff20c 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/FixedSizeListConverter.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/FixedSizeListConverter.java
@@ -20,6 +20,8 @@ package 
org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter;
 import 
org.apache.seatunnel.shade.org.apache.arrow.vector.complex.FixedSizeListVector;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.types.Types;
 
+import com.google.auto.service.AutoService;
+
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
@@ -28,6 +30,7 @@ import java.util.Map;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
+@AutoService(Converter.class)
 public class FixedSizeListConverter implements Converter<FixedSizeListVector> {
     @Override
     public Object convert(int rowIndex, FixedSizeListVector fieldVector) {
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/LargeListConverter.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/LargeListConverter.java
index ed0d6ee26a..b96417e5b9 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/LargeListConverter.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/LargeListConverter.java
@@ -20,6 +20,8 @@ package 
org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter;
 import 
org.apache.seatunnel.shade.org.apache.arrow.vector.complex.LargeListVector;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.types.Types;
 
+import com.google.auto.service.AutoService;
+
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
@@ -29,6 +31,7 @@ import java.util.Map;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
+@AutoService(Converter.class)
 public class LargeListConverter implements Converter<LargeListVector> {
     @Override
     public Object convert(int rowIndex, LargeListVector fieldVector) {
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/ListConverter.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/ListConverter.java
index 3424f56018..0895d586d5 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/ListConverter.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/ListConverter.java
@@ -20,6 +20,8 @@ package 
org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.complex.ListVector;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.types.Types;
 
+import com.google.auto.service.AutoService;
+
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
@@ -29,6 +31,7 @@ import java.util.Map;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
+@AutoService(Converter.class)
 public class ListConverter implements Converter<ListVector> {
     @Override
     public Object convert(int rowIndex, ListVector fieldVector) {
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/MapConverter.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/MapConverter.java
index 18ec3c6910..fd4aeb01a6 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/MapConverter.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/MapConverter.java
@@ -21,6 +21,8 @@ import 
org.apache.seatunnel.shade.org.apache.arrow.vector.complex.MapVector;
 import 
org.apache.seatunnel.shade.org.apache.arrow.vector.complex.impl.UnionMapReader;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.types.Types;
 
+import com.google.auto.service.AutoService;
+
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
@@ -28,6 +30,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.function.Function;
 
+@AutoService(Converter.class)
 public class MapConverter implements Converter<MapVector> {
     @Override
     public Object convert(int rowIndex, MapVector fieldVector) {
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/NullConverter.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/NullConverter.java
index 50b235ea8e..441038dfc4 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/NullConverter.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/NullConverter.java
@@ -20,6 +20,9 @@ package 
org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.NullVector;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.types.Types;
 
+import com.google.auto.service.AutoService;
+
+@AutoService(Converter.class)
 public class NullConverter implements Converter<NullVector> {
     @Override
     public Object convert(int rowIndex, NullVector fieldVector) {
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/StructConverter.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/StructConverter.java
index b74ccde554..2646df7b2b 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/StructConverter.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/StructConverter.java
@@ -20,6 +20,7 @@ package 
org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.complex.StructVector;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.types.Types;
 
+import com.google.auto.service.AutoService;
 import lombok.extern.slf4j.Slf4j;
 
 import java.util.Map;
@@ -28,6 +29,7 @@ import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Slf4j
+@AutoService(Converter.class)
 public class StructConverter implements Converter<StructVector> {
     @Override
     public Object convert(int rowIndex, StructVector fieldVector) {
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampMicroConverter.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampMicroConverter.java
index eee0a44ee6..e7cac38bd7 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampMicroConverter.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampMicroConverter.java
@@ -20,10 +20,13 @@ package 
org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.TimeStampMicroVector;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.types.Types;
 
+import com.google.auto.service.AutoService;
+
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
 
+@AutoService(Converter.class)
 public class TimeStampMicroConverter implements 
Converter<TimeStampMicroVector> {
     @Override
     public Object convert(int rowIndex, TimeStampMicroVector fieldVector) {
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampMilliConverter.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampMilliConverter.java
index 3410671e80..9f6f432681 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampMilliConverter.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampMilliConverter.java
@@ -20,10 +20,13 @@ package 
org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.TimeStampMilliVector;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.types.Types;
 
+import com.google.auto.service.AutoService;
+
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
 
+@AutoService(Converter.class)
 public class TimeStampMilliConverter implements 
Converter<TimeStampMilliVector> {
     @Override
     public Object convert(int rowIndex, TimeStampMilliVector fieldVector) {
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampNanoConverter.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampNanoConverter.java
index 17187abba7..c9b41bc3ac 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampNanoConverter.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampNanoConverter.java
@@ -20,10 +20,13 @@ package 
org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.TimeStampNanoVector;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.types.Types;
 
+import com.google.auto.service.AutoService;
+
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
 
+@AutoService(Converter.class)
 public class TimeStampNanoConverter implements Converter<TimeStampNanoVector> {
     @Override
     public Object convert(int rowIndex, TimeStampNanoVector fieldVector) {
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampSecConverter.java
 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampSecConverter.java
index a0a91b6dfe..b8141289c1 100644
--- 
a/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampSecConverter.java
+++ 
b/seatunnel-connectors-v2/connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/arrow/converter/TimeStampSecConverter.java
@@ -20,10 +20,13 @@ package 
org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.TimeStampSecVector;
 import org.apache.seatunnel.shade.org.apache.arrow.vector.types.Types;
 
+import com.google.auto.service.AutoService;
+
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
 
+@AutoService(Converter.class)
 public class TimeStampSecConverter implements Converter<TimeStampSecVector> {
     @Override
     public Object convert(int rowIndex, TimeStampSecVector fieldVector) {
diff --git 
a/seatunnel-connectors-v2/connector-common/src/main/resources/META-INF/services/org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.Converter
 
b/seatunnel-connectors-v2/connector-common/src/main/resources/META-INF/services/org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.Converter
deleted file mode 100644
index 310946f2ca..0000000000
--- 
a/seatunnel-connectors-v2/connector-common/src/main/resources/META-INF/services/org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.Converter
+++ /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.
-
-org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.FixedSizeListConverter
-org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.LargeListConverter
-org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.ListConverter
-org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.MapConverter
-org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.NullConverter
-org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.StructConverter
-org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.TimeStampMicroConverter
-org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.TimeStampMilliConverter
-org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.TimeStampNanoConverter
-org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.DateMilliConvertor
-org.apache.seatunnel.connectors.seatunnel.common.source.arrow.converter.TimeStampSecConverter

Reply via email to