From b3df798320e4cd841a5cd230755669c302e243c5 Mon Sep 17 00:00:00 2001 From: Samrat002 Date: Thu, 26 Mar 2026 14:22:30 +0530 Subject: [PATCH] [FLINK-39331] Add @Experimental annotation to public S3 classes --- .../apache/flink/fs/s3native/NativeS3AFileSystemFactory.java | 3 +++ .../apache/flink/fs/s3native/NativeS3FileSystemFactory.java | 2 ++ .../org/apache/flink/fs/s3native/NativeS3OutputStream.java | 2 ++ .../org/apache/flink/fs/s3native/writer/NativeS3Committer.java | 2 ++ .../s3native/writer/NativeS3RecoverableFsDataOutputStream.java | 2 ++ 5 files changed, 11 insertions(+) diff --git a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3AFileSystemFactory.java b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3AFileSystemFactory.java index d74d64677a0e1..a91853ae44072 100644 --- a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3AFileSystemFactory.java +++ b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3AFileSystemFactory.java @@ -18,6 +18,8 @@ package org.apache.flink.fs.s3native; +import org.apache.flink.annotation.Experimental; + /** * Factory for the native S3 file system registered for the {@code s3a://} scheme. * @@ -27,6 +29,7 @@ *

All configuration options are the same as for the {@code s3://} scheme. See {@link * NativeS3FileSystemFactory} for available options. */ +@Experimental public class NativeS3AFileSystemFactory extends NativeS3FileSystemFactory { @Override diff --git a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3FileSystemFactory.java b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3FileSystemFactory.java index f93b007822ef5..1fb487fa43ec4 100644 --- a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3FileSystemFactory.java +++ b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3FileSystemFactory.java @@ -18,6 +18,7 @@ package org.apache.flink.fs.s3native; +import org.apache.flink.annotation.Experimental; import org.apache.flink.configuration.ConfigOption; import org.apache.flink.configuration.ConfigOptions; import org.apache.flink.configuration.Configuration; @@ -33,6 +34,7 @@ import java.io.IOException; import java.net.URI; +@Experimental public class NativeS3FileSystemFactory implements FileSystemFactory { private static final Logger LOG = LoggerFactory.getLogger(NativeS3FileSystemFactory.class); diff --git a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3OutputStream.java b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3OutputStream.java index 001bf33e85be2..ad0c8ce660c48 100644 --- a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3OutputStream.java +++ b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3OutputStream.java @@ -18,6 +18,7 @@ package org.apache.flink.fs.s3native; +import org.apache.flink.annotation.Experimental; import org.apache.flink.core.fs.FSDataOutputStream; import software.amazon.awssdk.core.sync.RequestBody; @@ -42,6 +43,7 @@ * can be safely invoked from another thread (e.g. during task cancellation) per {@link * org.apache.flink.core.fs.FSDataOutputStream} contract. */ +@Experimental public class NativeS3OutputStream extends FSDataOutputStream { private static final int BUFFER_SIZE = 64 * 1024; diff --git a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3Committer.java b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3Committer.java index 7c417f73656c5..9f037ef0586da 100644 --- a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3Committer.java +++ b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3Committer.java @@ -18,6 +18,7 @@ package org.apache.flink.fs.s3native.writer; +import org.apache.flink.annotation.Experimental; import org.apache.flink.core.fs.RecoverableFsDataOutputStream; import org.apache.flink.core.fs.RecoverableWriter; @@ -39,6 +40,7 @@ *

The "empty parts" check is a defensive measure against programming errors - in normal * operation, a multipart upload should always have at least one part before committing. */ +@Experimental public class NativeS3Committer implements RecoverableFsDataOutputStream.Committer { private final NativeS3AccessHelper s3AccessHelper; diff --git a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableFsDataOutputStream.java b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableFsDataOutputStream.java index 3c369fa094f38..599b2a2f3b59e 100644 --- a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableFsDataOutputStream.java +++ b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableFsDataOutputStream.java @@ -18,6 +18,7 @@ package org.apache.flink.fs.s3native.writer; +import org.apache.flink.annotation.Experimental; import org.apache.flink.core.fs.RecoverableFsDataOutputStream; import org.apache.flink.core.fs.RecoverableWriter; import org.apache.flink.fs.s3native.writer.NativeS3Recoverable.PartETag; @@ -50,6 +51,7 @@ * #closeForCommit()}, and {@link #persist()} to ensure safe cleanup of local resources without * corrupting S3 state. */ +@Experimental @NotThreadSafe public class NativeS3RecoverableFsDataOutputStream extends RecoverableFsDataOutputStream {