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);