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

guoweijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new c0265db9903 [FLINK-39331] Add @Experimental annotation to public S3 
classes
c0265db9903 is described below

commit c0265db9903d4a4a23072f94893da94ed4c3ae85
Author: Samrat002 <[email protected]>
AuthorDate: Thu Mar 26 14:22:30 2026 +0530

    [FLINK-39331] Add @Experimental annotation to public S3 classes
    
    Make NativeS3Recoverable and NativeS3RecoverableSerializer package private
---
 .../apache/flink/fs/s3native/NativeS3AFileSystemFactory.java |  3 +++
 .../apache/flink/fs/s3native/NativeS3FileSystemFactory.java  | 12 ++++++++++++
 .../org/apache/flink/fs/s3native/NativeS3OutputStream.java   |  2 +-
 .../apache/flink/fs/s3native/writer/NativeS3Committer.java   |  2 +-
 .../apache/flink/fs/s3native/writer/NativeS3Recoverable.java |  4 ++--
 .../writer/NativeS3RecoverableFsDataOutputStream.java        |  2 +-
 .../fs/s3native/writer/NativeS3RecoverableSerializer.java    |  3 +--
 .../flink/fs/s3native/writer/NativeS3RecoverableWriter.java  |  4 ++--
 8 files changed, 23 insertions(+), 9 deletions(-)

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 d74d64677a0..a91853ae440 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 @@ package org.apache.flink.fs.s3native;
  * <p>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 f93b007822e..756d742a405 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,17 @@ import org.slf4j.LoggerFactory;
 import java.io.IOException;
 import java.net.URI;
 
+/**
+ * Factory for creating Native S3 FileSystem instances.
+ *
+ * <p>This factory creates {@link NativeS3FileSystem} instances for accessing 
Amazon S3 buckets
+ * using AWS SDK v2. The Native S3 FileSystem provides a drop-in replacement 
for Presto and Hadoop
+ * S3 implementations with minimal external dependencies.
+ *
+ * @see NativeS3FileSystem
+ * @see org.apache.flink.core.fs.FileSystemFactory
+ */
+@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 001bf33e85b..d125d05fd27 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
@@ -42,7 +42,7 @@ import java.util.concurrent.locks.ReentrantLock;
  * can be safely invoked from another thread (e.g. during task cancellation) 
per {@link
  * org.apache.flink.core.fs.FSDataOutputStream} contract.
  */
-public class NativeS3OutputStream extends FSDataOutputStream {
+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 7c417f73656..2765740088a 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
@@ -39,7 +39,7 @@ import java.util.stream.Collectors;
  * <p>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.
  */
-public class NativeS3Committer implements 
RecoverableFsDataOutputStream.Committer {
+class NativeS3Committer implements RecoverableFsDataOutputStream.Committer {
 
     private final NativeS3AccessHelper s3AccessHelper;
     private final NativeS3Recoverable recoverable;
diff --git 
a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3Recoverable.java
 
b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3Recoverable.java
index 6114247e8ce..28296fc1fc0 100644
--- 
a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3Recoverable.java
+++ 
b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3Recoverable.java
@@ -55,7 +55,7 @@ import static 
org.apache.flink.util.Preconditions.checkNotNull;
  * is final, while {@code lastPartObjectLength} is not (for serialization 
compatibility), but in
  * practice both are set once during construction and not modified afterwards.
  */
-public final class NativeS3Recoverable
+final class NativeS3Recoverable
         implements RecoverableWriter.ResumeRecoverable, 
RecoverableWriter.CommitRecoverable {
 
     private final String uploadId;
@@ -78,7 +78,7 @@ public final class NativeS3Recoverable
         this(objectName, uploadId, parts, numBytesInParts, null, -1L);
     }
 
-    public NativeS3Recoverable(
+    NativeS3Recoverable(
             String objectName,
             String uploadId,
             List<PartETag> parts,
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 3c369fa094f..c69ff909fe3 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
@@ -51,7 +51,7 @@ import java.util.concurrent.locks.ReentrantLock;
  * corrupting S3 state.
  */
 @NotThreadSafe
-public class NativeS3RecoverableFsDataOutputStream extends 
RecoverableFsDataOutputStream {
+class NativeS3RecoverableFsDataOutputStream extends 
RecoverableFsDataOutputStream {
 
     private static final Logger LOG =
             
LoggerFactory.getLogger(NativeS3RecoverableFsDataOutputStream.class);
diff --git 
a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableSerializer.java
 
b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableSerializer.java
index d8036a5eca1..5f9c28fdb8e 100644
--- 
a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableSerializer.java
+++ 
b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableSerializer.java
@@ -66,8 +66,7 @@ import java.util.List;
  *   - incompleteObjectLength: long
  * </pre>
  */
-public class NativeS3RecoverableSerializer
-        implements SimpleVersionedSerializer<NativeS3Recoverable> {
+class NativeS3RecoverableSerializer implements 
SimpleVersionedSerializer<NativeS3Recoverable> {
 
     public static final NativeS3RecoverableSerializer INSTANCE =
             new NativeS3RecoverableSerializer();
diff --git 
a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableWriter.java
 
b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableWriter.java
index 98ff6f1fac5..5aeedd12601 100644
--- 
a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableWriter.java
+++ 
b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableWriter.java
@@ -18,7 +18,7 @@
 
 package org.apache.flink.fs.s3native.writer;
 
-import org.apache.flink.annotation.PublicEvolving;
+import org.apache.flink.annotation.Experimental;
 import org.apache.flink.core.fs.Path;
 import org.apache.flink.core.fs.RecoverableFsDataOutputStream;
 import org.apache.flink.core.fs.RecoverableWriter;
@@ -33,7 +33,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import static org.apache.flink.util.Preconditions.checkNotNull;
 
 /** Recoverable writer for S3 using multipart uploads for exactly-once 
semantics. */
-@PublicEvolving
+@Experimental
 public class NativeS3RecoverableWriter implements RecoverableWriter, 
AutoCloseable {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(NativeS3RecoverableWriter.class);

Reply via email to